前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇出租车计价器设计范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
【关键词】计价器;AT89S52
一、设计方案
(一)主控电路的设计
利用单片机丰富的 I/O端口和其本身控制的灵活性,可以实现基本的里程计价功能和价格调整、时钟显示等功能。
(二)掉电保护
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟,它可以在很小电流的后备电源(2.5V~5.5V电源,在2.5V时耗电小于300nA)下工作,利用DS1302的RAM就可以实现掉电保护,而且可以很直观的就可以显示时间,可带来很多方便。
(三)显示设计
采用LED数码管显示。数码管具有编程简单,夜间显示效果好,而且其价格便宜。
二、各单元电路设计
(一)里程计算、计价单元的设计
里程计算是通过安装在车轮上的霍尔传感器检测到的脉冲信号,送到单片机产生中断,单片机再根据程序设定,计算出里程。
A44E 属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可达到1MHZ。
在霍尔电势发生器的两端加上电压VCC后,根据霍尔效应原理,当霍尔片处在磁场中时,霍尔传感器的输出端输出低电平。当车轮转动一圈时小磁铁提供一个磁场,则霍尔传感器输出一次低电平完成一次数据采集。我们选择了P3.3 口作为信号的输入端,内部采用外部中断0,车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数。通过计算将脉冲增加体现在金额和里程上。
(二)掉电存储单元电路
当主电源低于10V时单片机就要采取掉电保护措施,我们采用看门狗电路MAX813L对电源电压进行监视,该芯片PFI的门限电压是1.25V,当电源电压为10V时分压结果使PFI引脚的电压等于1.25V,电源电压下降10V以下时V小于1.25V,则PFO就从高电平跳变到低电平,将PFO连接单片机的外部中断P3.2口,当PFO从高电平跳变到低电平时触发中断进行数据保护,数据保护采用的是时钟芯片DS1302,该芯片内部有32个寄存器可以对数据进行读和写以及时钟的设置,所以当掉电时将数据写入DS1302,重新上电后在从该芯片中读取数据,这样就完成了掉电保护功能。如图1所示。
(三)按键电路
按键设计了一个功能键,能够选择时,分,单价,配合上调和下调,对时间,单价调整。设一个“计价”键,当乘客上车后,出租车开始计价,设一个“清零”键,乘客下车后,里程,总价清零,设一个“打印”键,当乘客到站付钱后,打印基本收费信息。共六个按键。各键盘设置的功能如图2所示。
按下对应按键时调用对应的程序执行功能,其中计价按键含一个有乘客指示灯,清零按键还包含一个空车指示灯进行辅助显示。
(四)显示电路
显示采用LED数码管,LED显示效果好,能显示基本的数字信息,且程序简单。LED显示器与单片机的接口一般有静态显示和动态显示两种方式。LED采用静态显示与单片机接口时,共阴极或共阳极点连接在一起接地或高电平。静态显示器接口电路,在位数较多时,电路比较复杂,需要的接口芯片较多,成本也较高。动态LED显示接口由于各个数码管共用同一个段码输出口,分时轮流通电的,从而大大简化了硬件线路,降低了成本。此次设计用动态显示位选用74LS138驱动,138输出低电平,所以选用共阴极数码管。LED显示器中每个发光二极管要通过5毫安-20毫安的电流才能达到正常亮度。
在本设计中,LED的主要功能就是把北京时间和乘客坐出租车的单价、路程和费用显示出来,给乘客带来方便。
参考文献
[1]曹巧媛.单片机原理及应用[M].电子工业出版社,2002.
[2]李朝青.单片机原理与接口技术[M].北京航空航天大学出版社,1999.
关键词:出租车计价器;加密装置;解码器;密码写入装置
在出租车计价器设计中使用加密传感器技术,是为了避免计价作弊等问题,保护消费者的利益。比如,某些不法分子利用空车牌设计的缺陷,在乘客上车之前,汽车已经提前进入了计价状态。在乘客上车之后,司机只需要按倒空车牌,就可以置入预先的计价里程,侵害了消费者的利益。事实上,出租车计价器作弊的方式还有很多,这不仅降低了计价器计价的可靠性,而且也给统一管理工作增加了难度。虽然我国计量部门已经采取了措施,实现了对计价器的统一安装,但是设计本身的缺陷让很多不法分子钻了空子,出租车司机私自更改计价传感器的行为较为普遍。
1 出租车传感器加密算法模型
通过对出租车计价器作弊行为的分析可知,传感器所发送的计算脉冲没有加密是导致出租车计价器计价漏洞的根本原因。加密传感器在出租车计价器中的使用就是要实现对计算脉冲的加密,实现脉冲的加密传输,解码后再传递给计价器,实现了计价器的有效计价。置换表是所有算法模型中最简单的一种,但是在出租车计价器中使用的效果却较好。在置换表中,不同的信号脉冲对应表中的一个偏移量,偏移量所对应的值就构成了加密文件。在加密传感器中,加密和解密工作都需要用到置换表,而且由于其结构较为简单,加密和解密的速度都很快。
在具体设计中,首先要以置换表为依据,将出租车电子传感器中的所有计价脉冲信号都转换成二进制数,这就实现了对计价脉冲信号的加密。然后加密后的脉冲信号将会发送给特定的解码器,当解码器接收到加密脉冲信号后,会对加密文件和原有的密码进行比较,判断传感器所发送信号的有效性。如果解码器判断传感器所发送的脉冲信号有效,那么就会向计价器发送计价脉冲信号,否则不发送。
在这个模型中,只有解码器中的固有密码和加密脉冲相同时,计价器才能够开始计价,否则将无法计价。在统一管理工作中,计量部门可以通过改变加密协议、加密密码等方式,实现对出租车计价的有效管理。
2 出租车计价器加密传感器的设计
2.1 出租车加密传感器的构成
加密装置、解码器以及密码写入装置共同构成了加密传感器。加密器的主要工作是接收计价脉冲信号,当加密器检测到脉冲信号发生变化后,就会将加密信号发送给解码器。解码器的主要作用就在接收到加密文件后,通过比较、判断等环节,实现对加密脉冲信号的判断和解码。同时,解码器也可以接受密码写入装置输入的信号。因为加密装置会接收到来自加密装置和密码写入装置两方面的信息,因此,解码器会有一个识别功能,能够辨别信号的类型。通常情况下,解码器会通过判断所接受第一个数据删除的类型,来判断信号的类型。如果第一组数据不是字符,那么将会和解密器中的密码进行比较,如果相同就会将脉冲信号发送给计价器。如果第一组数据是字符,那么就认为是密码写作装置所发送的信号,解码器会将其保存到E2PROM中作为固定的密码。图1为加密传感器的系统构成,从图中可以看出加密装置、解码器和密码写入装置的基本关系。
图1 加密传感器系统构成
密码写入装置的主要作用就是为了方便计量部门的密码修改工作。首先,识别出密码写入装置中所设定的密码,当检测到按键被按下后,同步的字符就会发送给解码器。最后,由解码器对比和分析后,存储为固定密码。
2.2 加密器设计
加密器是加密传感器中的重要组成部分,加密器的固定密码采用的二进制数,通常是由16个数字组成,但是表现时则采用5位十进制的数字表示。在发送脉冲信号时,1~9发送与其数值相等的脉冲而0则发送10个脉冲。脉冲是有固定格式的,脉冲的高电平时间为15us,低电平时间为10us。在实际工作中,要求发送每一个数字的时间要小于255us。加密器具体的工作流程如图2所示:
2.3 解码器设计
解码器在整个加密传感器中起到了接收密码写入装置和加密器所输入信号的作用,同时还能够判断信号的类型,并在此基础上进行不同的处理。解码器在设计中主要包含了两方面内容:
第一,密码存储。串行E2PROM具有体积小、功耗低以及改写便捷等特点,在出租车加密传感器中使用较为广泛。I2C总线是串行E2PROM总线的一种形式之一,I2C又称之为内部集成线路总线,在数据传输过程中采用了SCL、SDA两种方式,这两种数据传输方式的特点就在于接口较为简单。这种总线模式在目前出租车计价器加密传感器中的应用较为普遍。
第二,密码接收。数据接收功能是解码器的基本功能,在实际工作中,要确保数据读取的准确性,就必须要使用正确的方式接收密码,尤其强调密码接收的时序。传感器发送信号的最小时间是20ms,因此,密码发送的时间是决定解码器接收时间的主要因素。在这种模式下,能够将计价脉冲的发送时间控制在最短时间内。在具体的解码工作中,解码器首先读取E2PROM中保存着的固定密码,然后在寄存器中对数据的类型进行判断。比对后,如果显示密码正确,那么在GP0引脚上就会发送高脉冲,进而实现计价器的计价。但是如果接收到的信号是密码写入装置发送来的,那么解码器就会接收这几个数据,并将这些数据写入到00h-04h中,完成后改程序即终止。
2.4 密码写入装置设计
密码写入装置是由计量部门控制的,具有修改密码的作用,因此,要求发送的时序和加密器一致。为了实现解码器对脉冲信号的有效判断,就必须要在发送新密码之前,先发送一个同步字符。在具体设计中,设置了5个小数字键,方便密码的设置和修改。这5个小数字键分别代表的是个位到万位的数据。
在密码写入装置中,还设置了一个开关,用于设置密码的启动功能,会产生由高到低的跳变。当单片机在检测到变化时,就会开始发送新密码。密码写入装置的工作流程如图3所示:
3 结束语
加密传感器在出租车计价器中的使用,不仅提高了出租车计价的准确性,而且方便了计量部门对出租车计价的管理。将加密传感技术应用于出租车计价系统中,首先就要建立一个加密模型,在这个加密模型的基础上,实现对加密装置、解码器以及密码写入装置的设计。
参考文献
[1]张国印,付小晶,马春光.移动对等传感器网络的基于属性加密的组密钥管理协议[J].高技术通讯,2013(02).
关键词:互联网;出租车;计价器;单片机
doi:10.3969/J.ISSN.1672-7274.2016.02.007 中图分类号:TH714 文献标示码:A 文章编码:1672-7274(2016)02-0027-03
1引言
出租车计价器是司机与乘客交易的一种方式,也是出租车行业的发展标志,还是非常重要的工具,它关系双方的利益。具有良好性能的出租车计价器,对广大出租车司机与乘客来说都是很重要的。因此,出租车计价器的研究十分必要。本文设计的出租车自动计价器,上电后显示最初的起步价,当乘客说出要去的目的地时,显示出路线和预计的总价,同时乘客可以扫描计价器上的二维码,将百度地图下载到自己的手机上;通过按键可以调节起步价,里程计费单价。同时具有运行、暂停、停止等状态,可以显示暂停的时间,具有累加功能,暂停和运行时间在暂停和运行前一次的状态上计时。出租车停止后能够显示行驶的总费用。
2系统框图
计价器的单片机控制方案图如图1所示。它由以下几个部件组成:单片机STC15F2K61S2、总金额及单价显示部件、键盘控制部件、掉电存储控制、里程计算单元、串中显示驱动电路等。利用单片机丰富的IO端口及其控制的灵活性,实现基本的里程计价、价格调节、时钟显示等功能。不但能实现所要求的功能,而且能在很大程度上扩展功能,还可以方便的对系统进行升级。具体参见图1。(1)里程计算、计价单元的设计。里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算送给显示单元的。霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1,000次时,也就是1千米,单片机就控制将金额自动地增加,其计算公式:当前单价×千米数=金额。(2)数据显示单元设计。由于设计要求有单价、路程、总金额显示输出,加上另外扩展了时钟显示(包含时分秒的显示)和路线显示,因此采用1602液晶显示屏。(3)掉电存储单元的设计。掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息,该部分采用AT24C02。AT24C02是某公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通信,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的(4)信息采集与处理部分。主要利用了GPS对车辆的地理位置信息进行采集,并由单片机对数据进行处理(提取、转换等)。(5)信息传输部分由GPRS将经单片机处理后的数据通过GPRS网络、GPRS-Internet网关以及Internet通过Wi-Fi传输给Android终端。Android终端监控部分,通过编写的基于百度地图的软件接收回来的数据存在SQL数据库,再以百度地图的形式呈献给出租车驾驶人员和乘客。(6)票据打印部分。当出租车到达指定地点,司机翻起空车牌,便产生一个信号通知单片机,单片机启动打印服务,将行车的中途等待时间、营运里程、单价、金额、日期及上下车时间等数据打印成出租车专用发票。采用接口插板方式与单片机相连,这一特点使得计价器的票据打印在功能上与主系统一体化,而在检查、维修时又可单独进行。
3主程序模块
在主程序模块中,需要完成对各芯片的初始化,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程如图2所示。当空车信号灯打下时,表示有乘客上车,乘客报地名,系统根据目的地规划路线,乘客选择路线,并启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价千米数。若已超过,则根据里程值、每千米的单价和起价来计算出当前的累计价格,并将结果存于价格寄存器中,然后将当前时间和累计价格送MAX7219驱动的显示电路显示出来。当中途塞车(等待或低速行驶)时,在一定时间内没有检测到传感器的脉冲信号就启动计时器进行计时,当超过规定的等待时间后,计价器就根据等待价格进行当前金额的累加与显示,并在计价器上显示等待时间;当到达目的地的时候,司机把空车灯打上,就停止计价,显示当前所应该付的金额和对应的单价,并进行语音播报及票据打印。等乘客下车后,启动出租车,计价器检测到传感器的脉冲信号,系统自动对显示清零,并重新进行初始化过程,完成1次计价。
4结束语
基于互联网的计价器用高度可靠的存储功能开申报营业税,而用打印机打印出正式发票,同时当乘客报出目的地时,可以通过互联网规划路线,其他附带有电子时钟、语音提醒等功能,构成了现今最为完善、先进的智能计价器。本系统的研制,为运管部门在出租车绕路、乱收费、交税等提供方便。该设计具有性能稳定、功耗低、安全可靠、操作方便等特点,相信很受出租车公司、运管部门、出租车司机及广大乘客的青睐。
参考文献
[1]李广弟,朱月秀,冷祖祁.单片机基础[M].北京:北京航空航天大学出版社,2007
[2]李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993
[3]马忠梅,张凯,马岩.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2003
[4]胡辉.单片机原理及应用设计—21世纪高等院校规划教材[M].北京:水利水电出版社,2005
关键词:出租车计价; 自顶向下; VHDL; FPGA
中图分类号:
TN911.7-34
文献标识码:A
文章编号:1004-373X(2012)05
-0179
-03
Design of taximeter based on FPGA
WANG Cui
(Department of Experimental Teaching, Yancheng Institute of Technology, Yancheng 224051, China)
Abstract:
A taximeter based on Quartus Ⅱ simulation software was designed by using FPGA chip cyclone Ⅱ EP2C8T144C8, which is of top-down design idea. The circuit of each module and the entire system were simulated. The simulation results prove that the taximeter system is of counting time, billing, metering and dynamic display function. To modify the VHDL language source code, it can complete more taximeter extended functions.
Keywords: taximeter; top-down; VHDL; FPGA
收稿日期:2011-09-13
0 引 言
随着电子技术的发展,出租车计价器的设计也从传统的全部由机械元器件组成的机械式设计到半电子式(即用电子线路代替部分机械器件的出租车计价器[1]),再从集成电路式到目前基于FGPA芯片为核心的系统的设计共经历了四个阶段,利用FPGA芯片,用较少的外部硬件和适当的软件相互配合,可以通过软件编程来完成更多的附加功能,设计比较灵活,并且还具有功耗小,体积小、低成本、安全可靠、使用方便[2]等优点。因此,使用FPGA来设计出租车计价系统已受到人们的关注,也能更好地发挥其优点。
本文以FPGA为设计载体,通过VHDL语言编程,采用Quartus Ⅱ 仿真软件,设计了一种能动态显示出租车计时、计费、计程的系统,具有一定的实际应用价值。
1 出租车计价系统的设计要求
1.1 实现计费功能
车起步开始计费,首先显示起步价(本次设计为8.0元),行程在3 km以内,按起步价收费;当行驶超过3 km,1.6元/km,车暂时停车(如遇红绿灯或中途暂时停车),当等待时间超过3 min,按1元/min收费。
1.2 实现显示功能
能动态显示出租车行驶的里程,范围为00~99 km(考虑到出租车就在市区或近郊附近活动),同时显示等待时间,范围为00~59 min,显示总计价值,范围为00~999.9元,计价分辨率为0.1元。
2 出租车计价系统的设计体系
图1为整个系统的顶层框图,根据层次化设计理论[3],将出租车自动计价系统自顶向下可分为分频模块、控制模块、计量模块、译码和动态扫描显示模块。
(1) 分频模块。
通过分频[4]产生不同频率的脉冲信号用来实现系统的计费,本次设计中通过对240 Hz的输入脉冲进行15次,24次和240次分频,得到16 Hz,10 Hz和1 Hz的三种频率,分别用于1.6元,1元和0.1元的计费。
(2) 计量控制模块。
计量控制模块是出租车自动计费器系统的主体部分[5],该模块主要完成出租车的计时、计价、计程功能。计时器的量程为59 min,满量程自动归零。计程器的量程为99 km,满量程自动归零。行程在3 km内,且等待累计时间在3 min内,起步价费为8元;3 km外以1.6元/km计费,等待累计时间超过3 min按1元/min计费。
(3) 译码显示模块。
该模块经过8选1数据选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态显示输出。其中计费数据最大显示为999.9元;计时数据最大显示为59 min;计程数据最大显示为99 km。
3 出租车计价系统的实现
系统的顶层原理图如图2所示,出租车计价器系统由主体FPGA电路taxi模块和动态扫描显示部分(8选1选择器mux8_1模块、模8计数器mo8模块、七段数码显示译码器di_LED模块、生成动态扫描显示片选信号的3-8译码器模块74138)[6]组成。
3.1 系统各功能模块
3.1.1 taxi模块
Taxi模块是系统中十分重要的模块,模块设计中,系统的输入信号为clk_240(240 Hz)、计价开始信号start、等待信号stop、里程脉冲信号fin。系统的输出信号有总费用数cha3(百),cha2(拾),cha1(元),cha0(角),行驶距离信号为km1,km0,等待时间信号为m1,m0。
Taxi模块的控制过程为:start作为计费开始开关,当start为高电平时,系统开始跟据输入情况计数,有乘客上车并开始行驶时,fin脉冲到来,进行行驶里程计数,这时的stop应为0,中途若停车等待,就需把stop置为1,同时fin为0,进行等待计费,当乘客下车时,直接将start置为0,系统停止工作。taxi模块又可分为分频(fenpin)、计量(jiliang)、kongzhi(控制)和计费(jifei)四个子模块[3,7],taxi模块的内部结构如图3所示。
图3 taxi模块的内部结构图
Fenpin模块是将输入端clk_240(240 Hz)的时钟信号进行分频,分别得到f_16(16 Hz),f_10(10 Hz),f_1(1 Hz)的信号,用于计量时的1.6元,1元,0.1元。
Jiliang模块用来计时和计程,fin为汽车的里程脉冲信号,当 fin为高电平时,以记录的f_1的脉冲个数作为行驶的公里里程数,start是汽车计量开始信号,stop为等待信号。f_1是计量驱动信号,当f_1的脉冲到来,如果fin=1,记录f_1的个数(即行驶公里数),当行驶超过3 km,ent0输出为1。当stop为高电平时,记录f_1的脉冲个数,60个脉冲为1 min,当超过3 min时,ent1输出为1。仿真波形如图4所示。
Kongzhi模块主要根据jiliang模块的en1和en0的不同输出信号选择不同的输出频率供jifei模块计费,en1=1时f=10 Hz,en0=1时f=16 Hz。
Jifei模块实际就是一个四位十进制加法器,仿真图形如图5所示,在taxi模块中,它根据不同的输入脉冲频率对脉冲个数进行计数。jiliang模块每计一次数,jifei模块就实现16次或10次脉冲计数,即实现超时时的1元/min,超里程时的1.6元/km的收费。
对整个taxi模块进行仿真,结果如图6所示,由图中可知,当stop为高电平时,汽车行驶了km1km0=35 km,计费cha3cha2cha1cha0为0592,即59.2元,与8+(35-3)×1.6=59.2元一致,图中当等待超过3 min时,价格按1元/min计费,仿真结果正确。
3.1.2 动态扫描显示部分
此模块包含mo8计数器、mux8_1(8选1选择器)、di_led七段数码显示译码器3个子模块。
mo8计数器:输入信号clk为系统输入的240 Hz基准时钟,输出a为模8的二进制码[8]。
mux8_1模块是根据输入信号c[2..0]的地址码000至111分别对应了cha3,cha2,ch1,ch0,km1,km0,min1,min0八个四位BCD码,dp为小数点指示信号,在计费的第二位数字上带有小数点,仿真波形如图7所示。
di_led数码显示译码模块,将输入信号d[3..0]转换为q[6..0],即g,f,e,d,c,b,a七段译码输出(高电平有效)[9],3F对应为0,仿真波形图如图8所示。
由于采用动态扫描,主要是根据人视觉暂留现象,一般影像在人眼中保留0.1~0.5 s左右,74LS138的输出码依次选通8个数码管。只要频率够高,依次点亮8个数码管时,给人视觉是同时点亮[10]。
3.2 总体电路的仿真结果
通过对整个设计系统的仿真分析,结果如图9所示,输出依次是3F 7D 27 .5B 66 3F 3F 3F, 其中总价格为3F7D27.5B(即67.2元), 里程数为663F(即40 km),等待时间为3F3F(即0 min),8+(40-3)×1.6=67.2元,仿真结果正确。
4 结 语
通过仿真验证表明,本文所设计的出租车计价系统能动态显示行驶的里程、等待时间和计费数目等,符合预定的设计功能要求。但设计中对出租车里程计数精度不高,若要提高精度,需根据设计要求设置取样里程的脉冲,在计量(jiliang)模块的输入频率中要做相应的修改,当出租车计费标准发生变化时,也可以通过修改VHDL源程序达到要求,另外,还可以扩展语音播报或票据打印等附加功能,此系统的设计体现了FPGA设计的自顶向下的设计思想,基于FPGA的设计灵活性高、功耗低、集成度高,具有广阔的市场前景。
参 考 文 献
[1]陈伟宏.基于Proteus的多功能出租车计价器设计[J].重庆工学院学报:自然科学版,2009,23(6):83-86.
[2]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2002.
[3]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社,2002.
[4]任爱锋,初秀琴.基于FPGA的嵌入式系统设计[M].西安:西安电子科技大学出版社,2004.
[5]王诚,吴继华.Altera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2005.
[6]阎石.数字电子技术基础[M].4版.北京:高等教育出版社,1998.
[7]雷伏容.VHDL电路设计[M].北京:清华大学出版社,2006.
[8]王振红.VHDL数字电路设计与应用实践教程[M].北京:机械工业出版社,2003.
[9]刘昌华.数字逻辑EDA设计与实践[M].北京:国防工业出版社,2006.
[10]蔡明生.电子设计[M].北京:高等教育出版社,2004.
【关键词】单片机;计费系统;霍尔传感器
一、引言
汽车计价器是出租车行业发展的重要标志。它关系着交易双方的利益。具有良好性能的计价器无论是对广大汽车司机朋友还是乘客来说都是很必要的。随着汽车行业的日渐发展,汽车计价器的功能已从刚开始的只显示路程发展到了能够自主计费,以及打印发票和语音提示、按时间自主变动单价等功能。现在各大城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,汽车行业也将加速发展,计价器的普及也是必然的,所以汽车计价器的市场还是十分有潜力的。
二、硬件设计方案
采用传统的模拟电路和数字电路设计的计价器,其整体电路规模较大,故障率高,难调试,功能不易实现。本次设计我们利用单片机AT89C2051芯片作为设计的核心,利用霍尔传感器测距,实现对汽车计价统计,采用AT24C02 实现在系统掉电的时候保存单价和系统时间等信息,显示采用6位LED数码管,分屏显示单价、路程、总金额以及时间。本系统具有功能强大、电路简单、便于维护等特点。总体设计框图如图2.1所示。
1.单片机
AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,只有20引脚。片内含有2K字节可反复擦写的只读程序存储器和128字节的随机数据存储器,兼容标准MCS-51指令系统,内置通用8位中央处理器和Flash存储单元。
该系统中AT89C2051作为总控芯片,主要具有对测量结果进行运算处理、控制显示及保证系统正常工作等功能。
2.里程计算设计
本次设计里程计算采用霍尔传感器A44E,里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图2.2所示。
我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1 米),霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,当计数达到1000 次时,也就是1公里,单片机就控制将金额自动的加增加,其计算公式:
当前单价×公里数=金额。
图2.2 传感器测距示意图
3.显示单元设计
本设计具有单价、路程、金额显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用LCD液晶屏显示,在距离屏幕较远处无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6位LED数码管显示方式。
数据的分屏的显示是通过按键S1来实现切换的,在汽车不走的时候,按下S1,可以实现数据的分屏显示,车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1 切换到里程和单价显示屏,供客户查询。
4.AT24C02掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02是ATMEL 公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
其电路如图2.3所示。
图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内。当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。
5.按键设计
(1)S1按键的功能
在汽车不走的时候,按下S1,可以实现数据的分屏显示,车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1 切换到里程和单价显示屏,供客户查询。
(2)S2按键的功能
在按下S1按键之后,若接着按下S2键则进行单价调整(默认为调整白天单价),当接着按下S1时,则进行晚上单价调,再次按下S1可进行中途等待单价调整。当单价调整结束后,可以通过按下S2按键进行时间调整,默认为调整时,接着按下S1可进行调整分,分调整后再接下S1可进行秒调整。当时调整完成后,若接着按下S2则又可进行单价调整。
(3)S3按键的功能
在显示金额及单价时,若按下S3键则显示路程和单价,再次按下S3则可返回显示金额及单价。
(4)S4按键的功能
在按下S1按键之后,若接着按下S4按键,则进行设定默认晚上单价,并启动计价器,若没有按下S4则可设定默认单价(白天),并启动计价器。当设定默认晚上单价结束后,再次接下S4按键则可设定默认中途等待单价,并启动计价器。当设定默认中途等待单价后,若还按一次S4,则返回系统时间的显示。
三、软件设计
本系统的软件设计主要可分为主程序模块、定时计数中断程序、里程计数中断服务程序、中途等待中断服务程序、显示子程序服务程序、键盘服务程序六大模块。
主程序模块完成对各接口芯片的初始化、汽车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。
另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。