在资产监测设备的项目中,笔者收到了众多来自于客户提出关于技术方面的问题。资产监测设备主要的应用范围是为运输过程提供智能化监测数据。包括了运动轨迹监测、实时位置更新、运动状态监测、异常状态报警等功能。基于这些功能,客户提出了关于GPS如何确定精度问题?如何根据GPS定位点计算角度等问题都被笔者一一总结。此外笔者收到了一条新问题:在资产监测设备中,I2C接口为什么要设计成开漏输出?
分析这个问题,首先要从I2C接口的设计初衷说起,制定者当初设计成I2C总线的就是要实现,一个I2C主机可以挂很多I2C从机。
第一个原因,如果设计成推挽输出,就会造成短路情况,如下图:
两个从设备一个拉高,一个拉低,就会造成短路。而开漏输出,有上拉电阻限流,这样都不会造成短路。
第二个原因,就是多设备通信仲裁需要做线与逻辑,开漏输出能做到,如果用推挽输出做线与就会如上面原因,造成短路。
线与逻辑,主设备想总线置1,开始空闲,从设备这时候如果输出0 ,会产生1&0=0,造成主设备认为总线还是被占用,无法空闲,主设备放弃拉高,这样不会破坏从设备正在通讯的数据。
综上所述,双总线接口外设一般要设计成开漏输出,一是防短路,而是做线与逻辑,方便仲裁。
同时,该问题不适用于于资产监测设备中,对于同样需要使用L2C接口的环境监测设备、车辆跟踪设备、人员定位设备等,如客户在其他设备中也遇到类似问题,可联系我们的技术支持团队或参考该文档。
笔者将该问题的解释反馈给客户,收到了客户的认可与支持。所以特此分享给大家,同样从事开发的工作人员遇到类似的问题,可参考以上内容。