首页 理论教育深入剖析Linux内核与设备驱动:SPI总线驱动需求

深入剖析Linux内核与设备驱动:SPI总线驱动需求

【摘要】:SPI是一种高速、全双工、同步总线。这样就允许单个SPI总线上连接多个SPI从设备。对于SPI总线从设备并没有固化的地址,而是通过CS信号区分不同的设备。另外因为SPI总线频率最高可以达到70MHz,所以需要较大吞吐量的操作方案进行数据传输,通常使用DMA进行操作。总体上来说,系统对于SPI总线驱动的需求就是要能实现总线的各种功能,并且满足类似于I2C总线的各种无关性需求。图7-5SPI总线数据传输信号规范

串行外围设备接口(Serial Peripheral Interface,SPI)是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要用于处理器与EEPROM、FLASH、WLAN等设备的连接。SPI是一种高速、全双工、同步总线。连接方面共需要四根线,有线数少、为PCB的布局上节省空间的优点。SPI速率通常介于1~70MHz之间,字长范围可以设置从4~32bits。

SPI以主从方式工作,通常有一个主设备和一个或多个从设备,有4个信号,分别是MOSI、MISO、SCLK和CS信号,下面分别介绍:

●MOSI(Master Out Slave In):主器件数据输出,从器件数据输入。

●MISO(Master In Slave Out):主器件数据输入,从器件数据输出。

●SCLK:时钟信号,由主器件产生。

●CS:从器件使能信号,由主器件控制。

其中CS控制从设备是否被选中,只有片选信号为预先规定的使能信号时(高电位或低电位),对应从设备的操作才有效。这样就允许单个SPI总线上连接多个SPI从设备。需要注意的是,单总线连接多个从设备时需要多个CS信号源,具体可以使用GPIO来代替控制器的CS信号(如果控制器信号不足)。对于SPI总线从设备并没有固化的地址,而是通过CS信号区分不同的设备。(www.chuimin.cn)

SPI总线数据传输信号规范如图7-5所示。图7-5引自《DM 3730芯片手册》中第2992页框图。

从图7-5可见,信号的极性、相位等性质是可以配置的,而对于传输的主从双方也是可以同时进行数据传输的,这些功能都是必需的。另外因为SPI总线频率最高可以达到70MHz,所以需要较大吞吐量的操作方案进行数据传输,通常使用DMA进行操作。

总体上来说,系统对于SPI总线驱动的需求就是要能实现总线的各种功能,并且满足类似于I2C总线的各种无关性需求。

978-7-111-49426-3-Chapter07-61.jpg

图7-5 SPI总线数据传输信号规范