黄燕妮,王少云
(1.南京航空航天大学 电子信息工程学院,江苏 南京 210016;2.南京航空航天大学 无人机研究院,江苏 南京 210016)
USB总线是一种新型的通用串行数据总线,具有传输速率高、可靠性高、即插即用、可热插拔等特点[1],成为当前PC机上最重要的外部设备扩展总线。因此,USB接口的设计成为实现计算机与外围硬件设备数据传输的工具之一。随着计算机技术的不断发展,计算机越来越少配置串口或不配置串口 (笔记本电脑更明显),然而计算机与外围硬件设备通信时,串口仍是主要接口之一,如计算机从串口的仪器仪表中获取数据、计算机对外围电路进行控制以及单片机调试等。
实现USB接口的转换有两种方案可选,一种方案是从硬件底层固件开始全面开发系统,但是该方案开发成本高、难度大,加之单片机的限制,因而很少采用;另一种方案是采用USB桥接器件[2],计算机通过USB接口虚拟一个RS232接口与传统设备器件连接,设备对计算机接口的形式为USB接口。此类器件的出现大大简化了USB接口的开发过程。本文采用第二种方案实现USB接口与RS232接口,USB接口与RS422接口的双向转换。
目前市场上的关于USB桥接芯片有多种类型,其中PROLIPIC公司的PL2303HX最便宜,但外围电路较CP2102复杂,性能相对稍差,并且焊接芯片需要一定的功底;而FTDI公司的FT8U232BM虽然性能稳定,并且驱动支持最好,焊接起来相对也比较容易,但其价格稍贵且外围电路比较复杂;美国Silicon公司的CP2102系列性能价钱介于两者之间,电路最简单,体积小,可实现单片独立工作而无须外部元件。综合考虑,文中选用CP2102系列进行电路转换。
CP2102是一种高度集成的 USB转 UART桥接器,提供一个使用最小化的元件和PCB空间实现 RS232转 USB的简便的解决方案。该芯片的内部结构及外部基本连接电路如图1所示。针对CP2102内部主要部分的功能,下面作简单的介绍。
CP2102中的USB功能控制器是一个符合USB2.0的全速电路,带有收发器和相应的片内上拉电阻器。USB功能控制器管理USB与UART间的所有数据传输,以及由USB主控制器发出的请求命令和用于控制UART功能的命令。通过USB挂起和恢复信号可支持CP2102及外部电路的电源管理。当在总线上检测到挂起信号时,CP2102将进入挂起模式。在进入挂起模式时,CP2102会发出SUSPEND和信号。同时,在CP2102复位后,CP2102也会发出该信号直到USB要求的器件配置完成。
CP2102 UART接口包括TX(发送)和RX(接收)数据信号以及 RTS、CTS、DSR、DTR、DCD 和 RI控制信号。 UART 支持RTS/CTS、DSR/DTR和X-On/X-Off握手。通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。
CP2102内部集成有1个EEPROM,用于存储由设备制造商定义的USB供应商ID﹑产品ID﹑产品说明﹑电源参数﹑器件版本号和器件序列号等信息。USB配置数据的定义是可选的。内部EEPROM是通过USB编程设置的,允许OEM的USB配置数据和序列号可以在出厂和测试时直接写入系统板上的CP2102。Cygnal提供了一个专CP2102的内部EEPROM编程设置工具,同时还提供免费的驱动Windows DLL格式的程序库。这个程序库可将EEPROM编程步骤集成到OEM在制造中进行流水线式测试和序列号的管理的自定义软件中。EEPROM的写寿命的典型值为100 000次,数据保持时间为100年。为了防止更改USB描述符,应将其锁定。
CP2101是一个可以由USB总线驱动的器件电源由 USB的VBUS信号提供。它包括一个用于实现此功能的片内5 V转3 V电压调节器。电压调节器的3 V输出被引出到VDD引脚使得外部的3 V器件可以由USB供电。 注意:CP2101的VBUS和 REGIN引脚都应该总是被连接到USB的 VBUS信号上[3]。
图1 CP2102的内部结构及外部基本连接Fig.1 The internal structure and the external basic connection of CP2102
文中采用的直流电源选用国家半导体公司生产的1A集成稳压电路LM2575-ADJ系列,实现28 V到5 V电源的转换。它内部集成了一个固定的振荡器,只须极少外围器件便可构成一种高效的稳压电路。
转换电路原理图如图2所示。该电路能可靠的实现USB接口、UART接口、RS232接口及RS422总线接口之间的转换。
图2 转换电路原理图Fig.2 Principle diagram of conversion circuit
电路中CP2102完成USB接口功能,电源来自USB接口的VBUS,用于完成到TTL电平的转换。为了增加抗干扰能力,CP2102的第9脚与第6脚VDD之间接有一个4.7 kΩ的电阻,为了确保数据收发的稳定性,避免通信过程中的干扰,在REGIN的输入端加了去耦电容0.1F与1.0F并连。RS-232接口芯片完成TTL电平到RS232电平的转换,本文选用的是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片MAX232系列,该芯片使用+5 V单电源供电,内部集成2个RS-232C驱动器,功耗低,且高集成度[4],片外最低只需4个电容即可工作。
RS422接口芯片用于完成将TTL电平转换为RS422电平,本文选用美信公司的MAX490系列。MAX490工作在5 V单电源下,是用于RS-485与RS-422通信的低功耗收发器,具有一个驱动器和一个接收器,驱动器摆率不受限制,可以实现最高2.5 Mbps的传输速率[5]。另外电路中为避免通信信号的反射和回波,在RS422的接收端并联一个120 Ω的终端电阻。
当转换器连接到USB总线后,首先必须根据操作系统安装相对应的CP2102 USB驱动程序。用户可以用内部EEPROM编程设置工具对CP2102中的EEPROM进行设置,写入用户自定义的厂商ID、产品ID、序列号、用户描述字符等数据。
如果驱动程序安装成功,USB接口转换器将向Windows操作系统暴露一个虚拟的串行接口COMX(X随计算机的配置而异),该工作由Silicon公司提供的USB驱动程序完成。这个虚拟的串行接口与真实的串行接口的工作方式完全一样,在用户的应用程序中可以像控制传统串行接口一样使用这个虚拟串口。因此,无需修改传统的通过RS232/RS422接口工作控制软件程序,就可通过USB接口转换器传输数据。本质上所有针对虚拟串口的数据通信都是以USB总线传输来完成的,但在设备一方,收发的是RS232/RS422数据[6]。
文中以CP2102为核心,设计的转换电路能方便的实现USB、RS232及RS422总线的转换,并已得到成功应用。该转换电路采用的通用转换芯片不仅价格低廉、简单实用,而且性能可靠,能满足大多数的应用场合,有较大的实用价值。
[1]余善恩,尚群立.RS232设备到USB设备的升级及USB设备的开发[J].计算机工程,2007,33(3):256-258.
YU Shan-en,SHANG Qun-li.Method of upgrade RS232 device to USB device and development of USB device[J].Computer Engineering,2007,33(3):256-258.
[2]徐民,张博.基于CP2102/CP2103的RS232接口转换为USB接口的应用设计[J].电子设计工程,2008,16(5):15-17.
XU Min,ZHANG Bo.Design of RS232/USB upgrade based on CP2102/CP2103[J].Electronic Design Engineering,2008,16(5):15-17.
[3]Silicon Laboratories.CP2102 DataSheet[EB/OL].[2010-8].http://www.silabs.com/Support%20Documents/TechnicalDocs/cp2102.pdf.
[4]胡玮,魏伟.RS232与RS485串行接口转换电路及其编程实现[J].实验科学与技术,2010,8(1):69-70.
HU Wei,WEI Wei.RS232 to RS485 serial interface conversion circuitanditsprogramme[J].ExperimentScience&Technology,2010,8(1):69-70.
[5]Maxim Integrated Products.MAX1487-MAX491 Datasheet[EB/OL][2009 -9].http://datasheets.maxim-ic.com/cn/ds/MAX1487-MAX491_cn.pdf.
[6]张博.用CP2102升级串行接口为USB接口的应用设计[J].自动化技术与应用,2009,28(6):104-106.
ZHANG Bo.RS232/USB Upgrade design with CP2102[J].Techniques of Automation and Applications,2009,28 (6):104-106.