linux spi驱动架构FAQ

什么是SPI的bitbang/bit-bang

Use software to control serial communication at general-purpose I/O pins

通过GPIO引脚,用软件来模拟串行通信(SPI/I2C 。。。)。

对于多数情况来说,我们所用的SPI,都是有对应的SPI的主控制器的,其负责和外部SPI设备进行通信,负责两者通信时候的信号之间的同步,保证信号的timing都符合SPI协议,保证可以正常进行SPI通信。

但是硬件上没有SPI控制器,而还想要和SPI设备通信,那么就只能用GPIO端口去模拟:片选CS,数据输入Data In,数据输出Data Out,时钟Clock,模拟SPI协议,和对应spi设备进行通信。此时作为编程者,需要去负责信号的同步,保证timing符合协议规定,才能正常进行SPI通信。

这样的SPI的bit-bang,优点是不需要SPI的控制器了,但是缺点很明显,除了要用户自己负责同步,timing等事情之外,相对来说,即使本身SPI设备支持以很高的频率运行,可以实现很好的性能,但是以bit-bang的方式去使用的话,实际性能往往很差。

What Is Bit-Banging?

http://www.epanorama.net/links/serialbus.html

 

 

http://free-electrons.com/kerneldoc/latest/DocBook/device-drivers/index.html

 

http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=57&Itemid=62

posted @ 2011-10-27 13:49  夏大王  阅读(453)  评论(0编辑  收藏  举报