RS232到FPGA的通用实现——串行总线转换器外文翻译资料

 2022-11-28 15:53:03

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


RS232到FPGA的通用实现——串行总线转换器

摘要:通用串行总线(USB)是一种新型的个人计算机互连协议,用于开发外围设备的连接设备对计算机更方便、更高效。它降低了终端用户的成本,提高了通信速度,同时支持多个设备(127)RS232的同时附着,另一方面,被设计为单设备连接,但它是最常用的通信协议之一。一个嵌入式转换器从RS232到USB是非常有趣的,因为它将允许基于串行设备体验USB优势而不发生重大变化。这项工作描述了这种转换器的规格和发展,它也是一个有用的指南,以实现其他USB设备。实现的主要模块有USB设备、UART(RS232协议引擎)和接口FIFO逻辑。USB设备块必须知道如何检测和响应在USB端口上的事件,并且它必须为设备提供一种存储和发送所接收的数据的方式,UART包括通过RS232协议处理串行通信的不同块。有一组控制寄存器来控制数据传输。接口FIFO逻辑具有FIFO,以桥接USB和RS232协议之间的数据速率差异。

Ⅰ 介绍

本文介绍了一种从RS232到USB(通用串行总线)转换器的规范和实现。该转换器负责从外围设备的串行接口接收数据并将其发送到计算机的USB接口。以同样的方式,它必须能够从PC的USB接口发送数据到设备。面临的问题、旧的标准刺激了一种新的通信协议的发展,它应该更容易使用,更快,更高效。RS232是基于1:1的串行通信的定义。RS232定义了接口层,而不是应用层。为了在特定情况下使用RS232,应用程序专用软件必须写在连接RS232电缆两端的设备上。RS232端口可以直接由应用程序访问,也可以通过操作系统中的设备驱动程序访问。
USB是由工业和电信部门领导开发的一种新的个人计算机互连标准,实现了即插即用技术。它允许多个设备连接(最多127个)范围。使用设备附件到PCS.USB是一种低成本、宽松的解决方案,并支持传输速率达到12MbS,理解低速和中速数据转换器从串行接口到USB将使串行通信端口向其他应用程序开放,允许使用的设备。使用USB接口进行通信的串行接口。另一方面,USB是一种总线系统,它允许一个以上的外围设备通过一个USB端口连接到主机。集线器可以在USB链中使用,以延长电缆长度,并允许更多的设备连接到相同的USB端口。该标准不仅描述了接口的物理特性,而且还描述了要使用的协议。由于复杂的USB协议要求,计算机上的USB端口的通信总是通过设备驱动程序来执行。这样,我们不局限于一个串行端口的可用性,我们可以体验USB的优势。使用转换器允许我们保持设备不变,使转换器负责处理协议之间的差异。这项工作是基于协议引擎,可以通过与PC机在串行接口上交换数据来管理。大多数时候,这种通信不是经常进行的,因为它必须有一个可供使用的串行端口。本文介绍了转换器的实现,重点介绍了开发过程,它理解了设备本身和PC端软件将与之通信。这种方法可以扩展到其他设备。我们首先介绍了一些重要的USB标准概念。然后,我们定义了系统规范,分为主机和设备的要求。之后,我们描述了硬件(UART)的特点和软件的设计和实现。最后,对取得的成果和今后的工作进行了探讨。

Ⅱ 问题描述

USB规范描述了总线属性、协议定义、编程接口以及设计和构建符合USB标准的系统和外围设备所需的其他特征。我们简要解释我们项目中使用的特性。

