• 沒有找到結果。

电脑通信

在文檔中 机器人设计与制作 (頁 85-90)

4、机器人控制

4.1 电脑通信

使用电脑和机器人进行通信,首先我们需要接触的部件是计算机 的接口,计算机接口属于机器人的神经通路。目前,用于计算机出输 入/输出接口有串行接口和并行接口两类。两种串口的主要区别是并 行接口一次传输多个字节,串行接口一次则只能传送一个字节。计算 机上面的串行接口有 RS-232 型(COM)接口,通用串行总线接口 (USB),IEEE 1394 接口。并行接口有 LPT 打印机接口等。各种不同 类型的接口有不同的传输速率,用于不同的通信要求。

RS-232 串口也就是 COM 接口,是采用串行通信协议的扩展接口,

数据传输率是 115kbps~230kbps。USB 是英文 Universal Serial BUS 的缩 写,是一种高速串行接口。目前电脑上面使用的 USB 接口属于 USB2.0,

最高速度可以达到 480Mbps。

在自主移动机器人中,计算机可以利用 RS232 串口与下层的控制 系统进行通信,传输所需要的控制指令并且可以接受反馈信息。但是 通常现在的笔记本都去掉了 RS232 接口,但是我们必须要用,那么我 们该怎么办呢?其实我们可以很方便的使用 USB 接口进行串口转换。

我们需要的是一根 USB 转 RS-232 串口线和其驱动程序,串口线如图

所示:

我们将串口线的 USB 端插到电脑的 USB 接口上,这时电脑会显 示无法找到驱动程序。我们必须要做的工作是安装此串口线的驱动程 序,相应的程序会在购买串口线时附带的光盘中有,也可以从相关网 站上下载。安装好驱动程序之后,我们就可以使用此串口进行串口通 信了。

查看我们使用的是几号 COM 端口的方法是:右键点击我的电脑,

选择管理,选择左侧栏的设备管理器,然后我们就可以在右边的选项 中找到我们使用的端口是几号端口了。这个号码在写串口通信程序的 时候会用到,在用串口调试软件或者进行单片机烧录的时候都要用到。

了解了 RS232 串口以及 USB 转串口的相关内容,下面我们介绍 一下电平转换的知识,将串口 RS232 输出的 EIA 电平转换成 TTL 电 平。

TTL 电平信号数据表示通常采用二进制规定,+5V 等价于逻辑

“1”,0V 等价于逻辑“0”,这被称做 TTL(Transistor-Transistor Logic 晶 体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内

部各部分之间通信的标准技术。另外,TTL 型通信大多数情况下,是 采用并行数据传输方式,而并行数据传输对于超过 10 英尺的距离就 不适合了。这是由于可靠性和成本两方面的原因。因为在并行接口中 存在着偏相和不对称的问题,这些问题对可靠性均有影响。

TTL 输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出 高电平是 3.5V,输出低电平是 0.2V。TTL 电路是电流控制器件,TTL 电路的速度快,传输延迟时间短(5-10ns),但是功耗大。TTL 器件输 出低电平要小于 0.8V,高电平要大于 2.4V。输入,低于 1.2V 就认为 是 0,高于 2.0V 就认为是 1。

RS-232-C 是 美 国 电 子 工 业 协 会 EIA ( Electronic Industry Association)制定的一种串行物理接口标准。采用 150pF/m 的通信电 缆时,最大通信距离为 15m;若每米电缆的电容量减小,通信距离可 以增加。传输距离短的另一原因是 RS-232 属单端信号传送,存在共 地噪声和不能抑制共模干扰等问题,因此一般用于 20m 以内的通信。

RS-232C 规定了自己的电气标准,由于它是在 TTL 电路之前研 制的,所以它的电平不是+5 V 和地,而是采用负逻辑,即逻辑“0”:

+5 V~+15 V;逻辑“1”:-5 V~-15 V。(相比之下,TTL 电平:逻辑

“0:<0.4V;逻辑“1”:+3 V~+5 V )。因此,RS-232C 不能和 TTL 电平直接相连,使用时必须进行电平转换,否则将使 TTL 电路烧坏,

实际应用时必须注意!

按照串行数据的同步方式,串行通信可以分为同步通信和异步通

信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收 的,异步通信是一种利用字符的再同步技术的通信方式。

同步通信的数据传输速率较高,通常可达56Mb/s或更高。同步通 信的缺点是要求发送时钟和接收时钟保持严格同步,故发送时钟除和 发送波特率保持一致外,还要求把它同时传送到接收端去。异步通信,

发送端和接收端可以有各自的时钟来控制数据的发送和接收,两个时 钟源彼此独立,互不同步。平时,发送线为高电平,每当接收端检测 到传输线上发送过来的低电平时,就知道发送端已开始发送,每当接 收端接收到字符桢中的停止位时,就知道一桢字符信息已发送完毕。

实验中采用的串口是9针串口(DB9),通信距离较近时(<12m),

可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较 远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接 法,即地、接收数据和发送数据三脚相连。

(1)DB9的常用信号脚说明

表4-1 DB9的常用信号脚及说明

针号 功能说明 缩写

1 数据载波检测 DCD

2 接收数据 RXD

3 发送数据 TXD

4 数据终端准备 DTR

5 信号地 GND

6 数据设备准备好 DSR

7 请求发送 RTS

8 清除发送 CTS

9 振铃指示 DELL

(2)RS232C串口通信接线方法(三线制)

首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:

同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串 口和多个串口相连。同一个串口的接收脚和发送脚直接用线相连 , 对9针串口,是2与3直接相连;两个不同串口(不论是同一台计算机 的两个串口或分别是不同计算机的串口)。只要记住一个原则:接收 数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地 对应相接。三线制最基本的意思就是虽然串口是有9个引脚,但是我 们只使用其中的三个,即TXD、RXD和GND,其他的引脚在串口通 信中不使用。

(3)串口调试中要注意的几点:

串口调试时,准备一个好用的调试工具,如串口调试助手、串口 精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时 至少有一端是断电的,否则串口易损坏。

(4)单工、半双工和全双工的定义

如果在通信过程的任意时刻,信息只能由一方A传到另一方B,

则称为单工。如果在任意时刻,信息既可由A传到B,又能由B传A,

但只能由一个方向上的传输存在,称为半双工传输。如果在任意时刻,

线路上存在A到B和B到A的双向信号传输,则称为全双工。

(5)奇偶校验

串行数据在传输过程中,由于干扰可能引起信息的出错,我们称 为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发 现错误后,如何消除错误,叫“纠错”。最简单的检错方法是“奇偶 校验”,即在传送字符的各位之外,再传送 1 位奇/偶校验位。可采 用奇校验或偶校验。奇偶校验能够检测出信息传输过程中的部分误码

(1 位误码能检出,2 位及 2 位以上误码不能检出),同时,它不能 纠错。在发现错误后,只能要求重发。

计算机在运动控制中承载者一定的上层决策指挥的作用,因此被 称为上位机,机器人上面的控制芯片可以接受计算机传输的指令信号,

在这里可以称为下位机。上下位机之间的通信可以按照一定的格式编 排。我们可以按照这样的格式:开始位—>数据位—>结束位。如我们 设置开始位为 B,结束位是 S,数据位为 01,22,02,55。约定数据位的 01 指机器人正向转动,22 指转动的速度;02 指机器人右轮反向转动,

55 指转动的速度。当然机器人还有其他的指令,我们可以根据实际 的要求扩大指令位的长度。当然了,这仅仅是一种指令的传输格式,

我们也可以采取其他的方式。

在文檔中 机器人设计与制作 (頁 85-90)