您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

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

时间:2007-1-20栏目:电子通信论文

由于PIC16F877只有一个异步串行口,因而要通过16C550通用同步异步收发器(USART)芯片来扩展一个异步串行口。这样就可以保证从计算机串口输出的数据与无线通信的数据速率不同,从而使原始数据经过通信编码及打包数据量增加之后也能及时传送,并且在必要时也能将接收数据送回计算机端,实现半双工通道。系统的电路图如图4。从图4可以看出PIC单片机采用并口对16C550进行初始化配置。由于16C550共有10个寄存器,且占用了8个地址,因而PIC单片机用RA0、RA1、RA2三个通用I/O口做地址线选择16C550的各个寄存器。单片机可以不断通过RB1、RB2引脚检测TXRDY、RXRDY信号获知ST16C550是否接收到数据,还是已经发送了数据。还可以通过把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±13MHz) 2 2~9 频点 CH f=902.1696+CH·0.1536(MHz)   10~11 输出功率 POUT 发射功率≈-8dBm+6dBm·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 接收端的硬件设计

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页