【轉】什麼是SPI的bitbang / bit bang / bit-bang / bitbanging

 

【整理】什麼是SPI的bitbang / bit bang / bit-bang / bitbanging

      在瞭解了基本的SPI之後,在Linux內核源碼裏面,發現關於SPI來說,有個叫做bitbang的東西,所以有點迷惑,想搞清楚bitbang是啥意思。

      找了點資料,大概看明白了:

      首先,對於多數情況來說,我們所用的SPI,都是有對應的SPI的控制器的,其負責和外部SPI設備進行通信,負責兩者通信時候的信號之間的同步,保證信號的timing都符合SPI協議,保證可以正常進行SPI通信。

      但是有些時候,沒有此對應的硬件上的SPI控制器,而還想要和SPI設備通信,那麼就只能用GPIO端口去模擬對應的SPI接口的對應的pin:片選CS,數據輸入Data In,數據輸出Data Out,始終Clock,去模擬SPI協議,和對應spi設備進行通信。所以,此時你對每個端口的操作,作爲編程者,你自己要去負責信號的同步,保證timing符合協議規定,才能正常進行SPI通信。

      這樣的SPI的bit-bang,優點是不需要SPI的控制器了,但是缺點很明顯,除了要用戶自己負責同步,timing等事情之外,相對來說,即使本身SPI設備支持以很高的頻率運行,可以實現很好的性能,但是以bit-bang的方式去使用的話,實際性能往往很差。

     

      最後,可以用一句話來解釋,什麼是SPI的bitbang/bit-bang

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

      通過GPIO引腳,用軟件來模擬串行通信(SPI/I2C 。。。)。

 

 

 

【引用】

 

      1。What Is Bit-Banging?

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

      2。Serial Interfaces, Part Deux I2C and SPI

      http://www-micro.deis.unibo.it/~romani/Dida03/lezioni/eugeneho-serialcomm.ppt

      3。SPI,I2C,big,banging 在SPI或I2C文檔裏,有個big-banging是什麼意思

      http://forum.eepw.com.cn/thread/91427/1

 

 

      文章來源:http://hi.baidu.com/serial_story/blog/item/952a98860f09033266096e69.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章