• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

有谁可以详细解答下串口通讯、IIC通讯、SPI通讯的协议吗

hacker_Dx 2018-07-16 浏览量:913
    串口通讯使用Tx、Rx交叉接线的方式通讯,对于IIC通讯的SDA(数据口)、SCL(时钟口),以及SPI的MISO(主输入从输出)、MOSI(主输出从输入)、SS(信号端选择)灯不是很理解。感觉主要是时序问题吧,有懂CAN的大佬也可以解答。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 串口是三颗线地线作为参考,接收和发送分别使用一颗线,所以是全双工通讯,双方设定好速率后,根据设定的速率定时采集数据,就可以通讯了。

    IIC是一颗时钟,一颗数据,接收和发送都是数据线,所以是半双工通讯,接收端在时钟的上升沿或者下降沿锁定数据线上的数据。

    SPI是时钟和接收发送共计三条线,如果多个设备需要一个片选信号,也是全双工通讯。MOSI就是主设备输出,从设备输入,MISO就是输设备输入,从设备输出,SS片选只有被选中的芯片才能获的与主设备通讯的权利。

    CAN是差分信号传输,CANL和CANL两颗线的相对高低不同表示0和1,这样抗干扰能力强。

    • 发布于 2018-07-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 这些都是最简单的串行通信,大致可以这样理解:串口是两条线组成了半双工通信,两条线一条收一条发,没有时钟线;I2C是一条数据一条时钟线,也是半双工,这根数据线同时兼任收发任务;SPI是全双工通信,两条线分别收发,并且有高速时钟控制。

    • 发布于2018-07-29
    • 举报
    • 评论 0
    • 1
    • 0

  • 建议uart,i2c,spi挨个度娘,然后找个芯片的datasheet看看,最后写写代码,驱动下这些常用的外设接口,靠别人在这说你是不可能懂的,自己上手试试
    • 发布于2018-07-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 就是通过时序,读写1和0,包括单总线通信,这些都是别人定义的一个协议流行起来了就成为行业标准了,其实你自己也可以定义自己的同行协议。

    理解这些协议就是看懂它们的时序图,这也是为什么这些协议都可以软件模拟的原因。

    • 发布于2018-07-16
    • 举报
    • 评论 0
    • 0
    • 0

  • uart,i2c,spi硬件驱动很简单,uart属于异步,后两种数据同步,can协议比较复杂,如果前几种接口没搞清楚,最好先别学can
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 几种协议都是时序上的不同,速度要求不同。只要看看时序图就明白了
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口两条线一发一收,SPI也是,不过SPI多了一个时钟线和一个片选线,时钟由主设备提供

    I2C一条时钟线一条数据线,按照地址选择通信对象

    • 发布于2018-07-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 都是通讯协议,但是差别比较大,建议找到专门的资料进行学习
    • 发布于2018-07-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要找相关的通信协议资料,主要是时钟和通信线不同
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

有谁可以详细解答下串口通讯、IIC通讯、SPI通讯的协议吗