欢迎来到亿配芯城! | 免费注册
你的位置:RUNIC(润石)线性稳压器(LDO)转换器/电平移位器IC芯片全系列-亿配芯城 > 芯片资讯 > nRF401芯片和AT89S51芯片实现无线数据传输设计方案
nRF401芯片和AT89S51芯片实现无线数据传输设计方案
发布日期:2024-08-22 07:28     点击次数:60

  1 模块总体硬件结构

    模块总体硬件结构主要由微操控器和蓝牙芯片及其相应的外围电路组成,能主动完成波特率辨认,并进行数据的编码处理,给用户供给了一个通明的数据接口。微操控器选用Atmel公司新推出的具有可在线编程(ICSP)功用的单片机AT89S51,便于今后软件的晋级。依据发送数据是否需求曼彻斯特编码、所需外围元件的数量、功耗及发射功率等方面因素的归纳比较,选用nRF401芯片作为无线数据传输芯片。

    nRF401是单片无线收发芯片,选用蓝牙   技术规划,内部集成高频发射、高频接纳、PLL合成、FSK调制、FSK解调、多频道切换等许多功用和外围部件协议。它是现在集成度   的无线数据传输产品,也是现在   一个可以直接衔接微操控器串口进行异步数据传输、无需进行曼彻斯特编码的无线收发芯片。nRF401发射功率   为10 mw,作业电压为2.7~5 V,发射电流为8~30 mA,接纳电流约为10 mA,待机电流为8 μA,灵敏度为-105dBm,20脚8 mm×7 mm的SOIC封装;所需外部元件很少,仅外接一个晶振和几个阻容、电感元件;根本无需凋试,传输速率   为19.2 kbps,作业频段为433/434 MHz,有2个信道,调制办法FSK。

    nRF401端口中与微操控器相关的有5个:DIN和DOUT用于异步串行通讯,DIN的数据方向为微操控器到无线芯片,DOUT则相反;CS选择芯片频段,CS=0时为433.92 MHz,CS=1时为434.33 MHz,在本模块中将该引脚引出,以便使用户的操控,当一个频段无法作业时,可以设置为另一个作业频段,提高了体系的抗干扰能力;PWR_UP用于芯片节电操控,PWR_UP=0时为掉电(节电形式),PWR_UP=1时为上电(作业形式),在该模块中同样将其引出,当不需求无线发射和接纳时,用户可将芯片设置为节电形式以下降体系功耗;TXEN选择芯片处于发射或接纳状况,TXEN=0时为接纳状况,TXEN=1时为发送状况。

    PCB板布局和电源去耦规划关于RF射频电路获得较好的功用是必要的,电路板选用1.6 mm厚FR4板材的两层PCB,底层铺铜面,并在元件层空白区铺铜;多打通孔衔接上基层,铜面与地线相连,天线下底层不铺铜,VSS直接与铜层衔接,并确保要害元件有充分的接地。所有开关数字信号和操控信号都不能经过PLL环路滤波器元件和VCO电感邻近。直流供电在离VDD脚尽可能近的地方用高功用的电容去耦,去耦使用1个小电容(0.01μF)和1个大电容(2.2μF)并联,并防止较长的电源走线。

    2 硬件规划及软件完成

    2.1 微操控器与nRF401接口规划

    微操控器AT89S51与蓝牙芯片nRF401的接口电路如图2所示。nRF401芯片只需10个左右的元件即完成了数据收发功用,应用极端便利。其TXEN端为数据收发选择端,当设定为发送模块时,将其置为高电平;一起,DIN引脚与微操控器的TXD端相连,微操控器的RXD端作为预留接口与外部主控单片机的TXD相连。若规划为接纳模块,则将TXEN端置为低电平;一起,DOUT引脚与微操控器的RXD端相连,微操控器的RXD引脚与外部主控单片机的TXD引脚相连。模块与外部单片机的通讯波特率为主动检测办法,受nRF401芯片通讯速率的限制,可以作业在1 200~19 200 bps。模块上预留ICSP接口,可在体系编程,便利程序的晋级;一起具有杰出的防保密功用,不易破解。

    2.2 串口模仿及波特率自适应的完成

    模块上的微操控器AT89S51既要操控nRF401芯片完成与外界的数据交换功用,又有必要受控于模块外部的主控单片机,因而AT89S51有必要能一起与nRF401芯片和片外主控单片机通讯;但AT89S51只需一个UART,无法满足要求。为处理这一予盾,通常的做法是扩展一片8251或8250通用同步/异步接纳发送芯片(USART),但会额定占用单片机I/O资源,增加体系的本钱,一起也增大了PCB板的布局面积。在本体系顶用单片机一般I/O口模仿串行口,使用该办法还可扩展多个外部串行端口,完成多机通讯。

    要完成用一般的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变为高电平后中止计数,这样单片机就可以丈量出此低电平继续的宽度。

    设主机侧的波特率为BPS,其值不知道,则此刻接连8个码元的宽度计算公式为:

1-1.png

    设模块内AT89S51单片机的作业频率为fOSC,用守时器T1办法2(常数主动装入办法)发生波特率,串行口作业在办法1,此刻串口的波特率BAUD由守时器T1的溢出率和SMOD位一起决定。

1-2.png

    当T1用作波特率发生器时,寄存器TL1用作计数器,而主动重装的值放在TH1内,设初始值为X,则每过“256-X”个机器周期,守时器T1就会发生   溢出。为了防止因溢出而发生不用要的中止,此刻制止T1中止。AT89S51内部机器周期为振动周期的12分频,因而,T1的溢出周期为:

1-3.png

    设AT89S51内部守时器T1丈量接连8个码元计数值为M,因为是对内部的机器周期计数,且机器周期是内部振动周期的12分频,所以总数为M的机器周期代表的实践时刻是:

1-4.png

    由式(9)可以看出,其初值不依赖于单片机的作业频率,因而,只需单片机的作业频率相对稳定即可,对详细数值无要求。

    另外,需求说明的是,关于串行异步通讯,通讯两边的波特率不用严厉相等,只需两边的差别在必定的规模之内,就可以完成准确的通讯。

    2.2.2 软件模仿串口的完成

    波特率确认今后,即可用软件模仿完成串行口。就单片机而言,要完成模仿串口,有必要处理好时序问题,不能形成通讯过程中的数据丢掉,为此,选用单片机的外部中止0口的下降沿触发功用模仿串口数据接纳线RXD,P1.2口模仿串口数据发送线TXD,守时器T0以守时中止办法对接纳码元采样或发送数据流,完成了一个软件的串口。

    关于软件模仿串口,要害在于处理好时序问题。本体系中,充分使用了nRF401芯片半双工通讯的特色(即数据发送和接纳不能一起进行),成功地完成了一个软件串行口。串行数据的发送完成相对较为简略,只需使用守时器使发送出去的码元保持必定的时刻宽度;完成异步串行接纳的要害是开始位的检测和信息位的准确提取。任何时候数据传送都可能发生,故要求接纳方有必要可以及时准确地接纳数据,而通讯过程中没有同步信号,因而串行数据的提取相对而言具有必定的难度。为此,选用AT89S51的外部中止0口模仿RXD,并没置其中止办法为边沿触发,往常保持其为高电平。因为开始位为低电平,因而,当有数据抵达后就会发生中止,则依据波特率设置的守时时刻距离进行数据采样,即可完成串行数据的接纳。

    结 语

    基于本思维规划的无线数据传输模块,已成功地运用于“磁栅式浮动检测仪”项目中。经实践查验,体系作业稳定牢靠,具有必定的工程实用价值。