微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于Robocup F-180小型组足球机器人的无线通信系统

一种基于Robocup F-180小型组足球机器人的无线通信系统

时间:07-25 来源:互联网 点击:

到数据,还是已经发送了数据。还可以通过把16C550设置成中断方式使每接收到一个字节数据便产生一次中断使INT信号有效,单片机进入中断处理程序,从而使单片机的执行效率更高。

单片机通过自带的异步串行口输出数据到PTR3000通信模块。由于nrf903芯片接收和发送数据共用一个引脚,因而需要其他电路来解复用。最简单的方法就是在单片机的TX引脚先接一个10kΩ的隔离电阻,再与RX和PTR3000的DATA引脚相连。但是这种方法有两个缺点,它会造成发送的数据串入到单片机的接收引脚中,另外发送信号的驱动能力受到了极大的限制。因此,本系统采用了74HC244三态缓冲器作为隔离(见图4中虚线框内所示),并且通过单片机的RB4控制收发状态,因而在半双工方式下发送信号与接收信号可以互不干扰地传送。 对于通信模块工作状态的控制主要包含表1所列的这几个信号,通过单片机的普通I/O口即可控制。 表1 PTR3000工作工作模式配置表 PTR3000工作模式 STBY PWR-DWN TXEN CS 正常工作:接收 0 0 0 0 正常工作:发射 0 0 1 0 掉电模式 0 1 X X 待机模式 1 0 X X

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%26;#177;13MHz) 2 2~9 频点 CH f=902.1696+CH%26;#183;0.1536(MHz)   10~11 输出功率 POUT 发射功率≈-8dBm+6dBm%26;#183;POUT 2 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控制器,因而在接收端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 有一些数字节,不会在进行曼彻斯特编码之后的数据串口出现,但是在一个字节中也具有0直流分量的特性,也有很高的接收正确率。这类数据字节如:0xF0、 0x0F、0xCC、0x33等。从码型看来其中0xF0码型定时性能是最好的(其码型见图5),它很容易使异步接收器达到同步并且不会

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top