波特率自适应的无线数据传输模块设计

豆豆网   技术应用频道   2007年12月23日  【字号: 收藏本文

内容摘要:基于本思想设计的无线数据传输模块,已成功地运用于“磁栅式浮动检测仪”项目中。经实践检验,系统工作稳定可靠,具有一定的工程实用价值。

   波特率自适应的无线数据传输模块设计

  要实现用普通的I/O口模拟串口,必须首先确定串行口的通信速率(即波特率)。本系统中,该模块设计成波特率为1 200~19 200 bps自适应式的通信模块,自身的波特率能随主控单元的变化而自动调整,使系统适应性更强,更智能化,因此,必须首先解决好波特率自动检测识别的问题。

  2.2.1 波特率自动检测识别的实现

  波特率自动检测识别的常用方法主要有两种。

  (1) 标准波特率穷举法

  标准波特率穷举法要求主机侧的波特率必须在有限的几个固定数值之间变化,如300~9 600的标准值;同时从机侧的工作振荡频率已知且稳定。从机启动通信程序后,逐个尝试以不同的波特率接收主机发出的特定字符,直到能正确接收为止。因此,该方法的运用有一定的局限性。

  (2) 码元宽度实时检测法

  码元宽度实时检测法是先通过单片机的定时器测量接收(RXD)引脚上输入数据的码元宽度,即机器周期的计数值,而后用软件计算出波特率发生寄存器的值。该方法由于适用范围广、操作灵活,因而应用较为普遍。

  在本系统中用码元宽度实时检测法确定出主机的波特率,而后从机自身进行相应的设置。理论上,只要能够测出一个码元的宽度就能确定出数据传输的波特率;但在实际测量过程中,为保证测量的准确性,通常采取测量连续8个码元宽度的方法。这里,采用了较为常用的异步串行通信数据格式(即1个起始位、8个数据位、无校验、1个停止位,发送时低位数据在前,高位在后),因此连续8个码元宽度的时间可以通过在主机侧发0x80H的方式实现,其波形如图3所示。起始位加7个码元宽度的低电平,刚好构成8个脉宽的低电平。单片机采用串口中断的方式接收数据,当有数据到达时,打开定时器,同时不断查询接收引脚的状态;当RXD变为高电平后停止计数,这样单片机就可以测量出此低电平持续的宽度。

来源:单片机与嵌入式系统应用    责编:豆豆技术应用

正在加载评论...