双µC应用基础
使用单µC时,如果µC位于串行器侧,通常将串行器/解串器两端控制方向选择引脚(CDS)置为低电平;如果µC位于解串器侧,则将方向控制选择置为高电平。然而,如果将串行器的CDS置低、解串器的CDS置高,则每个GMSL芯片都可以同时连接到各自对应的µC (图1)。
图 1. 简单的双µC应用原理图,CDS设置如图所示
内部操作
使用两个µC时,串行器和解串器的I²C主机都被禁用,而且RX/SDA和TX/SDL由其对应的µC配置为UART接口。由于每个器件都作为本地器件运行,所以不能进入休眠状态。利用对应的低电平有效PWDN引脚控制每个器件进入低功耗状态。切记,当从电源关断状态唤醒时,所有器件设定都复位到它们的上电初始值。
图2. 串行器状态图(CDS = 低电平)
图3. 解串器状态图(CDS = 高电平)
双µC应用中的冲突问题
图1所示配置中,每个µC都可以按照GMSL UART协议与MAX9259串行器、MAX9260解串器或其它µC通信。GMSL不提供防冲突措施,用户需要自行提供冲突处理措施。
独立组网
防冲突最简单的方法是让每个µC将其附属的串行器/解串器的FWDCCEN和REVCCEN位置0 (0x04 D[1:0])。这种方案禁用正向和反向控制通道的接收器、发送器,而且有效地将控制网络分成两个独立网络(图4)。任何通过串行链路的通信首先需要每一侧的µC重新使能相应链路端的通信。这种设置在“常通”应用中非常有效,其关键链路特定寄存器的设置不会从初始状态改变。[page]
图4. 独立控制网络避免了冲突的可能性
软件冲突处理
在那些两端串行链路间必须通信的应用中,用户可以通过更高层的协议避免冲突(图5)。以下例子中,每个µC都会等待ACK帧来判定其指令是否成功。发生冲突时,串行器/解串器不会发出ACK帧。接收ACK帧失败后,在重新发送指令前,µC会根据它们的器件地址等待一段时间。由于此设计中,微处理器有不同的器件地址,在重试通信时不会出现冲突。
图5. 软件处理冲突的示例
单/双µC应用
某些应用不要求两个µC始终保持工作。工作时,如果任一端的CDS输入改变了状态,相应器件将按照MAX9259数据手册中介绍的链路启动步骤恢复工作。根据需要,在单µC和双µC工作中切换,轮流使能GMSL会占用更少资源。可以关断不用的µC以降低功耗,有助于延长电池寿命。
远端显示示例(解串器)
在下面应用中,链路的解串器侧是一个配置用于遥控电源开/关的显示面板。板子关断输入和单/双µC控制都连接到MAX9260 GPIO0的输出端(图6)。一旦上电,GPIO输出高电平,以保持远端器件关闭,解串器由于附加的反相器配置为远端器件。由于MS连接到GPIO,MAX9260在休眠模式下上电,其余所有器件处于低功耗状态。[page]
为了开启遥控面板,串行器唤醒MAX9260并建立串行链路。然后,串行器端的µC设置GPIO0为低电平,使MS置低、反相器输出高电平。反相器设置MAX9260为本地器件,并唤醒远程显示面板的其它电路。MS必须置为低电平,以保持MAX9260 UART接口的基本模式。
如需关断远端面板,则串行器设置GPIO0为高电平来关断远端器件并将MAX9260置为远端器件。然后,在MAX9260内设置SLEEP = 1,使器件进入睡眠模式。
图6. 单/双µC远端显示举例
远程摄像机举例(串行器)
类似于上述例子,链路的串行器侧为配置成远端电源开/关的摄像模组。MAX9259的INT输出控制板子的关断输入和单/双µC切换(图7)。在此应用中,INT作为GPO使用,通过设置SETINT(MAX9259的0x0D D7)或解串器的INT输入对输出进行控制。一旦上电,INT输出为低电平,保持远端器件关断。反相器输出连接到CDS,将串行器配置为远端器件。由于低电平有效AUTOS置为高电平,MAX9259在休眠模式下上电。
如要开启远端面板,解串器通过GMSL UART指令唤醒MAX9259。然后,解串器设置MAX9259的INT输出为高电平,使所有远端器件上电。反相器输出将MAX9259置为本地器件,可通过本地µC接收UART指令。
如要关断远端面板,解串器设置MAX9259的INT输出为低电平,关断远端器件且将MAX9259设置为远端器件。然后,解串器在MAX9259内设置SLEEP = 1,使器件进入睡眠状态。
图7. 单/双µC远端摄像机举例
其它应用
双µC应用并不仅仅限于上述示例。对称、双向控制面板,随着实时的CDS和旁路设置(通过MS)可以启动众多串行器/解串器和µC配置。设计人员需要更高的控制手段提高系统能力并使系统功耗降至最低,最大限度地利用现有资源。
上一篇:汽车稳定控制系统方案
下一篇:汽车MCU的汽车仪表板及车身控制设计应用
推荐阅读最新更新时间:2024-05-02 22:09