1.IIC通信协议

串行总线包括两个,数据线SDA和时钟线SCL,可发送和接受数据。在CPU与被控IC之间,IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。IIC是半双工通信方式。

空闲状态:IIC总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处于截至状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是电平信号。

停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

应答信号ACK:发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,为有效答位(ADC检查应答位),即收到该字节;反之,则反。 对于反馈有效应答位ACK的要求是:接收器在9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控器发送一个停止信号P。

数据的有效性:IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。即:数据在SCL的上升沿到来之前需要准备好。并在在下降沿到来之前稳定。

数据的传送:在IIC总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。

注:STM32IIC不是很稳定,所以用IO口模拟IIC通信。

2.SPI通信协议

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

SPI接口一般使用4条线通信:(INPUT输入;OUTPUT输出;Master主设别;Slave从设备)。

MISO主设备数据输入,从设备数据输出

MOSI主设备数据输出,从设备数据输入

SCLK时钟信号,由主设备产生

CS从设备片选信号,由主设备控制

SPI接口原理:1.硬件上为4根线; 2.主机和从机都是有一个串行位移寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输; 3.串行位移寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行位移寄存器中的内容通过MISO信号线返回给主机。两个位移寄存器中的内容实现交换。 4.外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。(就是先发一个空字节后传输有用字节)。

SPI协议特征:1.STM32SPI接口可配置为支持SPI协议或者支持IIS音频协议,默认是SPI模式,可以通过软件切换到IIS方式。 2.8或16位传输帧格式选择 。3.8个主模式波特率预分频系数(最大为Fpclk/2)。 2.通过软件控制片选引脚:如:三个设备都接到SPI1上,通过给片选IO信号来控制相应设备,即给NSS(SSM)=0(拉低)为选择该设备,NSS(SSM)=1(拉高)不选择该设备。

3.串口通信基本原理

并行通信:传输原理:数据各个位同时传输。优点:速度快。缺点:占用引脚资源多。

串行通信:传输原理:数据按位顺序传输。优点:专用引脚资源少;缺点:速度相对较慢。

串行通信:按照数据传送方向分为: 单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输,但是,在某一时刻,值允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 全双工:允许数据同时在两个方向上传输,所以,全双工通信时两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

串行通信的三种传送方式:

同步通信:带时钟同步信号传输,SPI,IIC通信接口(一个时钟传输和接收一个byte,传输速度是时钟来决定)。

异步通信:不带时钟同步信号;UART(通用异步收发器)(输出端和接收端约定好比特率,按照传输的字节估解析每个Byte所占的时间,来传输数据),单总线(也可以通过高低电压所占时间并把它记为1或0来传输信号);

常见的串行通信接口:

STM32的串行通信接口:UART:通信异步收发器;USART: 通用同步异步收发器;STM32F4XX目前最多支持8个UART,STM32F407一般是6个。STM32F103目前最多支持5个UART。

        UART:通用异步收发传输器,uart是异步通信,因为它只有一根线就可以数据的通信,不像SPI,IIC等同步传输信号。所以串口的传输速度和其他协议的速度相比是比较慢的。USART既能用于同步串行通讯,又能用于异步串行通讯。(STM32F4xx一般用USART 同步/异步收发传输器)

同步和异步分别指:

异步通信,指数据传送以字符为单位,字符与字符间的传送完全异步,位与位之间的传送基本上是同步的。         同步通信,是指数据传送以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。相对而言,异步通信效率较低,同步通信效率较高。

4.NTF24L01无线通信

概况:可实现点对点或1对6的无线通信,无线速度最高可达到2Mbps,采用SPI通信,可以方便的连接到MCU上。

特点:高效的GFSK调制,抗干扰能力强;126个可选的频道(2.4+0.125),满足多点通信和调频通信的需要;内置CRC检错和点对多点的通信地址控制;可设置自动应答,确保数据可靠传输。

模式介绍:该收发模式,数据可以低俗从微控制器送入,但高速(1Mbps/2Mbps)发射,这样可以尽量节能。与射频协议相关的所有告诉信号处理都在片内进行,好处:节能,地的系统费用,数据在空中停留时间短,抗干扰性强; 在该收发模式下,NRF24L01自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将使能发送过程

接收流程:1. 配置接收地址和要接收的数据包大小; 2. 配置CONFIG寄存器,使之进入接收模式,把CE置高; 3. 130us后,NRF24L01进入监视状态,等待数据包的到来; 4. 当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去; 5 . NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器; 6. 微控制器把数据从FIFO读出(0X61指令); 7. 所有数据读取完毕后,可以清除STATUS寄存器。NRF2401可以进入四种主要的模式之一;

5.CAN:串行通信协议

CAN协议特点:

  1. 多主控制。总线空闲时,所有单元都可发送信息,而两个以上的单元同时开始发送信息时,根据标识符(ID,非地址)决定优先级。两个以上的单元同时开始发送信息时,对各消息ID的每个位进行逐个仲裁比较,仲裁获胜(优先级最高)的单元可继续发消息,仲裁失利的单元则立刻停止发送而进行接收工作。

  2. 系统柔弱性。连接总线的单元,没有类似“地址"的信息,所以,在总线上添加单元时,已连接的其他单元的软硬件和应用层都不需要做出改变。

  3. 速度快,距离远。最高1Mbps(距离<40M),最远可达10KM(速率<5Kbps)。

  4. 具有错误检测,错误通知和错误恢复功能。所有单元都可以检测错误(错误检测功能),检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送,强制结束发送的单元会不断反复地重新发送此消息知道发送成功为止(错误恢复功能)。

  5. 故障封闭功能。CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障,驱动器故障,断线等)由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

  6. 连接节点多。CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的,但实际上可连接的单元数受总线上的时间延时及电气负载的限制,降低通信速度,可连接的单元数增加;增加通信速度,则可连接的单元数减少。

  7. CAN控制器根据CAN_L和CAN_H上的电为查来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。(显性电平对应逻辑:0 CAN_H和CAN_L之差为2V左右;隐性电平对应逻辑:1 CAN_H和CAN_L之差为0V)。

  8. 显性电平具有优先权,只要有一个单元输出显性电平,总线上即为显性电平(D)。隐性电平(R)则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强)。另外,在CAN总线的起止端都有