USB接口不提供这种灵活性。然而,当通过USB到RS232转换器使用RS232端口时,这种灵活性应该以某种方式存在。因此,通过USB端口使用RS232端口,第二设备驱动程序是必要的,它模拟RS232 UART,但通过USB通信。USB作为主从总线,USB主机是主机,设备是奴隶。USB系统所需的唯一系统资源是USB系统软件所使用的存储器位置和USB主机控制器所使用的存储器和/或I/O地址空间和IRQ线。USB设备可以是功能(显示器,鼠标等)或集线器,用于连接总线中的其他设备。它们可以被实现为低速或高速设备。低速装置限制在最大1.5 Mb/s的速率。每个设备都有多个单独的寄存器,称为端点,这些端点由设备驱动程序间接访问以进行数据交换。每个端点支持特定的传输特性,具有唯一的地址和方向。一种特殊情况是端点0,它用于控制操作,并且可以进行双向传输。它必须存在于所有设备中。根据设备的特性,可以定义其他类型的端点。USB主机验证新设备的连接和分离,启动枚举过程并管理所有以下事务。它负责安装设备驱动程序(基于设备描述符提供的信息),自动重新配置系统(热附件)并收集每个设备的统计和状态。另一方面,USB是一种总线系统,它允许一个以上的外围设备通过一个USB端口连接到主机。集线器可以在USB链中使用,以延长电缆长度,并允许更多的设备连接到相同的USB端口。该标准不仅描述了接口的物理特性,而且还描述了要使用的协议。由于复杂的USB协议要求,计算机上的USB端口的通信总是通过设备驱动程序来执行。设备的描述符指定USB设备的属性和特性,并描述设备通信要求(端点描述符)。USB主机使用这些信息来配置设备,找到它的驱动程序,并访问它。具有相似功能的设备被分组到类(1, 2)中,以便共享共同特征,甚至使用相同的设备驱动程序。每个类可以定义它们自己的描述符(类特定描述符),例如,HID(人机接口设备)类描述符和报表描述符。HID类由人们用来控制计算机系统的设备组成。它定义了一种描述具有特定通信要求的HID设备的结构。根据转换器的特性,它可以被实现为使用已经开发的HID驱动器的HID设备。HID设备的描述符必须支持端点中的中断和
固件还必须包含定义用于发送和接收的设备数据的格式的报表描述符。

Ⅲ 通信流程

USB是一个共享总线,许多设备可能同时使用它。设备使用基于令牌的协议共享带宽,并由主机命令。USB通信是基于以规则的间隔传输数据的称为帧。一个帧由一个或多个事务组成,这些事务必须在1毫秒的时间内执行。USB数据传输通常是由USB设备驱动程序发起的,当它需要与它的设备通信时。它提供一个存储缓冲器,用于将数据存储到USB设备或从USB设备传输。USB驱动程序提供USB设备驱动程序和USB主机控制器之间的接口,将传输请求转换为USB事务,符合带宽要求和协议结构。其中一些传输由大量数据组成,需要分割成若干事务。主机控制器基于传输描述符生成事务,该描述符描述了多个设备请求之间的帧共享。当一个事务被发送到总线时,所有的设备都会看到它。每个事务都从确定其类型和端点地址的数据包开始。USB驱动程序控制这个寻址方案。在设备内部,USB设备层理解实际的USB通信机制和传输特性。USB逻辑设备实现包括给定功能接口的端点集合,该端点可以由其相应的USB客户端操作。

Ⅳ 硬件描述

对于具有高I/O要求的低速应用来说,这是一种低成本的解决方案。物理上安装在计算机中的RS232端口通常由三个电源供电:5伏用于UART逻辑,12伏和12伏输出。
司机。然而USB仅提供一个5伏的电源。
一些USB到RS232转换器使用集成的DC/DC转换器来为RS232信号创建适当的电压电平,实现方式,直接使用5伏电压来驱动输出。UART具有串行接口到RS232驱动器。UART的操作由外部主机处理器控制。有一个8位数据接口与读写控制信号一起运行。时钟是由外部晶体馈送的。

家庭是USB规范(1)兼容的,支持一个地址和三个数据端点[5 ]。选择了具有三端点的UART,以便允许我们在中断之外,具有从主机(OUT)接收数据的中断输出端点。它的定义要求我们有一个奇数。
端点数除了端点0之外。当操作系统不支持中断输出端点时,该配置不能在项目开发时实现,中断中断端点在规范的后一版本中被定义。该指令集已针对USB操作进行了优化,USB控制器提供三个端点的一个USB设备地址。USB设备地址被分配给设备,并在USB枚举过程中保存在USB设备地址寄存器(7位)中。USB控制器使用专用FIFO与主机通信,每个端点一个。每个端点FIFO被实现为专用SRAM的8字节,它们的状态和控制可以使用其模式寄存器和计数寄存器来完成。

