STM32中常见通信协议汇总

这篇具有很好参考价值的文章主要介绍了STM32中常见通信协议汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通信的分类:

    通信:两个不同设备之间数据的传输

    分为串行通信和并行通信例如发送8位数据

    串行通信: 在一个时钟脉冲下,一次发送1位数据    -- 8

    并行通信: 在一个时钟脉冲下,一次发送8位数据    -- 1

    串行通信:分为同步和异步模式

       同步: 同时发送,同时接收

       异步: 发送数据和接收数据不在同一时刻;

    串行设备分类

单工设备:   只作为接收设备或者发送设备 : 收音机  

半双工设备: 同一时刻,只能作为发送或者接收设备 :对讲机 IIC RS-485

全双工设备: 同一时刻,既可以作为发送 也可以接收数据 :手机USART SPI

***************************************************************************

通信协议: 协议:数据传输的格式

规定了数据发送接收的方式  (约定通信的双方,使用统一的协议、更好去有效通信)

1、串口:串行异步全双工通信

物理层: TX(发送管脚)   RX(接收管脚)

数据链接层:    RS232

RS232协议---位协议:

格式:起始位+数据位+奇偶校验位+停止位    -----  一帧数据

           1       5~8     奇/偶/无    1~2      

常用:   1      8        0        1   即:一个起始位+8个数据位+0个校验位+1个停止位

常见用于USART串口

数据总线: 空闲是高电平  

起始位;标志数据开始传输   --是一个低电平 

数据位:要发送的数据

奇偶校验位:校验数据传输的正确性

停止位: 一帧数据传输结束 ---是一个高电平

2、8080并口:并行协议 (并行同步半双工)

物理接口:

        CS----片选端  (0---选中该芯片)

        RS----数据(1)或者命令(0)选择端

         WR----写使能(0---使能)

         RD----读使能(0---使能)

         DB0~DB15---数据传输端(并行通信)

协议: 硬件协议 -- 时序 -- 状态

发送数据:

STM32中常见通信协议汇总

STM32中常见通信协议汇总

CS:低电平有效

DC: RS  数据/命令   命令:L  数据:H

RD:读使能,上升沿同步

WR:写使能,上升沿同步

写数据:

STM32中常见通信协议汇总

读数据:

  STM32中常见通信协议汇总

 8080协议应用于LCD屏显示

在STM32中,没有集成8080外设,所以我们常用FSMC(静态存储器存取)模拟8080协议

3、SPI:串行同步全双工 主从模式(一主多从)

SPI---高速 全双工 同步 串行通信    主从模式

    时钟是由主机产生

    物理接口:

        CS ---  片选    ---主机片从机

       SCLK---  时钟    ---主机产生

       MOSI---  主发从收

       MISO---  主收从发

SPI协议常用于:Flash、电阻式触摸屏、OLED屏、SD卡等中传输数据

主从机各有一个8位的移位寄存器,在时钟的驱动下进行数据交换(MOSI/MISO)

如果只需要主机发给从机,主机准备数据并发送,接收的值只接收不做处理;

如果只需要从机发给主机,主机随意发任意值,去进行数据交换,把接收值当作读取到的值;

时钟极性:

CPOL=0,串行同步时钟的空闲状态为低电平

CPOL=1,串行同步时钟的空闲状态为高电平

时钟相位:

CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样(读取)

CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样(读取);

CPHA=0

CPHA=1

CPOL=0

上升沿采样 :模式0

下降沿采样:模式1

CPOL=1

下降沿采样 :模式2

上升沿采样:模式3

模式0/模式3使用较多;

STM32中常见通信协议汇总

协议:固定格式,规定了数据发送接收的方式  (约定通信的双方,使用统一的协议、更好去有效通信)

4、IIC:串行同步半双工

物理层: SDA(数据线)   SCL(时钟线)

协议:开始条件和停止条件,设备有固定的器件地址

协议层:

       IIC器件:   发送器    接收器    主机   从机

       IIC器件都有一个唯一的器件地址

IIC采用的是主从结构 -- 一个主机,多个从机。

       主机 :  产生时钟信号  主机控制总线上的数据传输的开始和结束

       从机: 被主机寻址的器件   (寻址:从机的器件地址)

IIC总线的通信协议
1.开始条件和停止条件

STM32中常见通信协议汇总
在SCL为高电平时,SDA由高电平变为低电平。 -- 开始条件
在SCL为高电平时,SDA由低电平变为高电平。 -- 停止条件

