pmbus 协议介绍
你的电脑或者任何电子设备里面有很多部件需要电力来工作。PMBus 就像是一个邮差,它负责告诉这些部件需要多少电力,以及如何分配这些电力。这样,每个部件都能得到它们需要的电力,而且还能监控它们是否在正常工作。
1. 接线
PMBus 工作在一个叫做“多点总线”的东西上,这就像是一个派对上的传话游戏,需要至少两根线来传递信息:
SDA – 这就像是用来传递具体信息的线,比如“你需要多少电力”。
SCL – 这根线用来控制信息传递的节奏也就是时钟,就像说“现在轮到你说了”。
这些线的电压有一定的标准,就像派对上的音量要适中一样。如果电压太低(小于0.8V),就等于说“静音”这就是逻辑 “0” ;如果电压太高(大于1.35V),就等于说“太大声了”这就是逻辑 “1”。
为了让这些线在没有信息传递时保持安静(也就是电压高),我们会用一些小电阻(上拉电阻)来帮忙。这些电阻可以让电压保持在一个合适的范围内,比如1.8V到5.0V,就像调整音量旋钮一样。 调整完的常见值为+1.8V、+2.5V、+3.3V 和+5.0V。
还可以选择性地包括更多的线,比如:
SMBALERT# – 这是中断信号,这根线就像是一个警报器,如果有什么故障或者警告,它会发出信号。
CONTROL – 这根线用来控制电源的开关,就像灯的开关一样。
WRITE PROTECT – 这根线用来保护存储在设备里的配置数据,就像给文件上锁一样。
2. 信号
PMBus 通常以 100 kbit/s 的速度工作,但也能以高达 400 kbit/s 的速度工作,就像邮差可以走得快也可以走得慢。
每个设备都有一个独特的 7 位地址,这样 PMBus 就能知道信息要送给谁。有些地址是特别的,用来同时和多个设备沟通。
2.1. 数据传输
数据是以“数据包”的形式传输的,就像邮差送信一样,每个信封里都有特定的信息。这些信封的格式遵循一定的规则(读/写的规则)。
通常,一个数据包的开始是邮差(主机控制器)在总线上说“我开始送信了”(START条件),然后告诉收信人(写入目标设备地址)我要送信给你了,这是你的地址(用“写”模式寻址目标设备开始唯一 7 位地址,然后 R/W 位设置为“0)。如果收信人在家(设备准备好了),它会回应说“我知道了”(ACK位低电平)。然后邮差就会把命令代码送过去。
如果邮差要送信(写入数据)给收信人,它会一直送,直到所有的信(数据字节)都送完了。然后邮差就说“我送完了”(STOP条件)。
下面显示了一个示例时序图,其中主机控制器向目标设备发出一个命令,后跟两个数据字节。这遵循 SMBus WriteWord 协议。
如果邮差要收信(接收数据),它会再次说“我开始送信了”(RESTART条件),然后告诉收信人我要收信了,这是你的地址(以“读”模式寻址同一目标设备,该目标设备发送设备唯一的 7 位地址,然后 R/W位设置为“1”)。如果收信人在家,它会回应说“我知道了”(ACK位低电平)。然后邮差就会从收信人那里收信(接收数据有效载荷)。当所有的信都收完了,邮差就说“我收完了”(STOP条件)。
下面显示了一个示例时序图,其中主机控制器发出命令,然后从目标设备接收两个数据字节。这遵循 SMBus ReadWord 协议。
3. 引用
https://www.picotech.com/library/knowledge-bases/oscilloscopes/pmbus-power-management-bus