Ⅵ 软件设计和实现

转换器的发展分阶段:描述符定义。设备检测与枚举模块(请求处理)、串行数据交换模块、USB/串行模块接口重叠。USB数据交换模块(请求处理)。阶段定义并不意味着它们不能重叠。

A.数据块定义
要实现数据的主要结构由设备描述符组成,如USB规范(1)所定义的,这些描述符存储关于设备和USB通信过程的信息,主机用来识别设备及其特性。设备描述符是主机在设备附件上读取的第一个描述符。它包括主机需要的基本信息,以便从设备中检索更多的特征。根据变换器特性(7)定义其场值。为了实现一个新的设备,这些值中的一些必须在必要时重新评估和更改。转换器被定义为只使用
一个接口和两个端点(控制和中断)。中断输出端点只在HID规范的后一版本中定义。为了解决这个问题,数据包通过端点0发送到UPS,使用SET报告请求,并通过中断转移接收端点1。数据接收是通过输出报告完成的,输出报告被定义为16个8位字段,根据发送给UPS的最大命令。将数据发送到主机是通过输入报告来完成的,输入报告被定义为8, 8位字段。报表描述符定义实现设备功能的数据的大小和用途。


B.设备检测和枚举
第二阶段包括实现
使主机能够检测和枚举设备的代码。这些例程的实现基于一些示例代码〔8, 9, 10〕。在内部,我们必须有代码来访问描述符,以识别和响应主机在枚举设备时发送的请求代码。


C.发送和接收数据的过程
将数据发送到UPS的过程是通过使用端点0上的SET报告的控制传输来完成的。主机向USB设备发送请求,指示它想要发送数据。当新的数据到达端点0时,中断通知设备,相应的中断服务例程将其复制到数据缓冲器中,该数据缓冲器用于串行通信过程。从主机接收到的最大分组大小根据必须发送给函数的最大命令来定义,以允许接收任意数量的字节。在主机或控制器向总线发送数据包之后,调用这些例程。端点0 ISR接收。使用硬件流控制意味着在发送器和接收器之间必须存在更多的线路,从而导致更粗且更昂贵的电缆。因此,如果不需要在通信中获得最大性能,软件流控制是一种很好的选择。软件流控制利用了两个设备之间的数据通道,减少了带宽。带宽的减少在大多数情况下并不令人吃惊,这是不使用它的原因。首先,计算机设置它的RTS线路,以向设备发出信息。该设备检查是否有接收信息的空间,如果是,则设置CTS线来开始传输。当使用空调制解调器连接时,这有点不同。在这种情况下,有两种方法来处理这种握手。一个是,每个侧的RTS与另一个的CTS侧连接。这样,通信协议有点不同于原来的通信协议。计算机A的RTS输出表示计算机B能够接收信息,而不是像原始配置那样发送信息的请求。这种通信可以用零调制解调器电缆进行完全握手。虽然使用该电缆与设计硬件流控制的方式完全不兼容,但是如果软件被适当地设计,则它可以实现最高的可能速度,因为在RTS线路上不存在开销并在CTS线路上应答。在具有硬件流控制的零调制解调器通信的第二种情况下,软件侧看起来与原来的握手线的使用非常相似。一个设备的CTS和RTS线路彼此直接连接。这意味着,发送请求的查询本身是正确的。一旦RTS输出被设置,CTS输入将检测高逻辑值,指示允许发送信息。这意味着,如果没有进一步的检查,一旦设备请求发送,总是会发送信息。为了防止这种情况发生,在连接器上使用两个其他引脚,数据集就绪DSR和数据终端就绪DTR。这两条线指示是否连接的设备工作正常,愿意接受数据。当这些线路交叉连接(如大多数零调制解调器电缆)时,可以使用这些线路执行流量控制。如果该计算机接受传入字符,则设置DTR输出。

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[22003],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版