usb通信协议_基于机器智能应用的USB实现机器上下位机通信电路方案设计

教学机器人的上位机(主控计算机)和下位机(运动控制器)原先采用并行口(LPT1)的 SPP 方式进行通信。利用 LPT1 的状态寄存器(Status Port)具有的读能力和每次传送半字节(Nibble)来实现数据的双向传送功能。每次传送的时序(次序)由软件建立,在控制字的协调下按照教学机器人的通信协议接收和发送数据。

目前 USB 越来越普及,正逐渐取代串口和并口在计算机接口中的地位。为了研究 USB 在实时通信时的性能,已将教学机器人上下位机通信改用 USB 端口实现。

1、 USB 特点及其应用

通用串行总线 USB(Universal Serial Bus)是 1994 年底由 Compaq、IBM、Microsoft 等多家公司联合提出的一种计算机接噪覆亡,目前已发展到 USB2.0。由于 USB 具有以下几方面的特点,所以迅速普及,逐渐确定了在计算机接口中的主导地位。

(1)易用性。USB 支持热插拔和即插即用。

(2)可扩展性。用户可以通过连接 USB 集线器到一个已有的端口来增加 USB 端口数量,集线器上还可以连更多的集线器。理论上可以连接 127 个外设到 USB 总线上。

(3)快速性。USB1.1 版规定了两种传输速率:低速传输和全速传输。低速传输的速率是 1.5Mbps,全速是 12Mbps。这不但远远高于传统的串口传输速率,也比并口传输快了好多倍。最近推出的 USB2.0 允许的最高传输速率高达 480Mbps。

(4)可靠性。USB 的可靠性来自硬件设计和 USB 数据传输协议两方面的保证。USB 驱动器、接收器和电缆的硬件规范消除了大多数可能引起数据错误的噪声;USB 协议使用了差错校验和数据重传机制,可以最大程度保证数据传输的准确性。

(5)内置电源。USB 总线内置电源线,可以给外设提供 5V 和最多 500mA 的电源供应,满足大部分低功耗外设的电源要求。

由于 USB 具有这些突出的优点,不但一些传统外设开始提供 USB 接口,而且大量新型外设也把 USB 接口作为首先甚至唯一的接口,如 MP3 播放器、移动硬盘等。由于 USB 的高可靠性和足够快的通信速率,USB 开始应用于工业级的实时通信和控制,例如机器人系统中示教盒与控制器的通信。本文论述的用 USB 端口实现机器人上位机与下位机的通信也属于这些方面的应用。

2、 用 USB 实现计算机双机通信

由于 USB 模型是一种 Host-Slave(主机 - 外设)主从式结构,没有办法使两台主机不通过外设而直接通过 USB 总线通信。然而可通过增加外设控制器的方法使两台主机利用它们的 USB 端口通信。每个外设控制器连接到不同的主要,并利用共享的缓冲器交换数据。Cypress 公司的 EZ-Link 和 Prolific 公司的 PL-2301 把两个外设控制器和共享缓冲区集成到一块芯片上,作为两台主机通过 USB 总线通俗诉桥梁。其它公司也提供类似的控制芯片。在教学机器人中,采用 PL-2301。

PL-2301 是台湾 Prolific 公司生产的一种全速 USB 控制芯片。PL-2301 的结构框图如图 1 所示。

4c1db08819bdec125f475c61409eb9dd.png

PL-2301 包括两套独立的 USB 控制单元。在握手信号的协调下,它们通过两个 FIFO 缓冲器无阻塞地交换数据。PL-2301 包含四个终端:缺省的控制终端(地址 00H)、中断终端(地址 81H)、块输出终端(地址 02H)、块输入终端(地址 83H)。控制传输用于在主机列举阶段完成对 PL-2301 的配置及在两台主机通信时控制 PL-2301 的握手信号;中断传输用于 PL-2301 定期(每毫秒一次)向主机报告握手信号的状态;块传输用于两台主机之间实时地交换数据。块传输支持错误检测,这对实时通信和控制很重要。控制传输被确保拥有 10%的 USB 总线带宽,中断传输和等时传输最多可以使用 90%的带宽,块传输使用剩余的最大可用带宽(最多 95%)。当总线不太忙时,由于块传输只有一个很小的协议头(13 字节),它是所有传输类型中最快的。为了确何教学机器人上下位机以最快的速度通信,满足实时性要求,最好不要在 USB 总线上挂接过多的 USB 外设。

PL-2301 除了能对 USB 标准请求做出反应外,还能对几种厂商自定义的请求做出反应。自定义请求 ClearQuickLinkFeature 和 SetQuickLinkFeature 用于控制两台主机通信时 PL-2301 的握手信号。这些握手信号是:

(1)TX_RDY 指示本地 USB 端口是否准备好传输数据的指示信号。

(2)S_EN 挂起使能信号。置位后,PL-2301 支持标准的 USB 挂起特性。

(3)RESET_O 块输出管道的复位信号,用于出现错误时复位块输出通道。

(4)RESET_IN 块输入管道的复位信号,用于出现错误时复位块输入管道。

(5)TX_REQ 块传输的请求信号。

(6)TX_C 块传输完成的指示信号。

(7)PEER_E 告诉对方本地端口是否连接好的指示信号。

在这几个握手信号的协调下,上位机和下位机可以双向通信。图 2 是主机 PC A 向 PC B 传输数据的流程图。这些底层的细节问题并不需要控制,由 PL-2301 的驱动程序完成。

8b7b680e3c04c71f5dda1c037d7be3b3.png

3、 软件结构

3.1 教学机器人软件结构

EDUROBOT-680-II 型教学机器人控制系统的控制软件包括下位机的底层控制软件和上位机的上层控制软件,它们通过 USB 端口通信。其软件结构如图 3 所示。

……

636ca3abd836568988b0fb610bfb1958.gif

加入群聊

传感器技术交流2群:954070515

射频/无线交流2群:725064756

电机控制研发交流2群:619795552

电源开发交流2群:457910972

EDA/PCB设计交流2群:743876836

物联网技术交流2群:992318230

汽车电子交流1群:238034110

嵌入式交流1群:852018713

电路城官方交流群,期待你的加入。

9c633ba13b52309fd736951c7c84dd3b.gif

点击“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值