计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

机器人与PC机的无线通讯研究(一)-自动化毕业论文(2)

2013-08-21 01:04
导读:无线数传模块共有64个频道,最大20dBm(100mW)发射功率;工作频道可以软件最小 0.5MHz 步进调整;发射功率可以软件最小0.5dBm步进调整。发射功率和工作频

无线数传模块共有64个频道,最大20dBm(100mW)发射功率;工作频道可以软件最小 0.5MHz 步进调整;发射功率可以软件最小0.5dBm步进调整。发射功率和工作频道的调整,使我们能更好的对无线电波资源进行利用。功率的修改,可以更好的适应于不同距离的数据通信,更具有灵活性,在一些不必要的场合减少功率,可以延长使用时间。
WAP200B无线数传模块的频道数多,在同一环境下多对设备之间相互通信,互不干扰。例如在一些参数测量过程中,传感器很多,如果每一个参量都连接一根数据线,那么将会使测量很繁琐,而使用多个无线数传模块同时发数据,可以直接通过修改无线数传模块的在线接收频率来达到有选择的接收其中有用的数据。或者通过修改无线数传模块的参数,令模块以一定的时间间隔在全部或是部分频道之间循环接收,对数据进行分类、分时处理,达到提高数据处理的高效率以及提高数据的实时性。
3.1.4 WAP200B
无线数传模块引脚说明


如图3.2所示,右是WAP200B无线通讯模块的实物图、左侧是WAP200B无线通讯模块的引脚示意图,以下是关于WAP200B无线通讯模块引脚的具体说明。
VCC_CPU :MCU 电源输入, DC3.0-3.6V。
/SET:配置或者正常工作模式选择信号输入,低电平将使WAP200B进入配置模式,此时串口的数据将被视为配置指令而不会被传送出去。
TXD:串口数据从 WAP200B 输出, 3.3V/5V 兼容 TTL逻辑电平。
RXD:串口输入到 WAP200B, 3.3V/5V 兼容 TTL逻辑电平。
/RESET:复位信号输入,低电平将使 WAP200B 复位,复位脉冲低电平宽度至少需要10uS。
GND:公共地。
VCC_RF:RF 短路电源, DC3.0-3.6V。
VCC_PA:RF 功放电源, DC2.2-12V。
ANTENNA:天线接口,50 欧姆阻抗。

