1. IPMB协议其实还是I2C协议,发出的第一个字节是地址。
2. 流程:A给B发送请求,B回响应
第一步:初始状态:A 初始为master,B为slave模式
第二步:发送请求:A 发送请求-切换为slave模式
第三步:发送响应:B 收到请求后切换为master,发送响应,发送完响应后切换为 slave模式。
第四步:接收响应:A 收到响应处理后,切换为master。准备下一次发送请求。
3. 整个过程 一直存在master slave切换,为了避免I2C卡死,IPMB协议中规定的有超时时间。
4. 第一个字节发送的是接收I2C数据的接收端的I2C地址及读还是写命令,IPMB 协议中一直都是写命令。
5. IPMB中通过netfn,cmd 来标识是什么指令,有时cmd后还会跟参数。使用完成码来表示响应状态,一般00为正常。
6. IPMB协议使用的是7位地址。
7. IPMB协议中请求有序列号,响应也带有与请求对应的序列号。
参考资料
IPMB接口协议总结2
http://x-p-zhu.blog.sohu.com/109925310.html
详解IPMB接口的请求和应答
https://www.eefocus.com/mcu-dsp/427545
Intelligent Platform Management Bus (IPMB)
https://wiki.wireshark.org/IPMB_protocol
I2C协议
https://blog.csdn.net/qq_42384937/article/details/83625887
I2C完整讲解(一)
https://blog.csdn.net/qq_41936794/article/details/104889634
i2c时序图的详细讲解
https://blog.csdn.net/chm880910/article/details/80086052
IPMB接口协议总结
https://blog.csdn.net/gui_ya/article/details/5494890
I2C初始化结构体详解
https://www.cnblogs.com/wenshinlee/p/8991800.html
STM8L15X 硬件I2C调试总结
https://blog.csdn.net/weixin_30433075/article/details/97129091
怎么判断i2c总线空闲状态 - 全文
http://www.elecfans.com/emb/jiekou/20171123584588_a.html
I2C协议通讯过程(个人理解记录)
https://blog.csdn.net/weixin_44755616/article/details/96701984
STM32F103RC硬件I2C从入坑到出坑
https://blog.csdn.net/lalalaxy/article/details/86755638
IAR 中的 Fatal Error[Lc002]: could not open file 解决办法
https://blog.csdn.net/tao658/article/details/82431034
总结stm8硬件IIC主模式的寄存器设置及调试心得
http://news.eeworld.com.cn/mcu/2019/ic-news040243680.html
充分了解STM32F407硬件\内部I2C(主模式)
https://blog.csdn.net/weixin_46146288/article/details/106028578
解决 I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT) 卡住问题和一个STM32F103的IIC示例