spi子系统的理解

来源:互联网 发布:sql查询表语句怎么写 编辑:程序博客网 时间:2024/05/30 23:01

参考CSDN中的几篇文章。仔细阅读会明白整个框架。

 http://blog.csdn.net/onetwothreef/article/category/5952021

按照时间顺序来阅读。

 

但是有个问题:

不同的SPI设备有不同的协议格式,那么不同的spi设备挂载在同一个spi控制器上,spi控制器是怎么区分不同设备的协议呢?

 

 

在这里,一直理解错了,linux spi核心层提供的通信函数如:

int spi_async(struct spi_device *spi, struct spi_message *message);

int spi_sync(struct spi_device *spi, struct spi_message *message);

通过spi控制器来发送数据。


SPI协议只是简单的描述为一个时钟发送或者接收一位数据

这里的一个理解点就是,spi控制器和spi设备的通信根本就不关心发送数据的格式和内容,只是简单的发送数据,按照一个时钟一bit数据来发送和接收数据。

 

这所以数据的组装工程都是由spi设备的驱动程序来解释和打包的。所以spi设备驱动程序也叫做设备协议驱动程序。

在spi的设备驱动程序中,会组织tx和rx的数据,数据里包括地址、读写以及数据。 然后调用上面的API。

 

这里就豁然开朗啦。

0 0
原创粉丝点击