欢迎来到天天文库
浏览记录
ID:10643867
大小:53.50 KB
页数:4页
时间:2018-07-07
《小型足球机器人的无线通信系统设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、小型足球机器人的无线通信系统设计
2、第1...本系统中PIC16F877就是采用20MHz的时钟信号,能够满足即时收发数据以及编码的需要。整个系统中包含两种电源,无线通信模块的电源为3.3V,而MAX232又需要+5电源。信号线的连接也要考虑两种电平的匹配问题,在必要的地方要加上电平转换电路。首先单片机要接收来自计算机端的数据,计算机串口输出的信号经过MAX232由232电平转换为TTL电平。但是由于单片机采用3.3V电平,因而MAX232输出的信号需经过电平转换才能输入单片机,电平转换可以采用TI公司提
3、供的典型电平匹配电路(见图3),也可采用74LVCXX系列逻辑门来转换。由于PIC16F877只有一个异步串行口,因而要通过16C550通用同步异步收发器(USART)芯片来扩展一个异步串行口。这样就可以保证从计算机串口输出的数据与无线通信的数据速率不同,从而使原始数据经过通信编码及打包数据量增加之后也能及时传送,并且在必要时也能将接收数据送回计算机端,实现半双工通道。系统的电路图如图4。从图4可以看出PIC单片机采用并口对16C550进行初始化配置。由于16C550共有10个寄存器,且占用了8个地址,
4、因而PIC单片机用RA0、RA1、RA2三个通用I/O口做地址线选择16C550的各个寄存器。单片机可以不断通过RB1、RB2引脚检测TXRDY、RXRDY信号获知ST16C550是否接收到数据,还是已经发送了数据。还可以通过把16C550设置成中断方式使每接收到一个字节数据便产生一次中断使INT信号有效,单片机进入中断处理程序,从而使单片机的执行效率更高。单片机通过自带的异步串行口输出数据到PTR3000通信模块。由于nrf903芯片接收和发送数据共用一个引脚,因而需要其他电路来解复用。最简单的方法就
5、是在单片机的TX引脚先接一个10kΩ的隔离电阻,再与RX和PTR3000的DATA引脚相连。但是这种方法有两个缺点,它会造成发送的数据串入到单片机的接收引脚中,另外发送信号的驱动能力受到了极大的限制。因此,本系统采用了74HC244三态缓冲器作为隔离(见图4中虚线框内所示),并且通过单片机的RB4控制收发状态,因而在半双工方式下发送信号与接收信号可以互不干扰地传送。对于通信模块工作状态的控制主要包含表1所列的这几个信号,通过单片机的普通I/O口即可控制。表1PTR3000工作工作模式配置表PTR3000
6、工作模式STBYPHz)22~9频点CHf=902.1696+CH·0.1536(MHz) 10~11输出功率POUT发射功率≈-8dBm+6dBm·POUT212~13时钟分频输出Fup"00"=>Fup=fxtal"01"=>Fup=fxtal/2"10"=>Fup=fxtal/4"11"=>Fup=fxtal/82接下来对16C550的初始化设置。由于PIC16F877自身的并行口对16C550进行初始化编程设置各个寄存器,需要注意的只是在输出每一个字节之前先要通过RA0~
7、RA2输出相应字节的地址信号。在初始化设置时将16C550的波特率设置低于76.8kbps,以保证接收的数据能够通过PTR3000即时发送。1.3接收端的硬件设计接收端装在每个机器人小车上,由于机器人小车的控制采用DSP控制器TMS320LF2407,因而在接收端PTR3000无线通信模块就采用TMS320LF2407来控制。通过PTR3000接收的数据直接输入DSP,由DSP进行解码,从而做出决策和发出控制信号。因而无线通信系统的接收端电路相对发送端要简单得多,只需用TMS320LF2407代替发送电
8、路中的单片机与PTR3000模块相连接即可。PTR3000的初始化编程也就由2407的普通I/O口来实现,只不过在初始化编程之后依旧保持PTR3000处在接收状态。2协议的设计2.1物理层的编码设计物理层的编码设计要根据所采用的物理器件和物理信道的特性来决定。本系统采用PTR3000无线通信模块在接收模块中为了获得0直流电平就需要在所传输的数据中逻辑“0”和逻辑“1”的数量相等。只有满足上述条件接收部分才会获得很高的接收正确率。长时间空闲也会导致接收部分的0直流电平漂移,因为长时间的空闲实际上一直发送的
9、是逻辑“1”。由于PTR3000的这些特性,很自然就想到采用曼彻斯特编码(Manchester)(也称为数字双向码(DigitalBiphase)或分相码(Biphase,Split-phase)。它采用一个周期的方波表示“1”,而且它的反向波形表示“0”。由于方波的正负周期各占一半,因而信号中不存在直流分量。在异步串行通信中有一个起始位“0”,因此将停止位“1”长度也设为一位,这样在一个字节共10位信号中也就不存在直流分量了。只是加了曼彻
此文档下载收益归作者所有