设计与开发

单片机 无线通信模块 单片机无线通信模块——NRF24L01

小编 2024-11-24 设计与开发 23 0

单片机无线通信模块——NRF24L01

这是一个NRF24L01模块,如图1,它是一款2.4GHz的无线收发一体模块,我们使用它来实现单片机之间的无线通信。这个模块的核心元器件就是中间的这颗NRF24L01芯片,这颗芯片是欧美品牌,而外围模块则是中国制造。

图1 NRF24L01模块

它有着迷你的外形尺寸,使用起来非常方便。板载蛇行天线最大传输距离为100米。支持一对六数据通信。这个模块通过八个直插引脚与外界进行连接,供电电压为1.9至3.6伏,其他数据引脚可以直接连接3.3V或5V单片机。空中传输速率有2M、1M和250KHz可选。它与主控芯片之间的通信方式为4线SPI通信,最高速率为10MHZ。

图2 NRF24L01的电性能

这是模块的PCB布线图,第1、2引脚为电源引脚。第3引脚为模块的低电平使能引脚。第4引脚用于控制模块的片选,用于开始一个SPI通信。第5、6、7、8为模块的SPI通信口,他们依次为SPI总线时钟、主器件输出从器件输入、主器件输入从器件输出和中断信号输出引脚。如图3.

图3 引脚功能描述

这是两颗单片机借助NRF24L01实现无线通信的接线原理图,他们的连接非常简单。这个模块会占用单片机的6个引脚,我们使用单片机的2个普通IO端口连接模块的片选和使能引脚,用单片机的SPI引脚或普通IO口模拟SPI总线连接模块的SPI引脚即可实现数据交换。如图4.

图4 接线原理图

单片机常用的几种通信协议「IIC、SPI、DMA、CAN、Modbus」

在单片机的应用中,通信协议是其中必不可少的一部分,上位机与下位机,单片机与单片机,单片机与外设模块之间的通信都需要通信协议实现信息交换和资源共享。由于设备之间不同的传输速率、电气特性、可靠性要求的不同,也产生了许多类型的适用于不同情况的通信协议,并被广泛地接受和使用。其实使用率最高的主要有以下几种:

一、IIC通信协议

I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由 NXP(原 PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间近距离经常性数据通信,可实现设备组网。

二、SPI 协议

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

特点: 高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件3~4线;也是所有基于SPI的设备公共有的,他们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。

三、DMA

DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。在DMA出现之前,CPU与外设之间的数据传送方式有程序传送方式、中断传送方式。CPU是通过系统总线与其他部件连接并进行数据传输。这样数据的传送速度就取决于存储器和外设工作速度。

四、CAN

CAN 是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH 公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。 在北美 和西欧, CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以 CAN 为底层协议专为大型货车和重工机械车辆设计的J1939 协议。

CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的量”、“通过多个 LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的 CAN 通信协议。此后, CAN 通过 ISO11898 及 ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。

特点: 采用双线传输,两根导线分别作为CAN_H、CAN_L,并在终端配备有120Ω的电阻。收到总线信号时,CAN收发器将信号电平转化为逻辑状态,即CAN_H与CAN_L电平相减后,得到一个插值电平。各种干扰在两根导线上的作用相同,相减后的插值电平可以滤过这些干扰。

五、Modbus 通讯协议

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

当在同一 Modbus 网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用 Modbus 协议发出。在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

此协议支持传统的 RS-232、 RS-422、 RS-485 和以太网设备。许多工业设备,包括 PLC, DCS,智能仪表等都在使用 Modbus 协议作为他们之间的通信标准。

相关问答

单片机 控制 无线 串口 模块 该怎样去编程?

串口WiFi模块是由具备WiFi外设的ARM组成的系统,它们上电后会启动自己的系统然后等待与你的单片机进行串口通信,主动权还是掌握在你的单片机上,远程控制甚至是...

单片机 如何远距离 通信 ?

实现单片机远距离与手机通信,可以用GPRS模块(模块需要有SIM通讯卡)单片机通过编程初始化模块,也可以用wifi模块(如ESP8266等)手机直接连接模块(近距离通讯...

单片机 wifi 模块 怎么用?

如果是串口的接口,直接连到单片机的RXD,TXD就可以,在无限模块设置好后,就当它是导线就可以了,按照说明连线就可以了。无线模块(RFwirelessmodule),是...如果...

jdy-18蓝牙 模块 如何实现 单片机 数据通讯?

jdy-18蓝牙模块是一种常见的蓝牙通讯模块,可以与单片机进行数据通讯。首先需要在单片机上实现蓝牙模块的串口通讯,通常可以使用单片机的UART串口实现。具体步...

android手机和 单片机 如何实现相互通讯?

1.串口对串口(不过一般普通用户不太容易连接到手机的串口)2.蓝牙:单片机+蓝牙模块-》手机蓝牙模块-》手机上应用程序3.红外:单片机+红外模块-》手机红外模块...

利用 单片机 向wifi 模块 发送数据,电脑通过wifi网络段接收数据...

建议先用串口工具去测试wifi模块与手机或者电脑进行数据收发,设置好想用的参数,然后再将他接到单片机的串口上,因为串口转wifi模启动都是透传的,串口wifi模块TL...

单片机 与手机如何实现远距离 通信 ?

单片机与手机实现远距离通信,有很多种可实施的方案。例举其中两个方案进行讲解:一:2G/4G移动通信方案器件选型1,单片机选用Cortex-M3内核,国产兆易创新...单...

如何从51 单片机 向蓝牙 模块 发送AT指令? - 懂得

51单片机和蓝牙连接是通过串口实现的,所以通过单片机想蓝牙模块发送AT指令,也必须通过串口来发送,安装蓝牙模块的协议来发送控制命令就可以了。接收...

智能电表里面有 单片机 吗?

智能电表里面通常都会搭载一块单片机。这是因为智能电表需要采集电能数据,并将其传输到中心服务器进行处理和管理。单片机可以负责这些任务,同时还可以实现智...

wifi 模块 怎样与 单片机 连接?

使用wifi模块连接单片机的第一步是选择一款合适的wifi模块,其次是确定所需的通信接口,如UART、SPI或I2C。接下来,根据所用的接口将wifi模块与单片机进行连接...

猜你喜欢