文治洪,胡文东,李晓京,王 涛
(第四军医大学 航空航天医学系,陕西 西安 710032)
RS232接口作为标准外设广泛应用于单片机和嵌入式系统,通用串行总线USB(Universal Serial Bus)通信技术以其易插拔、速度快、即插即用和独立供电等特点,已得到更广泛的应用[1]。
为了解决嵌入式系统与个人计算机USB接口之间的通讯问题,硬件厂商提供各种不同的解决方案。一种方案是使用带USB接口的单片机和独立的USB接口器件,如Cypress公司的 CY7C68013A(EZ-USB FX2L)[2]和 Philips公司的PIUSBD12。这种方案需开发人员了解和掌握USB的接口原理、协议,设计USB设备驱动程序,而USB接口协议的复杂性给开发人员带来诸多不便,开发周期长。另一种方案是使用RS232-USB接口转换器,这些器件在其内部完成RS232到USB接口协议的转换,开发人员完全不用更改或只需更改很少的PC端应用程序就可完成与USB接口的通讯任务,如 Prolific公司的 PL2303、Silicon Labs公司的CP2102型RS232-USB接口转换器。这类器件价格成本低,开发简单[3-4]。
利用RS232-USB接口转换器完成通讯任务,既具有即插即用的优点,又避免繁琐的USB协议和USB驱动,开发方便。这里介绍RS232-USB接口转换器PL-2303的特点与原理,并介绍利用该器件实现单片机与个人计算机之间的通讯接口设计。
PL2303是Prolific公司生产的一种高度集成的RS232-USB接口转换器[5],可提供一个RS232全双工异步串行通信装置与USB功能接口便利联接的解决方案。该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几只电容就可实现USB信号与RS232信号的转换,能够方便嵌入到手持设备。该器件作为USB/RS232双向转换器,一方面从主机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面从RS232外设接收数据转换为USB数据格式传送回主机。这些工作全部由器件自动完成,开发者无需考虑固件设计。
PL2303的高兼容驱动可在大多操作系统上模拟成传统COM端口,并允许基于COM端口应用可方便地转换成USB接口应用,通讯波特率高达6 Mb/s。在工作模式和休眠模式时都具有功耗低,是嵌入式系统手持设备的理想选择。该器件具有以下特征:完全兼容USB1.1协议;可调节的3~5 V输出电压,满足3 V、3.3 V和5 V不同应用需求;支持完整的RS232接口,可编程设置的波特率:75 b/s~6 Mb/s,并为外部串行接口提供电源;512字节可调的双向数据缓存;支持默认的ROM和外部EEPROM存储设备配置信息,具有I2C总线接口,支持从外部MODEM信号远程唤醒;支持Windows98,Windows2000,WindowsXP等操作系统;28引脚的SOIC封装。
PL2303可提供PL2303X、PL2303HX两种版本。PL2303X用于3.3 V电压的应用,PL2303HX用于以前使用PL2303H(5 V)设计应用的升级,而两者驱动程序相同。
PL2303X的主要引脚功能描述如下:
VDD_325(PIN4):RS232供电电源。 必须与 RS232接口使用同一电源。
TXD(PIN1),RXD(PIN5):RS232 的数据输出/输入。
DTR_N,RTS_N,RI_N,DSR_N,DCD_N,CTS_N:RS232 的6个控制引脚,分别为:DTR数据终端准备好,RTS发送请求,RI响铃指示器,DSR数据准备好,DCD数据载波检测,CTS线路畅通。
VDD_33,GND:3.3 V 电源和接地。
SHTD_N:关闭 RS232收发器。
DP,DM:USB D+信号和 USB D-信号。
VO_33:3.3 V输出电源。
RESET_N:系统复位。
VDD_5:USB的5 V电源。
将 PL2303 的 TXD(PIN1)和 RXD(PIN5)分别与单片机上的串口(TXD和RXD)连接,DM、DP与计算机的USB接口连接,再加上其他外围元件,就可实现单片机与计算机之间的通讯。PL2303支持默认ROM和外部EEPROM 2种不同的存储方法,可存储包括 PID(Product ID),VID(Vendor ID)和器件收发器控制和状态等信息,如果不希望采用默认的设置,则需外扩一个EEPROM(如ST公司的M24C02)。
心理测试数据采集系统由计算机屏幕显示题目,单片机采集被试的按键反应数据,并通过连线将数据传送到计算机中,测试完成后再进行分析,并报告测试结果。系统共有36个按键盒,每个键盒上有0~9共10个按键,单片机通过扫描方式,可以同时测试36人,大大提高测试效率。传统的心理测试系统[6]采用串口方式通讯。为了提高系统的适应性,并尽量减少对原系统程序的改动,这里选用USB转UART桥接器PL2303X进行硬件设计。其系统结构如图1所示。
图1 系统结构原理
选用TI公司的MSP430F149作为控制器。MSP430系列单片机是一种超低功耗的混合模拟控制器[7],具有多种省电模式,灵活的时钟源可使器件达到最低功耗,特别适合于电池供电的手持设备。
MSP430F149提供2个内置的串口通信模块,可方便地与PL2303连接。采用两线连接串口方式,分别将MSP430F149的P3.4(UTXD0),P3.5(URXD0)与 PL2303 的 P1(TXD),P5(RXD)连接,PL2303 中的串行接口控制信号 RI,DSR,DCD,CTS 和GP0通过220 kΩ电阻连接至电源。PL2303的电源接0.1 μF的去耦电容,复位引脚上拉到电源端。5 V的锁相环电源电压VDD_5与地之间接一只0.1 μF的去耦电容。GP1通过220 kΩ电阻接地,指示系统为轻载状态,提供100 mA的电流。3.3 V输出为MSP430F149提供电源。图2为PL2303电路连接。USB接口电路按照标准电路设计相应元件。
图2 PL2303接口电路
该系统设计的接口程序包括单片机通讯设置,USB设备驱动,以及PC应用等3部分程序,这三者互相配合实现可靠、快速的数据传输。
1)单片机通讯设置程序 单片机程序实际上是完成单片机对串口的初始化,即对波特率,数据位,校验位,有无奇偶校验等通信协议的设计及单片机串行通信功能控制器的设置。该设计以串口参数波特率115 200,数据位8,停止位1,校验位0。
2)USB设备驱动程序 在PC机上安装Prolific公司免费提供的USB设备驱动程序。驱动安装完后,PC系统出现1个“Prolific USB-to-Serial Comm Port”自动增加一个 COM口,如COM3,COM4 等。
3)PC应用程序 用户按照传统的串行接口控制方式来使用该模拟的“COM口”。使用Delphi语言调用RS232的控件(MSCOMM32)或API函数,实现与单片机的通讯。串口通讯参数应与单片机所设置参数一致。当设备插入不同的USB接口时,计算机认为一个新设备,需重新安装设备驱动程序。当插入计算机不同USB接口时,虚拟的"COM口"不同,因此,需要计算机程序自动识别是在哪一个串口插入的设备。
介绍采用PL2303设计的串口转接USB接口的方法,实现在PC机的USB接口与单片机之间的通信。对产品设计者来说,PC机和单片机均是按照标准的RS232串行通信进行处理,对于早期设计的串口通讯程序无需重新设计,就可将之前采用RS232通讯的产品升级至USB接口,并且设备具有允许设备热拔,即插即用的功能,同时无需外接供电电源,便于产品设计和用户使用,扩展产品的使用范围。但这种设计具有设计简单,开发周期短,原RS232接口设备设计改动方便的特点,为手持设备的通讯接口设计提供了较好的参考价值。
[1]马 伟.计算机USB系统原理及其主/从机设计[M].北京:北京航空航天大学出版社,2004.
[2]谢 宏,徐 雪.EZ-USB FX2接口在生物电信号数据采集系统中的应用[J].电子设计工程,2009,17(7):1-3.
[3]姚渭箐,周 伟.基于FT2232H的USB-RS232转换模块设计[J].电子设计工程,2009,17(7):4-6.
[4]于 波,胡 毅,文江涛.基于CP2102的USB接口设计[J].国外电子测量技术,2007(3):39-42.
[5]Prolific Technology Inc.PL2303 DataSheet[EB/OL].2004.http://www.prolific.com.tw/support/files//IO%20Cable/PL-2303X/Documents/Datasheet/ds_pl2303XA_v15F.pdf.
[6]胡文东,王 涛,李晓京,等.计算机多媒体群体心理测量系统研制[J].第四军医大学学报,1999,20(3): 225-227.
[7]Teaxs Instrument,Inc.MSP430 MCU Datasheet[EB/OL].2006.http://focus.ti.com/lit/ds/symlink/msp430f149.pdf.