- ·上一篇文章:浅析焦炉集气管压力智能控制系统
- ·下一篇文章:耐热钢的设计分析
对于足球机器人及通讯系统探讨
摘要:本文以能力风暴机器人为研究平台,开发了一种双核机器人,同时在介绍了PTR2000功能特点基础上,重点研究了一种无线通讯的发射、接收软硬件电路以及其CRC校验。
关键词:机器人;PTR2000;无线通讯;CRC
中图分类号:TP242.6+3 文献标识码:A
前言
足球机器人通常包括四个系统,机器人小车、视觉系统、决策系统和通讯系统。本文讨论的就是通讯系统,它是足球机器人系统必不可少的一部分,它使场外的计算机与机器人的通讯成为可能,它的主要任务是将计算机的命令准确无误地传给机器人,使机器人按照上位机的命令相应地做出动作。同时为了使机器人只专心于一方面的工作,提高它的灵敏度,在原有基础上再加上一个处理通讯信号的大脑,这样就大大提高了机器人的场上能力。
在足球机器人比赛中,能否由通讯子系统进行准确无误地传递信息,是整个比赛的关键,因此本文着重介绍通讯子系统的软硬件设计。
1 机器人双MCU设计
1.1 能力风暴机器人简介
能力风暴机器人是典型的自主移动机器人,具有较高的自规划、自适用能力,适应于较复杂的环境中工作,是一个高智能的复杂模块,机器人与计算机之间通过Motorola生产的高集成度芯片68HC11开发的交互式C语言进行编程,并且支持多任务。机器人自身带有一
系列传感器其结构图如图1所示,初步具有感知周围环境的能力。机器人上带有硬件扩展总
收稿日期:2006―
作者简介:张磊安(1982-),男,硕士研究生. 13969313147
ASBUS,这样为机器人的功能扩展提供了方便。
图1能力风暴机器人结构图
1.2 双核设计
机器人仅依靠初始程序与自身传感器来运行,可以形成自主移动机器人,但为了让机器人更准确的感知周围或局部的信息,同时机器人往往需要处理图像等复杂信息,所以在机器人接收系统中采用了双MCU的设计方法,通讯专用MCU与主MCU并行处理,通讯专用MCU处理上位机发出的串行信息,对信息进行处理后再传给主MCU,这样会使机器人通讯效率明显提高,精度和运动性得到明显改善。由于能力风暴机器人本身具有硬件扩展电路ASBUS,它提供了20多条信号线,这样为机器人的硬件扩展提供了方便。由机器人硬件扩展总线ASBUS知,机器人提供了8位的数据总线扩展口PC0~PC7,由此可实现与单片机8051(大脑)的通信.他们经过数据锁存器后分别与8051的P1.0~P1.7连接,之所以用到数据锁存器,是因为机器人提供的数据扩展口是总线口,而不是具有保持功能的I/O口,因此数据进行交换时必须进行数据锁存。另外机器人有输入捕捉扩展口PA1、PA2和输出扩展口PA3,分别取PA1和PA3与单片机8051的P3.4与P3.2相连,以构成通讯握手信号。
2 无线通讯模块PTR2000的应用
2.1 PTR2000简介
它继承了高频发射、接收、FSK调制解调、参量放大、功率放大、频道切换等诸多功能。尤其是它发射功率低,灵敏度高,具备20Kbit/s的高传输速率,也可在其他速率如4800bit/s或9600bit/s下工作,工作频率稳定可靠,体积小,稳定性好,引脚数只有7个。同时PTR2000模块内置nRF401芯片,数据无需曼彻斯特编码,编程开发容易,被广泛的应用于无线通讯领域。PTR2000模块各引脚功能说明如下:
VCC:正电源,接2.7~5.25V
CS:频道选择,CS=0选择工作频道1,433 .92MHz,CS=1选择工作频道2,434.33MHz
DO:数据输出
DI:数据输入
GND:电源地
PWR:节能控制,PWR=1正常工作状态,PWR=0待机微功耗状态
TXEN:发射接收控制,TXEN=1时模块为发射状态,TXEN=0时模块为接收状态
由此可得到模块的不同工作模式,具体设置可见下表
表1 模块工作模式控制及其工作频率选择表
2.2 PTR2000发射电路
PTR2000与计算机的串口通讯,此时要在其之间接上一个232电平转换芯片,以便将串口的TTL电平转化为RS232C电平,此设计中采用通过MAX232将两者相连,计算机串口的RXD和TXD线需经电平转换后分别与PTR2000模块的DO和DI相连,发射数据模块原理如图3。发送数据之前将模块至于发射状态,即TXEN=1。上位机可通过Visual Basic 6.0进行编制,可通过设置MSComm控件的RTSEnable属性来实现,当RTSEnable属性设为ture时,串口RTS输出低电平,电平转换后将PTR2000置为接受状态;当RTSEnable属性设为false时,串口RTS输出高电平,电平转换后将PTR2000置为发射状态。如果计算机与单片机的通信速率约定为9600bit/s,为了获得准确的波特率,8051单片机应选用11.0592M的晶振。
图2 PTR2000发射模块
2.3 PTR2000接收电路
PTR2000可直接与单片机的串口TXD、RXD相连, 且PTR2000无线
MODEM的DI接单片机的串口发送, PTR2000无线MODEM的DO接单片机的串口接收,如右图3所示:
PTR2000发射模块
图3 PTR2000接收模块
2.4串口通讯程序设计
利用VB开发通信程序主要的方法有两种,一是利用VB本身提供的控件(CONTRALS),另一种方法是利用WINDOWS API应用程序接口。在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件,我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。使用MSCOMM控件主要是通过事件来处理串行口的交互,即当数据到达时,控件的OnComm的事件就会来捕获或处理这些通讯事件,而OnComm事件也可以用来捕获和处理通讯错误,简单于第一种方法,它的属性就不介绍,在此仅列出其部分程序代码。
Private Sub Command1_Click() '...发送数据
MSComm1.OutBufferCount = 0
MSComm1.Output = Text1.Text
End Sub
Private Sub Form_Load() '...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.PortOpen = True '...打开串口
End Sub
Private Sub Mscomm1_Oncomm() '...通讯事件发生
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
……
……
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
3无线通讯协议及其设定
3.1 通讯协议的设定
当没有信号时,PTR2000的串口输出是随机数据,因此需要定义一个简单的指令协议,当发送时在有效数据前加几个字节的固定起始字节,在接收一方的软件中,若检测到该固定标志后就作为正式数据的开始。本设计中,传输协议可定义为:
[开始1] [开始2] [开始3] [数据1] [数据2] [数据3] [8位校验] [数据结束标志]
其中开始1是0XFF,开始2是0XFF,开始3是0X00。选择它们作为有效包开始的原因是:无线通讯容易受到噪声影响,因此通讯协议应该首先能够区分噪声和有效数据,试验表明,255(0XFF)
关键词:机器人;PTR2000;无线通讯;CRC
中图分类号:TP242.6+3 文献标识码:A
前言
足球机器人通常包括四个系统,机器人小车、视觉系统、决策系统和通讯系统。本文讨论的就是通讯系统,它是足球机器人系统必不可少的一部分,它使场外的计算机与机器人的通讯成为可能,它的主要任务是将计算机的命令准确无误地传给机器人,使机器人按照上位机的命令相应地做出动作。同时为了使机器人只专心于一方面的工作,提高它的灵敏度,在原有基础上再加上一个处理通讯信号的大脑,这样就大大提高了机器人的场上能力。
在足球机器人比赛中,能否由通讯子系统进行准确无误地传递信息,是整个比赛的关键,因此本文着重介绍通讯子系统的软硬件设计。
1 机器人双MCU设计
1.1 能力风暴机器人简介
能力风暴机器人是典型的自主移动机器人,具有较高的自规划、自适用能力,适应于较复杂的环境中工作,是一个高智能的复杂模块,机器人与计算机之间通过Motorola生产的高集成度芯片68HC11开发的交互式C语言进行编程,并且支持多任务。机器人自身带有一
系列传感器其结构图如图1所示,初步具有感知周围环境的能力。机器人上带有硬件扩展总
收稿日期:2006―
作者简介:张磊安(1982-),男,硕士研究生. 13969313147
ASBUS,这样为机器人的功能扩展提供了方便。
图1能力风暴机器人结构图
1.2 双核设计
机器人仅依靠初始程序与自身传感器来运行,可以形成自主移动机器人,但为了让机器人更准确的感知周围或局部的信息,同时机器人往往需要处理图像等复杂信息,所以在机器人接收系统中采用了双MCU的设计方法,通讯专用MCU与主MCU并行处理,通讯专用MCU处理上位机发出的串行信息,对信息进行处理后再传给主MCU,这样会使机器人通讯效率明显提高,精度和运动性得到明显改善。由于能力风暴机器人本身具有硬件扩展电路ASBUS,它提供了20多条信号线,这样为机器人的硬件扩展提供了方便。由机器人硬件扩展总线ASBUS知,机器人提供了8位的数据总线扩展口PC0~PC7,由此可实现与单片机8051(大脑)的通信.他们经过数据锁存器后分别与8051的P1.0~P1.7连接,之所以用到数据锁存器,是因为机器人提供的数据扩展口是总线口,而不是具有保持功能的I/O口,因此数据进行交换时必须进行数据锁存。另外机器人有输入捕捉扩展口PA1、PA2和输出扩展口PA3,分别取PA1和PA3与单片机8051的P3.4与P3.2相连,以构成通讯握手信号。
2 无线通讯模块PTR2000的应用
2.1 PTR2000简介
它继承了高频发射、接收、FSK调制解调、参量放大、功率放大、频道切换等诸多功能。尤其是它发射功率低,灵敏度高,具备20Kbit/s的高传输速率,也可在其他速率如4800bit/s或9600bit/s下工作,工作频率稳定可靠,体积小,稳定性好,引脚数只有7个。同时PTR2000模块内置nRF401芯片,数据无需曼彻斯特编码,编程开发容易,被广泛的应用于无线通讯领域。PTR2000模块各引脚功能说明如下:
VCC:正电源,接2.7~5.25V
CS:频道选择,CS=0选择工作频道1,433 .92MHz,CS=1选择工作频道2,434.33MHz
DO:数据输出
DI:数据输入
GND:电源地
PWR:节能控制,PWR=1正常工作状态,PWR=0待机微功耗状态
TXEN:发射接收控制,TXEN=1时模块为发射状态,TXEN=0时模块为接收状态
由此可得到模块的不同工作模式,具体设置可见下表
表1 模块工作模式控制及其工作频率选择表
2.2 PTR2000发射电路
PTR2000与计算机的串口通讯,此时要在其之间接上一个232电平转换芯片,以便将串口的TTL电平转化为RS232C电平,此设计中采用通过MAX232将两者相连,计算机串口的RXD和TXD线需经电平转换后分别与PTR2000模块的DO和DI相连,发射数据模块原理如图3。发送数据之前将模块至于发射状态,即TXEN=1。上位机可通过Visual Basic 6.0进行编制,可通过设置MSComm控件的RTSEnable属性来实现,当RTSEnable属性设为ture时,串口RTS输出低电平,电平转换后将PTR2000置为接受状态;当RTSEnable属性设为false时,串口RTS输出高电平,电平转换后将PTR2000置为发射状态。如果计算机与单片机的通信速率约定为9600bit/s,为了获得准确的波特率,8051单片机应选用11.0592M的晶振。
图2 PTR2000发射模块
2.3 PTR2000接收电路
PTR2000可直接与单片机的串口TXD、RXD相连, 且PTR2000无线
MODEM的DI接单片机的串口发送, PTR2000无线MODEM的DO接单片机的串口接收,如右图3所示:
PTR2000发射模块
图3 PTR2000接收模块
2.4串口通讯程序设计
利用VB开发通信程序主要的方法有两种,一是利用VB本身提供的控件(CONTRALS),另一种方法是利用WINDOWS API应用程序接口。在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件,我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。使用MSCOMM控件主要是通过事件来处理串行口的交互,即当数据到达时,控件的OnComm的事件就会来捕获或处理这些通讯事件,而OnComm事件也可以用来捕获和处理通讯错误,简单于第一种方法,它的属性就不介绍,在此仅列出其部分程序代码。
Private Sub Command1_Click() '...发送数据
MSComm1.OutBufferCount = 0
MSComm1.Output = Text1.Text
End Sub
Private Sub Form_Load() '...初始化
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.PortOpen = True '...打开串口
End Sub
Private Sub Mscomm1_Oncomm() '...通讯事件发生
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
……
……
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
3无线通讯协议及其设定
3.1 通讯协议的设定
当没有信号时,PTR2000的串口输出是随机数据,因此需要定义一个简单的指令协议,当发送时在有效数据前加几个字节的固定起始字节,在接收一方的软件中,若检测到该固定标志后就作为正式数据的开始。本设计中,传输协议可定义为:
[开始1] [开始2] [开始3] [数据1] [数据2] [数据3] [8位校验] [数据结束标志]
其中开始1是0XFF,开始2是0XFF,开始3是0X00。选择它们作为有效包开始的原因是:无线通讯容易受到噪声影响,因此通讯协议应该首先能够区分噪声和有效数据,试验表明,255(0XFF)





