扫码参与新品0元试用
晒单、顶楼豪礼等你拿
两款芯片硬件都支持SPI通信,如何实现两芯片之间的数据通信啊?
回答数
6
浏览数
2,317
两款芯片既然都支持SPI通信,那这两款芯片之间就通过SPI即可实现数据通信。SPI是一种串行外设接口,可以实现高速、全双工通信,主要用在近距离通信中,如芯片之间的通信,常用的有三总线和四总线之分。
三总线SPI三总线SPI主要有三根线即可实现数据通信:
SCLK:串行通讯时钟线,
MOSI:主机输出/从机输入数据线;
MISO:主机输入/从机输出数据线;
除此之外,SPI必须要片选信号,片选信号为低电平有效。三总线SPI中,片选信号被硬件拉低,适用于只有一个从设备的情况,占用单片机的三个GPIO口。三总线SPI的接口连接方式如下图所示。
四总线SPI四总线SPI主要由四根线构成,分别为SCLK、MOSI、MISO和CS,其代表的含义如下所示:
SCLK:串行通信时钟线;
MOSI:主机输出/从机输入数据线;
MISO:主机输入/从机输出数据线;
CS:片选信号,低电平有效;
与三总线的区别是,四总线的CS片选信号由软件控制,主要用在一个主机对多个从机的通讯中,占用单片机的四个GPIO口。四总线SPI的接口连接方式如下图所示。
芯片之间常用的通讯方式主要有三种:UART、SPI和IIC。SPI上文已经介绍过,下面简单介绍一下UART和IIC。
芯片间的通讯方式之二:UARTUART是通用异步收发传输器,也就是我么所说的串口通信,该接口主要有两根线:TXD和RXD,该接口在单片机上几乎是标配,因为该接口也可以实现单片机程序的下载。通过UART接口和不通的电平转换芯片,可以实现不通的通信方式,常用的方式有:1)RS232通讯,由UART和MAX232电平转换芯片实现;2)RS485通信接口,由UART和MAX3082电平转换芯片实现;3)CAN通讯,由UART和42675电平转换芯片实现。另外,该接口也可以和蓝牙模块、WiFi模块等实现通信。UART应用广泛,可拓展型强。
芯片间的通讯方式之二:IICIIC也称为I2C,也是一种适用于主从结构的串行通讯总线,适用于芯片间的近距离通讯,主要由两根线构成:SDA和SCL。SDA是数据线,SCL是通讯时钟总线。该总线可以挂接多个从设备,每个从设备具有地址选择端,典型的IIC实现原理如下图所示。
UART、SPI、IIC对比UART、SPI、IIC都是常用的近距离通讯总线,通常用在芯片之间的通信实现数据的交互。UART可以可以扩展出其他远距离的通信。而SPI和IIC在芯片间用的比较多,这两种通讯方式都可以使用单片机的片上资源也可以使用普通的GPIO口来模拟。
以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。
两款芯片都支持SPI,不一定可以拿来通讯。
道理很简单,SPI是分主从的,如果两块芯片都只能做从设备,是不能通讯的,比如两块SPI Flash,或者别的SPI外设。如果两块芯片都只能做主设备,那样也不行。
只有一块芯片工作在主设备状态,另一块工作在从设备状态才行。具体方法网上有一堆,这里就不码字了
扫码参与新品0元试用
晒单、顶楼豪礼等你拿