I2C总线模式下的错误检测与扩展代码解析

需积分: 43 131 下载量 22 浏览量 更新于2024-08-09 收藏 9.66MB PDF 举报
"这篇文档是关于使用NEC V850微处理器开发汽车OBD2诊断程序时涉及的I2C总线模式下的地址匹配、错误检测和扩展代码的细节。文档介绍了如何在I2C通信中检测和处理各种情况,并提供了一个扩展码位的定义表。" 本文档详细阐述了在开发汽车OBD2诊断程序时,针对NEC V850微控制器在I2C总线模式下的关键操作。I2C总线允许主设备通过发送特定的从设备地址来选择与之通信的从设备。地址匹配检测由硬件自动完成,当SVAn寄存器中的本地地址与主设备发送的从设备地址一致或接收到扩展码时,会触发INTIICn中断信号。 错误检测是确保数据可靠传输的重要环节。在I2C模式下,发送设备会捕获SDA0n引脚上的串行数据状态,然后与寄存器中的数据进行比较。如果发现不匹配,即认为发生了传输错误。这种机制有助于及时发现并处理通信中的问题。 扩展代码的使用增加了通信的灵活性。当接收地址的高4位是0000或1111时,扩展码标志(IICSn.EXCn位)置位,表明接收到的是扩展码,并在第8个时钟的下降沿产生中断请求。10位地址传输中,如果11110xx0被设置到SVAn寄存器,并且主设备发出相同数据,将导致EXCn位和COIn位分别被置位。扩展码之后的数据处理由软件根据需求执行,比如,若不希望作为从设备响应,可以设置IICCn.LRELn位,使CPU进入等待下一次通信的状态。 表17-4列出了扩展码位的不同定义,包括通用呼叫地址、开始字节、CBUS地址以及为不同总线格式保留的地址等。这些定义提供了理解I2C通信中扩展码含义的关键信息。 需要注意的是,文档中提到的NEC Electronics Corporation已在2010年与Renesas Technology Corporation合并,成为Renesas Electronics Corporation的一部分。因此,虽然文档中仍使用旧公司名称,但它是有效的Renesas Electronics文档。用户应访问Renesas Electronics的官方网站获取最新的产品信息和更新。 在使用Renesas Electronics的产品时,务必确认当前的产品信息,并定期关注可能的更新和额外披露的信息。此外,对于任何疑问,可以通过Renesas Electronics的网站联系他们。