2.读数据
1.主机发送开始条件(总线状态:所有从机等待接收数据)
2.主机发送设备地址 + 读 -- (总线状态:所有从机都接收设备地址,如果是本身地址,那么从机返回一个应答信号)
3.从机给主机发送数据(8位) (总线状态,主机发送应答信号)
4.从机接收到应答信号,再次发送数据,直到主机发送停止条件。
3.写数据
1.主机发送开始条件
2.主机发送设备地址+ 写(从机应答)
3.主机发送数据(8位)(从机应答)
4.主机发送停止条件。
(通信:一次发送8位数据,先发送高位)

STM32中常见通信协议汇总

 STM32中常见通信协议汇总

STM32中常见通信协议汇总  

IIC常见用于:电容式触摸屏、MPU6050

  1. RS232:串行异步全双工    RS232和RS485都属于通信标准,不是通信协议

RS232协议---位协议:

格式:起始位+数据位+奇偶校验位+停止位    -----一帧数据

          1        5~8     奇/偶/无    1~2

RS-232 被定义为一种在低速率、近距离串行通讯的单端标准。 RS-232 采取不平衡传输方式,即所谓单端通讯。

RS-232 的电气标准:

电平为逻辑“ 0”时: +3V~+15V;

电平为逻辑“ 1”时: -3V~-15V;

常见用于USART串口、设备之间通讯

  1. RS485:串行异步半双工

RS485既可以是半双工,也可以是全双工,不同的芯片方式不一样

我们常用的是SP3485芯片,它的通信方式是半双工的

485通信(不是通信协议,通信方法(电平))
1.解决串口通信距离短,传输速度慢的特点。
2.485的介绍(接收器/发送器)
把串口的TTL电平转化为485信号:
3.485芯片的管脚:半双工芯片

STM32中常见通信协议汇总

STM32中常见通信协议汇总

单片机的输入输出都是TTL电平,在长距离传输过程中易被干扰。485协议输出的是差分信号,经过TTL转485芯片的转换后其有效信息为两条信号线的电压差,即可大大消除通信时的共模干扰。

实际操作时,芯片的接收器输出端RO与单片机的RX相连,驱动器输入端DI则与单片机的TX相连。

485芯片既有全双工通信,也有半双工通信。如果485为半双工通信模式(SP3485),其在发送信息时便无法读取信息,因此当DE被拉高时完全处于发送信息的状态,此时DI接受单片机写入的数字信号,当输入信号DI为1时输出正的差分信号,即A-B>0.2V。

RS485(仪表通信接口):物理层面协议,RS-485和RS-232一样,都是串行通信标准,RS-485总线弥补了RS-232通信距离短,速率低的缺点,RS-485的速率可高达10Mbit/s,理论通讯距离可达1200米;RS-485和RS-232的单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为A,另一个定义为B。

标准规定了:

逻辑0:-6V to -2V

逻辑1:+2V to +6V

STM32中常见通信协议汇总

STM32中常见通信协议汇总  

RS485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。规定了电平,接线方式,使用驱动器接收器决定谁发谁收,为MODBUS服务,在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。

A和B为总线;

R为接收器输入;

RE为接收器使能信号;

DE为发送器使能信号;

D为发送器输出;

STM32中常见通信协议汇总

RS485常用于设备之间通信

  1. 单总线:串行半双工

单总线数据传输:(主从结构)

运用一根线,实现串行通信。

半双工的通信。

2.单总线的通信方式:

空闲态:高电平

STM32中常见通信协议汇总

开始信号:主机产生18ms的低电平

从机应答:产生80us的低电平

数字量:0 -- 先发送50us低电平+26~28us高电平

1 -- 先发送50us低电平+70us高电平

如:DHT11

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

测量范围

STM32中常见通信协议汇总

温度:0--50 度     

湿度:20-90%        

硬件层:

STM32中常见通信协议汇总  

  1. DHT11模块(电容式传感器):DHT11是一款含有已校准数字信号输出温湿度数据的数字温湿度传感器(不用自己校准,只需要直接使用数据即可)。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。DHT11采用简化的单总线通信,单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。MCU与DHT11是主从结构,只有主机呼叫从机,从机才能应答,且主机访问器件必须严格遵循单总线序列
  2. 采样周期:DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。数据=温度数据高位+温度数据低位+湿度数据高位+湿度数据低位+校验位。完整采样周期:主机发送起始信号、从机响应信号、从机发送数据、主机接收数据(40bit数据)、从机结束、信号转至空闲状态,总计大约至少2s时间。

数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验位

校验:

校验和 = 8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据

通讯时序图如下:

STM32中常见通信协议汇总

输出:

空闲状态下:主机发送高电平

主机起始信号:发送至少18ms低电平    发送20-40us的高电平

输入:

