单片机无线通信模块——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 协议作为他们之间的通信标准。
相关问答
蓝牙 模块 和 单片机 怎么 通信 ?蓝牙模块与单片机的通信通常通过串口(USART)实现。以下是一些基本步骤和注意事项:1.**连接蓝牙模块**:-蓝牙模块(如HC-05)的TX(发送端)应连接到...蓝牙模...
如何用C语言实现用 无线模块 在两个 单片机 上 通信 ?这个涉及的就比较多了。通常单片机通过串口和WIFI模块通信,难点是网络通信部分。首先要确定服务端和客户端。如果电脑做服务端就要写个程序监听一个端口(也有...
wifi 模块 与 单片机 连接用哪个总线?属于串口通信,WiFi的输出输入串口与单片机的输入出口相连,如WiFi的TXD发,单片机的RXD收;单片机的TXD发,WiFi的RXD收,可通过模块对单片机写入代码。WiFi把...
单片机 蓝牙是什么?单片机蓝牙:指的是单片机的蓝牙模块。以51单片机为例来进一步解释,它是在蓝牙通讯的基础之上,进行内部蓝牙单片机模块与外部蓝牙发射接收设备之间,相互收发数...
手机蓝牙与 单片机 的 通信 如何实现?本篇回答,前半部分简单介绍一下,后半部分很详细!欢迎大家关注:电气电子视界手机蓝牙与单片机的通信实现方式如下。使用蓝牙转串口模块连接51单片机的RX和TX...
树莓派怎么能和 单片机 或者Arduino 无线通信 ?树莓派可以通过串口,与MCU等通信,也可以通过外扩的一些模块进行通信(wifi)树莓派可以通过串口,与MCU等通信,也可以通过外扩的一些模块进行通信(wifi)
三个常见的 单片机 接口 模块 ?分别是数字量接口模块,模拟量接口模块,通讯接口模块。分别是数字量接口模块,模拟量接口模块,通讯接口模块。
如何实现 单片机 与手机的远距离 通信 ?通过云服务器中转可以实现单片机与手机的远距离通信只要有互联网连接,通过云服务器中转,单片机和手机无论处于地球的哪一个角落都可以进行通信,这就是物联网...
jdy-18蓝牙 模块 如何实现 单片机 数据通讯?jdy-18蓝牙模块是一种常见的蓝牙通讯模块,可以与单片机进行数据通讯。首先需要在单片机上实现蓝牙模块的串口通讯,通常可以使用单片机的UART串口实现。具体步...
请问 单片机 用的蓝牙模块和 无线模块 的区别是什么?它们两个都是属于2.4GISM无线频段,传输距离也差不多,大概10m,HC-05嵌入式蓝牙串口通讯模块比nRF24L01无线模块多了蓝牙通讯协议硬件,如果你想传输大量数据或则...