(转载自http://zw.NSEAC.com科教作文网)


图3.2数传模块引脚示意图
3.1.5 WAP200B
无线数传模块通讯协议


无线数传模块提供了1个9针的RS232串口。用户可用的是2、3、4、5四个接口。其中,2、3是数据的收发端;4是参数配置使能端(高电平时无线数传模块进入参数配置模式)。5是信号的接地端。
波特率:1200、2400、4800、9600、19200、38400、57600、115200bps。
串口模式:N、8、1; N、8、2; E、8、1; O、8、1。
在实现无线数据通讯时两个模块之间的通讯协议必须是一致才能正常的传输数据,否则会出现数据格式的不正确和乱码。例如使用波特率为1200bps传输数据,但是使用波特率为2400bps接收数据,这样虽然有数据的收发,WAP200B无线数传模块的信号接收端指示灯亮,但是接收的和传输的数据处理机制不同,仍然接收不到正确的数据,所以要正常通讯的前提条件就是要有一致的串口通讯协议。
在不同的设备之间除了要有一致的通讯协议,还需要数据即时传输。否则数据发送之后,过了很长一段时间才收到,这些数据就失意义。
3.2 WAP200B无线数传模块技术参数及配置方式


WAP200B无线数传模块工作电压:DC3.0-3.6V(V_PA 可以到+12V)。工作温度范围:-20℃

-+65℃。外形尺寸:40×20×7 mm(金属屏蔽壳尺寸)。模块的接口是3.3V/5V 兼容 TTL 接口。详细基本技术参数见表3.1所示。

 

PA_SET=0xFF 
CH_SET=0x27 (434.026MHz) 
Bode_SET=0x07   115200bps 
UART_Mode=0x00  N81 
Scan_Mode=0x00(自动跳频关闭) 
Group_Set=0x08(第8 组频道,418.520/426.419/434.318/442.745MHz)
串口波特率:115200bps,工作于39频道,频率434.026MHz,串口模式:校验位N,8位数据位,1位停止位;自动跳频关闭,功率为19.5dbm。 内容来自www.nseac.com
3.2.3
参数配置方式


(1)软件配置方式
通过大量实验,发现无线数传模块在发送数据时使用的串口通讯软件必须有一项是修改DTR的值,否则数据无法发送出去,而会被认为是参数配置数据;而参数配置又有一定的握手指令,所以数据传输到WAP200B无线数传模块是没有任何意义的。应用VB编写串口通讯程序时,由于不定义DTR的值,那么DTR的值为默认的True,数据不能发送出去,而只会认为是参数配置数据。所以编程时直接定义DTR的值为False,再创建一个修改DTR值的选项,用于在参数配置的时候使用。当通上电,由于软件设置了DTR的初值为False,所以WAP200B无线数传模块的参数设置功能就会失效,参数设置红灯灭,数据通过WAP200B无线数传模块正常发送。如果需要设置参数,只需用鼠标点击串口通讯软件DTR值的修改选项即可,再下发相应的参数设置数据即可。
(2)硬件配置方式
要使得无线数传模块进入参数配置模式,就是令无线数传模块DTR的值为高电平,所以需要参数配置的时候将连接DTR的接线(RS232串口的4接口)接在高电平上。因此可以用一个开关将无线数传模块串口的4接口连接到高电平上,通过开关来控制参数的设置。
参数设置的命令格式如下:
用户下发:0xAA+Command+Data0+Data1+0xBB
WAP200B应答:0xAA+0x4F

+PA_Now+CH_Now+RSSI_Now+0xBB


3.2.4
参数修改命令


WAP200B无线数传模块的参数修改说明如下:
0x40+任意值+任意值:握手指令 
0x41+0x5A+0xA5

:模组待机,待机后需要/RST引脚低电平脉冲来唤醒。                                          


0x42+任意值+CH_Now:在线配置模组当前工作频道,参数掉电不保存。
0x43+ PA_Now+任意值:在线配置模组当前发射功率,参数掉电不保存。
0x44+ Group_NoW+任意值:在线配置模组当前自动跳频频道组,参数掉电不保存。
0x45+任意值+Scan_Mode:在线配置模组当前自动跳频模式,参数掉电不保存。
0x48+Group_Set+Scan_Mode:设置上电后默认的自动跳频参数,掉电后参数保存。
0x49+PA_SET+CH_SET:设置上电后的默认工作频道、发射功率、掉电后参数保存。
0x4A +Bode_Set+UART_Mode

:设置模组的波特率和串口模式,掉电后参数保存。


0x4B+ PA_Now+CH_Now:单频发射功率测试模式。
0x4C+PA_Now+ CH_Now

:接收灵敏度测试模式,串口会返回调制频率值。


0x4F+ PA_Now+CH_Now+RSSI_Now

:正确指令的应答,PA_Now为当前发射功率,CH_Now为当前工作频道,RSSI_Now为当前信号强度。


3.2.5
参数修改表


以下是修改具体参数的十六进制指令;
波特率(冒号前面是参数值,冒号后面是修改的指令):
1200:0x00;
2400:0x01;
4800: 0x02;
9600:0x03;
19200:0x04;
38400:0x05;
57600:0x06;
115200: 0x07;
串口模式(冒号前面是参数值,冒号后面是修改的指令):
N、8、1:0x00;
N、8、2:0x01;
E、8、1:0x02;
O、8、1:0x03。
3.3 PC机与能力风暴机器人串口通讯协议简介


3.3.1
串行通讯分类


串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线 ,以每次一个二进制位移动的,他的优点是只需一对传输线进行传送信息,因此其成本低,适用于远距离通信,他的缺点是传送速度低,串行通信有异步通信和同步通信两种基本通信方式。 (科教范文网http://fw.nseac.com)
(1)同步通信
同步通信适用于传送速度高的情况,其硬件复杂,而异步通信应用于传送速度在50-192000波特之间,是比较常用的传送方式。其特点如下:
① 以数据块为单位传送数据;
② 在一次传输的数据中包含的数据较多,所以接收与发送时钟严格同步;
③ 在一个数据块内字符与字符之间无间隔。
(2)异步通信
异步通信中,数据是一帧一帧传送的,每一串行帧的数据格式由1位起始位,5-8位的数据位,1位的奇偶校验位(可省略)和1位停止位4部分组成,在串行通信前,发送方和接收方要约定具体的数据格式和波特率(通信协议)。并且在数据传输的过程中,只能有一个接收端,而如果数据需要同时被多个设备使用,就需要经过中转,没有灵活性。
异步串口通讯是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。因此,起止协议一般用在数据速率较慢的场合。
异步通讯中起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面接着是数据位来了,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的停止位或空闲位之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。一个字符接收完毕,接收设备应该继续测试传输线,监视高电平的到来和下一个字符的开始,直到全部数据传送完毕。

(科教范文网 lw.AsEac.com编辑整理)


3.3.2
能力风暴机器人采用的通讯协议


能力风暴机器人的串口通讯,采用9600bps的波特率,校验位为默认,8位数据位,1位停止位。起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或一位半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议。传送时,数据的低位在前,高位在后。
能力风暴机器人的串口通讯由于数据流量不大,所以我们可以采用异步通讯协议。
3.4 RS—232串口通讯


目前串口RS-232是PC机及通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。串口RS-232只能提供一对一的通讯。
3.4.1 RS-232
串行接口标准


数据由2脚、3脚实现接收与发送, 4脚为DTR(数据终端准备),5脚为数据的地端,6脚为数据设备准备好,7脚为请求发送,8脚为清除发送,9脚为振铃指示。
3.4.2 RS-232
串行接口工作方式


串口RS-232收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米

,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。

(转载自科教范文网http://fw.nseac.com)
3.4.3 RS-232
串口特点


RS-232串口通讯特点:单端通讯、1收、1发最大传输电缆长度50英尺,最大传输速率20Kb/S,最大驱动输出电压:+/-25V,驱动器输出信号电平:(负载最小值) +/-5V~+/-15V,驱动器输出信号电平。(空载最大值):+/-25V,驱动器负载阻抗(Ω): 3K~7K,摆率(最大值): 30V/μs,接收器输入电压范围: +/-15V,接收器输入门限:+/-3V,接收器输入电阻(Ω):3K~7K。


第四章   PC机与机器人无线数据通讯
本文应用WAP200B无线数传模块实现PC机与能力风暴机器人的无线数据通讯。

4.1 无线数传模块的安装与调试


4.1.1 WAP200B
数传模块的安装


能力风暴机器人是通过串口RS232数据线与PC机进行通讯的,数据在能力风暴机器人主板上经过MAX232芯片的电平转换,输出TTL逻辑电平,再将数据输入到CPU进行处理。在能力风暴机器人与WAP200B无线输传模块连接的时候,将模块的电源连接到能力风暴机器人的5V稳压输出;将能力风暴机器人的数据接收端连接到WAP200B无线输传模块串口的数据发送端;将能力风暴机器人的数据发送端连接到WAP200B无线输传模块串口的数据接收端。连接的原理是:能力风暴机器人与WAP200B无线输传模块之间存在数据的传输,能力风暴机器人将数据发送给串口之后,WAP200B无线输传模块再将数据接收,处理之后再通过无线电波的形式发送出去,所以要将能力风暴机器人的数据发送端连接到WAP200B无线输传模块串口的数据接收端。WAP200B无线数传模块数据发送端连接原理也是一样的。实物连接如图4.1所示。图4.1 WAP200B无线数传模块与能力风暴机器人主板连接图
在PC机与无线输传模块的连接过程,只需要连接2、3、5三根接线,只有在参数配置期间需要连接第四根接线(DTR)。如果是直接将无线数传模块与PC机相联的话,在编程过程中就需要让第四根接线悬空或者让DTR的值在数据发送过程中为低,在调制WAP200B无线数传模块的时候为高。

(转载自中国科教评价网http://www.nseac.com


4.1.2
通讯协议不一致的问题


WAP200B无线数传模块的初始通讯协议并不与能力风暴机器人一致,导致了实验初期的工作量较大。
WAP200B无线数传模块的出厂默认设置是:
波特率:115200 bps;
串口模式:校验位N,8位数据位,1位停止位。
能力风暴机器人的通讯协议为:
波特率:9600 bps;
串口模式:校验位N,8位数据位,1位停止位。
由于波特率的不同,导致无线数传模块传输数据的失真数据。在PC机上,数据以波特率9600 bps传输给无线数传模块,无线数传模块的通讯协议中的波特率是115200 bps,将9600 bps波特率的数据搭载到115200 bps波特率的数据上,数据传输就会出错。而在接收端,WAP200B无线数传模块的通讯协议中的波特率是115200 bps,能力风暴机器人通讯协议中的波特率为9600bps,通讯协议不一致,导致了能力风暴机器人可以接收数据,但接收的数据是一些乱码,没有意义。
4.1.3
通讯协议的研究与调整


在通过串口传输二进制数据10101010的时候,9600 bps波特率的数据传输速度快,高电平持续时间比4800bps波特率短,如果通讯协议不一致将会导致4800 bps波特率的数据10101010传出之后,9600bps波特率的接收设备收到的可能是1100110011001100。所以在实验过程中通过示波器观察计算机向串口发出数据时的波形是一串规则的方波,示波器显示接收端的数据也是规则的方波,但是接收设备接收到的数据并不是我们所需要的。如图4.2所示。

图4.2  相同的波形,不同波特率表示的数据示意图
经过大量的实验,经过对WAP200B无线数传模块使用手册的认真研究,了解了WAP200B无线数传模块串口通讯的握手指令。把PC机的波特率调整到115200 bps,给WAP200B无线数传模块发送握手指令,WAP200B无线数传模块反馈的参数设置信息里可以清晰的看到他的串口通讯协议类型。有了握手指令之后,再通过下发16进制的参数修改指令来修改WAP200B无线数传模块的参数特性。最后通讯协议一致的情况下,PC机与能力风暴机器人无线数据通讯畅通无阻。

(转载自科教范文网http://fw.nseac.com)

4.1.4
无线通讯的实现


通过WAP200B无线数传模块实现PC机与能力风暴机器人的通讯之后,我们就可以在PC机上进行一些操作,实现对能力风暴机器人的控制。
能力风暴机器人的软件开发系统是图形化交互式C语言(简称VJC),在VJC操作界面上进行程序编辑,再通过WAP200B无线数传模块将程序写入能力风暴机器人。我们可以定义能力风暴机器人接收到数据1,前进;接收到数据2,后退;接收到数据3,停止;接收到数据4,调整前进的速度。再通过控制界面的编辑,就可以用PC机的鼠标直接对能力风暴机器人的任何操作。
PC机对能力风暴机器人的无线数据通讯,不仅表现在给能力风暴机器人下载程序上,还应该有能力风暴机器人对PC机操作的反馈。WAP200B无线数传模块是透明的传输机制,这个机制决定了只要没有数据的发送,WAP200B无线数传模块就是一个数据的接收终端。因此WAP200B无线数传模块完全可以应用于串口RS232的数据通讯。在能力风暴机器人有需要传输数据给PC机的时候,可以通过调用相应的函数发送给PC机。
4.2 PC机对能力风暴机器人的基本控制过程


4.2.1
能力风暴机器人数据通讯原理


(1)数据发送
实现了PC机对能力风暴机器人的无线通讯,我们就可以通过PC机给能力风暴机器人发送相应的程序或数据,以达到对能力风暴机器人的基本控制。在能力风暴机器人的程序设计过程当中,如果需要给能力风暴机器人通讯,那么在通讯之前就需要先调用开始通讯的子函数,让能力风暴机器人停止与主机的通讯,打开串口,发送数据。如图4.3是能力风暴机器人的数据发送流程图设计。
图4.3能力风暴机器人发送程序
(2)数据接收
WAP200B无线数传模块提供透明的数据接口,能适应任何标准或非标准的用户协议。自动过滤掉空中产生的噪音信号及假数据(所发即所收)。通讯开始之前需要将无线数传模块之间的工作频率调整一致,通讯协议也要一致。无线数传模块为半双工通信方式,所以编程时要注意收发的来回时序,否则会丢失数据。无线数传模块的通信信道是半双工的,最适合点对多点的通信方式,这种方式首先需要设1 个主站,其余为从站,所有站都编一个唯一的地址。 (转载自http://zw.NSEaC.com科教作文网)
如图4.4是能力风暴机器人的接收子程序,在能力风暴机器人停止与主机的通讯,打开串口,调用相应的数据接收函数,将从串口接收的数据暂存在一个变量当中,当我们需要对接收的数据进行处理时,只需要处理对应的串口变量。
图4.4能力风暴机器人接收程序
无线数据通信的协调完全由主站控制,主站采用带地址码的数据帧发送数据或命令,从站全部都接收,并将接收到的地址码与本地地址码比较,不同则将数据全部丢掉,不做任何响应;地址码相同,则证明数据是给本地的,从站根据传过来的数据或命令进行不同的响应,将响应的数据发送回去。这些工作都需要上层协议来完成,并可保证在任何一个瞬间,通信网中只有一个电台处于发送状态,以免相互干扰,如果同时有几个发送设备,那么就需要在设置每一个设备上的频率都不同。[7]
4.2.2
通过无线数传模块实现程序下载


没采用数传模块前,在PC机上编辑好程序之后,需使用数据线给能力风暴机器人下载程序。使用数据线传输数据有很大的局限性,例如每次下载程序都需要插拔数据线,这时必须关闭电源。如果忘记关闭电源,容易损坏设备。而使用无线数传模块下载程序将不会存在这些问题,非常方便。
4.2.3 通过编制通讯界面实现对能力风暴机器人的无线控制


应用VB软件编制了串口数据通讯控制界面,使我们对能力风暴机器人的通讯就会更加的方便、迅捷,便于对能力风暴机器人的实时控制。
通讯界面的左侧是状态显示区及一些基本控制参数调整。对能力风暴机器人可控的参数有前进与后退的速度、左右的转动角度,停止运行。右侧是数据接收显示,串口数据的英文字母发送区;PC机与WAP200B无线数传模块串口数据通讯协议的设定,以及设置WAP200B无线数传模块参数时DTR值的调整;停止PC机与能力风暴机器人的数据传输,转向与主板的通讯过程。图4.5是无线通讯控制界面的截图,可以直观、方便的实现对能力风暴机器人的基本运行控制。

(科教作文网http://zw.ΝsΕAc.com发布)


图4.5 通讯控制软件截图

(1)通讯界面作用
PC机上的通讯控制界面就是为了更直观的实现PC机对能力风暴机器人的各项基本控制,方便我们的操作,也是无线通讯实现的基本组成部分,避免了各项繁琐的数据查阅过程。因为每一个按钮就是对应的一个数据,而能力风暴机器人接收到数据之后,只要有相应的程序就会执行。
(2)通讯界面使用方法
通讯控制界面“停止通讯等待数据接收”的按钮作用,在能力风暴机器人通过串口与外界通讯的过程中,停止了与主板CPU的通讯,所以要下载程序、恢复与主板CPU的通讯就必须终止与外界的数据通讯,否则就有可能出现死机、不受控制的情况出现,给我们的数据通讯带来不必要的麻烦。为此通过对能力风暴机器人下发停止通讯的指令来调用能力风暴机器人的相关库函数,当能力风暴机器人停止通讯之后我们就可以下载程序或者执行通讯之后的后续程序。在需要修改程序的时候只要在通讯控制界面用鼠标点击“停止通讯等待数据接收”的按钮就可以重新下载程序了。而其他的对应功能也是用鼠标直接点击相应的按钮就可以实现对能力风暴机器人的控制。
(3)能力风暴机器人通讯使用的ASCII码定义
对能力风暴机器人的基本控制是通过发送0~255的十进制数,或者是0~FF的十六进制数,能力风暴机器人对所接收的数据进行处理并做出相应的行为而实现数据通讯的。能力风暴机器人对PC机的通讯是将传感器接收的数字量转换成0~255的十进制数,通过无线数传模块发出,PC机接收到数据之后就将能力风暴机器人状态直观的显示给用户端了。如表4.1是能力风暴机器人数据通信的具体含义(只针对本课程设计所编的串口通讯程序有效)。
表4.1数据通讯传递的ASCII码含义

(科教范文网 lw.nSeAc.com编辑发布)

传输ASCII值 数据含义 传输ASCII值 数据含义
51 停止电机 102 左转角度20
52 前进速度20 103 左转角度40
53 前进速度40 104 左转角度60
54 前进速度60 105 左转角度80
55 前进速度80 106 左转角度100
56 前进速度100 107 右转角度20
57 停止通讯 108 右转角度40
97 后退速度20 109 右转角度60
98 后退速度40 110 右转角度80
99 后退速度60 111 右转角度100
100 后退速度80