STM32F407ZGT6通信协议学习相关推荐

  1. H.323通信协议学习总结

    H.323通信协议学习总结 H.323是什么 ITU(国际电联)制定的多媒体会议标准 多媒体应用包括:语音.视频.数据 基于包交换网络 H.323 目的 构建多媒体通讯系统(多媒体会议系统) H.32 ...

  2. SECS/GEM通信协议学习之报文

    SECS/GEM通信协议学习笔记之报文格式 转载自他山之石 一.HSMS报文格式 HSMS 报文消息长度用一个 4 字节无符号整数表示,它表示消息头部和消息文本的总字节数,在传输过程中,高字节在前,低 ...

  3. 通信协议学习-485通信(1)

    1.RS-485通信协议标准 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定,主要实现两个设备之间的数据交换功能,通信协议分硬件层协议和软件层协议.硬件层协议决定数据如何传输,比如要设备A要 ...

  4. 单片机入门学习单片通信协议学习笔记....更新中

    单片机各类通信协议 --来自于bilbil金善愚老 一.1-wire单总线 概述: 采用单根信号线既传输时钟又传输数据且数据传输是双向的.(单总线器件芯片有编制唯一的序列号(芯片通信地址)) 适用范围 ...

  5. 通信协议学习-485通信(2)

    2.RS-485通信总线标准 RS-485标准采用平衡式发送和差分接收方式实现通信,由于传输线通常使用双绞线,又是差分传输,所以有极强的抗共模干扰的能力.RS-485采用半双工工作方式,支持多点数据通 ...

  6. UART通信协议学习笔记

    目录 1.1 UART协议简介 1.2 波特率和比特率 1.3 RS-232信号线 1.4 RS-232和RS-485 1.5 代码波形图 1.6 相关问题 1.1 UART协议简介 同步串行通信需要 ...

  7. Homebus(HBS)通信协议学习

    HBS通信主控与从机连接示意图 两根HBS总线之间的电压差大约为15V,差分信号分别加载到HBS的这两根总线上. 用示波器的探头测得(探头的地在任意一根HBS总线上,探头的信号输入端在另一根HBS总线 ...

  8. plc secs通讯协议_SECS/GEM通信协议学习笔记

    了解下半导体设备现场的通讯协议,对于GEM的开发是半导体设备管理/生产/维护软件的一部分. SECS / GEM是用于设备到主机数据通信的半导体设备接口协议.在自动化工厂中,接口可以启动和停止设备处理 ...

  9. 基于STM32F407ZGT6的学习笔记(6)

    一,基于蓝牙通信的AT指令 使用jdy-31蓝牙spp串口透传模块,可支持windows .linux顿号.安卓数据透传,工作频段2.4g赫兹,最大发射距离可达三十米!蓝牙版本为3.0! ①直接使用串 ...

最新文章

  1. Nature Microbiology:肠道菌群如何划分肠型
  2. CMPB 2021|U-Net:又一魔改U-Net应用于腹部肝脏分割任务!
  3. linux平台关于内存,cpu,连接数,流量监控(一)
  4. jaxb_JAXB –新手的观点,第2部分
  5. (JAVA)基本数据类型 对象包装类
  6. java applet 访问文件_使用JavaApplet访问数据库
  7. 怎么把github上的东西传到码云_Git同步更新操作GitHub和码云仓库上面的代码
  8. 微信ipad协议源码
  9. 自回归(Autoregressive Models,AR)模型
  10. 关于Palantir—第四部分:Palantir应用程序
  11. HDU 5651 xiaoxin juju needs help 组合数
  12. AutoCAD 2021绿色中文精简版
  13. int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围
  14. PHP写入txt文件换行
  15. 高斯滤波及高斯卷积核C++实现
  16. C#--如何用字符串组成的逻辑表达式进行判断,如:“7>2(4<7||8>4)“,字符串写的逻辑表达式来进行判断(只需3步)
  17. CMakeLists.txt 构建 Qt工程
  18. 计算机硬盘和光驱,一根IDE线同时连接并口硬盘和光驱的方法
  19. 一站式查看网络流量的完整解决方案
  20. Android-BlutoothBle,蓝牙中心设备(peripheral)向外围设备(GattServer)连续写入多个Characteristic的注意事项

热门文章

  1. Qt(c++)入门知识总结
  2. rfid超高频电子标签的优势有哪些
  3. 声音震动专用-24位动态信号高精度数据采集卡
  4. esxi6.7虚拟机装服务器上不认u盘,vmware ESXi 6.7 识别不到USB 网卡(示例代码)
  5. 《墨攻》理解IoC—Spring底层核心
  6. Android上下文Context
  7. [论文笔记] 2022-TKDE-Semantic and Structural View Fusion Modeling for Social Recommendation
  8. 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆
  9. zzuli OJ 2345: 小新同学参加联谊会
  10. PRML5-神经网络(2)