出租车多功能计费器的设计
1.2 税控模块
该模块由税部门专门提供,税控计费器需要此模块,非税控计费器则不需要此模块。主控模块与税控模块实行串行通信。计费器正常工作时,主控模块按要求将各种数据串行传送到税控模块,税控模块将收到的数据存储或显示。
1.3 电源模块
该模块为一开关电源,将输入的12V直流电源变为稳定的5V电源。由于12V电源由出租车上的电瓶提供,其电压有一定的离散性,当电瓶质量不好时12V电源较低。而开关电源的适用范围较广,且驱动能力较强,使用开关电源可有效防止因输入电压过低而产生的各种故障现象。设计电源模块应注意电源的抗干扰能力。
1.4 按键显示模块
按键显示模块如图3所示,共需4片4511、1片4028、1片2003、20个数码管及一些发光二极管(作为指示灯,如计程、计时收费指示灯)。计费器提供6个按键功能,但税控计费器不需要6个按键,只需要3个按键,因而无需4028译码器,利用CPU的三条I/O线即可实现三个按键的功能。
1.5 防作弊及脉冲输入模块
防作弊及脉冲输入模块如图4所示。为了提高计费器的防作弊功能,采用了两片PIC508,传感器中装一片PIC508,计费器中装一片PIC508。其工作原理如下:每次计费器复位后,计费器中的PIC508送一随机数(1个字节)作为密码给传感器中的PIC508,车辆每产生一个脉冲,传感器中的PIC508均要将此密码送回到计费器的PIC508。只有密码正确,计费器中的PCI508才发正确信息给CPU,表示输入了一脉冲,否则发错误信息给CPU。当CPU收到三次错误信息(次数可任意设置)时,CPU报警表示有作弊现象。由于不同时刻,即使同一个计费器的密码也不相同且是随机,因此采用该方法能效地防止司机作弊。
2 软件设计应注意的问题
由于计数器的选项多达64个,功能齐全,能适应不同地区的需要,软件编程及调试比较复杂,需要特别小心。为了使计费器稳定、可靠地工作,软件设计主要考虑了以下几个方面:
(1)为了防止计费器死机,软件编程时采用了指令冗余技术、软件陷阱技术以及软件看门狗技术。请参见参考文献[2]。javascript:window.open(this.src);" style="cursor:pointer;"/>
(2)为了防止程序“乱飞”而非法修改计费器所设置好的各种参数,从软件的角度对计费器的各种参数进行了多重保护。必须通过“合法”的途径才能修改参数,而程序“乱飞”也不能修改计费器所设置好的参数。
(3)司机卡、采集卡、收费卡、税控卡共用一个IC卡接口,税控模块优先访问插入的IC卡并进行判断,直接与税控初始化卡税务信息卡和税务稽查卡交换信息。如果不是税控卡,则将控制权交给主控模块,主控模块要注意区分卡的类型,按照IC卡的有关控制命令正确编程。
(4)对DS1244Y时钟操作时,串行输入数据的第5字节的第5位(RST)须置0,以便DS1244Y能接收复位信号。每次上电后,由软件对其复位。
(5)任何时候均要注意保存好计费器所处的状态及各种数据,复位后计费器能够回到原来的状态。如计费器处于载客状态,复位后计费器仍然回到载客状态,且车资、收费里程、收费时间及单价同复位前一样。
(6)计费器与PC机串行通信时,PC机最好选用VB6.0语言。VB6.0提供了串行通讯MSComm控件来为应用程序提供串行通信,其良好的用户界面、简单方便的串行通信和实用性强的优点,无须借用其它语言就可以开发出优秀的通信软件。
目前,该计费器在使用过程中用户反应良好,返修率很低。另外,个别地方要求计费器能存储2000条客次记录,而每条客次记录约点50byte,这样选用DS-1244Y显示不够。此时,可改用DS1248,该芯片的容量为128Kbyte,其它与DS1244Y完全一样。