• 串行通信协议I2C、SPI、UART


    终端和其他终端或者外设通信的方式:串行通信和并行通信

    串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

    其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。

    并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。

    并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或PLC各种内部总线就是以并行方式传送数据的。

    常用的串行通信协议:

    SPI(Serial Peripheral Interface:串行外设接口);可以实现全双工

    SPI总线由三条信号线组成(多个从设备时候需要有设备选择先SS):串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。

    提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。

     根据时钟相位和时钟极性有四种通信模式(定义高低电平忙碌、   在奇数或者偶数边沿采样)

    起始信号:由SS线发出高→低

    停止信号:由SS线发出低→高

    数据传输:SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。 MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。

    SPI每次数据传输可以8 位或 16 位为单位,每次传输的单位数不受限制。

    I2C(INTER IC BUS);半双工

    I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准

    2根线:scl:时钟线sda:数据线

    3.种信号
    起始信号:scl为高电平,sda从高到低的跳变
    停止信号:scl为高电平,sda从低到高的跳变
    应答信号:在第9个时钟周时,sda总线上的低电平
    2种时序
    写:
    start+7位从机地址 0(写)+ack+8位reg+ack+8位 data+ack+stop
    读:
    start+7位从机地址 +(写)+ack+8位reg+ack+
    start+7位从机地址 +(读)+ack+8位data+NO ack+stop

    scl为高电平的时候,sda电平变化,表示start stop。
    sda电平不变化,数据保持稳定,并发送数据。
    scl为低电平的时候,sda电平变化,表示数据改变

    UART(Universal Asynchronous Receiver Transmitter:通用异步收发器);全双工

    UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,

    一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线(RX  TX),一根用于发送,一根用于接收。

    1个起始位,8个数据位(可选),1个奇/偶校验位(可选),1个结束位(校准时钟作用)、空闲位

  • 相关阅读:
    HDU1548:A strange lift
    hdu1978_How many ways dfs+记忆化搜索
    HDU1518:Square(DFS)
    HDU ACM 1495 非常可乐(广搜BFS)
    HDU1372:Knight Moves(BFS)
    662_二叉树最大宽度
    590_N叉树的后序遍历
    一直在坚持
    动态链接库DLL的操作顺序
    最近木马的查杀方法/各类杀毒软件的使用
  • 原文地址:https://www.cnblogs.com/huiji12321/p/11722087.html
Copyright © 2020-2023  润新知