出租车计费系统的设计.docx
《出租车计费系统的设计.docx》由会员分享,可在线阅读,更多相关《出租车计费系统的设计.docx(44页珍藏版)》请在冰豆网上搜索。
出租车计费系统的设计
摘要
本系统电源电压为+16V,速度传感器具有汽车每运行1㎞提供1000个脉冲信号的特性。
显示器可以采用LED数码管。
系统采用单片机和FPGA的结合进行系统的主体设计,测控FPGA芯片通过采集传感器脉冲信号WCLK进行里程计算,里程计费,利用外部脉冲信号SCLK产生标准时钟信号,以计算等待时间,等待费用,并产生里程标志(LCBZ),等待标志(DDBZ),熄灯标志(XDBZ)等有关控制标志信号,同时根据单片机发出的开始信号(START),时段标志(SDBZ),传输数据选择(SEL)等控制信号将有关计算结果传送给FPGA芯片。
单片机MCU除了完成键盘扫描,显示控制外,还通过P0口与FPGA进行数据交换,并向测控FPGA芯片发出有关控制信号。
本设计方案利用单片机和FPGA的结合,发挥它们各自的长处,分工清晰,实际使用和操作符合大众逻辑,容易被人接受。
而且,单片机丰富的I/O口和FPGA模块化的设计为系统功能的扩展提供了空间和便利。
关键词计费系统,单片机,FPGA芯片
第1章绪论
出租车是现代人类的重要交通工具,而出租车的计费系统的安全性和先进性是人们普遍关心的问题,要求计费器性能稳定,计费准确,以及预防司机作弊行为等等都关系到乘客的切身利益。
因此,设计出符合人们普遍要求及放心的产品具有重要的意义。
同时,设计该系统所应用的知识涉及范围广,通过设计可以牢固掌握所学理论知识,对电子信息工程专业的就业方向有初步认识,将理论与实际有机联系起来。
应该是对以前所学知识的一次审核吧!
本设计主要介绍了出租车计费系统的设计思路和过程,并给出了所涉及的相关知识的详细介绍。
EDA技术应用,单片机的功能及应用,传感器检测技术,VHDL编程语言及汇编语言程序,显示系统设计及按键控制,等等。
第一部分为绪论,第二部分为方案论证,第三部分为系统设计,第四部分是硬件及软件实现,第五部分系统检测及分析,第六部分是结论,第七部分是附录,第八部分是参考文献,第九部分是致谢.
目前,普遍的出租车计费器仅仅具有时钟,起步价,里程计费,等待计费及显示几个功能。
其发展前景是可观的,将来的产品除具有这些功能外,另外还可增加如下功能:
防作弊功能,IC卡付费:
顾客能在制定点购买一定额度的“顾客IC卡”,乘车后可用IC卡付帐,付帐是否成功有相应的提示。
车主可定期将总营业额写入“车主IC卡”中,并据此IC卡向所属公司领取报酬。
车票资料打印:
顾客付费后可打印发票,打印内容包括车主信息和车费信息等。
可打印车主总营业额信息。
语音播报:
当乘客上车时,可自动问候乘客,当到达目的地,自动播报乘车费用并礼貌再见,表达希望下次乘坐的意思。
增加的这些功能将会更好地为乘客服务。
本系统设计也可应用于其他计费系统中,如电脑计费系统等等,其应用技术也有相当范围的应用面,如显示和播报部分也可应用于智能饭卡﹑智能电动车﹑机器人等电子相关产品中。
可见掌握了该系统的设计和分析可实现对电子专业知识的具体应用,增强理论联系实际的能力。
除此以外,所涉及的知识面也联系到现实生活中很多相关电子产品,也将对其他电子产品有一定理论基础。
第2章系统设计
2.1系统组成
其中系统电源电压为+16V。
速度传感器不需要进行设计,假设它具有汽车每运行1㎞提供1000个脉冲信号的特性。
显示器采用LED数码管。
具体功能要求如下:
图2.1系统方框图
2.1.1计费及显示
①里程,即汽车行程里程,用四位数字显示,显示方式为“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”,单价为元。
2.1.2时钟及显示
当出租车在通常运行状态下,应能显示当前的时间,在汽车熄火的情况下,时钟必须正常运行,但是可以不显示时钟.
2.1.3计费开始提示
当出租车载上乘客并起步后,将空车指示牌扳倒时,空车指示牌里的指示灯熄灭,并有语音或灯光提示信号。
图2.2总体原理框图
2.2功能模块设计
根据系统的设计要求,将整个测控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,选择有关计算处理结果传输给单片机。
第3章硬件及软件实现
3.1传感器
传感器通常是指能感受并能按一定规律将所感受的被测非电量(包括物理量、化学量、生物量等)转换成便于处理与传输的电量(一般为电量,也有少数为其他物理量,如光信号)的器件或装置。
光电传感器是把光信号转换为电信号的传感器,光电传感器的种类极多。
它们共同的特点是响应速度快,易于实现非接触测量,非常适于与计算机接口。
3.1.1光电传感器电路设计
光电传感器工作时,大致应用了三种效应:
通过光子与物质的相互作用能直接得到电信号的量子效应;光被物质吸收变成热量后,利用热电转换得到电信号的热效应;光作为一种电磁波,直接与物质相互作用,从而感应出电信号的波动相互作用效应。
反射式光电传感器是用来检测黑白线条的,如图3.1.1(a)所示
由于黑白物体的反射系数不同,利用反射光可以使光敏三极管实现导通和断开,调节传感器与被测对象之间的距离,使光敏三极管只能接受到白色物体反射回来的光束。
而黑色物体的反射系数小,所反射回来的光束很弱,光敏三极管无法接受到反射光。
从而实现对黑白线条的检测。
还要在输出信号处加个控制电路,如图3.1.1(b)起隔离强信号和方波整形的作用.
(a)
(b)
图3.1.1反射式光电传感器
3.1.2车轮光电开关检测电路
由于要测出出租车的运行速度,每1千米产生1000个脉冲信号并计算出单位时间里的脉冲个数,转换成车轮所转的圈数,即产生脉冲数的多少。
在该设计中采用在车轮的转盘上安装一个3条黑白线均匀的圆盘,再用光电开关来检测,如下图4.1.2所示,当出租车运动时,车轮转动,光电传感器利用接收黑白电平时输出的高低电平,当光电传感器检测到黑色条纹时,输出高电平给单片机,相反当检测到白色条纹时输出低电平,从而把连续输出高低电平转化为脉冲数,也就把电机转动时带动有黑白线的圆盘黑白条数转换成脉冲数,从而测试出出租车运行速度。
图3.1.2光电检测电路
用一张贴有黑色胶带的白纸,让光电传感器离纸不到5cm的平面上与胶带垂直经过,看计数是否与所经过的的胶带数目相等,若多次测试都是吻合的,则此光电传感器良好.
3.2单片机
单片机既是一个微型的计算机,它具有组成计算机系统的三个要素:
CPU、内存与I/O。
CPU:
运算或逻辑上的判断;
内存:
存放程序与数据;
I/O:
与外界沟通的桥梁。
CPU中央处理器
Memory
内存
I/O
输入/出设备
图3.2.1单片机简图
3.2.18051单片机功能方块图
SERIALPORT
4I/OPROT
BUSCONTROL
OSC
振荡与时序
CPU
8051CORE
ETC
(TIMER2)
TIMER1
TIMER0
ON-CHIP
RAM
128/(256)
Bytes
ON-CHIP
PROGRAM
MEMORY
4K/(8K)
INTERRUPT
CONTROL
INT1
INT0
EXTRNAL
INTERRUPTS
指令分析
中断系统统
控制总线