硬件部分.doc

DZ224多功能出租车计价器

收藏

压缩包内文档预览:(预览前20页/共26页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:511810    类型:共享资源    大小:770.54KB    格式:RAR    上传时间:2015-11-11 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
毕业设计
资源描述:
DZ224多功能出租车计价器,毕业设计
内容简介:
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 和 INTER8031 单片机 . 3 加密器设计 在本系统中 ,加密器固有密码用 5 位十进制数表示 ,每位数字按脉冲方式发送 ,0 发送 10 个脉冲 ,1 至 9 发送的脉冲数与其值相等 ,脉冲格式如图 3-15 ,每个脉冲低电平的时间是 10 s ,高电平的时间是 15 s ,周期为 25 s ,发送一个数所用的时间 小于 255 s. 加密器工作程序框图如图 3-16. 加密器中的核心部件为 12C508A ,电路原理图如图 3-17 所示 ,910 为霍尔元件产生计数脉冲 ,PIC12C508A 单片机接收到计数脉冲后首先进行加密 ,然后将密码发送给解码器 . 4 解码器设计 ( 1) 电路原理图 图 3-15 密码脉冲格式 图 3-16 加密器工作程序框图 nts 29 解码器电路原理如图 3-18 所示 , 主要包括光电隔离部分、 12CE518A 单片机和计数脉冲输出电路组成 . 光电隔离采用 TPL521 - 1 ,用于去干扰 ,保证系统可靠性 . 12CE518A 单片机是解码器的核心部件 ,完 成密码接收、解密、密码修改和计数脉冲输出等工作 . 计数脉冲输出电路用于 TTL 电平到 + 12 V 电平脉冲的转换 . ( 2) 固有密码的存储 串行 E2PROM是可在线电擦除和电写入的存储器 ,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点 ,而且为低电压写入 ,在单片机系统中应用十分普遍 . 单片机 PIC12CE518A内部有 16个字节的 E2PROM,CPU 和 E2PROM 采用 I2C 总线 结 构 连接 ,GP6 (SDA)和 GP7 (SCL) 分别为数据线 ,时钟线 ,无需外接 E2PROM. 基于 I2C 协议下的 E2PROM 写、读程序框图如图 3-19、 3-20 所示 , (以发送一个数据为例 ) ( 3) 密码接收 解码器工作时 ,首先读出 E2PROM 中 00H -04H 中存放的固有密码 ,分别保存在 5 个寄存器 中,然后调用接收数据子程序,接收一个数据并存如寄存器中,判断是否为同步字符, 不是同步字符 ,说明数据来自加密器 ,继续接收另外
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:DZ224多功能出租车计价器
链接地址:https://www.renrendoc.com/p-511810.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!