0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何连接两个µC来控制GMSL

电子设计 来源:eeweb 作者:Maxim 2021-04-21 13:58 次阅读

Maxim的千兆位多媒体串行链路(GMSL)解决方案可通过一条双绞线对数字视频音频数据进行序列化。此外,集成的双向控制通道使单个微控制器(µC)可以对串行器,解串器和所有连接的外围设备进行编程。对于典型应用,这消除了远程侧微控制器及其支持组件,例如时钟源/晶体和低压电源。这不仅简化了远程设备的设计,而且还降低了成本,尺寸和功耗。但是,有时由于与GMSL不相关的其他设计要求,µC已经位于链路的两侧。本应用笔记介绍了如何连接两个µC来控制GMSL。

基本双µC用法

通常,当使用单个µC时,串行器/解串器上的两个控制方向选择(CDS)引脚对于串行器侧µC都设置为低电平,对于反序列化器侧µC设置为高电平。但是,如果将串行器上的CDS设置为低电平而将解串器上的CDS设置为高电平,则每个GMSL芯片可以同时连接到各自的µC(图1)。

pIYBAGB_vm6AYqk4AABkk-4UV_A067.png

简化的双µC应用原理图,显示了CDS设置。

内部操作

当使用两个µC时,串行器和解串器的I²C主设备均被禁用,并且RX / SDA和TX / SDL与相应的µC配置为UART接口。由于每个设备都作为本地设备运行,因此它们无法进入睡眠模式。使用相应的低电平有效PWDN引脚将每个器件置于低功耗状态。请记住,从掉电状态返回时,所有设备设置均会重置为其开机值。

双重µC争用问题

在上面的图1所示的配置中,每个µC都可以使用GMSL UART协议与MAX9259串行器,MAX9260解串器或其他µC进行通信。GMSL没有提供避免竞争的解决方案,用户将需要提供自己的竞争处理方案。

分离网络

避免争用的最简单解决方案是让每个µC都将其连接的串行器/解串器FWDCCEN和REVCCEN位设置为0(0x04 D [1:0])。这将禁用前向和反向控制通道的接收器和发送器,并有效地将控制网络分为两个独立的网络(图2)。

o4YBAGB_vnuAKoCwAACmlmFDeO0315.png

分开的控制网络消除了争用的可能性。

将来,通过串行链路进行的任何控制通信都首先需要双方的µC在链路各自的端部重新启用通信。此配置在永远在线的应用程序中最有用,在这些应用程序中,特定于链接的关键寄存器设置不会从初始设置更改。

软件争用处理

在串行链路两端必须进行通信的应用程序中,用户始终可以实施高层协议来避免争用(图3)。在下面的示例中,每个µC等待确认帧以确定其命令是否成功。

o4YBAGB_vomARJPMAAF-hHqtGkE714.png

基于软件的竞争处理的示例。

在争用的情况下,串行器/解串器不发送确认帧。在未收到确认帧后,µC将等待一段时间(取决于其设备地址),然后重新发送其命令。由于此设计中的微控制器具有不同的设备地址,因此在重试通信期间不会发生竞争。

单/双µC用途

在以下应用程序中,链接的解串器端是显示面板,该面板配置为远程打开/关闭电源。评估板的关断输入和单/双µC控制均连接至MAX9260 GPIO0的输出(图4)。上电时,GPIO输出为高电平,由于添加了反相器,因此可保持远程侧设备关闭,并且解串器被配置为远程侧设备。由于MS已连接到GPIO,因此MAX9260在睡眠模式下上电,使所有器件处于低功耗状态。

pIYBAGB_vpmAL-gEAABE9I5NPvU002.png

双/单路µC远程显示示例。

为了启动远程面板,串行器唤醒MAX9260并建立串行链路。然后,串行器侧的µC将GPIO0设置为低电平,以使MS变为低电平,而反相器输出变为高电平。逆变器将MAX9260设置为本地设备,并唤醒其余的远程显示面板。MS必须设置为低电平,以使MAX9260 UART接口保持基本模式。

为了关闭远程面板,串行器将GPIO0设置为高电平以关闭远程设备,并将MAX9260设置为远程设备。然后,在MAX9260中设置SLEEP = 1以使器件进入休眠状态。

远程摄像机示例(序列化器)

与上一个示例类似,链接的串行器端是配置为远程开机/关机的摄像机模块。MAX9259的INT输出控制电路板的关断输入和单/双µC开关(图5)。对于此应用,INT用作GPO,其输出由SETINT(MAX9259中的D7为0x0D的D7)或解串器的INT输入设置。

o4YBAGB_vqeAKLCaAABAHR4Cy1k092.png

双/单路µC远程摄像机示例。

上电时,INT输出为低电平,这使远端设备保持关闭状态。连接到CDS的逆变器输出将串行器配置为远程设备。由于低电平有效AUTO设置为高电平,因此MAX9259在休眠模式下上电。

为了启动远程面板,解串器使用GMSL UART命令唤醒MAX9259。然后,解串器将MAX9259的INT输出设置为高电平,以为所有远程设备加电。反相器输出将MAX9259设置为本地设备,现在可以接受本地µC的UART命令。

为了关闭远程面板,解串器将MAX9259 INT输出设置为低电平,以关闭远程侧设备,并将MAX9259设置为远程设备。然后,解串器在MAX9259中将SLEEP设置为1,以使器件进入休眠状态。

