我是靠谱客的博主 专一向日葵,最近开发中收集的这篇文章主要介绍数字IC学习之协议篇:I2C、SPI、UART1.基本概念2.I2C3.SPI4.UART,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目标:

  • 理解同步/异步通信、单工/半双工/全双工的概念
  • 理解I2C、SPI、UART通信协议

        I2C、SPI、UART都是串行通信协议,都是通过一根线作为数据线传输数据。

1.基本概念

1.1 同步通信/异步通信

  • 同步:阻塞模式,发送方发送数据后,只有等到接收方响应后才能发送下一个数据包(带时钟线,SPI、I2C)
  • 异步:非阻塞模式,发送方发送数据后,不考虑接收方进行响应直接发送下一个数据包(不带时钟线,UART)

1.2 单工/半双工/全双工

  • 单工:一方发送数据,一方接收数据,数据只能单方向传输
  • 半双工:双方均可发送数据,但同一时间,只能一方发送数据(I2C)
  • 全双工:双方均可发送数据,同一时间,双方均可发送数据(UART、SPI)

2.I2C

2.1 信号线

        两根信号线:

  • 时钟线——SCL;
  • 数据线——SDA;

2.2 工作原理

        数据传输格式:以7位寻址格式为例,起始条件+从机地址(7bit)+读写位(1bit)+应答位(1bit)+数据位(8bit)+应答位(1bit)+停止条件

        SDA和SCL需要接上拉电阻,总线空闲时应为高电平,且时钟信号仅由主机产生。接收方产生应答信号,注意即使是主发从收模式时地址也是由主机发送,地址应答信号都是从机给的。

        数据格式:7位寻址、10位寻址、自由数据格式

        更多详细工作原理可参考:文末链接中I2C部分

3.SPI

3.1 信号线

        一般为四根信号线(也可以3线,单向传输):

  • 主出从入信号线——MOSI(用于主机向从机发送数据);
  • 主入从出信号线——MISO(用于从机向主机发送数据);
  • 时钟信号——SCLK;
  • 片选信号线——SS/CS(用于选择从机设备,低有效);

3.1 工作原理

        数据传输格式:片选信号拉低选择从机,根据时钟极性和相位决定读取数据的方式

        无起始位和停止位,数据可以持续传输不会中断;独立的MISO、MOSI可以同时发送和接收数据。通过串行时钟极性(CPOL)和相位(CPHA)搭配出SPI的四种工作模式:

CPOL+CPHA=00/01/10/11:

  • CPOL = 0:串行时钟低电平空闲
  • CPOL = 1:串行时钟高电平空闲
  • CPHA = 0:串行时钟第一个跳变沿传输数据
  • CPHA = 1:串行时钟第二个跳变沿传输数据

8fc83949950647f28d18c1f567b4f5a8.png

        更多详细工作原理可参考:文末链接中SPI部分

4.UART

4.1 信号线

        两根信号线:

  • 发送数据线——TX;
  • 接收数据线——RX;

4.2 工作原理

        数据传输格式:起始位+数据位+奇偶校验位+停止位

        UART数据传输线通常在不传输数据时保持在高电平,发送和接收UART的波特率必须在彼此的10%之内。

  • 空闲位:数据线在空闲状态的时候为逻辑“1”状态。 
  • 起始位:当要传输数据的时候先将数据线拉低,表示开始数据传输。 
  • 数据位:即要传输的数据,数据位数可选择 5~8 位,低位在前,先传输,高位最后传输。 
  • 奇偶校验位:这是对数据中“1”的位数进行奇偶校验用的,可不使用。 
  • 停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都选择 1 位停止位。 
  • 波特率:波特率就是 UART 数据传输的速率,也就是每秒传输的数据位数。

3c3bc4c74b674d56b2deced424257976.png

        更多详细工作原理可参考:文末链接中UART部分

参考资料:

【数字IC精品文章收录】近500篇文章|学习路线|基础知识|接口|总线|脚本语言|芯片求职|安全|EDA|工具|低功耗设计|Verilog|低功耗|STA|设计|验证|FPGA|架构|AMBA|书籍|_myhhhhhhhh的博客-CSDN博客

最后

以上就是专一向日葵为你收集整理的数字IC学习之协议篇:I2C、SPI、UART1.基本概念2.I2C3.SPI4.UART的全部内容,希望文章能够帮你解决数字IC学习之协议篇:I2C、SPI、UART1.基本概念2.I2C3.SPI4.UART所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部