RS 232自1969年由美国电气工业协会(EIA)推荐以来,由于接口和通信协议比较简单,因而在计算机串行通信领域得到了广泛的应用,开发出了大量的以RS 232为接口的各类产品。但随着USB总线规范的推出,使得外设到计算机的连接更加高效、便利,功率不大的外围设备可以直接通过USB数据线供电,而不必外接电源。USB总线最大可以提供5 V/500 mA电流,并提供节约能源的挂机和唤醒模式。此外,由于USB用于上行和下行连接头的机械特性不同,还可以防止非法连接。根据USB协议,理论上最多可以同时将127个外设连接在同一台计算机上。同时基于USB的数据通信系统,可使采集系统与计算机之间的数据交换具备广泛的适用性。USB是目前计算机的标准配置,采用此方案可以使用任何一台计算机进行数据通信。但是目前仍然有许多使用RS 232串行接口的控制设备、仪器仪表、远程终端等运行在诸多应用领域中,立即将其改造为USB方式显然存在成本及实施方面的问题。为适应USB广泛流行的现实,有必要开发USB-RS 232接口转换卡,在它的支持下,这些传统的设备无须改造,即可通过其原有的RS 232接口与USB总线接口实现数据传输。
1 USB-RS 232转换卡的组成及其工作原理
1.1 组成
USB-RS 232转换卡的设计原理框图如图1所示,由USB接口模块、UART接口模块、数据缓冲区和协议控制单元组成。各部分功能如下:
USB接口模块 主要提供与USB总线的连接,它需要实现一般USB设备接口的所有功能,以实现与USB主机的数据传输。
UART接口模块 实现标准的RS 232接口的所有功能,以实现与标准RS 232接口的连接。
协议控制单元 通过接收USB接口的命令,对UART接口进行配置(如配置通信波特率、数据位、校验位、停止位、数据量控制信号等)。
数据缓冲区 用来临时保存双方数据传输过程中的数据。
1.2 工作原理
下面以计算机与外设的数据传输为例,介绍USB-RS 232转换卡的工作原理:
当USB-RS 232转换卡连接到USB总线上时,计算机检测到设备的连接后对设备进行初始化配置并启动相关的客户驱动程序;驱动程序给设备发送配置命令以设置RS 232接口的数据传输特性;最后,在数据传输时,计算机上的驱动程序首先将数据包传输给USB接口,USB接口读出实际的有效数据并保存在数据缓冲区中,UART接口则从数据缓冲区中将数据取走并发送给设备。
2 USB-RS 232转换卡的设计
2.1 协议转换模块的设计
根据原理框图,选择恰当的协议转换模块是设计该卡的关键。设计转换卡的方法有好几种:一种方法是采用通用的USB控制器,利用其内置的通用异步收发器(UART)在USB与RS 232之间进行信号转换,例如EZ-USB,PIC16C745,CY7C63001等,若没有内置UART,也可以利用通用I/O接口模拟RS 232的收发过程;另外还可以采用单独的USB接口收发器芯片,如ISP1581,PDI-USBD11/12等,但这种方法需要另配微控制器才能工作;第三种就是采用专用的USB与RS 232转换芯片,如CH341芯片,这种芯片的优点是数据接收和发送的协议转换工作全部由芯片独立完成,无需干预,也不用编写芯片的固件。本文采用CH341的简装版CH341T来设计USB-RS 232转换卡。图2是一个利用CH341T和MAX232进行USB接口设计的硬件框图。如图所示,该硬件系统由4部分组成:USB接口、CH341T、MAX232和RS 232接口。其中,USB接口用于连接USB主机,在此选用USB总线接口的A型连接头;CH341T用于完成USB接口转RS 232接口的所有硬件功能;MAX232用于完成RS 232与TLL/CMOS的电平转换;RS 232接口用于连接RS 232设备。根据实际需要,选择目前广泛应用的DB9连接器。
2.2 硬件电路设计