自适应无线数据传输设计
总体硬件结构
模块总体硬件结构主要由微控制器和蓝牙芯片及其相应的外围电路组成,能自动完成波特率识别,并进行数据的编码处理,给用户提供了一个透明的数据接口。微控制器选用Atmel公司新推出的具有可在线编程(ICSP)功能的单片机AT89S51,便于以后软件的升级。根据发送数据是否需要曼彻斯特编码、所需外围元件的数量、功耗及发射功率等方面因素的综合比较,选用nRF401芯片作为无线数据传输芯片。
目前集成度最高的无线数据传输产品,也是目前唯一一个可以直接连接微控制器串口进行异步数据传输、无需进行曼彻斯特编码的无线收发芯片。PCB板布局和电源去耦设计对于RF射频电路获得较好的性能是必要的,电路板采用1.6 mm厚FR4板材的两层PCB,底层铺铜面,并在元件层空白区铺铜;多打通孔连接上下层,铜面与地线相连,天线下底层不铺铜,VSS直接与铜层连接,并保证关键元件有充分的接地。所有开关数字信号和控制信号都不能经过PLL环路滤波器元件和VCO电感附近。
微控制器与接口设计
微控制器AT89S51与蓝牙芯片nRF401的接口电路。若设计为接收模块,则将TXEN端置为低电平;同时,DOUT引脚与微控制器的RXD端相连,微控制器的RXD引脚与外部主控单片机的TXD引脚相连。模块与外部单片机的通信波特率为自动检测方式,受nRF401芯片通信速率的限制,可以工作在1 200~19 200 bps。
串口模拟自适应的实现
通常的做法是扩展一片8251或8250通用同步/异步接收发送芯片(USART),但会额外占用单片机I/O资源,增加系统的成本,同时也增大了PCB板的布局面积。在本系统中用单片机普通I/O口模拟串行口,利用该方法还可扩展多个外部串行端口,实现多机通信。
本系统中,该模块设计成波特率为1 200~19 200 bps自适应式的通信模块,自身的波特率能随主控单元的变化而自动调整,使系统适应性更强,更智能化,因此,必须首先解决好波特率自动检测识别的问题。
自动检测识别
波特率自动检测识别的常用方法主要有两种。
(1) 标准波特率穷举法
标准波特率穷举法要求主机侧的波特率必须在有限的几个固定数值之间变化,如300~9 600的标准值;同时从机侧的工作振荡频率已知且稳定。从机启动通信程序后,逐个尝试以不同的波特率接收主机发出的特定字符,直到能正确接收为止。因此,该方法的运用有一定的局限性。
(2) 码元宽度实时检测法
码元宽度实时检测法是先通过单片机的定时器测量接收(RXD)引脚上输入数据的码元宽度,即机器周期的计数值,而后用软件计算出波特率发生寄存器的值。该方法由于适用范围广、操作灵活,因而应用较为普遍。
单片机采用串口中断的方式接收数据,当有数据到达时,打开定时器,同时不断查询接收引脚的状态;当RXD变为高电平后停止计数,这样单片机就可以测量出此低电平持续的宽度。对于串行异步通信,通信双方的波特率不必严格相等,只要双方的差别在一定的范围之内,就可以实现准确的通信。
对于软件模拟串口,关键在于解决好时序问题。串行数据的发送实现相对较为简单,只需利用定时器使发送出去的码元维持一定的时间宽度;实现异步串行接收的关键是起始位的检测和信息位的准确提取。任何时候数据传送都可能发生,故要求接收方必须能够及时准确地接收数据,而通信过程中没有同步信号,因此串行数据的提取相对而言具有一定的难度。因此,当有数据到达后就会产生中断,则根据波特率设置的定时时间间隔进行数据采样,即可实现串行数据的接收。 |