通信协议预备知识

SPI总线

SPI(Serial Peripheral Interface,串行外围设备接口),是一种高速全双工的通信总线,包含4条总线,分别为SS、SCK、MOSI、MISO
在这里插入图片描述

  1. SS(Slave Select,片选信号线):当有多个SPI设备与MCU相连时,每个设备的这个片选信号线是与MCU单独的引脚相连的,而其他的SCK、MOSI、MISO线则为多个设备并联到相同的SPI总线上。当SS信号线为低电平时,片选有效,开始SPI通信。
  2. SCK(Serial Clock,时钟信号线):由主通信设备产生,不同设备支持的时钟频率不一样,如STM32的SPI时钟频率最大为 f P C L K / 2 f_{PCLK} /2 fPCLK/2
  3. MOSI(Master Output Slave Input,主设备输出/从设备输入引脚):主机的数据从这条信号线输出,从机由这条信号线读入数据,即这条线上数据的方向为主机到从机。
  4. MISO(Master Input Slave Output,主设备输入/从设备输出引脚)

I2C总线

在这里插入图片描述

1.物理层

  • I2C(Inter-Integrated Circuit)
  • 两条总线线路:一条双向串行数据线(SDA SerialData),一条串行时钟线(SCL SerialClock)
  • 每个连接到总线的设备都有一个独立地址,主机可以利用这个地址进行不同设备之间的访问
  • 多主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线
  • EEPROM是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载之,EEPOM芯片最常用的通信方式就是I2C协议

2.协议层

在这里插入图片描述

  • 这两幅图表示的是主机和从机通信时SDA线的数据包序列。
  • S表示由主机的I2C接口产生的传输起始信号,这时连接到I2C总线上的所有从机都会接收到这个信号
  • 从机接收到匹配的地址后,主机或从机会返回一个应答(A)或非应答(A非)信号,只有接收到应答信号后,主机才能继续发送或接收数据
  • 写过程中,主机每发送完一个数据,都要等待从机的应答信号(A),重复这个过程,可以向从机传输N个数据,当数据传输结束时,主机向从机发送一个停止传输信号(P),表示不再传输数据
  • 读过程中,当主机希望停止接收数据时,就向从机返回一个非应答信号,则从机自动停止数据传输
  • SCL线的时序即为I2C协议中的时钟信号,它由I2C接口根据CCR(Clock Control Register,时钟控制寄存器)控制,控制的参数主要为时钟频率

USART总线

  • Universal Synchronous Asynchronous Receiver and Transmitter的缩写,即通用同步异步收发器
  • USART支持使用DMA,可实现高速数据通信
  • USART在STM32应用最多的莫过于“打印”程序信息,一般在硬件设计时都会预留一个USART通信接口连接电脑,用于在调试程序时可以把一些调试信息“打印”在电脑端的串口调试助手工具上,从而了解程序运行是否正确、指出运行出错位置等
  • 有别于USART,还有一种UART外设(Universal Asynchronous Receiver and Transmitter),它是在USART基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需要不需要对外提供时钟输出,我们平时用的串口通信基本都是UART

1.物理层

在这里插入图片描述

  • 在上面的通信方式中,两个通信设备的“DB9接口”之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准”传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号必须经过一个“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号,才能实现通信
    在这里插入图片描述

2.协议层

  • 串口通信的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口。在串口通信的协议层中,规定了数据包的内容,它由起始位、主体数据、校验位以及停止位组成。通信双方的数据包格式要约定一致才能正常收发数据
    在这里插入图片描述

  • 串口异步通信中由于没有时钟信号,所以两个通信设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,图中用虚线分开的每一格就代表一个码元。常见的波特率为4800、9600、115200等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值