首页 » 科学 » 运用USB实现机械高下位机通信的设计筹划_暗记_通讯

运用USB实现机械高下位机通信的设计筹划_暗记_通讯

南宫静远 2024-11-07 11:11:55 0

扫一扫用手机浏览

文章目录 [+]

传授教化机器人的上位机(主控打算机)和下位机(运动掌握器)原来采取并行口(LPT1)的 SPP 办法进行通信。
利用 LPT1 的状态寄存器(Status Port)具有的读能力和每次传送半字节(Nibble)来实现数据的双向传送功能。
每次传送的时序(次序)由软件建立,在掌握字的折衷下按照传授教化机器人的通信协议吸收和发送数据。

目前 USB越来越遍及,正逐渐取代串口和并口在打算机接口中的地位。
为了研究 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 所示。

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 的驱动程序完成。

3、 软件构造

3.1 传授教化机器人软件构造

EDUROBOT-680-II 型传授教化机器人掌握系统的掌握软件包括下位机的底层掌握软件和上位机的上层掌握软件,它们通过 USB 端口通信。
其软件构造如图 3 所示。

上层掌握软件运行在 Windows98 平台上,它为用户供应与机器人交互的人机接口界面,完成繁芜运动掌握的数据处理和插补打算。
它由人机界面、运算插补、主控、通信四大模块构成。
通信模块能够实时地发送掌握命令给下位机并从下位机得到反馈信息,同时担保数据传输的准确性。

为了供应对 USB 的支持(为了使底层掌握系统有更好的实时性和更紧凑,下一步准备将底层掌握系统改用支持 USB 的 Windows CE、VxWorks 或嵌入式 Linux),底层掌握系统目前采取 Windows98 平台。
底层掌握软件接口收上层掌握软件的掌握命令,同时阐明并实行掌握命令。
这通过多线程实现。
任务调度和管理模块是底层掌握软件的主线程,它卖力从指令行列步队中取出指令并阐明实行。
主线程实行过程会产生一个赞助线程——通信线程。
通信线程调用通信模块的输出函数,卖力监视 USB 端口。
如果上位机传来掌握命令,则遵照传授教化机器人通信协议吸收并存入指令行列步队中。

3.2 通信模块的实现

上位机和下位机掌握软件共用相同的 PL-2301 客户驱动程序、传输模块(由 Prolific 公司供应)和通信模块。

PL-2301 客户驱动程序是范例的 WDM 驱动程序。
驱动程序屏蔽了底层的硬件细节和 USB 协议,使上层软件仅通过驱动程序接口函数就可以访问 PL-2301。
紧张的几个驱动程序接口函数是 CreateFile、WriteFile、ReadFile、DeviceIOControl。

传输模块(Transfer.dll)是驱动程序的上层模块,它通过调用驱动程序接口函数,实现了两台主机通过 PL-2301 通信的基本通信能力。
Transfer.dll 会产生一列三个线程:

(1)发送线程。
这个线程对发送要求进行排队并按先后顺序处理要求。
如果涌现缺点,则努力规复。

(2)吸收线程。
这个线程等待来自状态线程的,如果创造对方主机将要传输数据,就按照传输协议吸收数据。
吸收线程把吸收到的数据放在吸收 FIFO 缓冲器中,等待上层软件(Comm.dll)取走。
如果有缺点发生时,也会努力规复。

(3)状态线程。
这个线程监视 PL-2301 的状态旗子暗记。
如果创造有任何状态改变,它将给干系线程发或调用回调函数关照上层软件。

Transfer.dll 供应几个供上层软件(Comm.dll)调用的输出函数:

·USB_InitService调用 Transfer.dll 里的其他输出函数之间必须先调用这个函数。

·USB_OpenConnect调用此函数得到 PL-2301 的句柄。
发送和吸收数据时要用到这个句柄。

·USB_WriteConnect调用此函数向对方主机发送指定的数据。

·USB_ReadConnect调用此函数从吸收 FIFO 缓冲器中读取数据。

通信模块(Comm.dll)通过调用 Transfer.dll 供应的输出函数完成传授教化机器人掌握命令的发送和吸收。
为了折衷命令的发送和吸收,定义了套掌握字,作为上位机与下位机通信时的握手旗子暗记(与 PL-2301 的握手旗子暗记没有联系)。
上位机发送数据(掌握命令或掌握字)时,直接调用 USB-WriteConnect即可。
下位机读取数据采纳轮询办法,循环调用 USB-Read Connect扫描 USB 端口,如果有数据则吸收下来。
如果吸收到的是指令,则放入指令行列步队中,等待任务管理和调度线程取走。
图 4 是上位机发送一条命令的示意图。
有些命令须要下位机发送返回值给上位机,如读机器人状态命令 status 须要下位机发送返回值给上位机,如读机器人状态命令 status 须要下位机把机器人状态返回给上位机。
下位机发送返回值的过程与上位机发送命令的过程相似。

USB 作为一种新兴的打算机外设接口标准,其技能特点使不但能作为打算机与一样平常外设的接口,也可用于实时通信和掌握。
本文先容的用 USB 实现传授教化机器为高下位机的通信,为机器人高下位机的通信供应了一种新颖、方便和可靠的办理方案。
随着 USB2.0 的推出,其高达 480Mbps 的传输速率可知足高实时性哀求的工业设备掌握、动态图像实时传输等,为 USB 在更广阔领域的运用打下了坚实的根本。

标签:

相关文章

新型恒流元件—2835CRD_流管_电压

本恒流管采取2835支架封装,具有小尺寸,大功率特点,启动电压低2V,具有耐压高190V,负温度系数特性,采取恒流线性驱动,无EM...

科学 2025-01-13 阅读0 评论0