行雁的笔记 https://bbs.21ic.com/?49684 [收藏] [复制] [RSS]

日志

微机USB 和RS485 通讯接口的软硬件设计

已有 2881 次阅读2007-3-31 09:35 |个人分类:通讯技术|系统分类:通信网络| USB, RS485

莫登耀,廖昕,张阿卜
(厦门大学自动化系,福建厦门361005)



摘要: 文章使用最新的器件CP2101 桥接器作为核心,加上UART 和RS485 的转换芯片MAX1483 和一些附加电路IC实现了USB 和RS485 转换器的硬件电路,介绍了作为USB 和UART 桥接器的新器件CP2101 的功能和用法,设计了在微机平台上与转换器进行通讯的软件.
关键词: USB ;RS485 ;通讯接口;现场总线;SCADA

 

1  串行数据通讯
       在微机领域中,USB 是最流行的串行数据总线,而在工业控制领域中,RS485 无疑是目前最流行不过的串行通讯总线了. 在工业应用系统中,常需要解决USB 和RS485 相互通讯的问题. 如果没有CYGNAL公司最近推出的桥接器芯片CP2101 , 设计USB 和RS485 的桥接器十分复杂[1 ] . 本文以CYGNAL 公司的桥接器芯片CP2101 为核心设计和实现了USB 和RS485 的转换器,详细地描述了USB 和RS485 转换器的电路原理,并且介绍了如何设计在微机上与转换器进行通讯的软件.
1. 1  USB 总线标准简介
       USB[2 ] 是英文Univer sal Serial Bus 的缩写,中文含义是“通用串行总线”. 它是一种应用在PC 领域的新型接口技术,在微机领域广泛应用,主要具有以下优点[3 ] :可以热插拔;携带方便;标准统一;可以连接多个
设备. USB 在PC 上往往具有多个接口,可以同时连接几个设备,如果接上一个有4 个端口的USB HUB 时,
就可以再连上4 个USB 设备,以此类推连下去.

1. 2  RS485 总线标准简介
       在工业控制数据通讯中,RS485[4 ] 通讯数据总线应用最为广泛. RS2485 采用平衡发送和差分接收,因此具有抑制共模干扰的能力. 加上总线收发器具有高灵敏度,能检测低至200 mV 的电压,故传输信号能在1 000 m 以外得到恢复. RS2485 在19k p bs 下能传输1 200 m ,用于多点互连时非常方便,可以省掉许多信号线. 应用RS2485 可以联网构成分布式系统,其允许最多并联32 台驱动器和32 台接收器. RS2485 只能半双工工作,发收不能同时进行,但它只需一对双绞线.
1. 3  USB 和RS485 的通讯
        在工业控制中,需要在PC 机上监控远程现场的运行情况. 这样,可以通过USB 接口转换成RS485 总线与远程现场的智能仪表进行数据通讯. 以下对USB和RS485 通讯接口进行设计.
2  USB 和RS485 通讯接口的结构
USB 和RS485 通讯接口的结构如图1 所示. 我们使用芯片CP2101 作为USB 与UART 的数据转换器,然后再使用MAX1483 作为UART 与RS485 总线的数据转换器.由CP2101 输出的UART 信号能够驱动集成器
件MAX1483 ,因此在CP2101 与MAX1483 之间再加上一个驱动芯片1G07 ,详细的电路原理参考图2.

图1

3  USB 和RS485 通讯接口的电路原理
        图2 中详细描绘了USB 和RS485 通讯接口的电路原理. 图中左边的CON4 是USB 总线的端子,USB采用的是4 线结构,其中1 号线是电源线VBUS ,4 号线是地线GND ,2 、3 号线分别是差模信号数据线D -和D + .


