Linux下IIC驱动编写,介绍IIC子系统框架的使用
Posted DS小龙哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下IIC驱动编写,介绍IIC子系统框架的使用相关的知识,希望对你有一定的参考价值。
一、IIC协议介绍
说起IIC,搞单片机,嵌入式的那肯定是接触的比较多的。串口、IIC、SPI这3个协议在单片机阶段应该是用比较多的,很多的外设模块,芯片都是串口、IIC、SPI等协议与主控芯片进行通信,完成逻辑开发。 在Linux系统驱动层使用IIC其实本质上与单片机没什么差别的,最终反正是和芯片进行交互通信,本身IIC协议并不难,但是在Linux下为了标准化,加了很多框架导致理解上就觉得复杂,听起来xxx子系统就很神秘高大上,其实这是因为对Linux驱动框架不熟悉,只要把框架流程能梳理清楚,那么整体就变得简单了。
IIC协议在物理连接上比较简单,只有两条线: SDA(串行数据线)和 SCL(串行时钟线) ,比较省IO口。 其中的SDA数据线是双向的,根据时序发送数据和接收数据时主机会对应的切换自身的输入输出模式。 SDA数据线是传输数据信号的,时钟线是用来控制什么时候发送数据信号,搞懂规则两边设备就可以通过IIC协议进行通讯。 从连线上可以得知,IIC属于串行协议,每一次的时钟信号只能单方面发送一个字节数据。
IIC协议又称为IIC总线。 为什么叫总线? 这个可不是随便乱叫的。 除了IIC总线外,常见的总线还有SPI总线,USB总线等等。 如果对IIC,SPI不了解,可能对总线这个概念不清楚,但USB大家应该是都见过的,如果电脑的USB口不够用,我们可以买集线器扩展USB接口,将集线器插在电脑USB口之后,集线器上面可以插入多个USB设备:比如,USB鼠标,USB键盘,U盘,USB-网卡等等。 对于电脑而言,它怎么知道自己在和哪一个USB设备通讯?如何区分的
以上是关于Linux下IIC驱动编写,介绍IIC子系统框架的使用的主要内容,如果未能解决你的问题,请参考以下文章