其他应用程序

双µC的使用不限于上面显示的应用程序。对称和双向控制通道,以及动态CDS和旁路设置(尽管是MS),可实现多种串行器/解串器和µC配置。现在,可以为设计人员提供更高程度的控制权,以提高其系统的功能,最小化功耗并最大程度地利用可用资源。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6806

    浏览量

    147601
  • 串行器
    +关注

    关注

    0

    文章

    50

    浏览量

    14263
  • GMSL
    +关注

    关注

    2

    文章

    24

    浏览量

    15389
收藏 人收藏

    评论

    相关推荐

    STM32MP157两个A7核能跑两个系统吗?

    请问STM32MP157的两个A7核,能像其它双核CPU一样运行AMP模式:一核跑Linux、一核跑RTOS(或禅机)吗?虽然有一M4核可以跑RTOS,但计算能力有点弱,不能满足
    发表于 03-21 06:50

    详析GMSL在双汽车电子控制单元中的应用

    ADI的千兆多媒体串行链路(GMSL)方案可以对数字视频和音频数据进行串行转换,然后通过一对双绞线串行传输。另外,集成双向控制通道可以使能单个微处理器(µC)对串行器、解串器和所有连接外设编程
    的头像 发表于 02-27 08:22 138次阅读
    详析<b class='flag-5'>GMSL</b>在双汽车电子<b class='flag-5'>控制</b>单元中的应用

    stm32h750如何使用两个usb口?

    我现在在使用stm32h750芯片,想要使用两个usb口,一作为device连接电脑,一作为host连接u盘。spi之类的都有需要spi
    发表于 02-26 06:51

    想用TC275控制两个永磁电机,GPT12能不能实现两个QEP功能?

    想用TC275控制两个永磁电机,不知道GPT12能不能实现两个QEP功能,供路电机使用
    发表于 02-05 07:14

    如何启用两个TC275进行外部数据传输?

    你好,我想启用两个TC275进行外部数据传输? 我已经在两个控制器之间建立了物理连接,在 COOLDIM_PRG_BOARD的足够引脚(
    发表于 01-22 07:47

    gmsl和lvds差异

    数据传输和视频传输等应用。尽管它们都可以用于类似的应用,但它们在设计和性能方面有一些重要差异。 差分信号:GMSL和LVDS都使用差分信号进行数据传输。差分信号是通过使用两个相反的信号来表示信息
    的头像 发表于 12-08 14:13 2685次阅读

    AD8368上下限截止频率是通过HPFL和DECL两个引脚控制的吗?

    AD8368上下限截止频率是通过HPFL和DECL两个引脚控制的吗,因为datasheet里面有两个公式。 还有就是那自动增益控制是怎么实现的,我看是通过输出与某个脚的电压相减,得出
    发表于 11-27 06:08

    ESP8266能不能分时控制两个串口设备?

    公司需要用8266控制两个甚至多个串口设备,开发环境为ArduinoIDE,但是8266只有一串口,我的设想是使用片选引脚分时控制
    发表于 11-08 07:41

    通过两个不同的定时器控制PWM的输出,如何让者同步?

    通过两个不同的定时器控制PWM的输出,希望两个PWM可以同步,该如何处理?
    发表于 11-06 06:47

    如何连接两个单片机实现IO口模拟数据的接受发送?

    如何连接两个51单片机,实现IO口模拟数据的接受发送
    发表于 11-03 06:56

    MAX96714: Single GMSL2/GMSL1 to CSI-2 Deserializer Data Sheet MAX96714: Single GMSL2/GMSL1 to CSI-2 Deserializer Data Sheet

    电子发烧友网为你提供ADI(ADI)MAX96714: Single GMSL2/GMSL1 to CSI-2 Deserializer Data Sheet相关产品参数、数据手册,更有
    发表于 10-12 18:43
    MAX96714: Single <b class='flag-5'>GMSL</b>2/<b class='flag-5'>GMSL</b>1 to CSI-2 Deserializer Data Sheet MAX96714: Single <b class='flag-5'>GMSL</b>2/<b class='flag-5'>GMSL</b>1 to CSI-2 Deserializer Data Sheet

    SG6服务器有两个网卡,但是有一电口和两个光口具体应该怎么连接

    SG6服务器有两个网卡,但是有一电口和两个光口,具体应该怎么连接
    发表于 09-19 07:25

    使用NUC472的两个USB与PC连接

    使用 NUC472 的两个USB 界面,一USB 界面与USB 设备连接,另一界面作为USB 枢纽与PC 连接。应用程序进行预处理,然后
    发表于 08-22 08:30

    使用两个ESP01模块和温度传感器读取室内温度,Esp01不工作怎么解决?

    我一直在使用两个 ESP01 模块和温度传感器读取室内温度。我正在使用 tasmota 固件并且工作正常。今天突然发现不行了。当我打开电源时,蓝色指示灯只闪烁一次,然后就没有了。通常它会反复闪烁
    发表于 05-30 07:04

    如何让两个ESP8266通过WiFi(TCP套接字)进行通信?

    每次在 loop() 函数中连接到服务器解决这个问题,但是这会大大减慢进程。 所以简而言之,我的问题是如何让两个 ESP8266 通过 WiFi(TCP 套接字)进行通信?
    发表于 05-16 06:44