3. 1  CP2101 功能说明

       此通讯接口电路中的核心部件是CYGNAL 公司的USB 转UART 桥接器CP2101.CP2101 是一种高度集成的USB 转UART 桥接器,提供一个使用最小化的元件和PCB 空间实现UART 转USB 的简便的解决方案. 该芯片包含一个USB 2. 0 全速功能控制器、USB 收发器、振荡器、512个字节的E2 PROM 和带有调制解调器控制信号的通用异步串行数据传输端口(UART) ,所有功能都集成在一个5 mm ×5 mm ML P228 封装的IC 中. 

     CP2101 的内部结构和引脚定义分别如图3 和表2 所示. CP2101 包含一个USB 2. 0 全速功能控制器、USB 收发器、振荡器、512 个字节的E2 PROM、电压调节器和带有调制解调器控制信号的通用异步串行数据传输端口(UART) .CP2101 中的USB 功能控制器符合全速( 12Mbp s) USB2. 0 规范,并且集成了USB 收发器和片内相应的上拉电阻. USB 功能控制器管理USB 和UART间所有的数据传输以及由USB 主控制器发出的命令请求和用于控制UART 功能的命令.


       CP2101 支持USB 的终止和恢复信号功能,这样便于CP2101 器件以及外部电路的电源管理. 当在总
线上检测到终止信号时,CP2101 将进入终止模式. 在进入终止模式时,CP2101 会输出SUSPEND 和/ SUS2
PEND 信号. SUSPEND 和/ SUSPEND 在一个CP2101 复位后也会输出,直到在USB 要求的器件配置完成.
CP2101 在下述任何一种情况时退出终止模式:(1) 在USB 总线上检测到恢复信号; (2) 在总线上检测到一个USB 复位信号; (3) CP2101 设备硬件复位. 有一点要注意的是: SUSPEND 和/ SUSPEND 引脚在CP2101 复位期间均为高电平,如果此时对设计的电路有影响,可以在/ SUSPEND 引脚外接一个10 kΩ 的下拉电阻.

      CP2101 的UART 接口包括TX(发送) 和RX(接收) 数据信号以及RTS ,CTS ,DSR ,DTR ,DCD 和RI控制信号. UART 支持RTS/ CTS ,DSR/ DTR 和X2On/ X2Off 握手协议.CP2101 的UART 接口支持多种数据格式和波特率,由在微机上通过软件编程设置,所支持的数据格式和波特率如表1 所示.

      CP2101 包括一个内置的E2 PROM. 这个内置的E2 PROM 可以用于存储自定义的USB 设备供应商身
份识别( ID) ,产品代码,产品描述字符串,功率,设备版本号和序列号等数据. 注意对于连接到同一个PC 机的多个CP2101 的设备,需要惟一的序列号.



       CP2101 从USB 总线的VBUS 信号线提取电源.CP2101 片内包括一个实现5 V 转3 V 电压调节器. 电压调节器的3 V 电压从VDD 引脚输出,使得外部的设备可以从CP2101 上提取电源.

3. 2  MAX1483 功能说明
        MAX1483 是MAXIM 公司生产的低功耗RS422/ 485 与UART 转换器件. 其中的A、B 引脚接RS422/ 485 总线;DI 为UART 信号输入引脚;DE 为UART 转换RS422/ 485 信号允许引脚; RO 为RS422/ 485 信号转换UART 输出引脚;/ RE 为RS422/ 485 信号转换UART 允许引脚,低电平有效;GND 接地;VCC 接+ 5V 直流电源.

 3. 3  微机与设备通过USB 和RS485 的数据通讯
        图2 设计的USB 到RS485 的转换接口电路,只能进行主从式数据通讯,由微机作为主机,连接RS485的设备只能作为被动传输数据的从机. 当主机没有发送数据时,CP2101 的TxD 引脚处于空闲状态,为高电平,经反相后为低电平,此时接收允许信号/ RE 有效,主机可以接收数据,数据从RO 引脚输入到CP2101RxD 引脚. 当主机发送信号1 时,DE 和DI 同时为高电平,RS485 总线上的数据为信号1 ;当主机发送信号0 时,DE 和DI 同时为低电平,MAX1483 没有输出数据的信号,因而RS485 总线上的数据为信号0.
4  USB 和RS485 通讯接口软件设计
        要使微机通过设计的USB 与RS485 的转换电路与设备进行通讯,需要在微机上设计通讯软件. 微机上
