SPMI理解

更新时间:2024-04-24 03:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SPMI协议理解

1. SPMI 总线分高速和低速,高速是0-26MHz,低速是0-15MHz;总线上最多4个主

设备,16个从设备;当前控制总线的主设备叫BOM,从设备分2种,一种不能申请占总线,一种能申请占总线,这种情况下CLK时钟是BOM发的,从设备只控制数据线。

2. SPMI主设备的2个信号线是CMOS结构,从设备也是,但从设备内可以集成500K

到2M的下拉电阻,也可以放到外面的连接线上;但若从设备多了,总的下拉电阻必须大于125K。

3. 每次数据通信前,都有一个总线仲裁的过程,各设备在仲裁阶段申请总线,由

BOM决定仲裁结果。即仲裁前BOM必须存在。

4. 一次数据通信的过程是:总线仲裁 + SSC(Sequence Start Condition) + 命令和数据

Frame + ACK + BUS Park

5. 总线在IDLE时,2个信号都是低电平,其中CLK由BOM强拉低,DATE由下拉电阻

若拉低,谁想发数据,谁就在总线IDLE时,拉高数据线,旧BOM检测到后62us内发出CLK,开始仲裁过程。

6. 仲裁结束后,新的BOM就产生了,再由其发送SSC,开始它想要的通信了。

7. 总线上的数据按紧急性分为2类,优先级和次优级,各设备自己知道自己数据的

优先级别

8. 总线上的所有设备都应该有一个地址,主设备地址是0x0000-0x0011,从设备地址

是0x0000-0x1111共16个。每个数据通信都是基于设备地址的。

9. 总线仲裁时,设备共有4个仲裁优先级别,分别是从设备A bit仲裁,主设备优先

级仲裁,从设备SR Bit仲裁,主设备次优先级仲裁。

10. 总裁时,按照从高到低的顺序在数据线上安排时间Bit,相关的设备按照自己的数

据紧急度采用相应的仲裁优先级别,在相应的Bit时间上动作,若有工作,则相应的设备仲裁成功,若没有,则继续在数据线上安排低仲裁级别的时间Bit.

11. 若同时有多个从设备采用同样的仲裁时间bit,则从设备之间继续仲裁,算法结果

是谁的地址大,谁成功,即0x1111老成功,为避免这个情况,它下次不能用A bit方式仲裁。即从设备内部是依据地址仲裁的。

12. 主设备之间用MPL做为仲裁依据,保证每个主设备用平等的机会成为BOM,每个

主设备的MPL在每次仲裁结束后重新计算,各主设备只要知道当前BOM的MID就能计算自己新的MPL。

13. 仲裁时序的Bit安排: 发起仲裁+ C Bit + A bit + Master Priority 仲裁+SR Bit+ Master

secondary 仲裁,其中C Bit的作用是判断是否有master设备需要连接, A bit 判断是否有从设备用A bit级别参与仲裁,SR Bit判断是否有从设备用SR bit级别参与仲裁,若没有,则不安排仲裁时间bit;Master Priority 仲裁和 Master secondary 仲裁不需要判断Bit,但在时间上必须安排仲裁过程。

14. 总线仲裁前,必须有一个旧的BOM,如果没有,则必须有一个初始化的过程。

15. 初始化时,各主设备先后发起仲裁请求,估计是先发起的设备默认成为BOM。

16. 当前BOM完成通信后,可以发命令退出BOM位置,其它master依据自己的MPL,

顺序拉高Date信号,最早拉高的master成为新的BOM,并且立即把自己的MPL设置为3。

17. SSC只能由BOM发出吗?谁控制CLK,谁发SSC.

18. 从设备能当假BOM,但是CLK仍然由老BOM发出,SSC也由老BOM发出,从设

备只驱动DAT.

19. 只要知道当前BOM的MID,其它主设备就能算出自己目前的MPL,因为当前BOM

的MPL是3,这个怎么算? 因为MID顺序对应的MPL组数很多,用以实现轮流当BOM,但当知道MPL=3对应的MID时,则4个MID和MPL的对应关系就一一对应了。说明他们的对应关系是有规律的,一对一的。这样新连上的master就根据自己的MID,得知自己新的MPL,为下一步的总裁做准备。

20. 每次传输数据前,都是由总线总裁申请开始,这个申请可以由所有master和有资

格的从设备发起。

21. 设备连接可以分3种方式: 1是当观察到SSC后,检测command sequence发送完

毕后,总线Idle后,立即拉数据线,申请总裁,BOM输出CLK后,申请者响应C bit;二是一直观察总线,当发现是IDLE,则发起总裁申请,若有BOM的CLK输出,

则设备响应C Bit,若没有BOM的CLK输出,则设备自己输出CLK,充当BOM;三是检测到有人申请总裁,则设备响应C bit就行,若有人申请但没有CLK,则设备产生CLK,充当BOM.

22. 开机后,执行初始化过程,所有master都会依次发起总线仲裁,执行连接过程,

监测总线的动作,当发现没CLK一段时间后,就自己当BOM,谁的MID低,谁当BOM;BOM产生后,紧接着就发出C bit,执行连接过程,再执行仲裁过程,再后才发SSC,SSC后面只能跟命令或数据序列了。

23. BOM 可以发送交出总线命令,让下一个MPL的master设备当BOM,若没有其它

已经连接的Master,则总线失去BOM,为没有初始化的状态。也就是说BOM一定可以退出这个角色。

24. 凡是没有参与总裁的master,或者不再履行总线功能的,不更新MPL的master,

都视为断开连接的master. 但它仍能监视总线。

25. 从设备有sleep, active ,shutdown, startup共4种工作模式,startup时,所有的LDO

都关了,需要enable信号,才进入active状态;Active状态时,主设备可以设置各寄存器,控制从设备了;sleep是active的低功耗模式,也能设置各寄存器,只要从设备内部寄存器的时钟还存在;用命令能进入shutdown 模式,所有LDO关掉,用reset命令或信号,可以退出shutdown模式。

本文来源:https://www.bwwdw.com/article/mmrp.html

Top