IIC

  特点

    1、Inter-Integrated Circuit,内部集成总线,半双工

    2、短距离传输,有应答,速度较慢

    3、SDA双向数据线,SCL时钟线

    4、可以挂载多个设备,IIC设备有固化地址,传输值等于IIC固化地址,对应设备作出响应

  基本过程

    初始空闲:SDA和SCL均为高电平(具有上拉电阻)

    起始位:SCL高电平期间,SDA下降沿

    寻址:主机发送8位数据,前7位为从机地址,后一位表示数据方向,1为读,0为写,对应从机响应,SDA线拉低

    传输:SCL高电平,数据写入从机;故SDA的数据需要在SCL低电平器件完成数据发送

    响应:从机接收到8位数据后,第9个周期拉低SDA电平,表示从机接到数据产生应答

    终止位:SCL高电平期间,SDA上升沿

SPI

  特点

    1、Serial Peripheral Interface,串行外设接口,全双工

    2、短距离传输,无应答,速度块

    3、4根线(或3根线单向传输)MISO(master input slave output)、MOSI(master output slave input)、SCLK(serial clk时钟)、CS(chip select片选、从设备使能)

    4、可以挂载多个设备,每个设备片选都接入主设备,通信时需使其有效

  工作模式

    CPOL(时钟极性)和CPHA(时钟相位)

    CPOL配置SCLK的电平出于哪种状态时是空闲态或者有效态(0:空闲低电平 1:空闲高电平)

    CPHA配置数据采样是在第几个边沿(0:采样第一沿,发送第二沿)

    :CPOL=0,CPHA=0:空闲态时,SCLK处于低电平,数据采样是在第1个边沿,所以数据采样(即读取发送的数据)是在上升沿,数据发送(即将数据放在输出线上)是在下降沿。

  基本过程

    主设备上升(下降沿)输出,从设备下降(上升沿)读取,即一个时钟周期完成一次传输

    SCLK由主设备产生(使得spi不像其他串行设备按字节发送,可以比特发送)

    可以同时输入输出(全双工)

    利用移位寄存器实现

UART

  特点

    1、Universal Asynchronous Receiver/Transmitter,异步收发传输器,全双工

    2、较长距离传输,有奇偶校验

    3、RX接收,TX发送

  基本过程

    起始位:起始高,发送数据前拉低一个时钟周期表示起始

    数据位:5-8位(有校验),9位(无校验)

    校验位:奇偶校验(奇:校验位使传输内容中1的个数为奇数 偶:使1的个数为偶数)

    停止位:将信号线从低电平变为高电平至少两个周期

IIC、SPI、UART协议总结的更多相关文章

  1. 通信方案软件设计(环形动态申请内存,支持USART+IIC+SPI+CAN协议

    1 <STM32进阶之串口环形缓冲区实现>中讲得比较清楚(链接) 2 amobbs中讲的方法有点复杂,以下是链接和参考源码: 通信方案软件设计(环形动态申请内存,支持USART+IIC+S ...

  2. 【转载】IIC SPI UART串行总线

    一.SPISPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用. 接口SPI接口经常被称为4线串行 ...

  3. 关于I2C和SPI总线协议【转】

    关于I2C和SPI总线协议 IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral ...

  4. SPI总线协议及SPI时序图详解

    SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...

  5. 基于FPGA的UART协议实现(通过线性序列机)

    //////////////////2018/10/15 更新源代码: 实现uart这东西其实早就写了,不过不太完善,对于一个完美主义者来说,必须解决掉它. 1.什么是UART?        通用异 ...

  6. SPI总线协议及SPI时序图详解【转】

    转自:https://www.cnblogs.com/adylee/p/5399742.html SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接 ...

  7. MicroBlaze核的串行接口实验:SPI UART

    reference : https://blog.csdn.net/weixin_42413559/article/details/80720566 串行接口:SPI UART XPS->SDK ...

  8. UART协议总结

    之前一直使用UART作为单片机之间以及和计算机的简单通信,但一直没有研究过该协议的内部原理.今天刚买了一个逻辑分析仪,于是使用该分析仪对UART数据进行分析,以便更好的理解UART协议原理. UART ...

  9. 【转】SPI总线协议

    SPI总线协议 By Xiaomin | April 17, 2016| 技术 概述 SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总 ...

  10. UART协议详解

    UART(Universal Asynchronous Receiver/Transmitter)是一种异步全双工串行通信协议,由Tx和Rx两根数据线组成,因为没有参考时钟信号,所以通信的双方必须约定 ...

随机推荐

  1. 【暑假集训】HZOI2019 水站 多种解法

    题目内容 已知有一个\(n\)层的水站: \(W_i\)表示未操作之前第\(i\)层的已有水量: \(L_i\)表示第\(i\)个水站能够维持或者储存的水的重量: 表示在第\(P_i\)层进行减压放水 ...

  2. Spring mvc文件上传实现

    Spring mvc文件上传实现 jsp页面客户端表单编写 三个要素: 1.表单项type="file" 2.表单的提交方式:post 3.表单的enctype属性是多部分表单形式 ...

  3. lumen-ioc容器测试 (2)

    lumen-ioc容器测试 (1) lumen-ioc容器测试 (2) lumen-ioc容器测试 (3) lumen-ioc容器测试 (4) lumen-ioc容器测试 (5) lumen-ioc容 ...

  4. ffmpeg实现视频文件合并/截取预览视频/抽取音频/crop(裁剪)(ffmpeg4.2.2)

    一,ffmpeg的安装 请参见: https://www.cnblogs.com/architectforest/p/12807683.html 说明:刘宏缔的架构森林是一个专注架构的博客,地址:ht ...

  5. py中变量名的“秘密”

    今天突然脑子发抽,想到py里有没有指针这个概念,于是我马上google.baidu了一波,发现网上大多都在说py.java.c#这类纯面向对象的编程语言用对象的概念能完全替代指针.那么问题来了,没有指 ...

  6. 循序渐进VUE+Element 前端应用开发(21)--- 省市区县联动处理的组件使用

    在很多应用中,往往都涉及到记录用户所在省份.城市.区县或者街道等信息,一般我们可以通过联动的Select或者类似的界面组件进行展示,或者使用Element中的el-cascader界面组件进行展示,而 ...

  7. RxJava用法

    首先导入依赖: implementation 'io.reactivex.rxjava2:rxjava:2.2.9'implementation 'io.reactivex.rxjava2:rxand ...

  8. 感知机vs支持向量机

    感知机原理:二维空间中找到一条直线可以把所有二元类别分离开,三维或多维空间中,找到一个分离超平面把所有二元类别分离开.而可把所有二元类别分离开的超平面不止一个,哪个是最好的呢?损失函数:所有误分类的点 ...

  9. ABAP-字符串常用处理方法

    字符串处理 SPLIT dobj AT sep INTO { {result1 result2 ...} | {TABLE result_tab} } 必须指定足够目标字段.否则,用字段dobj的剩余 ...

  10. 从原生web组件到框架组件源码(一)

    温馨提醒,当你觉得看我写的很乱的时候,就对了,那是因为我查阅了大量的资料提取出来的,因为有点东西不太理解,所以你会感觉有的部分重复了,也不是重复,只是后面对前面的内容进行梳理了一些,需要耐心的看到最后 ...