当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]与RS 232总线的数据传输速率相比,USB的传输速率高达480 Mb/s,因此很多计算机的RS 232串行接口都被USB接口所替换,但是很多仪器仪表、控制终端、远程终端等设备的接口还是

与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 使用和调试中的关键问题[!--empirenews.page--]

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串口设备提供非常容易使用的环境,并大大提高传输速率。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用
关闭
关闭