什么是SPI的bitbang / bit bang / bit-bang / bitbanging

转自:http://hi.baidu.com/serial_story/item/47cc07d68d35e6cd1b72b41d

在了解了基本的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的方式去使用的话,实际性能往往很差。

最后,可以用一句话来解释,:

【引用】

1。

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值