面试的时候有人要我描述 i2c 协议,请问该怎么回答?
我一般直接调用 kernel 封装好的 i2c 接口,从不关心下面的协议。请问这个问题我该从哪些方面回答?谢谢
首先有总体的概念:
一种主要用于仪器、仪表内部的2线制(未包含电源和地线)通讯总线;
其上,可以挂接多个通讯单元;一条数据线,一条时钟线都是开路输出;(需了解理由)
通信协议包含有:起始信号,停止信号,应答信号,有从机地址,。。。,等;
通讯过程:
优、缺点:
。。。。。。
当然,需要你真正理解了,否则一问还可能答不出。
这各协议性东东,我一般是搜索一下。上次面了一个做硬件的,简历里面写熟悉I2C,SPI神马的。就让他解释了一下I2C结果郁闷了。
软件开发可以说,只要懂编程操作就行,但是做硬件开发的不了解I2C的电路很不可思议。毕竟太多的东西需要I2C来通讯了。
流行的各种传感器,电容触摸屏神马的,都要I2C。输出0是由最后一级管子对地导通,输出1是由最后一级管子截止来实现的;高电平靠外部上拉电阻实现。
这样的主要好处有,多个I2C部件并接后,无论谁输出0或1,都不会短路,都不会烧器件。