摘要:介绍USB接口在串行通信中的应用,讨论USB接口同RS-232接口的转换以及USB接口modem的简化设计,并给出了实际中的产品样图。
1 USB接口简介
USB即通用串行总线,可以实现热插拔,采用菊花链结构,最多可以同时连接127台设备,由总线提供电源,并有检错、纠错功能以保证数据正确传输。
USB在PC机上应用时,PC机的操作系统需要支持USB协议,此时PC机上的软件包括两部分:USB初始化软件和运行部分。前者对外设进行构造并定义一个唯一的标识,这就是所谓的列举过程,以获得每个外设的描述表。
另外USB主机端软件分层为多种外设的类,如大存储器外设、通讯外设、音频外设、人机接口外设等。
USB数据线传送差分信号,所有通信由根集线器初始化,并由外部集线器复制,其连接为点到点,采用半双工。USB数据线上无时钟信号,故节点间为异步通讯,总线上所有外设的额定通信速率为12MHz,外设采用过采样方式从总线上接收信号。接收器依赖于有规律的信号变化以保持与发送器的同步,USB规格书中采用不归零翻转实现其数据线的发送编码。
2 USB到RS-232转换器 RS-232是个流行的接口。在MS-DOS中,四个串行接口称为COM1、COM2、COM3和COM4,而约大部分windows应用程序最多可以有4个外设,但是如果用户要扩充更多外设时,就必须要用插入式串行卡或者外部开关盒实现。
RS-232点对点连接,一个串口只能连接一个外设。而USB是一种多点、高速的连接方式,采用集线器能实现更多的连接。USB接口的基本部分是串行接口引擎SIE,SIE从USB收发器中接收数据位,转化为有效字节传送给SIE接口;反之,SIE接口也可以接收字节转化为串行位送到USB总线。
图1为转换器加串行外设示意图。在转换器和外设接收器端各有一个微控制器,实际上这两个微控制器可以合并,可采用MCS-51系列控制器或者I2C总线微控制器实现。
图2为使用外部USB连接的微控制器示意图,通用微控制器选用MCS-51,USB外围芯片是Philips的PDIUSBD11,该芯片带有I2C接口,其SIE接口包括一个中断和一个较大寄存器,用于对I2C总线的存取。当一个数据包来到时,PDIUSBD11将其中断线拉低,微控制器转和中断处理程序,首先读取PDIUSBD11的中断状态寄存器,然后再读取其他寄存器的值,以获得数据包类型和包中数据。每次传送完一个数据包均会产生一次中断请求,中断处理程序监视控制序列并检测所有错误。
3 用USB连接56kbps modem设计
USB协议中包括一个通信类,定义了一种结构,以囊括所有用于远程通信服务和中速网络服务设备。这样,外设就可以将自身标识为一个通信类的外设。
3.1 传统的modem结构
传统modem一般包括:
·微控制器:以对控制码译码(AT命令集)
·数字信号处理器(DSP):对信号调制和解调
·模拟调制和解调电路
·数据存取管理电路
·隔离器:将高电压或高电流隔离电话线
3.2 简化设计
由于PC机串口的最高速率为115.2kbps,这样在图3的结构会形成一个速度瓶颈。RS-232系统包括2个串行信号路径,其方向相反,分别用于传输命令和数据,而命令和状态必须与数据交织在一起;而USB支持分离的命令和数据通道并允许独立的状态报告。
在Windows操作系统中,通信层的UniModem驱动程序(图4所示)可以实现modem命令集。微软的VCOMM口驱动软件可以重新定位原先面向串行口的输出,将之直接传给Windows外设驱动模块(WDM-Windows Device Driver Model)的类驱动器,由WDM类驱动器将输出送到USB外设。而采用相反的顺序则可将由USB外设的输入送至Uni-modem驱动器并最终回到应用程序。
另外,由于PC主机有足够的处理能力,在处理用户应用程序的同时,完全可以实现实时信号处理,并且Intel在某处理器中保留了MMX指令集。该指令集有DSP算法的优点,同时又是通过“软”处理实现,且相对于物理的DSP芯片,该指令集的信号处理算法可以方便地升级。
通过“软处理”,传统的调制解调器中只保留了调制级、信号隔离器和一个数据存取管理器。图5即为简化了的设计,带有一个变压器用作隔离器。
本文讨论了USB接口技术在串行通信中的应用,通过在外设中加入一个微控制器,并利用几个Windows支持的通信类,简化了传统USB接口modem的设计。文中给出了一个实际modem的简化设计,利用LabView软件和VB语言可以对该modem进行仿真模拟。