深信服防火墙I2C通信协议中的头两个字节定义
头两个字节位的定义其实挺关键的,尤其在调试深信服这类防火墙设备时。10 位地址的玩法有点不一样,它不是像普通 I2C 那样直接发一个地址就完了,而是要用两个字节来搞定。第一个字节的前 7 位固定是11110XX
,而那俩XX
正是地址的高两位。第八位呢?就看你是要读还是写啦,0
就是写,1
就是读。嗯,还别说,挺直观的。
第二个字节就是剩下那 8 位地址,和常用的MSB
/LSB
概念差不多。读操作下,第二个字节直接就是数据起始,主机读它就行了。写操作下,得先把完整的 10 位地址发过去,这时候从机会响应。注意啊,如果地址匹配了多个从机,那得再比较第二个字节,确保只响应一个。
像图 27
讲的,重复起始Sr
一来,从机会回想“哎刚刚有人找我来着”,于是再看一次头部和方向位对不对。如果对,它就开始发数据。整个过程蛮适合那种带多个模块、地址不够用的场景。
如果你平时搞底层通信、嵌入式协议或者调深信服那类防火墙,对地址寻址那块有疑惑,这篇文档可以帮你理清楚 10 位地址是怎么玩的。和7 位地址
比,它要复杂点,但也灵活不少,值得一看。
1.2MB
文件大小:
评论区