资源目录
压缩包内文档预览:
编号:511810
类型:共享资源
大小:770.54KB
格式:RAR
上传时间:2015-11-11
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计
- 资源描述:
-
DZ224多功能出租车计价器,毕业设计
- 内容简介:
-
1 第一章 前言 随着我国国民经济的告诉发展,出租车已成为城市公共交通的重要组成部分。出租车计价器这一专用计算器具必须经当地技监局所属的管理部门坚定认可,且出租车安装计价器整车鉴定合格后才能运营。 针对电子式出租车计价器,建设部于 1997 年 12 月 1 日开始贯彻新的行业标准“ CJ5024-1997”,要求“本标准实施之日起,电子式出租车计价器的设计,制造,和检验必须符合本标准的规定”。根据新标准选择性能价格比高的计价器,并与有关出租车管理部门一起确定选用哪个品牌则是计量部门的职责。 如何 选用计价器,主要应考虑两个方面:第一是性能和质量是否符合新标准CJ5024-1997,性能还包括本地区行政管理部门随时间,区域和车型在运价上的调整,如里程费,等候费,空贴费,夜间补偿费等作变更时,改变计价器运行程序的繁简程度。同时要考虑计价器自身防作弊的性能。第二要关注该品牌计价器是否具备升级换代或者是扩展功能。 虽然现在个别大城市有全部更新出租车计价器一步到位的能力,但绝大部分城市还不具备这种条件,须按步骤先安装计价器,再装语音提示器,然后才考虑票据打印或者 IC 卡管理及收费等问题,这样在选用计价器时就要想到它在未来发展中的配套能力,否则将延误出租车科学化管理的进程。 计价器在运行中 需解决的问题体现在以下四个方面: ( 1) 计价器在工作中,对出租车所行驶里程的计价是分时 进行的。当时间处于白天段时应按白天单价计价;当时间处于夜间段时应按夜间单价计价。 ( 2) 当出租车处于等人状态时,应记录等候时间,根据等候时间对车资加价 。 ( 3) 当出租车处于空车状态时,显示屏显示实时时钟。 ( 4) 计价器运行中常用的数据如:昼夜单价,起租里程,加价距离等作为初始设置数据在掉电情况下不应丢失。 在出租车计价器运行中,我们发现部分计价器存在乱报单价问题。当处于白天时间段时,计价器会报出夜间单价,并按夜间单价计价,反之则相同。 为防止不法分子的作弊行为,需解决这一问题。 本文设计了一种具有计程,计费,显示,打印发票以及防作弊等功能的计价器,能够很好地满足市场对出租车计价器的要求。 nts 1 摘要 本文介绍了一种以 AT89C51 单片机为核心的多功能出租车计价器。该计价器具有单程,往返,白天,夜间,等待等多种模式的计价方式。有显示功能,发票打印功能,防作弊措施。文中 在整体方案选择上对三个方案进行了对比,并 阐述了硬件配置 及 性能特点, 分为计量模块、显示模块、打印模块、防作弊模块;软件设计采用汇编语言编写 , 系统程序固化在单片机内部的 EEPROM 存储器中 , 程序包括主程序和若干子程序。主程序的功能是开机后负责管理和调用子程序 , 子程序共有 4 个 , 分别是键盘扫描子程序、计量子程序、读日历时钟子程序及显 示子程序。 在对各芯片在出租车计价器中所起的作用进行分析基础上 对总体设计方案进行了分析 。 关键词: 单片机,多功能,出租车计价器 nts 2 Title Taximeter Abstract In 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, Taximeter nts 2 第二章 总体 方案 选择 2.1 方案一: 基于 CPLD FPGA 的出租车计费器 2.1.1 系统组成 基于 CPLD FPGA 的出租车计费器的组成如图 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 的出租车计费器组成框图 nts 3 ( 1) 模块联调 各个功能子模块设计完成后,利用 MAXPLUS 的图形编辑器 (Graphic Editor)将各功能子模块 ( sym)进行连接。由于 MILE 模块中存在毛刺,故不能直接与后级相连,通过对输出脉冲信号加门电路延时,再与原始信号相 “ 与 ” 的方法即可消除毛刺。 芯片管脚定义可以直接用 编辑 pin 文件或在 Floor Plan Editor 下进行。完成管脚定义后选择器件 (EPM7128SIC84 15),编译后生成 sof、 pof 及报告文件 rpt。查看报告文件可得到器件管脚的利用情况及器件内部资源的使用情况。通过更换适当的器件使其资源配置达到最优。选择器件的一般原则是系统所使用的资源不要超过器件资源的 80,若超过 90,系统功耗将增大,工作不稳定。从本次设计器件部分报告中得知:输入、输出管脚各用 16 只,芯片资源利用率仅为 51,具有 较大的扩展空间。 ( 2) 硬件设计说明 本次设计的出 租车计费器计数脉冲 CP 来自车轮转速传感器 (干簧管 ),脉冲经器件内部整形后送计数器;动态扫描脉冲由外围电路给出;系统使用整流、滤波、降压后的出租车电源供电;由于 CPLD FPGA 的驱动能力有限,为了增强数码管的亮度,提高系统的可靠性,设计中在 LED 驱动和位驱动上分别增加了电流驱动器件 ULN2803和 2SCl015。 现场实验表明:该计费器实现了按预制参数自动计费 (最大计费金额为 999 9 元 )、自动计程 (最大计程公里数为 999 9 公里 )等功能;能够实现起步价、每公里收费、车型及加费里程的参数预制 (如:起步价 5 00 元; 3 公里后, 1 20 元公里;计费超过 15 00 元,每公里加收 50的车费等 ),且预置参数可调范围大。由于采用了CPLD FPGA 大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。另外,根据实际需要,系统可方便地增加以下功能: 通过芯片内部编程增加时钟功能 (器件内部资源足够 ),既可为司机和乘客提供方便,又能为夜间行车自动调整收费标准提供参考; 用 CPLD FPGA 的输出引线控制语音芯片,可向乘客发出问候语、提醒乘客告诉司机所要到达的地点、报出应收缴的费用等。 2.2 方案 二 : 基于 MC68HC705 单片机的多功能出租车计价器 2.2.1 硬件配置及性能特点 计价器的系统硬件框图如图 2-2 所示。系统选用 MO TOROLA 公司的一种低能耗高性能nts 4 的 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 K1 BAN 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 的数据输出口 D0 D3 接 CPU 的 PA 4 PA 7。 (3) 打印功能 打印功能主要打印发票 , 内容包括车牌号、单价、起租价、过桥次数、行车里程、车资及日期等数据。打印机选用 EPSON 公司的 MODE2150 型打印机 , 该打印机有 7 根控制线 , 单向数据传送线 DB0 DB3 接单片机的 PC0 PC3, 数据选通信号 STB 接 PB0,忙线 BU SY 接 PB1, 应答信号 ACK 接 PD7。当单片机通过 PB0 给出打印命令后 , 打印机便根据 PC0 PC3 给出的信息打印出相应的数据。 (4) 防作弊功能 为防止不法分子的作弊行为 , 需将一些初始值 , 如昼夜单价、起租价、起租里程、待时时间等参数固定。为此 , 本设计选用 A TM EL 公司的 E2PROM 93C46 来固化这些参数。 93C46 可提供 128 字节的存储容量 , 且能重复使用 1 万次 , 存储在上面的数据可设置保密位 , 因而能起到防作弊功能。 93C46 的 CS、 SK、 D I、 DO 分别接单片机 PA 0 PA 3。此外 , 还通过单片机的 PB2、 PB3、 PB4 外接按钮开关 , 分别作为起 停按钮、复位按钮与过桥按钮。 nts 5 2.2.2系统软件设计 该系统软件采用汇编语言编写 , 系 统程序固化在单片机内部的 EEPROM 存储器中 , 程序包括主程序和若干子程序。主程序的功能是开机后负责管理和调用子程序 , 主程序框图如图 2-3所示。子程序共有 4 个 , 分别是键盘扫描子程序、计量子程序、读日历时钟子程序及显示子程序。键盘扫描子程序判断出租车营运状态 , 是否需过桥加价及是否复位 ; 读日历时钟子程序为系统提供需要显示的时间数据 , 并根据时间数据实现昼夜单价及起租价自动转换 ; 计量子程序根据传感器输入脉冲次数 , 将其转换为行车里程及车资 ; 显示子程序根据当前的时间、车资、里程及单价进行实时显示。 此出租车计价器具有计量功能、显示功能、打印功能、防作弊等多种功能。经运行证明 : 整机性能稳定、功耗小于 3. 8W、计程与计时误差均在 + 0. 5% 1. 0% 之间 , 并且系统体积小、成本低 , 能够很好地满足市场对出租车计价器的要求。 图 2-2 硬件框图 nts 6 2.3方案三: 基于 AT89C51单片机的多功能出租车计价器 2.3.1 硬件 设计 计价器的系统硬件框图如图 2-4所示。系统选用高性能的 8位单片机 AT89C51 作为中央 CPU 单元。该单片机片内带有 4 KB的快速擦写存储器 及 128字节 RAM , 软 件上与MCS-51系列完全兼容,编制的汇编语言程序可运行与这良种系列的单片机。 (1) 计量功能 传感器输出信号接在单片机的 P3.5端 (定时器 1: 外部事件计数输入 ) , 记录 脉冲次数 , 再通过程序折合成行车里程及车资。由于传感器采用加密形式 , 因而可避免干扰信号的影响。 A T 89 C 51 DS1302 打印机 TPP-40A AT93C46 开关按钮 加密 传感器 MAX 7219 LED 图 2-3 主程序框图 图 2-4 基于 89C51 的出租车计价器系统框图 nts 7 (2) 显示功能 计价器可显示时间、单价、起租价、总价及行车里程。采用 16个 LED 数码管进行显示。由于使用一般的 L ED 驱动器将造成布线困难及占用太多电路板体积 , 本设计选用 美 国 MAXIM公司的串行接口 8位 L ED 驱动器 MAX7219。 且其与单片机的连接为串行通信。该设计使用了 2片 MAX7219, 通过级联而成 ,不另外占用单片机口线。 (3) 打印功能 打印功能主要打印发票 , 内容包括车牌号、单价、起租价、 行车里程、车资及日期等数据。打印机选用 TP P-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 单片机更为通用。 nts 8 nts目录 第一章 前言 . 1 第二章 总体方案选择 . 错误 !未定义书签。 2.1 方案一:基于 CPLD FPGA 的出租车计费器 . 错误 !未定义书签。 2.1.1 系统组成 . 错误 !未定义书签。 2.1.2 功能模块设计 . 2 2.1.3 系统综合 . 2 2.2 方案二: 基于 MC68HC705 单片机的多功能出租车计价器 . 3 2.2.1 硬件配置及性能特点 . 3 2.2.2 系统软件设计 . 错误 !未定义书签。 2.3 方案三:基于 AT89C51 单片机的多功能出租车计价器 . 错误 !未定义书签。 2.3.1 硬件设计 . 6 2.3.2 系统软件设计 . 7 2.4 结束语 . 7 第三章 硬件设计 . 8 3.1 计量功能 . 8 3.1.1 单片机 AT89C51 的应用 . 8 3.1.2 DS1302 在出租车计价器中的应用 . 错误 !未定义书签。 3.2 显示部分 . 错误 !未定义书签。 3.2.1 MAX7219 工作原理 . 错误 !未定义书签。 3.2.2 MAX7219 应用电路 . 18 3.3 采用 AT93C46 串行 EEPROM 的防作弊方法 . 错误 !未定义书签。 3.3.1 引脚功能 . 错误 !未定义书签。 3.3.2 指令及时序 . 错误 !未定义书签。 3.3.3 AT93C46 与 AT89C51 的连接 . 错误 !未定义书签。 3.4 打印功能 . 错误 !未定义书签。 3.4.1 TPP-40A 主要性能、接口要求及时序 . 错误 !未定义书签。 3.4.2 字符代码及打印命令 . 错误 !未定义书签。 3.4.3. TPP-40A 与 AT89C51 单片机接口设计 . 错误 !未定义书签。 3.5 出租车计价器加密传感器的设计 . 错误 !未定义书签。 3.5.1 通出租车计价传感器漏洞分析 . 错误 !未定义书签。 3.5.2 建立密码传感器加密算法模型 . 错误 !未定义书签。 3.5.3 加密传感器系统设计 . 错误 !未定义书签。 3.6 系统综合: . 错误 !未定义书签。 3.7 面板设计: . 错误 !未定义书签。 第四章 软件设计 . 错误 !未定义书签。 4.1 主程序流程图 . 错误 !未定义书签。 4.2 计量子程序 . 错误 !未定义书签。 4.3 显示子程 序 . 错误 !未定义书签。 4.4 键盘扫描子程序 . 37 4.5 读日历时钟子程序 . 38 4.6 程序清单 . 39 致谢 . 47 nts参 考 文 献 . 48 nts 目录 第一章 前言 .1 第二章 总体方案选择 .2 2.1 方案一:基于 CPLD/EPGA的出租车计费器 2 2.1.1 系统组成 .2 2.1.2 功能模块设计 .2 2.1.3 系统综合 .2 2.2 方案二:基于 MC68HC705单片机的多功能出租车计价器 3 2.2.1 硬件配置及性能特点 .3 2.2.2 系统软件设计 .5 2.3 方案三:基于 AT89C51单片机的多功能出租车计价器 6 2.3.1 硬件设计 .6 2.3.2 系统软件设计 .7 2.4 结束语 .7 第三章 硬件设计 .8 3.1 计量功能 .8 3.1.1 单片机 AT89C51的应用 .8 3.1.2 DS1302在出租车计价器中的应用 .12 3.2 显示部分 .15 3.2.1 MAX7219工作原理 .16 3.2.2 MAX7219应用电路 .18 nts 3.3 采用 AT93C46串行 EEPROM的防作弊方法 20 3.3.1 引脚功能 21 3.3.2 指令及时序 21 3.3.3 AT93C46与 AT89C51的连接 .22 3.4 打印功能 .22 3.4.1 TP-40A主要性能、接口要求及时序 .23 3.4.2 字符代码及打印命令 23 3.4.3 TP-40A与 AT89C51单片机接口设计 25 3.5 出租车计价器加密传感器的设计 .25 3.5.1 通用出租车计价传感器漏洞分析 25 3.5.2 建立密码传感器加密算法模型 26 3.5.3 加密传感器系统设计 27 3.6 系统综合 .31 3.7 面板设计 .32 第四章 软件设 计 34 4.1 主程序流程 .34 4.2 计量子程序流程 .35 4.3 显示子程序流程 .36 4.4 键盘扫描子程序流程 .37 4.5 读日历时钟子程序流程 .38 4.6 程序清单 .39 致谢及参考文献 .47 nts nts 8 第三章 硬件设计 3.1 计量功能 3.1.1 单片机 AT89C51的应用 外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。出租车计价器有一个传感器输入信号,传感器接在出租车的软轴上,信号以脉冲方式输出,当车轮每转动一周,便发出 10个脉冲给传感器,传感器输出信号接在单片机的 T1(定时器 1外部时间计数 输入端),由寄存器记录脉冲次数,再通过程序折合成行车里程及车资。有关程序与数据都存入了 EEPROM中。 本设计采用单片机 A T 89C51 ,它 是由美国生产的至今为止世界上最新型的高性能八位单片机。 1 特点 AT89C51与 MCS251 系列的单片机在指令系统和引脚上完全兼容 ; 片内有 4k 字节在线可重复编程快擦写程序存储器 ; 全静态工作 , 工作范围 : 0Hz 24MHz; 三级程序存储器加密 ; 128 8 位内部 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 系列单片机的所 nts 9 有优点。 128 8 位内部 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 (复位控制 ) ; 图 3-1 nts 10 3) 电源及时钟 : CCC、 V SS; XTAL 1, XTAL 2 4 操作方法 1) 程序存储器加密 A T 89C51 芯片程序存储器有三级硬件加密 , 能够有效地保证系统不被仿制和软件不被 复制 , 加密等级设置如表 2。 U(unprogrammed) P (programmed) 2) 工作模式 A T 89C51 有间歇和 掉电两种工作模式。间歇模式是由软件来设置的 , 当外围器件仍然处于工作状态时 , CPU 可根据工作情况适时地进入睡眠状态 , 内部 RAM 和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。 nts 11 图 3-2 nts 12 掉电模式是 VCC电压低于电源下限 , 振荡器停振 , CPU 停止执行指令。该芯片内 RAM和特殊功能寄存器值保持不变 , 直到掉电模式被终止。只有 V CC电压恢复到正常工作范围而且在振荡器稳定振荡后 , 通过硬件复位掉电模式可被终止。 3) 典型应用 A T 89C51 固化与擦 除操作典型接法如图 3-2 所示。 3.1.2 DS1302在出租车计价器中的应用 1 DS1302 简介 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 结构框图 nts 13 图 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 引脚图 nts 14 数据,若有额外的 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 所示 ) ,其波 形 nts 15 已 发生了畸变。对此 ,在相连处加入 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 显示部分 计价器除了四屏显示外还采用指示灯进行状态显示,包括白天、夜间、 往返 。驱动器采用 MAX7219 芯片 ,它 是一个专用的八位 LED 显示驱动串行接口, 是微处理图 3-5 DS1302 与 AT89C51 的接口电路 nts 16 器和共阴极七段 八位 LED 显示、图条 /柱图显示或 64 点阵显示接口的小 型串行输入 /输 出芯片。片内包括 BCD 译码器、多 路扫描控制器、字和位驱动器和 8 8 静态 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:串行数据输入端; DIG0 DIG7: LED 位线; LOAD:数据装载信号输入端; SEGA SEGG, SEGDp:段码输出端; ISET:硬件亮度调节端; DOUT:串行数据输出端; CLK:移位脉冲输入端; V+:正电源; GND:地 3 MAX7219 内部组成结构 MAX7219 组成如图 3-7 所示。各部分作用是: 16 位地址 /数据移位寄存器接 收串行数据,实现串 /并变换。 16 位数据含义如下: D7 D0:写入内部 RAM 和功能寄存器的数据; D8 D11:内部 RAM 和功能寄存器地址; D12 D15:无定义。 地址译码器是一个 4 16 线译码器,用于选择 数据存放单元,在 LOAD 信号作用下将接收 数据送入指定单元;八字节双端口静态存储器存放接收数据和提供动态显示数据; B 译码和不译码电路对 RAM 数据进行 BCD 译码或直接送显示;段码电流参考电路、亮度脉冲产生调制器实现对显示器的亮 度控制, 段码电流参考电路由硬件调节显 nts 17 示 器亮度; 动态扫描控制器实现由硬件控制动态扫 描显示。 LED 段 /位驱动器提供显示器的一段和一位点亮时 的电流。 各内部功能寄存器含义如下: ( 1)停机寄存器(地址 0CH):当 D0=0 时, MAX721 处于停机状态;当 D0=1 时,处于正常工 作状态。 ( 2)显示测试寄存器(地址 0FH):当 D0=0 时, MAX7219 按设定模式正常工作;当 D0=1 时, 处于测试状态。在该状态下,不管 MAX7219 处于 什么模式,全部 LED 将按最大亮度显示。 ( 3)亮度寄存器(地址 0AH):亮度可以用硬 件和软件两种方法调节。亮度 寄存器中的 D0 D3 位可以控制 LED 显示器的亮度。 图 3-6 MAX7219 引脚图 图 3-7 MAX7219 组成框图 nts 18 ( 4)扫描界限寄存器(地址 0BH):该寄存器 中 D0 D3 位数据设定值为 07H,设定值表示显 示器动态扫描个数位 1 8。 ( 5)译码方式寄存器(地址 09H):该寄存器 的 8 位二进制数的各位分别控制8 个 LED 显示器的 译码方式。当高电平时,选择 BCD-B 译码模式, 当低电平时选择不译码模式(即送来数据为字型 码)。 ( 6)内部 RAM 地址 01 08H 分别对应于 DIG0 DIG7。 3.2.2 MAX7219 应用电路 乘客上车后,倒下空车牌,计价器进入重车状态 ,此时金额屏显示 起租价 5.00元( 5位) ,单价屏显示当前单价 ( 3位) ,计程屏显示当前计程公里 ( 4位) ,计时屏显示当前时间 。 1 MAX7219 驱动 8 位以下 LED 显示器 MAX7219 在驱动 8 位以下 LED 显示器时,它 的 DIN、 CLK、 LOAD 端分别接单片机 P0 P3 口 中的任意三条口线,注意在三条线上对地应接几十 至几百 pF 电容。在 P0 口作为 DIN、 CLK、 LOAD 信号线时还应接 10k 左右的上拉电阻。在显 示器 与微处理器连接线较长时还应考虑干扰的影响。 MAX7219 和单片机的连接如图3-8 所示。 相应的程序设计如下: 图 3-8 8 位 LED 显示驱动电路 nts 19 nts 20 2 MAX7219 驱动 8 位以上 LED 显示器 一片 MAX7219 最多能驱动 8 位 LED 显示器, 由于本设计需要显示 16 位,所以 需要两片 MAX7219 级连来实现,图 3-9为 16 位 LED 显示驱动器电路。 3.3 采用 AT93C46串行 EEPROM的防作弊方法 为防止不法分子的作弊行为, 例如在起程距离较长时,司机已经预先置入几公里的里程,这时乘客坐不到 2.5km时计价器已经开始变价。因此需将一些初始植,如昼夜单价、起租价、起租里程、等待时间等参数固定。 本设计采用 AT93C46来固化这些参数。 AT93C46 是 Atmel 公司生产的低功耗、低电压、电可擦除、可编程只读存储器 , 采用 CMOS 工艺技术制造并带有 3 线串行接口 ,其容量分别为 1kB/ 4kB ,可重复写 100 万图 3-9 16位 LED显示驱动电路 nts 21 次 ,数据可保存 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的上升沿 ,操作码、地址和数据位进入器件或从器件输出。在发送序列时 ,CLK最好不停止 ,以防止读 / 写数据的错误。 DI: 串行数据输入。可在 CLK的同步下输入开始位、操作码、地址位和数据位。 DO:串行数据输出。在 CLK同步下读周期时 ,用于输出数据 ; 而在地址 擦 / 写周期或芯片擦 / 写周期时 ,该端用于提供忙 / 闲信息。 VSS:接地。 VCC:接 + 5V电源。 ORG: 存贮器构造配置端。该端接 VCC 或悬空时 ,输出为 16 位 ;接 GND 时 ,输出为 8 位。 NC:空脚 ,不连接。 3.3.2 指令及时序 AT93C46的指令如表 1 所列 , 各指令的具体含义如下 : (1) 擦 / 写允许指令 ( EWEN) 由于在上电复位后 , AT93C46 首先将处于擦 / 写不允许状态。故该指令必须在所有编程模式前执行 ,一旦该指令执行后 ,只要外部没有断电就可以对芯片 进行编程。 (2) 地址擦指令 ( ERASE) 图 3-10 AT93C46 管 脚图 nts 22 该指令用于强迫指定地址中所有数据位都为“ 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的上升沿触发 ,且需经过一段时间方可稳定。为防止出错 , 建议在读指令结束后 , 再输出 2 3 个 CLK脉冲。 (5) 芯片擦指令 ( ERAL) 该指令可将整个存贮器阵列置为 1 , 其它功能与地址擦指令相同。 (6) 芯片写指令 (WRAL) 该指令可将命令中指定的数据写入整个存贮器阵列 , 其它功能与地址写指令相同。该指令周期所花费时间的最大值为 30ms。 (7) 擦 / 写禁止指令 ( EWDS) 使用该指令可对写入的数据进行保护 , 操作步骤与擦 / 写允许指令相同。 3.3.3 AT93C46 与 AT89C51的连接 串行 EEPROM芯片 AT93C46的 CS(片选信号)、 SK(串行时钟信号)、 DI(串行数据输入)、 DO(串行数据输出)分别接在单片机 AT89C51的 P2.6 P2.3。 3.4 打印功能 打印 功能主要打印发票,内容包括车牌号、单价、起租价、行车里程、车资及日期等数据。 单向数据传输线 DB0 DB7接单片机的 P0.0 P0.7,数据选通信号 STB接WR,忙线“ BUSY”接 P2.6。当单片机通过 WR 给出打印命令后,打印机便根据 P0.0nts 23 P0.7给出的信息打印出相应的数据。 TP P-40A是一种单片机控制的微型打印机。 3.4.1 TP P-40A主要性能、接口要求及时序 ( 1) TP P-40A主要技术性能 a.采用单片机控制,具有 2KB控打程序标准的 Centronic并行接口。 b.具有较丰富的打印命令,命令代码均为单字节,格式简单。 c.可产生全部标准的 ASCII 代码字符,以及 128 个非标准字符和图符。有 16 个代码字符( 6 7点阵)可由用户通过程序自行定义。并可通过命令用此 16个代码字符去更换任何驻留代码字型,以便用于多种文字的打印。 d.可打印出 8 240 点阵的图样(汉字或图案点阵)。代码字符和点阵图样可在一行中混合打印。 e.字符、图符和点阵图可以在宽和高的方向放大为 2、 3、 4倍。 f.每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0 256间任选 。 g.带有水平和垂直制表命令,便于打印表格。 h.具有重复打印同一字符命令,以减少输送代码的数量。 i.带有命令格式的检错功能。当输入错误命令时,打印机立即打出错误信息代码。 ( 2)接口信号 TP P-40A 微型打印机与单片机间是通过一条 20 芯扁平电缆及插件相连。打印机有一个 20线扁平插座 ,其中: DB0DB7:数据线,单向传输,由单片机输入给打印机。 STB( STROBE):数据选痛信号。在该信号的上升沿时,数据线上的 8位并行数据被打印机读入机内锁存。 BUSY:打印机“忙”状态信号。当该信号 有效时(高电平)时,表示打印机正忙于处理数据。此时,单片机不得使 STB 信号有效,向打印机送入新的数据。 ACK:打印机的应答信号。低电平有效,表示打印机已取走数据线上的数据。 ERR:“出错”信号。当送入打印机的命令格式出错时,打印机立即打印一行出错信息,提示出错。在打印出错信息之前,该信号线出现一个负脉冲,脉冲宽度为 30 s。 3.4.2 字符代码及打印命令 TP P-40A的全部代码共 256个,其中 00H无效。代码 01H0FH 为打印命令;代码 10H1FH为用户自定义代码;代码 20H7FH 为标 准 ASCII代码,代码 80HFFH为非ASCII代码 ,其中包括少量汉字、希腊字母、块图图符和一些特殊字符。 TP P-16A 的有效代码表与 TP P-40A 的不同之处仅在于 01H0FH 中的指令代码,前者为 16个,后者为 12个,功能也不同。 ( 1)字符代码 nts 24 TP P-40A 中全部字符代码为 10HFFH,回车换行代码 0DH 全字符串的结束符。但当输入代码满 40 个时,打印机自动回车。 ( 2)打印命令 打印命令由一个字和若干个参数字节组成,命令结束符为 0DH,除下述表中代码为 06H的命令必须用它外,均可省略。 TP P-40A命令代码及功能见下表: 命令代码 命令功能 命令代码 命令功能 01H 打印字符、图等,增宽( 1,2、 3、 4) 08H 垂直(制表)跳行 02H 打印字符、图等,增宽( 1,2、 3、 4) 09H 恢复 ASVII代码和清输入缓冲区命令 03H 打印字符、图等,宽和高同时增加( 1, 2、 3、 4) 0AH 一个空位后回车换行 04H 字符行间距更换 /定义 0BH0CH 无效 05H 用户自定义字符点阵 0DH 回车换行 /命令结束 06H 驻留代码字符点阵式样更换 0EH 重复打印同一字符命令 07H 水平(制表)跳区 0FH 打印位点阵图命令 ( 3)命令非法时的出错显示 当向 TPP-40A 输入非法命令时,打印机即打印出错代码。其意义为: 图 3-11 TPP-40A 与 AT89C51 数据总线接口 WR P2.7 RD P2.6 AT89C51 P0.7 . . . . . . P0.0 GND STB BUSY 打印机 TPP-40A DB7 . . . . . . DB0 GND + + nts 25 ERROR0:放大系数出界,即放大倍数是 1, 2, 3 和 4 以外的数字。此错误出现在 01H,02H, 03H 命令时。 ERROR1:定义代码非法。用户自定义代码不是 10H1FH。 ERROR2:非法换码命令。换码命令只能用 10H1FH 去代换驻留字符代码,否则为非法。 ERROR3:绘图命令错误。指定图形字节数为 0 或大 于 240。 ERROR4:垂直制表命令错误。指定空行数为零。 3.4.3. TPP-40A 与 AT89C51 单片机接口设计 TPP-40A 是 智能 打印机,起控制电路由单片机构成,在输入电路中有锁存器,在输出 电路中有三态门控制。因此可以直接与单片机相接。 TPP-40A 没有读、写信号,只有握手线 STB、 BUSY,其接口电路如下 (图 3-11) : 用一根地址线(图中选用 A15)来控制写选通信号 STB 和读取 BUSY 状态。 3.5 出租车计价器加密传感器的设计 为了对出租车计价进行有效地管理 ,在分析现有出租车计价传感器漏洞的基础上 ,采用 PIC12C508A和 PIC12CE518A 单片机提出了出租车计价加密传感器的加密模型和系统结构模型 ,完成了密码传感器系统中加密器和解密器软硬件系统设计 . 加密后的密 码传感器提高了出租车计价器计费的准确性和安全性 ,解决了现有出租车计价器可靠性不高和难以实现统一管理的难题 . 3.5.1 通出租车计价传感器漏洞分析 出租车计价器现在普遍采用电子传感器方式 ,传感器首先接收车的运行信息 ,然后送给计价器 ,计价器自动计算并显示里程数和车费 ;电子传感器方式计价器由传感器和计价器两部分组成 ,其组成框图如图 3-12 所示 . 电子传感器用来监测出租车的运行状态 ,车行进一定的距离传感器就向计价器发出一个符合要求的脉冲 ,微机控制部分对传感器发来的脉冲进行计数 ,然后转换成里程和车费送显示 部分进行显示 ,功能键是用来完成计价器设置时间、日期及历史记录查询等功能 . 图 3-12 电子式计价器组成框图 nts 26 从电子式计价器原理可看出 ,只要向计价器发出符合要求的脉冲计价器便计费 ,不同的计价器对脉冲的要求不同 ,不同点包括正负脉冲、脉冲宽度和电平类型 . 现有技术模拟实现符合计价器要求的脉冲并不难 ,使得电子式计价器出现漏洞 ,降低了计价器计费的准确性和安全性 . 3.5.2 建立密码传感器加密算法模型 通过以上分析不难看出 ,导致电子式计价器出现漏洞的根本原因是传感器发出的计数脉冲没有加密 ,以至于使用者可以自行增加或处理脉冲 ,借此来达到增加 计费的目的 . 加密传感器的基本思想就是先对计数脉冲加密 ,使计费脉冲以密文方式传输 ,最后解密为明文脉冲 ,传送到计价器计费 ,其原理框图如图 3-13 所示 . 常用的加密算法有对称加密和非对称加密 .对称加密中的序列密码 ( stream cipher) 、分组密码 (block cipher) 以其简捷、快速、容易标准化等特点 ,成为移动通信等实时加密领域的主流算法 .非对称密码加密以其安全性高等特点为身份认证、数据的保密性、数据的完整性提供了有力的支持 ,但该算法速度较慢 ,对系统资源有一定要求 .由于该系统要求实 时加密 ,硬件系统资源非常有限 ,而且加密要求只是把单一的脉冲信号转换成密文脉冲信号 ,所以采用对称加密 . 在所有的对称加密算法中最简单的一种就是“置换表”算法 . 在“置换表”中每一个不同的数据信号脉冲 C 对应着“置换表”中的一个偏移量 offset ,偏移量 offset 所对应的值就是这个数据信号所对应的密文 M. 加密程序和解密程序都需要“置换表” .这种加密算法比较简单 ,加密解密速度都很快 ,为满足系统需要 ,我们设计了如下加密算法 : 首先把电子传感器的每个计数脉冲 C 按照“置换表”转换为一个 n 位的二进制数M ,然后按规定的协议将 M发出 ,送给解码器 . M既为该传感器送出的密文 ,不同的传感器发出不同的密文 . 当解码器接接收到加密器发送的密文 M 后 , 首先和解码器固有的密码 P 比较 ,如果 P = M ,解码器认为传感器发的信号有效 ,然后向计价器发出一个计数脉冲 ;如果 P M ,解码器认为传感器发的信号非法 ,不向计价器发出计数脉冲 ,计价器不计费 . 由于加密器和解码器都有自己固有的密码 ,只有 P = M 时计价器方可计数 ,因此出租车司机自己更换传感器后计价器根本不计费 . 计量部门可以用专用编程器改变加图 3-13 密码传感器组成框图 nts 27 密协议中的“置换表” ,改变 加密器和解码器的固有密码 . 3.5.3 加密传感器系统设计 1 系统组成与工作原理 加密传感器系统主要有加密器、解密器和密码写入器 3 大部分组成 ,系统组成框图如图 3-14 所示 。 1) 加密器 接收霍尔元件发送的脉冲信号 ,检测到这一变化后发出密码送解码器 ,每个加密器有一个固定密码存放于程序存储器中 . 2) 密码写入器 为方便计量部门使用密码传感器而设计了修改解码器固有密码的专门装置 .首先 ,读出密码写入器小数字键上设定的密码 ,当检测到按键按下时 ,便向解码器发送一组同步字符给解码器 ,最后 ,把密码按 照规定的协议发送给解码器 . 3) 解码器 可解密加密器发送的密码 ,产生计数脉冲 ,也可以接收密码写入器的新密码 ,从而改变解码器固有密码 .解码器接收到数字信号时 ,首先判断接收的是加密器发送的信号还是密码写入器发送的信号 ,它是通过判断接收的第一组数据是否为同步字符来完成的 ,若是同步字符 ,则认为是密码写入器发送的信号 , 接收后面的数据并保存到E2PROM中 ,作为新的固有密码 . 若不是同步字符 ,则读出自己 E2PROM中的固有密码 ,与之相比较 ,若相等 ,则发送一个 2 ms 的高电平的计数脉冲给计价器 ,否则不发送该脉冲 . 2 单片机选型 在密码传感器中 ,为了保证其安全性 ,加密器必须与霍尔元件封装于一起 ,这样 ,加密器可占用空间很小 ,且环境温度比较高 (夏季达 110 ) ,因此 ,要求单片机具有外围元件少、工作温度高和体积小等特点 . 解码器对单片机要求除具有加密器的单片机特点外 ,还应具有 E2PROM存储单元 ,实现解码器固有密码的修改和保存 ,以方便计量部门给加密器和解密器的配对 . 密码写入器为计量部门专用设备 ,用来修改解码器的固有密码 ,对单片机无特殊要求 ,以价格低廉为主要目标 . 美国 Microchip 公司生产的 8 位单片 PIC12C508A和 PIC12CE518A 型产品 ,仅有 8 图 3-14 加密传感器系统组成框图 nts 28 个引脚 ,且具有低功耗、多功能、高性能、体积小和售价低等特点 . 在本系统中 ,加密器、解密器和密码写入器分别采用了 PIC12C508A、 PIC12CE518A
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。