用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

小型足球机器人的无线通信系统设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:41:13
【本文由PB创新网为您整理】
摘要:介绍了一种用于Robocup F-180小型组足球机器人比赛的无线通信系统的设计。包括发送端和接收端系统的硬件设计和实现及其软件设计。给出了一种适应于这套系统的通信协议,包括物理层的编码设计、纠错编码设计和帧结构设计。

    关键词:串行通信 无线通信 机器人

足球机器人是一个极富挑战性的高技术密集 密集型项目,融小车机械、机器人学、机电一体化、单片机、数据融合、精密仪器、实时数字信号处理、图像处理与图像识别、知识工程与专家系统、决策、轨迹规划、自组织与自学习理论、多智能体协调以及无线通信等理论和技术于一体,既是一个典型的智能机器人系统,又为研究发展多智能体系统、多机器人之间的合作与对抗提供了生动的研究模型。它通过提供一个标准任务,使研究人员利用各种技术获得更好的解决方案,从而有效促进各个领域的发展。其听理论与技术可应用于工业生产、自动化流水线、救援、教育等实践领域,从而有效推动国家科技经济等方面的发展。机器人足球 从一个侧面反映了一个国家信息与自动化领域的基础研究和高技术发展水平。

目前,国际上有机器人足球比赛分为两大系列——FIRA和Robocup。本文所要论述的系统所应用的F-180小型足球机器人比赛就是RoboCup系列中应用较广泛的一种。

F-180小型足球机器人足球比赛的示意图如图1所示,比赛双方各有5名机器人小车在场上。足球机器人系统在硬件设备方面包括机器人小车、摄像装置、计算机主机和无线发射装置;从功能上分,它包括机器人小车、视觉、决策和无线通信四个子系统。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    其中无线通信系统是衔接主机和底层机器人不可缺少的一环,它必须保证从主机端到机器人底层之间的数据传送是可靠的,从而使得机器人比较能够顺利流畅进行。由于比赛双方都有多个机器人同时在场地上跑动,要求无线通信有一定的抗干扰性。无线通信系统的性能相当程度上直接影响着机器人的场上表现。

1 系统的设计及实现

比赛中从摄像头来的视频信号经过计算机处理之后得到控制小车用的数据信息,而无线通信系统的就是将这些数据信息及时准确地送达场上的每一个机器人小车,系统采用广播方式,各机器人根据特定标志识别发给自己的有用数据,从而进行决策与行动。整个系统的框图如图2所示。

1.1 发送端的硬件设计

发送端主要用PIC16F877单片机实现编码和对发射机的控制,计算机通过串行口发送数据,经过PIC16F877编码后再通过PTR3000无线通信模块将数据发送出去。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    所采用的PIC16F877单处机是MICROCHIP公司推出的8位单片机。采用RISC指令系统和哈佛总线结构,最高运行的时钟频率可达20MHz,因而指令运行速度快。它有很宽的工作电压范围,可直接与3.3V的PTR3000无线通信模块配合使用。

TR3000无线数据收发模块是一种半双工收发器,采用NORDIC公司的nrf903无线收发芯片,工作频率采用国际通用的数传频段ISM,频段915MHz,工作频率可以在902MHz~928MHz可变。采用GMSK调制,抗干扰能力强,特别适合工业控制。灵敏度高,达到-100dBm,最大发射功率+10dBm,工作电压为2.7V~3.3V。它最多有169个频道,可满足需要多频道的场合,最高数据速率可达76.8kbps。因而完全可以满足小型组机器人通信的数传速率与距离的需要。

本系统中PIC16F877就是采用20MHz的时钟信号,能够满足即时收发数据以及编码的需要。整个系统中包含两种电源,无线通信模块的电源为3.3V,而MAX232又需要+5电源。信号线的连接也要考虑两种电平的匹配问题,在必要的地方要加上电平转换电路。

首先单片机要接收来自计算机端的数据,计算机串口输出的信号经过MAX232由232电平转换为TTL电平。但是由于单片机采用3.3V电平,因而MAX232输出的信号需经过电平转换才能输入单片机,电平转换可以采用TI公司提供的典型电平匹配电路(见图3),也可采用74LVCXX系列逻辑门来转换。

