USB RS-232转换卡设计

发布者:幸福之舞最新更新时间:2011-04-12 手机看文章 扫描二维码
随时随地手机看文章

与RS 232总线的数据传输速率相比,USB的传输速率高达480 Mb/s,因此很多计算机的RS 232串行接口都被USB接口所替换,但是很多仪器仪表、控制终端、远程终端等设备的接口还是沿用RS 232。为解决两个接口之间的转换,设计并研制了USB-RS 232接口转换卡。从USB和RS 232通信协议出发,详细介绍USB-RS 232转换卡的设计原理,并以CH341T芯片为例,设计并制作了USB-RS 232转换卡。利用研制的USB-RS 232转换卡连接具有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 硬件电路设计

  设计USB转RS 232串口的硬件连接图如图3所示。USB总线包括一对5 V电源线和一对数据信号线。通常,+5 V电源线为红色;接地线为黑色;D+信号线为绿色;D-信号线为白色。USB总线提供的电源电流最大可以达到500 mA,CH341T芯片可以直接使用USB总线提供的5 V电源。C3和C4是高频瓷片电容,C3容量一般为4 700 pF~0.02 μF,用于CH341T内部电源节点的退耦;G容量为0.1μF,用于外部电源的退耦。晶振X1、电容C1和C2用于时钟振荡电路。X1的频率是12 MHz,C1和C2是容量为15~30 pF的高频瓷片电容。MAX232提供电平转换。

  

 

  2.3 驱动程序

  连接USB-RS 232转换卡的计算机,必须安装CH341T的驱动程序CH341SER.EXE,当模块首次连接到计算机的USB端口时,计算机提示找到新硬件,按照提示完成驱动程序的安装。

  安装完驱动程序后,可以通过计算机的USB接口提供仿真串口。在逻辑功能方面,使用方法与普通计算机串口完全相同,支持大多数常用的串口监控及调试工具程序,应用程序可以不做任何修改,可以像存取一个标准的物理串口一样访问这个虚拟串口,在保持软硬件兼容的前提下,将原串口产品转换为USB接口。

3 板卡性能测试方法及其结果

 

  3.1 设备驱动层通信功能测试

  USB-RS 232转换卡的性能需要借助可靠的工具来进行测试。利用CH341芯片制造商提供的USB测试程序进行调试,点击搜索CH341串口,出现CH341的串口号为“COM3”的字样(因为目前电脑上已经有两个串口),这说明USB-RS 232设备已经成功连接到计算机上。

  3.2 应用层通信功能测试

  本文利用具有RS 232接口的网络型温湿度传感器来进行测试,该传感器通过本文研制的USB-RS 232转换卡连接,该卡一端接传感器,一端接计算机。在图4下设置串口的端口号以及帧格式,保证传感器与计算机的协议设置是一致的。设置好相关参数后,把传感器接到转换卡上,运行传感器测试程序后出现如图5的画面,经长时间拷机后传感器工作正常,这说明RS 232接口的外设(温湿度传感器)经过USB-RS 232转换卡可以在USB接口上使用,也说明该转换卡实现了RS 232协议到USB协议的转换。

  

 

  4 使用和调试中的关键问题

  4.1 操作系统识剐不到转换卡

  USB-RS 232转换卡是即插即用的USB设备,正在使用转换卡进行数据传输的过程中,不可以将其物理断开,必须在应用程序关闭该串口后,转换卡才可以从USB插座中拔出。如果在应用程序使用转换卡的过程中,转换卡从USB插座中断开,那么应用程序应该尽快关闭转换卡并退出(关闭及退出可能需要数秒时间)。如果在转换卡通信过程中发生错误,极有可能是转换卡已经物理断开,所以在检测到错误后建议关闭转换卡,稍等2 s后再重新打开串口通信。采用设备事件通知的方法可以及时了解转换卡的连接与断开,从而使串口应用程序能够及时打开和关闭转换卡。

  4.2 传输数据丢失

  如果通信波特率较高,建议设置较大的缓冲区,尤其在windows 98/ME下,线程调度能力和USB实时性都比Windows 2000/XP差,如果串口接收缓冲区较小,那么在通信波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。由于底层的USB是将多个字节组成数据包后安插到各个1 ms帧中进行传输的,所以有可能将串口收发的相邻的两个字节实际分割在两个USB数据包,甚至两个USB帧中,在最坏情况下这两个字节在时间上有可能相隔1 ms甚至2 ms。

  5 结语

  本文详细介绍了USB-RS 232转换卡的设计原理,成功设计了以CH341T为例的USB-RS 232转换卡。经过调试和试用,转换卡运行正常,成功实现了RS 232接口设备与USB总线的数据传输。转换卡体积小,成本低。使用方便,性能可靠,传统的RS 232串口设备无需做任何改动即可通过USB口使用。该转换卡顺应市场需要,可以广泛应用在日常生活与生产实践中,如:笔记本电脑(大多数新一代笔记本电脑往往没有RS232的9针串口,却有4个USB口)、Modem、数码相机、条码扫描器、刷卡器、磁卡读写器、手机传输线、掌上电脑、标签打印机、POS系统、工业自动化控制机械、安全门禁系统、数据采集器等。通过USB-RS 232转换卡,这些设备都能在RS 232串口和USB口之间非常容易地建立可靠的连接,通过利用USB接口即插即用和热插拔的能力给这些RS 232串口设备提供非常容易使用的环境,并大大提高传输速率。

引用地址:USB RS-232转换卡设计

上一篇:基于微控制器应用的EMC设计
下一篇:基于LZW算法的数据无损压缩硬件实现

小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved