摘 要 本系统电源电压为+16V,速度传感器具有汽车每运行1㎞提供1000个脉冲信号的特性。显示器可以采用LED数码管。系统采用单片机和FPGA的结合进行系统的主体设计,测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算,里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间,等待费用,并产生里程标志(LCBZ),等待标志(DDBZ),熄灯标志(XDBZ)等有关控制标志信号,同时根据单片机发出的开始信号(START),时段标志(SDBZ),传输数据选择(SEL)等控制信号将有关计算结果传送给FPGA芯片。单片机MCU除了完成键盘扫描,显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。本设计方案利用单片机和FPGA的结合,发挥它们各自的长处,分工清晰,实际使用和操作符合大众逻辑,容易被人接受。而且,单片机丰富的I/O口和FPGA模块化的设计为系统功能的扩展提供了空间和便利。 关键词 计费系统,单片机,FPGA芯片
ABSTRACT
The system′s Power supply voltage to +16V, the velocity generator has the characteristic that auto provide 1 000 pulses signals every time while the taxi move 1㎞. The LED digital display can be used. The system adopting microcontroller combinate with FPGA make the system′s main design,the monitoring and control FPGA chip through collection the pulse signal (WCLK) from sensor, for mileage calculation, mileage rates, use of a standard external pulse signal (SCLK) clock signals to calculate waiting time, waiting costs, and generate mileage signs (LCBZ) awaiting signs (DDBZ),XDBZ signs,and according the start signal (START) ,sessions signs (SDBZ) ,data transmission options signs (SEL) generat by microcontroller will be transmitted to the FPGA chip .In addition to the completion and the other control signals of keyboard scanning control the display ,microcontroller (MCU) also through the port (P0) to exchange data with FPGA,and monitoring FPGA chip by the control signal .The design combinats the FPGA and microcontroller integrated to play their respective strengths,it′s clear division of function,the actual used and the operation adopting the public logic and canbe easily accepted, Moreover,the microtroller is rich in I/O port and the modular design of the FPGA for the expansion of system fuctions provide much more space and facilities. Keywords The costs system, Microcontroller, the FPGA chip 出租车是现代人类的重要交通工具,而出租车的计费系统的安全性和先进性是人们普遍关心的问题,要求计费器性能稳定,计费准确,以及预防司机作弊行为等等都关系到乘客的切身利益。因此,设计出符合人们普遍要求及放心的产品具有重要的意义。同时,设计该系统所应用的知识涉及范围广,通过设计可以牢固掌握所学理论知识,对电子信息工程专业的就业方向有初步认识,将理论与实际有机联系起来。应该是对以前所学知识的一次审核吧! 本设计主要介绍了出租车计费系统的设计思路和过程,并给出了所涉及的相关知识的详细介绍。EDA技术应用,单片机的功能及应用,传感器检测技术,VHDL编程语言及汇编语言程序,显示系统设计及按键控制,等等。第一部分为绪论,第二部分为方案论证,第三部分为系统设计,第四部分是硬件及软件实现,第五部分系统检测及分析,第六部分是结论,第七部分是附录,第八部分是参考文献,第九部分是致谢. 目前,普遍的出租车计费器仅仅具有时钟,起步价,里程计费,等待计费及显示几个功能。其发展前景是可观的,将来的产品除具有这些功能外,另外还可增加如下功能:防作弊功能,IC卡付费:顾客能在制定点购买一定额度的"顾客IC卡",乘车后可用IC卡付帐,付帐是否成功有相应的提示。车主可定期将总营业额写入"车主IC卡"中,并据此IC卡向所属公司领取报酬。车票资料打印:顾客付费后可打印发票,打印内容包括车主信息和车费信息等。可打印车主总营业额信息。语音播报:当乘客上车时,可自动问候乘客,当到达目的地,自动播报乘车费用并礼貌再见,表达希望下次乘坐的意思。增加的这些功能将会更好地为乘客服务。 本系统设计也可应用于其他计费系统中,如电脑计费系统等等,其应用技术也有相当范围的应用面,如显示和播报部分也可应用于智能饭卡﹑智能电动车﹑机器人等电子相关产品中。可见掌握了该系统的设计和分析可实现对电子专业知识的具体应用,增强理论联系实际的能力。除此以外,所涉及的知识面也联系到现实生活中很多相关电子产品,也将对其他电子产品有一定理论基础。
计费及显示 ① 里程,即汽车行程里程,用四位数字显示,显示方式为"XXX.X",单位为㎞,精确到0.1㎞。 ② 单价,即里程单价,用三位数字显示,显示方式为"X.XX",单价为元/㎞,根据每天不同的时间段有两种情况:当时间段为06:00~23:00时单价为1.4元/㎞,其他时间段内单价为1.80元/㎞。 ③ 等候时间,用四位数字显示分钟和秒,显示方式为"XX:XX",等候的定义是:当汽车行驶速度小于或等于12㎞/h时为"等候"。在等候时间大于1小时的情况下,可以不显示等候时间,但必须对等候时间进行统计计算。 ④ 等候单价,等候单价有两种情况:在等候时间小于1小时的情况下,等候单价为1元每5分钟;在等候时间大于1小时的情况下,等候单价为20元每小时。 ⑤ 费用的计算,出租车的起价为5.00元,当里程小于2㎞时,按起价计算费用;当里程大于2㎞时按下式计算费用:费用=里程*里程单价+等候时间*等候单价。 ⑥ 费用的显示,用五位数字显示,显示方式为"XXX.XX",单价为元。 时钟及显示 当出租车在通常运行状态下,应能显示当前的时间,在汽车熄火的情况下,时钟必须正常运行,但是可以不显示时钟. 计费开始提示 当出租车载上乘客并起步后,将空车指示牌扳倒时,空车指示牌里的指示灯熄灭,并有语音或灯光提示信号。
功能模块设计 根据系统的设计要求,将整个测控FPGA系统CZJFXT分为七个模块,它们分别是:分频器模块FPQ,等待判别模块DDPB,里程计算模块LCJS,里程计费模块LCJF,等待计时模块DDJS,等待计费模块DDJF,输出数据选择模块SCXZ。 分频器模块FPQ:将外部时钟信号SCLK(设计时假设为1024HZ)经过适当分频后,产生1HZ的系统工作用基准时钟信号CLK1HZ,供给系统中的有关模块计时用。 等待判别模块DDPB:根据速度传感器脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ,计算单位时间里WCLK的脉冲个数(每㎞产生1000个脉冲信号,即每米产生1个脉冲信号),亦即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号DDBZ。当速度大于12㎞/H,即速度大于200M/MIN时,出租车处于运行状态,这时等待标志DDBZ=0;当速度小于等于12㏎/H,即速度小于等于200M/MIN时,出租车处于等待状态,这时等待标志DDBZ=1。该模块的VHDL程序设计可分为三个进程:60S周期性跳变信号产生进程,每分钟行驶距离计算进程,等待标志判别进程。等待标志判别进程就是比较每分钟WCLK脉冲个数与等待状态WCLK脉冲临界个数200的大小,从而确定DDBZ的赋值。 里程计算模块LCJS:根据速度传感器脉冲信号WCLK和等待标志DDBZ,对出租车行驶的里程数XSLC进行计算,同时发出里程标志信号LCBZ和里程计费标志信号JFBZ。如果LCBZ=1,说明行驶距离超过2㎞,里程计费启动;如果LCBZ=0,说明没超过2㎞,按起价计费,每行驶1㏎应计费1次,并且计费的启动信号应是某一时刻,因此每行驶1㎞,计费标志信号JFBZ应跳变1次。该模块的VHDL程序设计可分为两个进程:里程计算及标志产生进程,产生计费信号进程。产生计费信号进程就是每行驶10百米(即1㎞)JFBZ由低电平0变为1,经过一个系统时钟周期后JFBZ又回复到低电平0,里程计费模块LCJF就是在JFBZ脉冲信号的上升沿到来时进行计费的加法操作。 里程计费模块LCJF:在计费标志信号JFBZ,等待标志信号DDBZ,里程标志信号LCBZ和时段标志信号SDBZ等信号的控制下,计算行驶里程超过2㎞以上里程的费用LCFY。该模块的VHDL程序是通过由多个条件控制的加法进程来完成里程计费的,里程计费的条件是在DDBZ=0,并且在JFBZ的上升沿根据SDBZ分别进行加法计费操作。当SDBZ=1时,表示在06:00~23:00时段,其单价SD1为1.4元/㎞;当SDBZ=0时,表示其他时段,其单价SD2为1.8元/㎞。如果LCBZ=1,说明行驶距离超过2㎞,里程计费启动;如果LCBZ=0,说明没超过2㎞,按起价计费。 等待计时模块DDJS:在等待标志信号DDBZ和基准时钟信号CLK1HZ的控制下,进行等待时间DDSJ的计算,其中DDSJ的低8位表示等待时间的秒数,DDSJ的高8位表示等待时间的分钟数,同时根据等待时间的长短发出一个熄灯标志信号XDBZ。当等待时间小于等于1小时,XDBZ=0,等待时间显示灯亮;当等待时间大于1小时,XDBZ=1,等待时间显示不亮。该模块的VHDL程序是通过一个多层嵌套的加法进程来完成等待计时的。 等待计费模块DDJF:在等待标志信号DDBZ和熄灯标志信号XDBZ控制下,进行等待费用DDFY的计费操作。该模块的VHDL程序包括两个进程:60S周期性跳变信号产生进程,等待费用计算进程。等待费用计算的条件是在DDBZ=1并且在60S周期性跳变信号T60S的上升沿,根据XDBZ分别进行加法计费操作。当DDBZ=1且XDBZ=0时,按1元/5分钟,即20分/分钟计费;当DDBZ=0且XDBZ=1时,按20元/小时,即33分/分钟计费。 输出数据选择模块SCXZ:根据单片机发出的数据传输选择控制信号SEL,选择有关计算处理结果传输给单片机。
目 录
摘 要 I ABSTRACT II
1 绪论 1 2 系统设计 2 2.1 系统组成 2 2.1.1 计费及显示 2 2.1.2 时钟及显示 2 2.1.3 计费开始提示 3 2.2 功能模块设计 3 3 硬件及软件实现 5 3.1 传感器 6 3.1.1 光电传感器电路设计 6 3.1.2 车轮光电开关检测电路 7 3.2 单片机 7 3.2.1 8051 单片机功能方块图 8 3.2.2 AT89S51单片机简介 11 3.2.3 AT89S5l与51系列单片机相比具有如下特点 12 3.2.4 89S51的内部框图 12 3.2.5 中断控制 15 3.2.6 单片机控制程序设计 16 3.2.7 单片机汇编语言源程序 20 3.3 显示及按键控制系统 35 3.3.1 LED数码管 35 3.3.2 数据显示电路的设计 36 4 系统检测及分析 56 4.1 系统仿真/硬件验证 56 4.1.1 系统的调试方法 56 4.1.2 系统的硬件验证 56 4.2 设计技巧分析 57 结 论 59 附录A: FPGA芯片引脚 60 附录B:总体电路图 61 参考文献 62 致 谢 63 |