USB(Universal Serial Bus)是一种目前通用的串行总线技术,它是通过PCI总线和PC的内部系统数据线连接,实现数据的传送,具有即插即用的功能,支持热拔插,设备间线缆的长度可达5 m左右。
USB接口信号线有4条线,两条是电源线与地线(Vbus与GND),两条是以差分方式产生的信号线(D+与D-),从而实现了主机系统与USB设备之间的数据通信,见图1。
图1 USB通信数据流
USB总线121技术是基于分组交换方式的总线通信。首先把数据分成若干块,然后在每块数据前添加上同步信号、包标识,后面添加上CRC校验,形成USB封包。USB总线通信使用一种差分的输出驱动器来控制数据信号在USB电缆上的发送,即通过控制D+和D一线从空闲态到相反的逻辑电平,实现源端口的包发送。包发送结束后,D+和D-上的输出驱动器均处于高阻抗状态。
2 USB通信系统设计
2.1 硬件设计
USB通信接口是连接Pc机和汽车尾气检测仪内嵌单片机通信的桥梁,目前采用USB接口芯片来实现PC机与单片机AT89C5 1之间的连接是一种比较好的方法。
由于汽车尾气检测系统内嵌单片机是采用串口(TXD、RXD)以RS232方式进行通信的,所以USB芯片与单片机AT89C51之间的连接方式也必须是RS232串口通信方式。因此,本文采用PROLIFIC公司推出的可实现USB接口转RS232串口的转换芯片PL一2303HX。根据汽车尾气检测仪USB通信系统设计要求,USB通信接口电路设计如图2所示。
图2 USB通信接口
USB插头与USB芯片间的连接通过USB—D+、USB—D一、GND和VO一3.3这4个端点实现,由于USB芯片PL2303HX支持类RS232接口,含有全双工发送和接收(RXD、TXD)串口,所以,PL2303HX芯片与单片机AT89C51的RS232串口间直接可以用3根线RXD、TXD、GND连接,即USB芯片PL2303HX的RXD、TXD和GND分别与单片机AT89C51的TXD、RXD和GND连接,双方都可发送和接收。
2.2 软件设计
2.2.1 通信方式
本文USB通信系统采用异步半双工通信方式,即通信的某一方发送和接收交替进行。通信的数据格式为每帧10位,包括1位起始位、8位数据位和1位停止位,见图3。
图3 字节传输序列
这里设置单片机串行口采用T作模式l,为10位异步通信,片内定时器Tl作为波特率发生器,波特率为2400bps;由串行口控制寄存器SCON的工作模式选择位SM0、SMI,分别设为0和l,从而设置其串行口为模式l;当定时器/计数器Tl控制寄存器TMOD中C/T=0和M1M0=10时,AT89C51定时器/计数器Tl为定时器模式,设置为方式2。作为波特率发生器,其波特率表示为:
则:定时器Tl的初值应设置为11Ll=THI=F3H,另外应禁止定时器Tl中断,以免因定时器T1溢出而产生不必要的中断。