spi子系统的理解

参考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。

 

这里就豁然开朗啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值