《基于USB接口的出租车检测系统的设计与实现_黄再银》由会员分享,可在线阅读,更多相关《基于USB接口的出租车检测系统的设计与实现_黄再银(4页珍藏版)》请在金锄头文库上搜索。
1、E m b e d d e d S y s t e m s76 2004.4 / 下半月 嵌入式系统电子产品世界前言随着出租车行业的发展, 对出租车管理的要求也越来越高。 为了防止出租车司机作弊或出租车计费器的计费出现偏差, 需要经常对出租车进行检测, 检测的内容主要是其中计费器的计费准确性 ; 这些检测包括年检、 半年检测、 季度检测及维修后检测等。 对检测系统的要求主要是 : 速度快, 精度高, 误差尽可能小 ; 成本低, 可靠性高 ; 操作简单、 方便 ; 具有数据库处理能力, 能根据车牌号或出租车计费器编号查询该出租车以前的检测情况等相关记录。 由于 PC 机在各个领域中应用的日益普及
2、和深入, 利用 PC 机来设计出租车检测系统是很自然的事 ; PC 机采用相关软件 ( 如 VC 、VB 、 Delphi 等 ) , 通过相关端口 ( 如并行口、 串行口、 USB 口等 ) 来完成各种命令和数据的发送和接收, 最终完成检测工作。 因 PC 机的 USB 口具有下述特点, 使用方便, 在 USB 系统中, 所有的 USB 设备可以随时接入和拔离系统, USB 的驱动程序和应用软件可以自动启动, USB 设备单独使用自己的保留中断, 也不涉及 IRQ 冲突问题, 不会同其它设备争用 PC 机的有限资源 ; 速度快, USBVer1.1 标准有全速 12Mb/s 和低速 1.5M
3、b/s 两种模式, USB2.0 提供高达 480Mb/s 的数据传输率 ; 此外, USB口还具有可靠性高、 成本低、 功耗小等优点。 因此, 利用 USB 口来设计出租车检测系统, 不仅具有实时性好, 而且可靠性高、 成本低, 操作简单、 方便。系统组成出租车检测系统的组成方框图如图一所示, 由图可知, 该系统由带 USB接口的 PC 机、 USB 协议转换电路、 单片机、 D/A 转换电路、 变频器、 马达、滚轮器及传感器等组成。工作原理PC 机和单片机之间命令与数据的传送在软件的控制下, PC 机通过 USB接口和单片机之间传送各种命令和数据, 为使传送能顺利进行, 在 USB 接口和
4、单片机之间必须有协议转换电路,该电路通常由专用集成电路芯片来完成。 所要传送的命令主要是 PC 机传送给单片机有关控制马达速度和滚轮器升降的命令及单片机传送给 PC 机有关检测开始和检测过程中出租车计费器的跳表命令 ; 所要传送的数据主要是单片机传送给 PC 机有关传感器产生的脉冲数。滚轮器的控制滚轮器是用来固定出租车后轮并使其空转的机械设备, 通常将其安装在地下, 由马达带动其转动。 单片机接收 PC 机发来的控制马达转速或滚轮器升降的命令, 将此命令通过 D/A 转换成模拟信号, 然后再送给变频器, 最后由变频器控制马达的转速或滚轮器的升降。 滚轮器上装有一个 100:1 的传感器,基于
5、USB 接口的出租车检测系统的设计与实现The Design and Realization of Taxi-Meter Check System Based on USB Interface解放军广州通信学院 黄再银摘 要 : 本文介绍了基于 USB 接口的出租车检测系统的硬件和软件设计方法 ; 简述了协议转换芯片 FT245BM 和 D/A 转换器 AD7398 的特点和工作原理,讨论了单片机 DS87C520 与 D/A 转换器 AD7398 的接口方法。关键词 : 出租车 ; 检测系统 ; USB 接口 ; 协议转换 ; 单片机 ; 转换器图 1 出租车检测系统的组成方框图 2004.
6、4 / 下半月 77E mb e d d e d S ys t e ms嵌入式系统电子产品世界即滚轮器旋转一周 ( 周长为 1 米 ) , 传感器产生 100 个脉冲, 单片机通过中断方式接收传感器产生的脉冲数并将此脉冲数送给 PC 机。检测原理当要检测某台出租车时, 首先将该车的首程公里、 续程公里、 首程车资、 续程车资等计费资料输入给 PC 机。按 PC 键盘的 PgUp 键使滚轮器升起, 然后将出租车开到滚轮器上, 再按 PgDn键使滚轮器下降, 从而将出租车的后轮固定在滚轮器上。 通过 PC 机的控制即可使滚轮器加速、 减速或达到指定速度, PC 机屏幕上将会显示速度的大小, 通常检
7、测时将速度设定为 50 公里 /小时。 出租车计费器的检测是自动完成的, 按下计费器上的 “空 / 往 / 停” 键即开始检测, 此时计费器开始计程并送出一个检测开始信号给单片机, 单片机再将该信号通过 USB 接口送给 PC机, 同时将内部相关的存储器清零。 单片机每隔 20mS 将传感器产生的脉冲数传送给 PC 机, 供 PC 机计算速度与里程。计费器每次跳表时产生一个跳表信号,此信号也通过单片机送给 PC 机, 供 PC机计算计费器车资并显示在屏幕上 ;同时 PC 机通过收到的脉冲数量及事先输入的计费资料可计算出实际检测得到的车资。 PC 机屏幕将显示车速、 计费里程、 计费器车资和实际
8、检测车资,以及两种车资的差值, 检测结果一目了然。系统硬件结构协议转换电路协议转换电路主要由专用集成电路 FT245BM 组成, 它的主要功能是进行 USB 和并行 I/O 口之间的协议转换。该芯片由 FTDI 公司推出, 使用简单、 性能卓越。 芯片一方面可从 PC 机接收USB 数据, 并将其转换为并行 I/O 口的数据流格式发送给单片机 ; 另一方面单片机可通过并行 I/O 口将数据转换为USB 的数据格式传回主机。 中间的转换工作全部由芯片自动完成。 FT245BM内部主要由 USB 收发器、 串行接口引擎(SIE) 、 USB 协议引擎和先进先出 (FIFO)控制器等组成, 图 2
9、所示为其内部功能方框图。USB 收发器提供 USB1.1 和 USB2.0协议的全速物理接口到 USB 总线 ; 串行接口引擎主要用于完成 USB 数据的串 /并双向转换, 并按照 USB1.1 或 USB2.0规范来完成 USB 数据流的位填充, 以及循环冗余校验码的产生和检错 ; USB 协议引擎管理来自 USB 设备控制端口的数据流 ; FIFO 控制器处理外部接口和收发缓冲区间的数据转换。FIFO 控制器通过 8 根数据线D0D7 和读写控制线来完成与单片机之间的数据传送。 FT245BM 内含两个FIFO 数据缓冲区, 一个是 128 字节的接收缓冲区, 另一个是 384 字节的发送
10、缓冲区, 它们均用于 USB 数据与并行 I/O口数据之间的交换。 另外, FT245BM 还包括 1 个内置的 3.3V 的稳压器, 1 个6MHz 的振荡器和 8 倍频的时钟倍频器, 一个 USB 锁相环和 EEPROM 接口。FT245BM 采用 32 脚的 PQFP 封装, 体积小巧, 只占用很小的线路板空间, 易于和外部设备做在同一块线路板上。单片机由于 USB 的数据传输率很高, 普通单片机无法胜任, 因而该系统选用具有高速数据传输性能的单片机DS87C520 ; 该芯片是美信公司生产的一种新型高速全静态 CMOS 单片机, 它与 8051 单片机的引脚和指令集完全兼容。 DS87
11、C520 的处理器核经过重新设计, 一个机器周期只占 4 个时钟周期,该芯片的最高时钟频率为 33MHz , 执行一个单字节指令的速度最快可达到120 纳秒。 除此之外, 它还具有两个新型全双工串行口, 13 个中断, 双数据指针, 电源电压降低时有自动复位功能及中断功能, 可编程看门狗定时器等。双数据指针使数据块传送速度得到提高, DPTR0(82H , 83H) 和 8051 的 DPTR用法相同, 用于访问片外 RAM 或外部设备, DPTR1(84H , 85H) 是新增的数据指针。 DPTR 选择位 (DPS) 通过设置SFR 的寄存器 86H 的低位来实现, 通过使用 INC 指令
12、, 就可以切换 DPTR 的选择。 所有与 DPTR 有关的指令都使用当前选择的 DPTR , 因此, 只需要用一条指令就可从源地址切换到目的地址。DS87C520 与 8051 单片机最主要的区别图 2 FT245BM 功能方框图E mb e d d e d S ys t e ms78 2004.4 / 下半月 嵌入式系统电子产品世界就是速度的提高, 这样, 本系统的设计选择该单片机就能满足单片机通过FT245BM 协议转换芯片与 USB 进行高速通信的需要。D/A 转换电路D/A 转换电路的主要作用是将单片机输出的数字信号转换成模拟信号,以便控制变频器从而实现对马达转速和滚轮器升降的控制。
13、 该电路主要由具有 12 位分辨率的串行输入 DAC 芯片AD7398 组成, 该 DAC 芯片的主要特点如下 : 它采用电压输出方式, 可用单电源 (3V 或 5V) 或双电源 ( 5V) ; 它可由外部参考电压 VREF 来决定满刻度输出电压, VREF 的有效范围值为VSS - VDD , 因而可在较宽的范围内选择满刻度输出电压 ; 其内部的双缓冲串行数据接口提供了高速、 三线、 SPI和与单片机兼容的输入功能, 因而可通过串行数据输入引脚 (SDI) 、 时钟输入引脚 (CLK) 和片选引脚 (CS) 的共同控制来输入数据 ; 该芯片还设有一个外部异步复位引脚 (RS) , 利用该引脚
14、可在系统启动时将所有寄存器清零, 并可利用其可编程控制的电压关闭模式来减少功耗。AD7398 与单片机 DS87C520 的接口可通过一组串行总线来实现, 传输通道需三线接口, 即一个时钟信号、 一个数据信号和一个同步信号。 在时钟脉冲的上升沿, AD7398 的 16 位数据字有效, 当所有数据输入后, DAC 可自动完成更新。 图 3 给出了 AD7398 与单片机 DS87C520 之间的串行接口电路图。单片机的 TXD 引脚用来驱动 AD7398 的时钟脉冲, 而 RXD 引脚则用于驱动DAC 串行数据线, P33 是一个可编程引脚, 用于在串行位中驱动 CS 。 当数据送入DAC 后
15、, P33 应为逻辑低电平, RXD 中的数据在 TXD 下降沿变为有效位。 在 16 位数据输入 DAC 期间,P33 应为低电平。AD7398 的 LDAC 引脚可由单片机的可编程引脚 P34 来控制。使用 AD7398应注意以下几点 : 数据串行输入时, 高位在前, 低位在后 ; 每次输入 2 个字节, 数据串行输入时, 片选脚CS 应保持低电平, 从而保证串行寄存器的更新。 为了保证良好的模拟特性, AD7398 电源电压的旁路电容应选择 0.01 F 的陶瓷电容和 1 F 10 F 的钽电容相并联。 VDD/VSS 应由系统模拟电源供电, 外部参考电压也应由相同的电源供电, 否则当参
16、考电压超出 VDD/VSS 和 VREF 时可能发生锁存现象。 如果 VDD/VSS 和 VREF 由不同的电源供电, 则应确保 VDD/VSS 在VREF 之前供电, 并在 VREF 之后断电。系统软件设计系统软件由 PC 机软件和单片机软件两部分组成, 而 PC 软件又由初始化模块、 主控模块、 显示模块、 数据库模块、 与单片机通信模块等几个部分组成, PC 机软件采用 VB6.0 编写。 该软件采用模块化设计方法, 使得程序结构清晰, 便于系统功能的升级, 程序方框图如图四所示。 图中主控模块控制该系统的所有功能。显示模块主要是在 PC 机屏幕上显示出租车检测时需要显示的各种信息如车速、 计费里程、 车资等, 利用 VB6.0可进行很好的界面设计。 数据库模块主要是储存出租车的车牌号、 计费器编号、 每次的检测结果和检测日期等信息, 同时具有查询和打印功能。PC