由于PIC16F877只有一个异步串行口,因而要通过16C550通用同步异步收发器(USART)芯片来扩展一个异步串行口。这样就可以保证从计算机串口输出的数据与无线通信的数据速率不同,从而使原始数据经过通信编码及打包数据量增加之后也能及时传送,并且在必要时也能将接收数据送回计算机端,实现半双工通道。系统的电路图如图4。从图4可以看出PIC单片机采用并口对16C550进行初始化配置。由于16C550共有10个寄存器,且占用了8个地址,因而PIC单片机用RA0、RA1、RA2三个通用I/O口做地址线选择16C550的各个寄存器。单片机可以不断通过RB1、RB2引脚检测TXRDY、RXRDY信号获知ST16C550是否接收到数据,还是已经发送了数据。还可以通过把16C550设置成中断方式使每接收到一个字节数据便产生一次中断使INT信号有效,单片机进入中断处理程序,从而使单片机的执行效率更高。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    单片机通过自带的异步串行口输出数据到PTR3000通信模块。由于nrf903芯片接收和发送数据共用一个引脚,因而需要其他电路来解复用。最简单的方法就是在单片机的TX引脚先接一个10kΩ的隔离电阻,再与RX和PTR3000的DATA引脚相连。但是这种方法有两个缺点,它会造成发送的数据串入到单片机的接收引脚中,另外发送信号的驱动能力受到了极大的限制。因此,本系统采用了74HC244三态缓冲器作为隔离(见图4中虚线框内所示),并且通过单片机的RB4控制收发状态,因而在半双工方式下发送信号与接收信号可以互不干扰地传送。

对于通信模块工作状态的控制主要包含表1所列的这几个信号,通过单片机的普通I/O口即可控制。

表1 PTR3000工作工作模式配置表

PTR3000工作模式STBYPWR-DWNTXENCS
正常工作:接收0000
正常工作:发射0010
掉电模式01XX
待机模式10XX

1.2 发送端的软件设计

当系统复位时,单片机首先要对PTR3000无线通信模块和16C550的寄存器进行编程初始化。PTR3000的初始化编程是通过同步串行信号进行的,总共有三个信号CFG_CLK、CS和CFG_DATA,分别连接到单片机RC3、RB7、RC5引脚。PIC16F877单片机本身就有同步串行口功能模块,但是由于PTR3000的同步串行数据位为14位,并非整数字节,而且14位数据必须一次初始化完成,因此实际通过普通的I/O口编程来实现这14位的同步串行信号更方便一些。在整个初始化期间CS信号必须一直为高电平。这14位初始化字的定义见表2。在初始化同步串行信号输出时最高有效位在先。在对PTR3000编程前先其状态为接收状态以免在其他频率造成无线干扰,编程完成后就可以将状态改为发射状态了。

表2 PTR3000初始化控制字各位定义

Bit参数名称符  号

参   数

位  数
0~1频段FB必须为了10(表示为选择频段915±13MHz)2
2~9频点CHf=902.1696+CH·0.1536(MHz) 
10~11输出功率POUT发射功率≈-8dBm+6dBm·POUT2
12~13时钟分频输出Fup"00"=>Fup=fxtal
"01"=>Fup=fxtal/2
"10"=>Fup=fxtal/4
"11"=>Fup=fxtal/8
2

接下来对16C550的初始化设置。由于PIC16F877自身的并行口对16C550进行初始化编程设置各个寄存器,需要注意的只是在输出每一个字节之前先要通过RA0~RA2输出相应字节的地址信号。在初始化设置时将16C550的波特率设置低于76.8kbps,以保证接收的数据能够通过PTR3000即时发送。

1.3 接收端的硬件设计

接收端装在每个机器人小车上,由于机器人小车的控制采用DSP控制器TMS320LF2407,因而在接收端PTR3000无线通信模块就采用TMS320LF2407来控制。通过PTR3000接收的数据直接输入DSP,由DSP进行解码,从而做出决策和发出控制信号。因而无线通信系统的接收端电路相对发送端要简单得多,只需用TMS320LF2407代替发送电路中的单片机与PTR3000模块相连接即可。PTR3000的初始化编程也就由2407的普通I/O口来实现,只不过在初始化编程之后依旧保持PTR3000处在接收状态。

2 协议的设计

2.1 物理层的编码设计

物理层的编码设计要根据所采用的物理器件和物理信道的特性来决定。本系统采用PTR3000无线通信模块在接收模块中为了获得0直流电平就需要在所传输的数据中逻辑“0”和逻辑“1”的数量相等。只有满足上述条件接收部分才会获得很高的接收正确率。长时间空闲也会导致接收部分的0直流电平漂移,因为长时间的空闲实际上一直发送的是逻辑“1”。

由于PTR3000的这些特性,很自然就想到采用曼彻斯特编码(Manchester)(也称为数字双向码(Digital Biphase)或分相码(Biphase,Split-phase)。它采用一个周期的方波表示“1”,而且它的反向波形表示“0”。由于方波的正负周期各占一半,因而信号中不存在直流分量。在异步串行通信中有一个起始位“0”,因此将停止位“1”长度也设为一位,这样在一个字节共10位信号中也就不存在直流分量了。只是加了曼彻 斯特编码之后原来一个字节的数据现在要两个字节才能传送。

图4

   

[1] [2]  下一页

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:17,359.38000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号