DHT响应信号:发送80us的低电平    发送80us的高电平

DHT数据:信号0/1  判断  保存   校验

DHT结束信号:从机发送50us的低电平   主机拉高进入空闲状态

信号0判断

STM32中常见通信协议汇总

发送50us的低电平   发送26-28us高电平

信号1判断

STM32中常见通信协议汇总  

发送50us的低电平   发送70us高电平文章来源地址https://www.toymoban.com/news/detail-401044.html

到了这里,关于STM32中常见通信协议汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】STM32学习笔记-I2C通信协议(31)

    I2C(Inter-Integrated Circuit)总线 是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 串行的 8 位双向数据传输位速率在标准模式下可

    2024年01月23日
    浏览(61)
  • STM32使用SPI协议主从通信

    目录 前言 一、理论部分      SPI简介   SPI特征 SPI物理层 SPI协议层 SPI配置过程 SPI数据发送与接收过程 二、代码部分 主机代码 从机代码 这是一篇学习笔记,记录自己学习SPI通信。方便之后运用的时候回顾。参考《STM32中文参考手册》          SPI 协议是由摩托罗拉公

    2024年02月13日
    浏览(31)
  • 【Stm32】【Lin通信协议】Lin通信点亮灯实验

    通过STM32的串口发送数据,然后通过串口转换模块将数据转换成LIN(Local Interconnect Network)协议,最终控制点亮灯。 需要工程和入门资料的可以私信我,看到了马上回。 入门书本推荐: 这个结构写成代码如下: 同步间隔段(Break Field) 是至少(注1)持续 13 位(以主机节点的位速率

    2024年02月05日
    浏览(40)
  • 【【STM32----I2C通信协议】】

    我们会发现I2C有两根通信线: SCL和SDA 同步 半双工 带数据应答 支持总线挂载多设备(一主多从,多主多从) 硬件电路 所有I2C设备的SCL连在一起,SDA连在一起 设备的SCL和SDA均要配置成开漏输出模式 SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右 左边的CPU就是主机,他的权

    2024年02月12日
    浏览(38)
  • STM32 SPI通信协议1——协议基本原理及管脚定义

            SPI全称为 Serial Peripheral interface ,译为 串行外围设备接口 。SPI主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号编码器之间。         SPI是一种高速,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,

    2024年01月25日
    浏览(30)
  • STM32进阶学习(6)-通信协议之CAN详解

    CAN通信的背景可以追溯到上世纪80年代初,当时汽车制造商面临着一个共同的挑战: 如何有效地传输和共享大量的传感器数据和控制信息 。 传统的电缆布线方式非常复杂且容易出错,而且无法满足日益增长的数据传输需求。 为了解决这个问题,德国的汽车制造商奔驰(Mer

    2024年02月03日
    浏览(26)
  • ZIGBEE协议栈通信——阿里云上传数据(STM32)(一)

    Zigbee是一种低功耗、低成本的无线通信协议,特别适用于物联网设备之间的通信。Zigbee协议栈是一组硬件和软件层级结构,用于支持Zigbee设备之间的通信。 Zigbee协议栈通常由以下几个层级组成: 1. 物理层(Physical Layer):负责处理物理无线通信的细节,例如频率、功率控制和

    2024年02月02日
    浏览(31)
  • STM32实战之深入理解I²C通信协议

    目录 I²C的物理层 I²C的协议层 I²C特点 I²C 总线时序图 软件模拟I²C时序分享 软件模拟IIC驱动AT24C02分享 例程简介 例程分享 STM32的I²C外设 IIC(Inter-Integrated Circuit),也称为I²C或TWI(Two-Wire Interface),是一种广泛使用的串行总线接口,用于连接低速度的集成电路。这种通信协

    2024年02月03日
    浏览(28)
  • (新手必看)自定义数据传输通信协议+STM32代码详解

           本篇博客主要学习和了解一些单片机协议的格式,在对传输大数据或者要求准确性的时候,都需要通过协议来发送接收,下面通过了解协议的基本构成和代码来分析和实现协议的发送和接收。本篇博客大部分是自己收集和整理,如有侵权请联系我删除。 本次博客开发

    2024年02月03日
    浏览(37)
  • STM32使用SPI通信时的一些常见问题及解决方法(主,从)

            最近在做一个多MCU的项目时,MCU之间的数据传输使用了SPI通信,在做从机时遇到了一些 “疑难杂症”,研究了半天,总算是把故障排除了,就又总结了一下SPI常遇到的几种问题写出来整理一下。 目录 一、SPI简介:  二、常见问题: 三、疑难杂症: Q1:使用的HAL库,

    2024年02月21日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包