0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于nRF401芯片和AT89S51芯片实现无线数据传输系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:鹿泽洲,赵国豪 2021-05-27 10:17 次阅读

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个码元的宽度计算公式为:

基于nRF401芯片和AT89S51芯片实现无线数据传输系统的设计

设模块内AT89S51单片机的工作频率为fOSC,用定时器T1方式2(常数自动装入方式)产生波特率,串行口工作在方式1,此时串口的波特率BAUD由定时器T1的溢出率和SMOD位同时决定。

o4YBAGCvAaKAcfOaAAAYDH7AMzc302.png

当T1用作波特率发生器时,寄存器TL1用作计数器,而自动重装的值放在TH1内,设初始值为X,则每过“256-X”个机器周期,定时器T1就会产生一次溢出。为了避免因溢出而产生不必要的中断,此时禁止T1中断。AT89S51内部机器周期为振荡周期的12分频,因此,T1的溢出周期为:

o4YBAGCvAZuAT2RNAABzRDoJwuM655.png

设AT89S51内部定时器T1测量连续8个码元计数值为M,由于是对内部的机器周期计数,且机器周期是内部振荡周期的12分频,所以总数为M的机器周期代表的实际时间是:

pIYBAGCvAZKAQiSgAABPR8nYtM8503.png

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

另外,需要说明的是,对于串行异步通信,通信双方的波特率不必严格相等,只要双方的差别在一定的范围之内,就可以实现准确的通信。

2.2.2 软件模拟串口的实现

波特率确定以后,即可用软件模拟实现串行口。就单片机而言,要实现模拟串口,必须解决好时序问题,不能造成通信过程中的数据丢失,为此,采用单片机的外部中断0口的下降沿触发功能模拟串口数据接收线RXD,P1.2口模拟串口数据发送线TXD,定时器T0以定时中断方式对接收码元采样或发送数据流,实现了一个软件的串口。

对于软件模拟串口,关键在于解决好时序问题。本系统中,充分利用了nRF401芯片半双工通信的特点(即数据发送和接收不能同时进行),成功地实现了一个软件串行口。串行数据的发送实现相对较为简单,只需利用定时器使发送出去的码元维持一定的时间宽度;实现异步串行接收的关键是起始位的检测信息位的准确提取。任何时候数据传送都可能发生,故要求接收方必须能够及时准确地接收数据,而通信过程中没有同步信号,因此串行数据的提取相对而言具有一定的难度。为此,采用AT89S51的外部中断0口模拟RXD,并没置其中断方式为边沿触发,平常维持其为高电平。由于起始位为低电平,因此,当有数据到达后就会产生中断,则根据波特率设置的定时时间间隔进行数据采样,即可实现串行数据的接收。

结 语

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6803

    浏览量

    147594
  • 芯片
    +关注

    关注

    446

    文章

    47725

    浏览量

    408995
  • 接口
    +关注

    关注

    33

    文章

    7627

    浏览量

    148429
收藏 人收藏

    评论

    相关推荐

    毕业设计:无线数据收发系统的设计与实现

    无线数据传输系统有点对点,点对多点和多点对多点三种。本系统由于实际应用的需要,接收器和数据终端之间的数据
    发表于 07-31 22:02

    一种基于nRF401无线通讯系统设计

    应用中有广泛的市场。在众多的无线收发芯片中,nRF401 以其成本低、可靠性高、外围设计简单广受欢迎,然而由于通信空间的复杂性,无线通讯系统
    发表于 07-16 06:52

    采用nRF401实现通用智能无线收发装置

    谢锦沐 吴功平 蒋锡健 祝鲁金 目前,在各种仪器仪表数据采集系统,遥控测控系统中都需要嵌入无线数据传输的装置,本文介绍了一种通过单片机w77
    发表于 07-26 06:32

    基于蓝牙技术的无线收发芯片nRF401

    介绍基于蓝牙技术的无线收发芯片 nRF401的特点、内部结构与功能参数,论述应用设计的技术要点。
    发表于 04-07 09:43 51次下载

    AT89C51单片机在无线数据传输中的应用

    介绍无线数据传输系统的组成、AT89C51单片机串行口的工作方式及其与无线数字电台接口的软硬件设计与实现
    发表于 04-16 09:42 64次下载

    AT89C51单片机在无线数据传输中的应用

    介绍无线数据传输系统的组成、AT89C51单片机串行口的工作方式及其与无线数字电台接口的软硬件设计与实现
    发表于 05-15 14:24 48次下载

    基于USB接口的无线数据传输系统设计

    本文提出了一种运用USB接口芯片PDIUSBD12、89C52微处理器、射频收发器nRF401构建的无线USB数据传输接口,并利用该接口成功
    发表于 09-24 15:48 91次下载

    AT89C51nRF401芯片在RFID系统中的应用

    AT89C51nRF401芯片在RFID系统中的应用 1 RFID系统简述 RFID即为非接触的识别
    发表于 11-13 19:14 1415次阅读
    AT<b class='flag-5'>89C51</b>与<b class='flag-5'>nRF401</b><b class='flag-5'>芯片</b>在RFID<b class='flag-5'>系统</b>中的应用

    基于nRF401的通用智能无线收发装置

    基于nRF401的通用智能无线收发装置 目前,在各种仪器仪表数据采集系统,遥控测控系统中都需要嵌入无线
    发表于 12-14 14:10 1161次阅读
    基于<b class='flag-5'>nRF401</b>的通用智能<b class='flag-5'>无线</b>收发装置

    nrf401无线收发芯片应用电路图

    nrf401无线收发芯片应用电路图 在本设计中,无线射频模块采用挪威nordic公司推出的nrf401
    发表于 12-14 14:10 3312次阅读
    <b class='flag-5'>nrf401</b><b class='flag-5'>无线</b>收发<b class='flag-5'>芯片</b>应用电路图

    NRF401无线收发芯片的长距离通信设计

    NRF401系列高速单片无线收发芯片为短距离无线数传应用提供了较好的解决办法,在某些应用中需要尽可能长的通信距离,本文探讨影响NRF401
    发表于 03-21 13:09 203次下载

    基于RF芯片nRF401无线数传模块设计

    所设计的无线数传模块由单片射频收发芯片NRF401、AT89C52微控制器和MAX3316接口芯片构成,工作在433.92/434.33MH
    发表于 09-16 12:08 3828次阅读

    基于MSP430和nRF401无线自动抄表系统

    基于MSP430和nRF401无线自动抄表系统
    发表于 02-17 10:00 33次下载

    探究nRF401和AT89C2051的无线数字通信系统

    本文将论述基于nRF401无线收发芯片和AT89C2051微控制器芯片无线通信子
    发表于 05-26 16:27 984次阅读
    探究<b class='flag-5'>nRF401</b>和AT<b class='flag-5'>89</b>C2051的<b class='flag-5'>无线</b>数字通信<b class='flag-5'>系统</b>

    基于单片机和射频芯片实现无线数据传输系统的设计

    数据传输系统的相关因素,如频率选择、抗多径干扰、天线选择、协议设计等,分析了在低功率、微型化无线数传系统设计时对这些影响因素的具体解决思路。以单片机AT
    的头像 发表于 06-14 11:38 2753次阅读
    基于单片机和射频<b class='flag-5'>芯片</b><b class='flag-5'>实现</b><b class='flag-5'>无线</b><b class='flag-5'>数据传输</b><b class='flag-5'>系统</b>的设计