应用程序访问CP2101 有两种方式:一是自行编写USB 设备驱动程序,与CP2101 通讯;二是通过CYG2NAL 公司提供的免费的驱动程序与CP2101 通讯.CYGNAL 公司提供的免费的驱动程序把连接在USB总线上的CP2101 作为一个虚拟的串口, 因此对CP2101 的操作就与操作一个串口一样简单. 应用程序访问串口也有很多种方法,可以通过MSCOMM 控件或SPCOMM 控件,也可以使用Windows 操作系统的API 来访问. 下面使用微软提供的MSCOMM 控件介绍微机与转换器通讯软件的设计.

        要使用MSCOMM 控件,则首先要安装控件. 如果在微机上安装了Micro sof t Visual Basic , 则MSCOMM 控件已经自动安装,否则需要手动安装. 在Microsof t Visual Basic 的光盘上找到MSComm32.ocx 文件, 复制到系统的System32 目录下, 然后在Windows 的“开始”菜单中的运行中键入regsvr32MSComm32. ocx ,按“确定”按钮,即完成MSCOMM控件的安装. 安装完成后,MSCOMM 控件可以在Mi2cro sof t Visual C + + 、Microsof t Visual Basic 、BorlandC+ + Builder 和Borland Delp hi 中使用.

         MSComm 控件有很多重要的属性,但首先必须熟悉几个最常用最重要的属性.
         CommPort 设置并返回通讯端口号.
         Set tings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位.
         PortOpen 设置并返回通讯端口的状态. 也可以打开和关闭端口.
        Input 从接收缓冲区返回和删除字符.

        Output 向传输缓冲区写一个字符串.
        RThreshold 触发串口OnComm 事件接收缓冲区字符数的阈值. 当接收缓冲区字符数大于这个阈值时,
将触发OnComm 事件.
        SThreshold 触发串口OnComm 事件发送缓冲区字符数的阈值. 当发送缓冲区字符数小于这个阈值时,
将触发OnComm 事件.
        在微机上安装了CYGNAL 公司为CP2101 提供的免费的驱动程序后,转换器接到微机上后将以一个虚拟的串口出现,如COM3. 这样与转换器通讯就和串口通讯的操作相同. 微机与现场仪表的通讯要根据仪表的通讯协议,目前比较流行是MODBUS 现场总线协议,笔者的SCADA 系统就是通过这种协议与现场智能仪表通讯的. 软件设计的流程大体如图4 所示.读者还可以使用Windows API 结合多线程来访问串口,这种方法会比使用MSCOMM 控件的方式复杂一点,但是也更灵活一些.


5  结束语
在工业控制中,所设计的智能现场监控设备为了实现集中的控制和管理,通常都支持RS232/ 422/ 485等远程数据通讯的功能. 我们可以通过以上介绍的USB 与RS485 转换硬件电路实现对所设计的智能设备进行升级,这样就可以支持现在微机上十分流行的USB 总线.
参考文献:
[1 ]  谭树明,张波,王克家. RS4852USB 转换器的设计与应用[J ] . 应用科技,2004 ,31 (2) :27 - 29.
[2 ]  马伟. 计算机USB 系统原理及其主从机设计[M] . 北京:北京航空航天大学出版社,2004.
[3 ]  边海龙,贾少华. USB 2. 0 设备的设计与开发[M] . 北京:人民邮电出版社,2004.

 

Design and Implementation of CommunicationBetween USB and RS485


MO Deng2yao ,L IAO Xi2xin ,ZHAN G A2bu
(Department of Automation ,Xiamen University ,Xiamen 361005 ,China)

Abstract : It has not been solved satisfactorily to communicate between USB and RS485 until the new bridge CP2101 comes out .The usage of the highly2integrated USB2to2UART Bridge Cont roller CP2101 was int roduced. The hardware interface circuit withCP2101 and MAX1483 as main core component s was implemented. At last the sof tware to communicate with bridge was designed.
Key words : USB ;RS485 ;communication interface ;field bus ;SCADA

路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

评论 (0 个评论)