ADI的千兆多媒体串行链路(GMSL)方案可以对数字视频和音频数据进行串行转换,然后通过一对双绞线串行传输。另外,集成双向控制通道可以使能单个微处理器(µC)对串行器、解串器和所有连接外设编程。在典型应用中可以省去远端微处理器及相关器件,如:时钟源/晶体和低压电源。此方案不但简化了远端设计,而且降低了系统成本、尺寸和功耗。但是,有些情况下,考虑到GMSL之外的特殊需求,系统中仍然在链路的两端驻留了µC。这篇应用笔记描述了如何连接两个µC,控制GMSL。
双µC应用基础
使用单µC时,如果µC位于串行器侧,通常将串行器/解串器两端控制方向选择引脚(CDS)置为低电平;如果µC位于解串器侧,则将方向控制选择置为高电平。然而,如果将串行器的CDS置低、解串器的CDS置高,则每个GMSL芯片都可以同时连接到各自对应的µC(图1)。
内部操作
使用两个µC时,串行器和解串器的I2C主机都被禁用,而且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重新使能相应链路端的通信。这种设置在"常通"应用中非常有效,其关键链路特定寄存器的设置不会从初始状态改变。
图4. 独立控制网络避免了冲突的可能性
单/双µC应用
某些应用不要求两个µC始终保持工作。工作时,如果任一端的CDS输入改变了状态,相应器件将按照MAX9259数据手册中介绍的链路启动步骤恢复工作。根据需要,在单µC和双µC工作中切换,轮流使能GMSL会占用更少资源。可以关断不用的µC以降低功耗,有助于延长电池寿命。
远端显示示例(解串器)
在下面应用中,链路的解串器侧是一个配置用于遥控电源开/关的显示面板。板子关断输入和单/双µC控制都连接到MAX9260GPIO0的输出端(图6)。一旦上电,GPIO输出高电平,以保持远端器件关闭,解串器由于附加的反相器配置为远端器件。由于MS连接到GPIO,MAX9260在休眠模式下上电,其余所有器件处于低功耗状态。
为了开启遥控面板,串行器唤醒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配置。设计人员需要更高的控制手段提高系统能力并使系统功耗降至最低,最大限度地利用现有资源。