常见的硬件通讯协议

1、IIC(Inter-Integrated Circuit 两线式串行总线)

1、非全双工,两线式串行总线(SDA数据线、SCL时钟线)
2、用于连接微控制器和外围设备、传输速度100kbps(48.8KB/s)~ 4MHz(488KB/s)
3、在主从通信中,可以有多个I2C总线器件同时接到I2C总线 上,通过地址来识别通信对象。在SCL时钟的高电平采样数据。
4、总线数据传输起始和结束条件
开始:IIC总线SCL高电平时SDA出现由高到低的跳变
结束:IIC总线SCL高电平时SDA出现由低到高的跳变
在这里插入图片描述

数据传输的时序:
从高位开始传输,若有中断来,则SCL置低电平等待,SCL高电平时数据传输,SCL低电平时数据转换

2、SPI(Serial Peripheral interface 串行外围设备接口)

1、SPI,是一种高速的,全双工,同步的通信总线,传输速率高达50Mhz
2、有四根线进行通讯:MISO、MOSI、SCLK、CS
MISO:主设备数据输入,从设备数据输出
MOSI:主设备数据输出,从设备数据输入
SCLK:主设备产生的时钟信号
CS:片选信号
3、SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

IIC与SPI的异同点

1、 iic总线不是全双工,2根线SCL SDA。spi总线实现全双工,4根线SCK CS MOSI MISO
2 、iic总线是多主机总线,通过SDA上的地址信息来锁定从设备。spi总线只有一个主设备,主设备通过CS片选来确定从设备
3 、iic总线传输速度在100kbps-4Mbps。spi总线传输速度更快,可以达到30MHZ以上。
4、 iic总线空闲状态下SDA SCL都是高电平。spi总线空闲状态MOSI MISO也都是 SCK是有CPOL决定的
5 、iic总线scl高电平时sda下降沿标志传输开始,上升沿标志传输结束。spi总线cs拉低标志传输开始,cs拉高标志传输结束
6 、iic总线是SCL高电平采样。spi总线因为是全双工,因此是沿采样,具体要根据CPHA决定。一般情况下master device是SCK的上升沿发送,下降沿采集
7 、iic总线和spi总线数据传输都是MSB在前,LSB在后(串口是LSB在前
8、 iic总线和spi总线时钟都是由主设备产生,并且只在数据传输时发出时钟
9 、iic总线读写时序比较固定统一,设备驱动编写方便。spi总线不同从设备读写时序差别比较大,因此必须根据具体的设备datasheet来实现读写,相对复杂一些。

3、UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)

  • 它包括了RS232、RS422、RS423、RS485和RS499等接口
  • RS-232:逻辑“1”为-3 ~ -15V,逻辑“0”为+3 ~ +15V,比如电脑的COM口
  • 单片机(如stm32)的UART/USART:TTL电平(Transistor-Transistor Logic),该电平的逻辑“1”为+5V,逻辑“0”为0V,称为TTL串口。
  • 传输速率:取决于波特率的设置

例如:
波特率115200 = 115200 (位/秒)
如果没有校验位,就应该除以 10,得到的是每秒字节数:
波特率115200 = 115200 (位/秒) = 11520 (字节/秒)
再除以 1024,就是每秒 KB 数:
波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)
如果有一位奇偶校验位,就应该除以 11,则波特率115200 = 115200 (位/秒) = 10.23 (KB/秒)

4、USART (Universal Synchronous/Asynchronous Receiver/Transmitter 通用同步/异步串行接收/发送器)

UART和USART的区别是USART多了一根时钟同步线
全双工同步异步方式,支持异步通信或者同步通信(时钟同步)

5、USB(Universal Serial BUS 通用串行总线)

  • USB2.0属于半双工 异步通信方式
  • USB3.0属于全双工

6、CAN (Controller Area Network)

  • 半双工的通信方式
  • CAN控制器根据两根线上的电位差来判断总线电平
  • 通信速度较快,通信距离远5Kbps(10km) ~ 1Mbps(<40m)
    CAN总线要点
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值