DZ224多功能出租车计价器
DZ224多功能出租车计价器,dz224,多功能,出租车,计价器
1第一章 前言随着我国国民经济的告诉发展,出租车已成为城市公共交通的重要组成部分。出租车计价器这一专用计算器具必须经当地技监局所属的管理部门坚定认可,且出租车安装计价器整车鉴定合格后才能运营。针对电子式出租车计价器,建设部于 1997 年 12 月 1 日开始贯彻新的行业标准“CJ5024-1997”,要求“本标准实施之日起,电子式出租车计价器的设计,制造,和检验必须符合本标准的规定” 。根据新标准选择性能价格比高的计价器,并与有关出租车管理部门一起确定选用哪个品牌则是计量部门的职责。如何选用计价器,主要应考虑两个方面:第一是性能和质量是否符合新标准CJ5024-1997,性能还包括本地区行政管理部门随时间,区域和车型在运价上的调整,如里程费,等候费,空贴费,夜间补偿费等作变更时,改变计价器运行程序的繁简程度。同时要考虑计价器自身防作弊的性能。第二要关注该品牌计价器是否具备升级换代或者是扩展功能。虽然现在个别大城市有全部更新出租车计价器一步到位的能力,但绝大部分城市还不具备这种条件,须按步骤先安装计价器,再装语音提示器,然后才考虑票据打印或者 IC 卡管理及收费等问题,这样在选用计价器时就要想到它在未来发展中的配套能力,否则将延误出租车科学化管理的进程。计价器在运行中需解决的问题体现在以下四个方面:(1)计价器在工作中,对出租车所行驶里程的计价是分时进行的。当时间处于白天段时应按白天单价计价;当时间处于夜间段时应按夜间单价计价。(2) 当出租车处于等人状态时,应记录等候时间,根据等候时间对车资加价。(3) 当出租车处于空车状态时,显示屏显示实时时钟。(4)计价器运行中常用的数据如:昼夜单价,起租里程,加价距离等作为初始设置数据在掉电情况下不应丢失。在出租车计价器运行中,我们发现部分计价器存在乱报单价问题。当处于白天时间段时,计价器会报出夜间单价,并按夜间单价计价,反之则相同。为防止不法分子的作弊行为,需解决这一问题。本文设计了一种具有计程,计费,显示,打印发票以及防作弊等功能的计价器,能够很好地满足市场对出租车计价器的要求。1摘要本文介绍了一种以 AT89C51 单片机为核心的多功能出租车计价器。该计价器具有单程,往返,白天,夜间,等待等多种模式的计价方式。有显示功能,发票打印功能,防作弊措施。文中在整体方案选择上对三个方案进行了对比,并阐述了硬件配置及性能特点,分为计量模块、显示模块、打印模块、防作弊模块;软件设计采用汇编语言编写,系统程序固化在单片机内部的 EEPROM 存储器中, 程序包括主程序和若干子程序。主程序的功能是开机后负责管理和调用子程序, 子程序共有 4 个, 分别是键盘扫描子程序、计量子程序、读日历时钟子程序及显示子程序。在对各芯片在出租车计价器中所起的作用进行分析基础上对总体设计方案进行了分析。关键词:单片机,多功能,出租车计价器2Title TaximeterAbstractIn this paper, a taximeter based on a processor AT89C51 is reported. This taximeter have many functions such as single, back and forth, wait, day and night cost. And it has display function, type invoice function, step for avoiding practice fraud. In this paper, a full description of hardware disposal, characterize, plan of software is described in detail. In this paper,three programs are enumerated,hardware include metric module,display module,print module,avoiding practice fraud module;plan of software adopt assembler,every procedure solidifys in EEPROM in processor AT89C51.it includes main procedure and several filial procedures,the function of main procedure is taking charge of managing and transferring filial procedures that includes keyboard scan,metric peocedure,calendar clock procedure and display procedure.Based on analyzing function of every processor in taximeter total plan is analysed.Keywords:AT89C51,multifunctional,Taximeter2第二章 总体方案选择2.1 方案一:基于 CPLDFPGA 的出租车计费器2.1.1 系统组成基于 CPLDFPGA 的出租车计费器的组成如图 2-1 所示。各部分主要功能如下:(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置 1”对车型做出选择,以实现对不同车轮直径的车进行调整。(2)B 计数器对百米脉冲进行累加,并输出实际公里数的 BCD 码给译码动态扫描模块。每计满 500 送出一个脉冲给 C 计数器。“设置 2”实现起步公里数预制。(3)C 计数器实现步长可变(即单价可调)的累加计数,每 500 米计费一次。“设置 3”用来完成超价加费、起步价预制等。(4)译码动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位 LED 数码管显示(三位整数,1 位小数)。2.2.2 功能模块设计出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整个系统采用模块化设计,首先用 VHDL 编写功能模块,然后用顶层原理图将各功能模块连接起来。各模块的软件部分都是用 C 语言完成。2.2.3 系统综合图 2-1 基于 CPLD/FPGA 的出租车计费器组成框图3(1) 模块联调各个功能子模块设计完成后,利用 MAXPLUS的图形编辑器(Graphic Editor)将各功能子模块(sym)进行连接。由于 MILE 模块中存在毛刺,故不能直接与后级相连,通过对输出脉冲信号加门电路延时,再与原始信号相“与”的方法即可消除毛刺。芯片管脚定义可以直接用编辑pin 文件或在 FloorPlan Editor 下进行。完成管脚定义后选择器件(EPM7128SIC8415),编译后生成sof、pof 及报告文件rpt。查看报告文件可得到器件管脚的利用情况及器件内部资源的使用情况。通过更换适当的器件使其资源配置达到最优。选择器件的一般原则是系统所使用的资源不要超过器件资源的 80,若超过 90,系统功耗将增大,工作不稳定。从本次设计器件部分报告中得知:输入、输出管脚各用 16 只,芯片资源利用率仅为51,具有较大的扩展空间。(2) 硬件设计说明本次设计的出租车计费器计数脉冲 CP 来自车轮转速传感器(干簧管),脉冲经器件内部整形后送计数器;动态扫描脉冲由外围电路给出;系统使用整流、滤波、降压后的出租车电源供电;由于 CPLDFPGA 的驱动能力有限,为了增强数码管的亮度,提高系统的可靠性,设计中在 LED 驱动和位驱动上分别增加了电流驱动器件ULN2803 和 2SCl015。现场实验表明:该计费器实现了按预制参数自动计费(最大计费金额为 9999 元)、自动计程(最大计程公里数为 9999 公里)等功能;能够实现起步价、每公里收费、车型及加费里程的参数预制(如:起步价 500 元;3 公里后,120 元公里;计费超过 1500 元,每公里加收 50的车费等),且预置参数可调范围大。由于采用了 CPLDFPGA 大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。另外,根据实际需要,系统可方便地增加以下功能:通过芯片内部编程增加时钟功能(器件内部资源足够),既可为司机和乘客提供方便,又能为夜间行车自动调整收费标准提供参考;用 CPLDFPGA 的输出引线控制语音芯片,可向乘客发出问候语、提醒乘客告诉司机所要到达的地点、报出应收缴的费用等。 2.2 方案二:基于MC68HC705 单片机的多功能出租车计价器2.2.1硬件配置及性能特点4计价器的系统硬件框图如图2-2 所示。系统选用MO TOROLA 公司的一种低能耗高性能的8位单片机MC68HC705C8 作为中央CPU 单元。该单片机片内带有8 k 字节EROM 及304 字节RAM , 它采用统一编址方式, 即所有I/O 寄存器、数据存储器、程序存储器都处于同一地址空间, 因而其指令系统简单, 便于编程; I/O 口可根据需要设定为输入或输出, 因而是真正的双向I/O 并行口; 其特有的SP I (串行外围接口) 功能可用来扩展各种I/O; 此外, 其独有的输入捕捉功能端记录外部发生事件非常方便。(1) 计量功能传感器输出信号接在单片机的TCA P 端(输入捕捉端) , 输入捕捉寄存器( ICR ) 记录TCA P 端的脉冲次数, 再通过程序折合成行车里程及车资。由于传感器采用机械接触方式控制电路的通断以及光电耦合器件, 因而可避免干扰信号的影响。(2) 显示功能采用14 个L ED 数码管进行显示。由于使用一般的L ED 驱动器将造成布线困难及占用太多电路板体积, 本设计选用MO TOROLA 公司的新型L ED 驱动器MC14489。该驱动器可直接驱动5 位L ED, 且其与单片机的连接为串行通信。该设计使用了3 片MC14489, 通过级联而成。其中第一片的同步时钟端CL K、数据输入端D I、允许端EN 分别接单片机的SCK、MO S I、PB6, 第二、三片的CL K、EN 端分别接单片机的SCK、PB6, 第一片的串行数据输出端DO 接第二片的D I, 第二片的DO 接第三片的DI,MC14489 的并行输出端a h 接L ED 的a g、dp 以输出显示数据,BAN K1BAN K5 接各位L ED 的共阴极端,以输出位选信号。时间显示数据来自日历时钟芯片M SM 5832, 它通过MO TOROLA 公司的串入并出芯片MC74HC595 与单片机连接。M SM 5832的HOLD、WR、RD、CS、A 3 A 0 分别与MC74HC595 的8 位并行输出端Q 0 Q 7 相连,MC74HC595 的移位脉冲端SCL K、并行接收时钟端RCL K、串行输入端S IN 分别接单片机的SCK、PB5、MO S I,M SM 5832 的数据输出口D0D3 接CPU 的PA 4 PA 7。(3) 打印功能打印功能主要打印发票, 内容包括车牌号、单价、起租价、过桥次数、行车里程、车资及日期等数据。打印机选用EPSON 公司的MODE2150 型打印机, 该打印机有7 根控制线, 单向数据传送线DB0DB3 接单片机的PC0 PC3, 数据选通信号STB 接PB0,忙线BU SY 接PB1, 应答信号ACK 接PD7。当单片机通过PB0 给出打印命令后, 打印机便根据PC0 PC3 给出的信息打印出相应的数据。(4) 防作弊功能为防止不法分子的作弊行为, 需将一些初始值, 如昼夜单价、起租价、起租里程、待时时间等参数固定。为此, 本设计选用A TM EL 公司的E2PROM 93C46 来固化这些参数。93C46 可提供128 字节的存储容量, 且能重复使用1 万次, 存储在上面5的数据可设置保密位, 因而能起到防作弊功能。93C46 的CS、SK、D I、DO 分别接单片机PA 0 PA 3。此外, 还通过单片机的PB2、PB3、PB4 外接按钮开关, 分别作为起 停按钮、复位按钮与过桥按钮。2.2.2系统软件设计该系统软件采用汇编语言编写, 系统程序固化在单片机内部的EEPROM 存储器中, 程序包括主程序和若干子程序。主程序的功能是开机后负责管理和调用子程序, 主程序框图如图2-3所示。子程序共有4 个, 分别是键盘扫描子程序、计量子程序、读日历时钟子程序及显示子程序。键盘扫描子程序判断出租车营运状态, 是否需过桥加价及是否复位; 读日历时钟子程序为系统提供需要显示的时间数据, 并根据时间数据实现昼夜单价及起租价自动转换; 计量子程序根据传感器输入脉冲次数, 将其转换为行车里程及车资; 显示子程序根据当前的时间、车资、里程及单价进行实时显示。此出租车计价器具有计量功能、显示功能、打印功能、防作弊等多种功能。经运行证明: 整机性能稳定、功耗小于3. 8W、计程与计时误差均在+ 0. 5% 1. 0% 之间, 并且系统体积小、成本低, 能够很好地满足市场对出租车计价器的要求。图 2-2 硬件框图62.3方案三:基于AT89C51单片机的多功能出租车计价器2.3.1硬件设计计价器的系统硬件框图如图2-4所示。系统选用高性能的8位单片机AT89C51 作为中央CPU 单元。该单片机片内带有4 KB的快速擦写存储器及128字节RAM , 软件上与MCS-51系列完全兼容,编制的汇编语言程序可运行与这良种系列的单片机。A T 89 C 51DS1302打印机TPP-40A AT93C46开关按钮加密传感器MAX7219LED(1) 计量功能传感器输出信号接在单片机的P3.5端(定时器1:外部事件计数输入) , 记录脉冲次数, 再通过程序折合成行车里程及车资。由于传感器采用加密形式, 因而可避免干扰信号的影响。图 2-3 主程序框图图 2-4 基于 89C51 的出租车计价器系统框图7(2) 显示功能计价器可显示时间、单价、起租价、总价及行车里程。采用16个LED 数码管进行显示。由于使用一般的L ED 驱动器将造成布线困难及占用太多电路板体积, 本设计选用美国MAXIM公司的串行接口8位L ED 驱动器MAX7219。 且其与单片机的连接为串行通信。该设计使用了2片MAX7219, 通过级联而成,不另外占用单片机口线。(3) 打印功能打印功能主要打印发票, 内容包括车牌号、单价、起租价、行车里程、车资及日期等数据。打印机选用TPP-40A 型打印机。(4) 防作弊功能为防止不法分子的作弊行为, 需将一些初始值, 如昼夜单价、起租价、起租里程、待时时间等参数固定。为此, 本设计选用A TM EL 公司的E2PROM 93C46 来固化这些参数。93C46 可提供128 字节的存储容量, 且能重复使用1 万次, 存储在上面的数据可设置保密位, 因而能起到防作弊功能。2.3.2系统软件设计该系统软件采用汇编语言编写, 系统程序固化在单片机内部的EROM 存储器中, 程序包括主程序和若干子程序。主程序的功能是开机后负责管理和调用子程序。子程序共有4 个, 分别是计量子程序、读日历时钟子程序,打印子程序及显示子程序。读日历时钟子程序为系统提供需要显示的时间数据; 计量子程序根据传感器输入脉冲次数, 将其转换为行车里程及车资; 显示子程序根据当前的时间、车资、里程及单价进行实时显示。此出租车计价器具有计量功能、显示功能、打印功能、防作弊等多种功能。准确测量汽车移动的距离, 误差 1 %。累计测量低速及等待时间,误差 1 %。自动判别速度高低,在低于设定速度时,能累计低速时间,测量误差 0. 5km/ h。可准确指示当前时刻。它设计美观大方、安全可靠、功能齐全、操作简便、显示数字、尺寸大、观察清晰、易于安装,且留有扩展接口,以便增加更多的新功能,调整参数齐全,可适于不同地区不同车型的和种出租车使用,是出租车公司和出租车司机的最佳选择。2.4 结束语由此可见,方案二与方案三运用了单片机控制系统,将汇编程序储存在单片机内,既简化了程序又简化了硬件组成,而方案一采用了 C 语言编程,设计方案复杂了许多;方案三相对于方案二的优点在于成本低,并且加密传感器与 AT93C46 的应用等于双重防作弊。软件方面 AT89C51 系列的指令比 MC68HC705 单片机更为通用。8目录第一章 前言 .1第二章 总体方案选择 .22.1 方案一:基于 CPLDFPGA 的出租车计费器 .22.1.1 系统组成 .22.1.2 功能模块设计 .22.1.3 系统综合 .22.2 方案二: 基于 MC68HC705 单片机的多功能出租车计价器 .32.2.1 硬件配置及性能特点 .32.2.2 系统软件设计 .52.3 方案三:基于 AT89C51 单片机的多功能出租车计价器 .62.3.1 硬件设计 .62.3.2 系统软件设计 .72.4 结束语 .7第三章 硬件设计 .83.1 计量功能 .83.1.1 单片机 AT89C51 的应用 .83.1.2 DS1302 在出租车计价器中的应用 .123.2 显示部分 .153.2.1 MAX7219 工作原理 .163.2.2 MAX7219 应用电路 .183.3 采用 AT93C46 串行 EEPROM 的防作弊方法 .203.3.1 引脚功能 .213.3.2 指令及时序 .213.3.3 AT93C46 与 AT89C51 的连接 .223.4 打印功能 .223.4.1 TPP-40A 主要性能、接口要求及时序 .233.4.2 字符代码及打印命令 .233.4.3. TPP-40A 与 AT89C51 单片机接口设计 .253.5 出租车计价器加密传感器的设计 .253.5.1 通出租车计价传感器漏洞分析 .253.5.2 建立密码传感器加密算法模型 .263.5.3 加密传感器系统设计 .373.6 系统综合: .313.7 面板设计: .32第四章 软件设计 .344.1 主程序流程图 .344.2 计量子程序 .354.3 显示子程序 .364.4 键盘扫描子程序 .374.5 读日历时钟子程序 .384.6 程序清单 .39致谢 .47参考文 献 .48 目录第一章 前言.1第二章 总体方案选择.22.1 方案一:基于 CPLD/EPGA 的出租车计费器22.1.1 系统组成.22.1.2 功能模块设计.22.1.3 系统综合.22.2 方案二:基于 MC68HC705 单片机的多功能出租车计价器32.2.1 硬件配置及性能特点.32.2.2 系统软件设计.52.3 方案三:基于 AT89C51 单片机的多功能出租车计价器62.3.1 硬件设计.62.3.2 系统软件设计.72.4 结束语.7第三章 硬件设计.83.1 计量功能.83.1.1 单片机 AT89C51 的应用.83.1.2 DS1302 在出租车计价器中的应用.12 3.2 显示部分.153.2.1 MAX7219 工作原理.163.2.2 MAX7219 应用电路.183.3 采用 AT93C46 串行 EEPROM 的防作弊方法203.3.1 引脚功能213.3.2 指令及时序213.3.3 AT93C46 与 AT89C51 的连接.223.4 打印功能.223.4.1 TP-40A 主要性能、接口要求及时序.233.4.2 字符代码及打印命令233.4.3 TP-40A 与 AT89C51 单片机接口设计253.5 出租车计价器加密传感器的设计.253.5.1 通用出租车计价传感器漏洞分析253.5.2 建立密码传感器加密算法模型263.5.3 加密传感器系统设计273.6 系统综合.313.7 面板设计.32第四章 软件设计344.1 主程序流程.344.2 计量子程序流程.35 4.3 显示子程序流程.364.4 键盘扫描子程序流程.374.5 读日历时钟子程序流程.384.6 程序清单.39致谢及参考文献.478第三章 硬件设计3.1 计量功能3.1.1 单片机AT89C51的应用外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。出租车计价器有一个传感器输入信号,传感器接在出租车的软轴上,信号以脉冲方式输出,当车轮每转动一周,便发出10个脉冲给传感器,传感器输出信号接在单片机的T1(定时器1外部时间计数输入端),由寄存器记录脉冲次数,再通过程序折合成行车里程及车资。有关程序与数据都存入了EEPROM中。本设计采用单片机A T 89C51 ,它是由美国生产的至今为止世界上最新型的高性能八位单片机。1特点AT89C51与MCS251 系列的单片机在指令系统和引脚上完全兼容;片内有4k 字节在线可重复编程快擦写程序存储器;全静态工作, 工作范围: 0Hz 24MHz;三级程序存储器加密;1288 位内部RAM ;32 位双向输入输出线;两个十六位定时器/ 计数器;五个中断源, 两级中断优先级;一个全双工的异步串行口;间歇和掉电工作方式。2功能描述AT89C51是一种低损耗、高性能、CMOS八位微处理器, 片内有4k 字节的在线可重复编程快擦快写程度存储器, 能重复写入 擦除解1000 次, 数据保存时间为十年。它与MCA 251系列单片机在指令系统和引脚上完全兼容, 不仅可完全代替MCS251 系列单片机, 而且能使系统具有许多MCS251 系列产品没有的功能。A T 89C51 可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性, 降低了系统成本。只要程序长度小于4k, 四个I/O 口全部提供给用户。可用5V电压编程, 而且擦写时间仅需10 毫秒, 仅为8751/ 87C51 的擦除时间的百分之一, 与8751/ 87C51 的12V 电压擦写相比, 不易损坏器件, 没有两种电源的要求, 改写时不拔下芯片, 适合许多嵌入式控制领域。工作电压范围宽2. 7V 6V , 全静态工作, 工作频率宽, 在0Hz 24MHz 内, 比8751/87C51 等51 系列的6MHz 12MHz 更具有灵活性, 系统能快能慢。A T 89C51 芯片提供三级程序存储器加密, 提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。另外, A T 89C51 还具有MCS251 系列单9片机的所有优点。1288 位内部RAM , 32 位双向输入输出线, 两个十六位定时/ 计时器,5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。3管脚功能A T 89C51 单片机为40 引脚芯片如图3-1所示。1) I/O 口线: P0、P1、P2、P3 共四个八位口。P0 口是三态双向口, 通称数据总线口, 因为只有该口能直接用于对外部存储器的读/写操作。P0 口也用以输出外部存储器的低8 位地址。由于是分时输出, 故应在外部加锁存器将此地址数据锁存, 地址锁存信号用AL E。P1 口是专门供用户使用的I/O 口, 是准双向口。P2 口是从系统扩展时作高8 位地址线用。不扩展外部存储器时, P 口也可以作为用户I/O 口线使用, P2 口也是准双向口。P3 口是双功能口, 该口的每一位均可独立地定义为第一I/O 功能或第二I/O 功能。作为第一功能使用时操作用同P1 口。P3口的第二功能如表1。传感器接收的信号以脉冲形式输出,当车轮每转动一周便发出一个脉冲给传感器,传感器输出信号接在单片机的T1端记录脉冲次数,再通过程序折合成汽车里程和车资。 2) 控制口线: PSEN (片外取控制)、AL E( 地址锁存控制)、EA (片外储器选择)、RE2SET (复位控制) ; 103) 电源及时钟: CCC、V SS; XTAL 1, XTAL 24操作方法1) 程序存储器加密A T 89C51 芯片程序存储器有三级硬件加密, 能够有效地保证系统不被仿制和软件不被复制, 加密等级设置如表2。U(unprogrammed) P (programmed)2) 工作模式A T 89C51 有间歇和掉电两种工作模式。间歇模式是由软件来设置的, 当外围器件仍然处于工作状态时, CPU 可根据工作情况适时地进入睡眠状态, 内部RAM 和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。图 3-11112图 3-213掉电模式是VCC电压低于电源下限, 振荡器停振, CPU 停止执行指令。该芯片内RAM和特殊功能寄存器值保持不变, 直到掉电模式被终止。只有V CC电压恢复到正常工作范围而且在振荡器稳定振荡后, 通过硬件复位掉电模式可被终止。3) 典型应用A T 89C51 固化与擦除操作典型接法如图3-2 所示。3.1.2 DS1302在出租车计价器中的应用1DS1302 简介DS1302原理框图见图3-3所示:DS1302中包含一个实时时钟 , 日历和31 字节的静态RAM,它和单片机通信经 由一个简单的串行接口 - 实时时钟 , 日历提供秒、分、时、日、周、月、年信息,月末日期自动调整,包括闰年的修正 时钟可工作在24小时格式或12小时(94 , 24)格式,单片机与DS1302 接口使用同步串行通信,仅需三根线连接:(1)RST(复位)(2)I/O(串行数据)(3)SCLK(串行时钟)。数据传送从单片机到实时时钟RAM或实时时钟RAM到单片机,可以每次1 字节或每次31 字节。 它可以工作在很低的耗电状态以保存时钟信息和数据,功耗小 于1 微瓦。DS1302 具有一个可编程的涓流充电器,主电源和备份电源的双电源引脚,7个附加字节的暂存寄存器,包括 移位寄存器、控制逻辑、振荡器、实时时钟和RAM。DS1302 图3 DS1302结构框图图 3-3 DS1302 结构框图14图4 DS1302引脚图引脚图见图3-4所示,引脚描述如下: GND 电源地;VCC1 在单电源供电系统中的电源引脚,在双电源系统中接备份电源;VCC2 在双电源供电系统中的主电源引脚,DS1302 由VCC1 和 VCC2 两者中较大者供电 。 当VCC2小于 VCC1 时,VCC1 给DS1302 供电;SCLK 串行接口的同步时钟;I/O 双向数据线引脚;RST 复位信号,在一个读写期间必须保持高电平;X1,X2 连接一个标准的32768HZ 石英晶体,DS1302也可用外部振荡器驱动,这时X1 引脚连接外部振荡器信号,X2悬浮。命令字节:每次数据传输由命令字节开 始,MSB(位7)必须是逻辑1,若该位是0,则禁止操作DS1302,位6为0时选择实时时钟/日历数据, 位6为1时选择RAM数据,位5-1 选择操作的寄存器,LSB(位 0)选择写操作(逻辑0)或读操作 (逻辑1)。寄存器分配见表3。复位和时钟控制: 数据传输的启动是由/RST 置为高电平开始的,/RST启动控制逻辑,允许地址/命令序列进入移 位寄存器,一个时钟周期是一个下降沿跟随一个上升沿。数据输入时,在时钟上升沿数据必须有效, 如果 /RST变低,所有数据传送即被终止,I/O引脚到一个高阻状态 。在电源上电过程中/RST必须保持逻辑0,直到 VCC大于2.0V。 在 /RST 由0变1的过程中,SCLK必须是逻辑0。数据输入: 输入写命令字节8个时钟周期之后,在下8个时钟周期的上升沿输入图 3-4 DS1302 引脚图15数据,若有额外的SCLK 周期是不予理睬的,数据输入开始位是位0。数据输出: 输入读命令字节 8个时钟周期之后,在下 8个时钟周期的下降沿数据被送出 。 注意:第一个数据位被送出发生在写命令字节最后一位的第一个下降沿,数据输出开始位为位 0。2.时钟日历芯片DS1302 在出租车计价器中的应用A.出租车计价器要解决的问题计价器在运行中DS1302需要解决的问题主要体现在:(1)当出租车处于等人状态时,应记录等候时间,根据等候时间对车资进行加价。(2)当出租车处于空车状态时,显示屏显示实时时钟。(3)计价器H运行中常用的数据,如昼夜单价,起租里程,加价距离等作为初始设置数据,在掉电下不应丢失。RST 接在单片机的 P1.0 端,当没有脉冲输出的时候出租车处于计时状态,此引脚为高电平,选中该芯片,串行数据线 I/O 与串行时钟线 SCLK 分别接在 P1.2 和 P1.1上,所有的地址、命令、数据均通过这两条线传输。当汽车行驶里程超过 100 米并停止行驶时,进行等候计时,计时显示屏停止显示当前时间,开始计时,计时累加到两分钟(120 个脉冲)通过 I/O 口与串行时钟线 SCLK 送数据给 P1.2 和 P1.1,总车资进一单价,在计价器等候计时期间再接收 4 至 5 个脉冲将取消等候。B.硬件线路的改进和补充(1) 对RST 引脚的改进在单片机加电瞬间,所有单片机的端口均为高电平。加电时,在VCC1 2. 5V 以前,RST 必须为低电平;CS 为高电平时,SCL K必须为低电平。而在目前计价器设计上, 有的则用单片机的某一口线直接同DS1302 的CS 相连,影响了系统加电对DS1302 的初始化,从而造成DS1302 计时的不稳定。此处处理的方法是,在单片机的某一口线加一反相器,再同DS1302 的CS 相连,经过多次实验证明,此种处理办法可靠,能有效地解决问题。(2) 对SCLK和I/ O 端口上拉电阻的加入按照相当多的期刊中的介绍,DS1302 在同单片机接口时,DS1302 的SCL K和I/ O 端口分别直接同单片机的P1. 0 、P1. 1 相连。我们在计价器调试中发现,用仿真器对DS1302 仿真调试时,DS1302 的命令字的送入,时钟的改写和读出,均正确无误。但将其程序固化到单片机(使用AT89C52 单片机) 时,时钟的改写和读出,有时正确,有时错误。起初怀疑程序编制有问题,后经反复检查,在确保程序编制正确时,经过逻辑分析仪对其波形的观察,发现在P1. 0 、P1. 1 为高电平时(如图3-5 所示) ,其波形16已发生了畸变。对此,在相连处加入5. 1k的上拉电阻,问题很快得以解决。(3) 加入辅助电容实现负载匹配在实际使用中,我们发现DS1302 的工作情况不够稳定,主要表现在实时时间的传送有时会出现误差,有时甚至整个芯片停止工作。我们对DS1302 的工作线路进行了分析。通过实验发现:当外接晶体电路振荡时,DS1302 计时正确;当外接晶体电路停振时,DS1302计时停止。因此,32768Hz 晶体是造成DS1302 工作不稳定的主要原因。DS1302 时钟的产生是依赖外接晶体与其内部的电容配合来产生时钟脉冲的。由于DS1302 在芯片本身集成了6p F 的电容。所以,为了获得稳定可靠的时钟,必须选用具有6p F 负载电容的晶体。很多设计者在设计时仅注意晶体的额定频率值,而忽视了晶体的负载电容大小。处理的方法是:先测晶体的负载电容(记为 CI) ,若 CI 6p F ,则在晶体的一端增加一串联电容 Cs 以产生所需的负载电容 CI ,即1/ CI = 1/ 6p F + I/ Cs ,通过计算即可得出应增加的辅助电容的大小。如此处理,DS1302 即可可靠起振。实践证明,经过上述几种方法的处理,大大增加了计价器实时时钟的稳定性,使计价器能在高压打火、强磁干扰等恶劣环境下因实时时间问题而出现的返修率大大减小。3.2 显示部分计价器除了四屏显示外还采用指示灯进行状态显示,包括白天、夜间、往返。图 3-5 DS1302 与 AT89C51 的接口电路17驱动器采用 MAX7219 芯片,它是一个专用的八位 LED 显示驱动串行接口, 是微处理器和共阴极七段 八位 LED 显示、图条/ 柱图显示或 64 点阵显示接口的小 型串行输入/输出芯片。片内包括 BCD 译码器、多 路扫描控制器、字和位驱动器和 88 静态 RAM。 外部只需要一个电阻设置所有 LED 显示器字段电 流。MAX7219 和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。允许使用 者选择每位是 BCD 译码或不译码。使用者还可选 择停机模式、数字亮度控制、从 18 选择扫描位数 和对所有 LED 显示器的测试模式。 3.2.1 MAX7219 工作原理 1 MAX7219 简介 MAX7219 和 单 片 计 算 机 连 接 有 三 条 引 线 (DIN、CLK、LOAD) ,采用 16 位数据串行移位 接收方式。即单片机将 16 位二进制数逐位发送到 DIN 端,在 CLK 上升沿到来前准备就绪,CLK 的每 个上升沿将一位数据移入 MAX7219 内移位寄存 器,当 16 位数据移入完,在 LOAD 引脚信号上升 沿将 16 位数据装入 MAX7219 内的相应位置,在 MAX7219 内部硬件动态扫描显示控制电路作用下 实现动态显示。 2 MAX7219 引脚说明 MAX7219 为 24 引脚芯片,引脚排列如图 3-6 所 示,各引脚功能如下: DIN:串行数据输入端;DIG0DIG7:LED 位线; LOAD:数据装载信号输入端; SEGASEGG,SEGDp:段码输出端; ISET:硬件亮度调节端; DOUT:串行数据输出端; CLK:移位脉冲输入端; V+:正电源; GND:地3 MAX7219 内部组成结构 MAX7219 组成如图 3-7 所示。各部分作用是:16 位地址/数据移位寄存器接 收串行数据,实现串/并变换。16 位数据含义如下: D7D0:写入内部 RAM 和功能寄存器的数据; D8D11:内部 RAM 和功能寄存器地址; D12D15:无定义。 地址译码器是一个 416 线译码器,用于选择 数据存放单元,在 LOAD 信号作用下将接收数据送入指定单元;八字节双端口静态存储器存放接收数据和提供动态显示数据;B 译码和不译码电路对 RAM 数据进行 BCD 译码或直接送显示;段码电流参18考电路、亮度脉冲产生调制器实现对显示器的亮度控制,段码电流参考电路由硬件调节显 示器亮度; 动态扫描控制器实现由硬件控制动态扫描显示。 LED 段/位驱动器提供显示器的一段和一位点亮时 的电流。 各内部功能寄存器含义如下: (1)停机寄存器(地址 0CH):当 D0=0 时, MAX721 处于停机状态;当 D0=1 时,处于正常工 作状态。 (2)显示测试寄存器(地址 0FH):当 D0=0 时,MAX7219 按设定模式正常工作;当 D0=1 时, 处于测试状态。在该状态下,不管 MAX7219 处于 什么模式,全部 LED 将按最大亮度显示。 图 3-6 MAX7219 引脚图图 3-7 MAX7219 组成框图19(3)亮度寄存器(地址 0AH):亮度可以用硬 件和软件两种方法调节。亮度寄存器中的 D0D3 位可以控制 LED 显示器的亮度。 (4)扫描界限寄存器(地址 0BH):该寄存器 中 D0D3 位数据设定值为 07H,设定值表示显 示器动态扫描个数位 18。 (5)译码方式寄存器(地址 09H):该寄存器 的 8 位二进制数的各位分别控制 8 个 LED 显示器的 译码方式。当高电平时,选择 BCD-B 译码模式, 当低电平时选择不译码模式(即送来数据为字型 码) 。 (6)内部 RAM 地址 0108H 分别对应于 DIG0DIG7。3.2.2 MAX7219 应用电路乘客上车后,倒下空车牌,计价器进入重车状态,此时金额屏显示起租价 5.00元(5 位) ,单价屏显示当前单价(3 位) ,计程屏显示当前计程公里(4 位) ,计时屏显示当前时间。1 MAX7219 驱动 8 位以下 LED 显示器 MAX7219 在驱动 8 位以下 LED 显示器时,它 的 DIN、CLK、LOAD 端分别接单片机 P0P3 口 中的任意三条口线,注意在三条线上对地应接几十 至几百 pF 电容。在 P0 口作为 DIN、CLK、LOAD 信号线时还应接 10k 左右的上拉电阻。在显示器 与微处理器连接线较长时还应考虑干扰的影响。 MAX7219 和单片机的连接如图 3-8 所示。相应的程序设计如下:图 3-8 8 位 LED 显示驱动电路20212 MAX7219 驱动 8 位以上 LED 显示器 一片 MAX7219 最多能驱动 8 位 LED 显示器, 由于本设计需要显示 16 位,所以需要两片 MAX7219 级连来实现,图 3-9 为 16 位 LED 显示驱动器电路。223.3 采用AT93C46串行EEPROM的防作弊方法为防止不法分子的作弊行为,例如在起程距离较长时,司机已经预先置入几公里的里程,这时乘客坐不到2.5km时计价器已经开始变价。因此需将一些初始植,如昼夜单价、起租价、起租里程、等待时间等参数固定。本设计采用AT93C46来固化这些参数。AT93C46 是Atmel 公司生产的低功耗、低电压、电可擦除、可编程只读存储器, 采用CMOS 工艺技术制造并带有3 线串行接口,其容量分别为1kB/ 4kB ,可重复写100 万次,数据可保存100 年以上。16 位单片机以其适于高速控制场合及功能多等优点已在工业控制领域中占领了一定的市场。由于EEPROM能在不脱离系统的情况下修改其存储单元中的内容,故在16 位单片机中的应用愈来愈广泛。可通过ORG管脚配置成128 8 /256 8 /512 8 或64 16 /128 16 /256 16 等结构采用8 脚PDIP / SOIC 封装和14 脚SOI 封装(SOI 封装为J EDEC 和EIAJ 标准) , 与并行的EEPROM相比, AT93C46/ 56/ 66 可大大节省印制板空间,且接线简单,因而在多功能的精密测试仪中具有广阔的前途。3.3.1 引脚功能AT93C46 存储器芯片的引脚排列如图3-10所示。各引脚的功能如下:CS:片选信号。高电平有效,低电平时进入等待模式。在连续的指令之间, CS 信号必须持续至少250ns 的低电平,才能保证芯片正常工作。CLK:串行时钟信号。在CLK的上升沿,操作码、地址和数据位进入器件或从器图 3-9 16 位 LED 显示驱动电路23件输出。在发送序列时,CLK最好不停止,以防止读/ 写数据的错误。DI: 串行数据输入。可在CLK的同步下输入开始位、操作码、地址位和数据位。DO:串行数据输出。在CLK同步下读周期时,用于输出数据; 而在地址擦/ 写周期或芯片擦/ 写周期时,该端用于提供忙/ 闲信息。VSS:接地。VCC:接+ 5V电源。ORG: 存贮器构造配置端。该端接VCC 或悬空时,输出为16 位;接GND 时,输出为8 位。NC:空脚,不连接。3.3.2 指令及时序AT93C46的指令如表1 所列, 各指令的具体含义如下:(1) 擦/ 写允许指令( EWEN)由于在上电复位后, AT93C46 首先将处于擦/ 写不允许状态。故该指令必须在所有编程模式前执行,一旦该指令执行后,只要外部没有断电就可以对芯片进行编程。(2) 地址擦指令( ERASE)该指令用于强迫指定地址中所有数据位都为“1”。一旦信息在DI 端上被译码,就需使CS 信号保持至少250ns 的低电平, 然后将CS 置为高电平, 这时,DO 端就会指示“忙”标志。DO 为“0”,表示编程正在进行;DO 为“1”,表示该指定地址的寄存器单元已擦完,可以执行下一条指令。(3) 地址写指令(WRITE)写指令时, 先写地址, 然后将16 位的(或8 位)数据写入到指定地址中。当DI 端输出最后一个数据位后, 在CLK时钟的下一个上升沿以前, CS 必须为低,且需至少保持250ns ,然后将CS 置为高电平。需要说明的是:写周期时,每写一个字节需耗时4ms。(4) 地址读指令(READ)读指令用于从指定的单元中把数据从高位到低位输出至DO 端,但逻辑“0”位先于数据位输出。读指令在CLK的上升沿触发,且需经过一段时间方可稳定。为防止出错, 图 3-10 AT93C46 管脚图24建议在读指令结束后, 再输出23 个CLK脉冲。(5) 芯片擦指令( ERAL)该指令可将整个存贮器阵列置为1 , 其它功能与地址擦指令相同。(6) 芯片写指令(WRAL)该指令可将命令中指定的数据写入整个存贮器阵列, 其它功能与地址写指令相同。该指令周期所花费时间的最大值为30ms。(7) 擦/ 写禁止指令( EWDS)使用该指令可对写入的数据进行保护, 操作步骤与擦/ 写允许指令相同。3.3.3 AT93C46 与AT89C51的连接串行EEPROM芯片AT93C46的CS(片选信号)、SK(串行时钟信号)、DI(串行数据输入)、DO(串行数据输出)分别接在单片机AT89C51的P2.6P2.3。3.4 打印功能打印功能主要打印发票,内容包括车牌号、单价、起租价、行车里程、车资及日期等数据。单向数据传输线 DB0DB7 接单片机的 P0.0P0.7,数据选通信号 STB接 WR,忙线“BUSY”接 P2.6。当单片机通过 WR 给出打印命令后,打印机便根据P0.0P0.7 给出的信息打印出相应的数据。TPP-40A 是一种单片机控制的微型打印机。3.4.1 TPP-40A 主要性能、接口要求及时序(1)TPP-40A 主要技术性能a.采用单片机控制,具有 2KB 控打程序标准的 Centronic 并行接口。b.具有较丰富的打印命令,命令代码均为单字节,格式简单。c.可产生全部标准的 ASCII 代码字符,以及 128 个非标准字符和图符。有 16 个代码字符(67 点阵)可由用户通过程序自行定义。并可通过命令用此 16 个代码字符去更换任何驻留代码字型,以便用于多种文字的打印。d.可打印出 8240 点阵的图样(汉字或图案点阵) 。代码字符和点阵图样可在一行中混合打印。25e.字符、图符和点阵图可以在宽和高的方向放大为 2、3、4 倍。f.每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0256 间任选。g.带有水平和垂直制表命令,便于打印表格。h.具有重复打印同一字符命令,以减少输送代码的数量。i.带有命令格式的检错功能。当输入错误命令时,打印机立即打出错误信息代码。(2)接口信号TPP-40A 微型打印机与单片机间是通过一条 20 芯扁平电缆及插件相连。打印机有一个 20 线扁平插座,其中:DB0DB7:数据线,单向传输,由单片机输入给打印机。STB(STROBE):数据选痛信号。在该信号的上升沿时,数据线上的 8 位并行数据被打印机读入机内锁存。BUSY:打印机“忙”状态信号。当该信号有效时(高电平)时,表示打印机正忙于处理数据。此时,单片机不得使 STB 信号有效,向打印机送入新的数据。ACK:打印机的应答信号。低电平有效,表示打印机已取走数据线上的数据。ERR:“出错”信号。当送入打印机的命令格式出错时,打印机立即打印一行出错信息,提示出错。在打印出错信息之前,该信号线出现一个负脉冲,脉冲宽度为30s。3.4.2 字符代码及打印命令TPP-40A 的全部代码共 256 个,其中 00H 无效。代码 01H0FH 为打印命令;代码 10H1FH 为用户自定义代码;代码 20H7FH 为标准 ASCII 代码,代码 80HFFH为非 ASCII 代码,其中包括少量汉字、希腊字母、块图图符和一些特殊字符。TPP-16A 的有效代码表与 TPP-40A 的不同之处仅在于 01H0FH 中的指令代码,前者为 16 个,后者为 12 个,功能也不同。(1)字符代码TPP-40A 中全部字符代码为 10HFFH,回车换行代码 0DH 全字符串的结束符。但当输入代码满 40 个时,打印机自动回车。(2)打印命令打印命令由一个字和若干个参数字节组成,命令结束符为 0DH,除下述表中代码为 06H 的命令必须用它外,均可省略。TPP-40A 命令代码及功能见下表:命令代码命令功能 命令代码 命令功能01H 打印字符、图等,增宽(1, 2、3、4)08H 垂直(制表)跳行02H 打印字符、图等,增宽(1, 2、3、4)09H 恢复 ASVII 代码和清输入缓冲区命令2603H 打印字符、图等,宽和高同时增加(1 , 2、3、4)0AH 一个空位后回车换行04H 字符行间距更换/定义 0BH0CH 无效05H 用户自定义字符点阵 0DH 回车换行/命令结束06H 驻留代码字符点阵式样更换 0EH 重复打印同一字符命令07H 水平(制表)跳区 0FH 打印位点阵图命令(3)命令非法时的出错显示当向 TPP-40A输入非法命令时,打印机即打印出错代码。其意义为:图 3-11 TPP-40A 与 AT89C51 数据总线接口ERROR0:放大系数出界,即放大倍数是 1,2,3 和 4 以外的数字。此错误出现在01H,02H,03H 命令时。ERROR1:定义代码非法。用户自定义代码不是 10H1FH。ERROR2:非法换码命令。换码命令只能用 10H1FH 去代换驻留字符代码,否则为非法。ERROR3:绘图命令错误。指定图形字节数为 0 或大于 240。ERROR4:垂直制表命令错误。指定空行数为零。3.4.3. TPP-40A与 AT89C51 单片机接口设计TPP-40A是智能打印机,起控制电路由单片机构成,在输入电路中有锁存器,WRP2.7RDP2.6AT89C51P0.7.P0.0GNDSTBBUSY 打印机TPP-40ADB7 .DB0GND+27在输出电路中有三态门控制。因此可以直接与单片机相接。TPP-40A没有读、写信号,只有握手线 STB、BUSY ,其接口电路如下(图 3-11):用一根地址线(图中选用 A15)来控制写选通信号 STB 和读取 BUSY 状态。3.5 出租车计价器加密传感器的设计为了对出租车计价进行有效地管理,在分析现有出租车计价传感器漏洞的基础上,采用PIC12C508A和PIC12CE518A 单片机提出了出租车计价加密传感器的加密模型和系统结构模型,完成了密码传感器系统中加密器和解密器软硬件系统设计. 加密后的密码传感器提高了出租车计价器计费的准确性和安全性,解决了现有出租车计价器可靠性不高和难以实现统一管理的难题.3.5.1 通出租车计价传感器漏洞分析出租车计价器现在普遍采用电子传感器方式,传感器首先接收车的运行信息,然后送给计价器,计价器自动计算并显示里程数和车费;电子传感器方式计价器由传感器和计价器两部分组成,其组成框图如图3-12 所示.电子传感器用来监测出租车的运行状态,车行进一定的距离传感器就向计价器发出一个符合要求的脉冲,微机控制部分对传感器发来的脉冲进行计数,然后转换成里程和车费送显示部分进行显示,功能键是用来完成计价器设置时间、日期及历史记录查询等功能.从电子式计价器原理可看出,只要向计价器发出符合要求的脉冲计价器便计费,不同的计价器对脉冲的要求不同,不同点包括正负脉冲、脉冲宽度和电平类型. 现有技术模拟实现符合计价器要求的脉冲并不难,使得电子式计价器出现漏洞,降低了计价器计费的准确性和安全性.3.5.2 建立密码传感器加密算法模型通过以上分析不难看出,导致电子式计价器出现漏洞的根本原因是传感器发出的计数脉冲没有加密,以至于使用者可以自行增加或处理脉冲,借此来达到增加计费的目的. 加密传感器的基本思想就是先对计数脉冲加密,使计费脉冲以密文方式传输,图 3-12 电子式计价器组成框图28最后解密为明文脉冲,传送到计价器计费,其原理框图如图3-13 所示 .常用的加密算法有对称加密和非对称加密.对称加密中的序列密码( stream cipher) 、分组密码(block cipher) 以其简捷、快速、容易标准化等特点,成为移动通信等实时加密领域的主流算法.非对称密码加密以其安全性高等特点为身份认证、数据的保密性、数据的完整性提供了有力的支持,但该算法速度较慢,对系统资源有一定要求.由于该系统要求实时加密,硬件系统资源非常有限,而且加密要求只是把单一的脉冲信号转换成密文脉冲信号,所以采用对称加密.在所有的对称加密算法中最简单的一种就是“置换表”算法. 在“置换表”中每一个不同的数据信号脉冲 C 对应着“置换表”中的一个偏移量offset ,偏移量offset 所对应的值就是这个数据信号所对应的密文 M. 加密程序和解密程序都需要“置换表” .这种加密算法比较简单 ,加密解密速度都很快 ,为满足系统需要 ,我们设计了如下加密算法 :首先把电子传感器的每个计数脉冲 C 按照“置换表”转换为一个 n 位的二进制数 M ,然后按规定的协议将 M发出 ,送给解码器 . M既为该传感器送出的密文 ,不同的传感器发出不同的密文 . 当解码器接接收到加密器发送的密文 M 后 , 首先和解码器固有的密码 P 比较 ,如果 P = M ,解码器认为传感器发的信号有效 ,然后向计价器发出一个计数脉冲 ;如果 P M ,解码器认为传感器发的信号非法 ,不向计价器发出计数脉冲 ,计价器不计费 .由于加密器和解码器都有自己固有的密码 ,只有 P = M 时计价器方可计数 ,因此出租车司机自己更换传感器后计价器根本不计费 . 计量部门可以用专用编程器改变加密协议中的“置换表” ,改变加密器和解码器的固有密码 .3.5.3 加密传感器系统设计1 系统组成与工作原理加密传感器系统主要有加密器、解密器和密码写入器3 大部分组成,系统组成框图如图3-14 所示。图 3-13 密码传感器组成框图291) 加密器接收霍尔元件发送的脉冲信号,检测到这一变化后发出密码送解码器,每个加密器有一个固定密码存放于程序存储器中.2) 密码写入器为方便计量部门使用密码传感器而设计了修改解码器固有密码的专门装置.首先,读出密码写入器小数字键上设定的密码,当检测到按键按下时,便向解码器发送一组同步字符给解码器,最后,把密码按照规定的协议发送给解码器.3) 解码器可解密加密器发送的密码,产生计数脉冲,也可以接收密码写入器的新密码,从而改变解码器固有密码.解码器接收到数字信号时,首先判断接收的是加密器发送的信号还是密码写入器发送的信号,它是通过判断接收的第一组数据是否为同步字符来完成的,若是同步字符,则认为是密码写入器发送的信号, 接收后面的数据并保存到E2PROM中,作为新的固有密码. 若不是同步字符,则读出自己E2PROM中的固有密码,与之相比较,若相等,则发送一个2 ms 的高电平的计数脉冲给计价器,否则不发送该脉冲.2 单片机选型在密码传感器中,为了保证其安全性,加密器必须与霍尔元件封装于一起,这样,加密器可占用空间很小,且环境温度比较高(夏季达110 ) ,因此,要求单片机具有外围元件少、工作温度高和体积小等特点. 解码器对单片机要求除具有加密器的单片机特点外,还应具有E2PROM存储单元,实现解码器固有密码的修改和保存,以方便计量部门给加密器和解密器的配对. 密码写入器为计量部门专用设备,用来修改解码器的固有密码,对单片机无特殊要求,以价格低廉为主要目标.美国Microchip 公司生产的8 位单片PIC12C508A和PIC12CE518A 型产品,仅有8 个引脚,且具有低功耗、多功能、高性能、体积小和售价低等特点. 在本系统中,加密器、解密器和密码写入器分别采用了PIC12C508A、PIC12CE518A 和INTER8031 单片机.3 加密器设计在本系统中,加密器固有密码用5 位十进制数表示,每位数字按脉冲方式发送,0 图 3-14 加密传感器系统组成框图30发送10 个脉冲,1 至9 发送的脉冲数与其值相等,脉冲格式如图3-15 ,每个脉冲低电平的时间是10s ,高电平的时间是15s ,周期为25s ,发送一个数所用的时间小于255s. 加密器工作程序框图如图3-16.加密器中的核心部件为12C508A ,电路原理图如图3-17 所示,910 为霍尔元件产生计数脉冲,PIC12C508A 单片机接收到计数脉冲后首先进行加密,然后将密码发送给解码器.4 解码器设计(1) 电路原理图解码器电路原理如图3-18 所示, 主要包括光电隔离部分、12CE518A 单片机和计数脉冲输出电路组成. 光电隔离采用TPL521 - 1 ,用于去干扰,保证系统可靠性. 12CE518A 单片机是解码器的核心部件,完成密码接收、解密、密码修改和计数脉冲输出等工作. 计数脉冲输出电路用于TTL 电平到+ 12 V 电平脉冲的转换.图 3-15 密码脉冲格式图 3-16 加密器工作程序框图31(2) 固有密码的存储串行E2PROM是可在线电擦除和电写入的存储器,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点,而且为低电压写入,在单片机系统中应用十分普遍. 单片机PIC12CE518A内部有16个字节的E2PROM,CPU 和E2PROM 采用I2C 总线结构连接,GP6 (SDA)和GP7 (SCL) 分别为数据线,时钟线,无需外接E2PROM.基于I2C 协议下的E2PROM 写、读程序框图如图3-19、3-20 所示,(以发送一个数据为例)(3) 密码接收解码器工作时,首先读出E2PROM 中00H -04H 中存放的固有密码,分别保存在5 个寄存器中,然后调用接收数据子程序,接收一个数据并存如寄存器中,判断是否为同步字符,不是同步字符,说明数据来自加密器,继续接收另外4个数据,将刚刚接收的5 个数据与固有密码比较,如果相同,则说明接收的密码正确,在GP0 引脚上发送一个2 ms 的计数脉冲,然后返回,否则直接返回;若是同步字符,则说明是密码写入器发送来的信号,要求修改解码器的固有密码,继续接收5个分别写入E2 PROM的00 H - 04 H中,然后返回.程序只需在上电时从E2PROM 中读一次固有密码,以后就不在访问E2PROM,这样可保证计费准确度符合国家标准.总之,在密码传感器中,加密器向解码器发送的是密码,只有加密器和解密器固有密码相同时,解码器才向计价器中发送计数脉冲,计价器才计费.使用OTP 单片机,程序一旦烧录后是无法改变,要想修改解密器固有密码,必须使用专用密码写入器,因此,密码传感器提高了计价器计费可靠性,实现了计价器有国家计量部门统一安装、维修和年检的统一管理.图 3-17 加密器电路原理图32图 3-18 解码器电路原理图图 3-19333.6 系统综合:一、工作过程在空车状态下,接通电源,此时计价器进入正常工作。乘客上车后,倒下空车牌,计价器进入重车状态,通过显示程序金额屏显示起步价,单价屏显示当前单价,计程屏显示当前计程公里,计时屏显示当前时间。打印机走纸并打印固定信息(打印期间按任何键无效)。当车辆行驶里程在里程加价公里以内,司机可根据需要按单程键或不按单程键进行单程营运或往返营运,通过计量程序计脉冲数,并转换为行车里程和车资;在车辆停止时,通过 DS1302 进行计时,计时屏停止显示当前时间,进行计时显示,一秒钟发出一个计数脉冲,满两分钟车资加单价。乘客到达目的地,结算时竖起空车牌,按打印键打印本次营业数据,打印完毕,本客次结束。二、具体参数设计单价屏 计程屏 计时屏 金额屏 显示内容图 3-20 34P01 0655 - - K 值:655 转/公里P02 01.30 - - 白天往返单价:1.30 元P03 01.60 - - 夜间往返单价:1.50 元P04 01.95 - - 白天单程单价:1.60 元P05 02.40 - - 夜间单程单价:1.80 元P06 01 - - 起程:2.5 公里P07 0.5 - - 续程:0.1 公里P08 05.00 - - 白天起步价:5.00 元P09 05.00 - - 夜间起步价:5.00 元P10 01.00 - - 免费等侯时间:1 分钟 0 秒P11 22.00 - - 夜间开始时间:22 时 00 分P12 06:00 - - 夜间结束时间:6 时 00 分P13 02:30 - - 加价时间:2 分 00 秒P14 4137 - - 车牌号:A71803(计程屏 41 和 37 为字符 A 和 7的 ASC码)3.7 面板设计:一、 面板采用先进的流线型外观设计。显示屏包括四屏显示及三个状态显示,四屏显示包括单价显示屏、计时显示、计程显示、全价显示;三个状态包括白天、黑夜、往返,当按下白天/黑夜键时,显示夜间状态(红色) ,不按时显示白天状态(绿色) ;按下往返键往返指示灯亮,表示当前按往返价钱计价。按下打印键,计价器开始打印。示意图如下:a.单价显示屏b.全额显示屏 c.计时显示屏d.计程显示屏e.白天指示灯f.夜间指示灯g.往返指示灯h.往返键/位选择键i.白/夜键/数字上调键j.打印键/数字下调键k.当前时间调整键35e f g ba k h i j d c二、 当前时间的调整按下当前时间调整键,此时往返键功能为位的选择,如小时、分,白/夜键为数字上调键,打印键为数字下调键,调整好当前时间后再次按下当前时间调整键即可显示当前时间。
收藏