具有波特率自适应功能的无线数据传输模块设计
发布时间:2008/5/29 0:00:00 访问次数:602
1 模块总体结构
基于nrf401无线数据传输器件的数传模块总体硬件结构如图1所示,主要由微控制器和蓝牙芯片及其相应的外围电路组成,能自动完成波特率识别,并进行数据的编码处理,给用户提供了一个透明的数据接口。微控制器选用atmel公司推出的可在线编程的单片机at89s51,便于以后软件的升级。通过对发送数据是否需要曼彻斯特编码、所需外围元件的数量、功耗及发射功率等方面的因素综合比较,选用nrf40l作为无线数传器件。
nrf401是单片无线收发器件,采用蓝牙核心技术设计,内部集成高频发射、高频接收、pll合成、fsk调制、fsk解调、多频道切换等诸多功能和外围部件协议,是目前集成度最高的无线数传产品,也是唯一可以直接连接微控制器串口进行异步数据传输且无需曼彻斯特编码的无线收发器。nrf401发射功率最大为10 mw,工作电压为2.7 v~5 v,发射电流为8 ma~30 ma,接收电流约10 ma,待机电流为8 μa,灵敏度为-105 dbm,采用20引脚8 mmx7 mm的soic封装。所需外部元件很少,仅外接一个晶体和几只阻容、电感元件,无需调试,传输速率最高达19.2 kb/s,工作频段为433/434 mhz,有两个信道,调制方式为fsk。
nrf401有5个端口与微控制器相关:din和dout用于异步串行通信,din的数据方向为微控制器到nrf40l,dout相反;cs选择工作频段,cs=0时频段为433.92 mhz,cs=1时为434.33 mhz,在该模块中将cs引脚引出,方便用户控制,在一个频段无法工作时,可以设置为另一个工作频段,提高了系统的抗干扰能力;pwr_up用于节电控制。pwr_up=0时为掉电(节电)模式,pwr_up=1时为上电(工作)模式,在该模块中同样将其引出,在不需要无线发射和接收时,用户可将器件设置为节电模式以降低系统的功耗;txen选择发射或接收状态,txen=0时为接收,txen=1时为发送。
pcb布局和电源去耦设计对于rf射频电路获得较好的性能是必要的,电路板采用1.6mm厚fr4板材的两层pcb,底层覆铜面,并在元件层空白区覆铜,多打通孔连接上下层,铜面与地线相连,天线下底层不覆铜,vss直接与铜层连接,并保证关键元件充分接地。所有开关数字信号和控制信号都不能经过pll环路滤波器元件和vco电感附近。直流供电在离vdd引脚尽可能近的地方用高性能的电容去耦,去耦使用一只小电容(0.01μf)和一只大电容(2.2μf)并联,避免较长的电源走线。
2 硬件设计及软件实现
2.1 微控制器与nrf401接口设计
路,nrf401只需10个左右的元件即可实现数据收发,应用极其方便。其psen为数据收发选择端,当设定为发送模块时,psen接为高电平,同时,din引脚与微控制器的tx端相连,微控制器的rxd端作为预留接口与外部主控单片机的txd相连:若设计为接收模块,则psen接低电平,同时,dout引脚与微控制器的rx端相连,rxd引脚与外部微控制器的txd引脚相连。模块与外部单片机的通讯波特率为自动检测方式,受nrf401通讯速率的限制。该模块可以工作在1 200 b/s~19.2 kb/s之间。模块上预留icsp接口,可以系统在线编程。方便程序升级。还同时具有良好的防窃密功能,不易破解。
2.2 串口模拟及波特率自适应的实现
对于模块上的片上主控单片机at89s51而言,既要控制nrf401完成与外界的数据交换。同时自身又必须受控于模块外部的主控单片机,因此。at89s51必须能同时与nrf401及片外主控单片机通讯,但at89s51只有一个uart,无法满足要求,为解决这一矛盾,通常的方法是扩展一片8251或8250通用同步/异步接收发器(usart),但需额外占用单片机i/o资源,增加了系统的成本,同时也增大了pcb板的布局面积。本系统则采用单片机普通i/o口模拟串行口,利用该方法还可扩展多个外部串行端口,实现多机通信。
利用普通i/o口模拟串口,必须首先确定串口的通信速率即波特率,在本系统中,该模块设计是波特率为1 200 b/s~19.2 kb/s自适应式的通信模块,使自身的波特率随主控单元的 调整而自动调整,系统适应性更强,更具智能化,因此首先必须解决好波特率自动检测与识别的问题。
2.2.1 波特率自动检测识别的实现
常用的波特率自动检测方法主要有两种:
(1)标准波特率穷举法。
标准法特率穷举法适用于主机侧的波特率必须在有限的几个固定数值之间变化。如300b/s~9.6 kb/s之间的标准值;且从机侧的工作振荡频率已知且稳定。从机启动通信程序后,逐个尝试以不同的波特率接收主机发出的特定字符,直到能正确接收为止。因此,该方法的运用具有一定的局限性。
(2) 码元宽度实时检测法。
该方法是先通过单片机的定时器测量rx引脚上输人数据的码元宽度,即机器周期的计数值,之后用软件计算出波特率发生寄存器的值。该方法由于适用范围广、操作灵活,因而应用较为普遍。
本系统首先用码元宽度实时检测法确定主机的波特率,之后从机自身进行相应设置。就理论而
1 模块总体结构
基于nrf401无线数据传输器件的数传模块总体硬件结构如图1所示,主要由微控制器和蓝牙芯片及其相应的外围电路组成,能自动完成波特率识别,并进行数据的编码处理,给用户提供了一个透明的数据接口。微控制器选用atmel公司推出的可在线编程的单片机at89s51,便于以后软件的升级。通过对发送数据是否需要曼彻斯特编码、所需外围元件的数量、功耗及发射功率等方面的因素综合比较,选用nrf40l作为无线数传器件。
nrf401是单片无线收发器件,采用蓝牙核心技术设计,内部集成高频发射、高频接收、pll合成、fsk调制、fsk解调、多频道切换等诸多功能和外围部件协议,是目前集成度最高的无线数传产品,也是唯一可以直接连接微控制器串口进行异步数据传输且无需曼彻斯特编码的无线收发器。nrf401发射功率最大为10 mw,工作电压为2.7 v~5 v,发射电流为8 ma~30 ma,接收电流约10 ma,待机电流为8 μa,灵敏度为-105 dbm,采用20引脚8 mmx7 mm的soic封装。所需外部元件很少,仅外接一个晶体和几只阻容、电感元件,无需调试,传输速率最高达19.2 kb/s,工作频段为433/434 mhz,有两个信道,调制方式为fsk。
nrf401有5个端口与微控制器相关:din和dout用于异步串行通信,din的数据方向为微控制器到nrf40l,dout相反;cs选择工作频段,cs=0时频段为433.92 mhz,cs=1时为434.33 mhz,在该模块中将cs引脚引出,方便用户控制,在一个频段无法工作时,可以设置为另一个工作频段,提高了系统的抗干扰能力;pwr_up用于节电控制。pwr_up=0时为掉电(节电)模式,pwr_up=1时为上电(工作)模式,在该模块中同样将其引出,在不需要无线发射和接收时,用户可将器件设置为节电模式以降低系统的功耗;txen选择发射或接收状态,txen=0时为接收,txen=1时为发送。
pcb布局和电源去耦设计对于rf射频电路获得较好的性能是必要的,电路板采用1.6mm厚fr4板材的两层pcb,底层覆铜面,并在元件层空白区覆铜,多打通孔连接上下层,铜面与地线相连,天线下底层不覆铜,vss直接与铜层连接,并保证关键元件充分接地。所有开关数字信号和控制信号都不能经过pll环路滤波器元件和vco电感附近。直流供电在离vdd引脚尽可能近的地方用高性能的电容去耦,去耦使用一只小电容(0.01μf)和一只大电容(2.2μf)并联,避免较长的电源走线。
2 硬件设计及软件实现
2.1 微控制器与nrf401接口设计
路,nrf401只需10个左右的元件即可实现数据收发,应用极其方便。其psen为数据收发选择端,当设定为发送模块时,psen接为高电平,同时,din引脚与微控制器的tx端相连,微控制器的rxd端作为预留接口与外部主控单片机的txd相连:若设计为接收模块,则psen接低电平,同时,dout引脚与微控制器的rx端相连,rxd引脚与外部微控制器的txd引脚相连。模块与外部单片机的通讯波特率为自动检测方式,受nrf401通讯速率的限制。该模块可以工作在1 200 b/s~19.2 kb/s之间。模块上预留icsp接口,可以系统在线编程。方便程序升级。还同时具有良好的防窃密功能,不易破解。
2.2 串口模拟及波特率自适应的实现
对于模块上的片上主控单片机at89s51而言,既要控制nrf401完成与外界的数据交换。同时自身又必须受控于模块外部的主控单片机,因此。at89s51必须能同时与nrf401及片外主控单片机通讯,但at89s51只有一个uart,无法满足要求,为解决这一矛盾,通常的方法是扩展一片8251或8250通用同步/异步接收发器(usart),但需额外占用单片机i/o资源,增加了系统的成本,同时也增大了pcb板的布局面积。本系统则采用单片机普通i/o口模拟串行口,利用该方法还可扩展多个外部串行端口,实现多机通信。
利用普通i/o口模拟串口,必须首先确定串口的通信速率即波特率,在本系统中,该模块设计是波特率为1 200 b/s~19.2 kb/s自适应式的通信模块,使自身的波特率随主控单元的 调整而自动调整,系统适应性更强,更具智能化,因此首先必须解决好波特率自动检测与识别的问题。
2.2.1 波特率自动检测识别的实现
常用的波特率自动检测方法主要有两种:
(1)标准波特率穷举法。
标准法特率穷举法适用于主机侧的波特率必须在有限的几个固定数值之间变化。如300b/s~9.6 kb/s之间的标准值;且从机侧的工作振荡频率已知且稳定。从机启动通信程序后,逐个尝试以不同的波特率接收主机发出的特定字符,直到能正确接收为止。因此,该方法的运用具有一定的局限性。
(2) 码元宽度实时检测法。
该方法是先通过单片机的定时器测量rx引脚上输人数据的码元宽度,即机器周期的计数值,之后用软件计算出波特率发生寄存器的值。该方法由于适用范围广、操作灵活,因而应用较为普遍。
本系统首先用码元宽度实时检测法确定主机的波特率,之后从机自身进行相应设置。就理论而