嵌入式技术在视频矩阵切换系统中的应用研究
2021-07-28张来胜
张来胜
(郑州市人力资源和社会保障数据管理中心,河南郑州 450000)
0 引言
随着电子技术的发展,显示屏的分辨率越来越高,高分辨显示屏越来越普及。同时,人民生活水平的提高使得高清视频普及,同时对高清视频切换的需求量就增大,视频切换速度要求提高。而目前市面上存在的视频矩阵鱼龙混杂,价格普遍比较昂贵[1]。因此,开发一种经济实用的HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)矩阵是非常有必要的。HDMI矩阵完成的功能是接收端接收信号源信号,经过芯片的通道选择,从发送端将信号送给显示设备[2]。
1 系统总体设计
视频矩阵系统分为上位机和下位机两部分。下位机部分主要由电源模块、STM32控制模块、切换模块、存储模块以及HDMI接口模块构成,上位机部分主要实现对下位机的控制。电源模块为整个系统供电,上位机为一个客户端软件,通过点击界面操作向下位机发送命令,STM32接收上位机命令,然后向切换模块发送对应的数据,切换模块根据命令内容做出相应操作。系统设计框图如图1所示。
图1 视频矩阵系统总体模块图Fig.1 Overall module diagram of video matrix system
2 视频矩阵系统硬件模块设计与实现
2.1 HDMI接口电路设计
HDMI是目前应用广泛的音视频传输协议[3]。HDMI接口有5种类型,其中Type A类型使用最为广泛。本系统采用的是Type A类型,目的是为了让大多数设备直接使用。HDMI接口电路分为接收端和发送端两部分。接收端从信号源接收信号,经过切换芯片转换,从发送端发送给显示设备。
接收端应该为信号源提供显示器的EDID,告知信号源所发送的信号类型。DDC通道连接了一个存储有EDID的EEPROM芯片,EEPROM有掉电不丢失数据,可擦除可读写的特点,可以用来存储显示器的EDID信息。EDID由128个或者256个字节组成,包含显示屏的性能参数,供应商以及支持的显示分辨率等信息。系统采用的EEPROM为AT24C02,最多可以存储256个字节的数据,EDID最多为256个字节,保证够用。只有当信号源读取到EDID,才会将TMDS信号送出。信号源与切换芯片的接收端连接。另外,为了防止静电,以防瞬间电压过高击穿电路板,在HDMI端口处增加了ESD器件[4]。将每一路TMDS信号的正负极分别接在ULC0524P引脚上,一个ESD器件可以接两路TMDS。接收端HDMI电路图如图2所示。
图2 接收端HDMI电路设计图Fig.2 Design of HDMI circuit of receiver
发送端HDMI电路连接与接收端HDMI电路类似,只是不需要存储EDID,电路去掉了AT24C02。
2.2 STM32控制模块
矩阵系统的MCU控制着整个系统逻辑[5],读入按键输入,控制LCD1602显示屏输出,控制芯片切换TMDS信号,控制着显示屏EDID的读取与EEPROM中EDID的写入。控制RS232与NET通信与上位机通信。框图如图3所示。
图3 主控芯片连接框图Fig.3 Main control chip connection block diagram
2.3 切换模块
切换模块主要是由两个LT8644芯片完成。LT8644是一种16*16的数字交叉开关,具有16个TMDS输入通道和16个TMDS输出通道。本系统采用了两个LT8644芯片,一共可以传输32路TMDS信号,而一路HDMI信号包含4路TMDS信号,所以本系统是个8*8的视频矩阵。
LT8644支持串口控制接口进行独立的通道切换,访问和控制只需要用一个IIC接口。芯片通过UPDATE和RESET引脚与STM32连接,完成芯片的复位功能和更新寄存器功能,复位功能是上电之后芯片需要复位才能开始工作。更新功能作用是在寄存器值发生改变以后完成更新操作。通过IIC总线与STM32通信,作为STM32的从机,通过SCL时钟线和SDA数据线通信,从STM32接收数据并写入切换芯片寄存器,寄存器的值改变了以后,执行UPDATE操作,芯片就会完成切换动作,如图4所示。STM32也可以从切换芯片寄存器读取数据来查看芯片状态。
图4 切换模块框图Fig.4 Block diagram of switching module
2.4 电源模块
电源模块使用的是TPS54302芯片,可利用不同的反馈电阻得到不同的电压输出。视频矩阵的输入电压为5V直流电,LT8644芯片工作电压需要3.3V和1.8V,STM32工作所需电压为3.3V。转换电路如图5所示。TPS54302将5V直流转换为3.3V直流,转换为1.8V的电路图与之类似,不过是将R502的22.1kΩ换成49.9kΩ。另外,STM32的3.3V工作电压通过L T 8 6 4 4的3.3 V经过磁珠隔离后得到,20MHz带宽纹波不大于30mV。
图5 电源模块电路图Fig.5 Power module circuit diagram
3 系统软件设计与实现
3.1 下位机软件设计与实现
3.1.1 下位机软件总流程
系统上电后,首先需要设置时钟、串口、以及各个芯片的初始化状态并进行初始化。然后将FreeRTOS系统也初始化。待初始化完毕,在系统中创建两个任务并进入任务调度函数。一个任务用来从串口1接收数据并且分析数据的有效性,若无效则丢弃,有效则存为命令结构。另一个任务用来解析命令,执行所需要的操作。系统就在这两个任务中来回切换,实现对视频矩阵的控制。系统总体流程图如图6所示。
图6 系统软件总流程图Fig.6 General flow chart of system software
3.1.2 通信协议的设计
通信协议的设计是完成上位机与下位机交互的重要步骤。协议数据包格式如表1所示。其中,前三个字节为协议头“$XG”,表示数据的开始,同时起着分隔命令的作用;接下来的一个字节数据为长度,代表内容的长度,假设长度字节数据的值为N,那么再接下来的N个字节数据即为数据内容,数据内容中的第一个字节代表控制命令号,其余的内容为自定义内容;最后两个字节,为数据校验和,采用小端序,校验和应该等于长度和内容按字节相加所得出的和。
表1 协议数据包格式表Tab.1 Protocol packet format
3.2 上位机软件设计与实现
上位机部分用Delphi做了一个客户端软件,软件有两个界面,一个主页,一个功能页。主页中有切换类型,输入通道,输出通道和TCP/IP连接。首先,上位机要跟下位机输入相同的IP号和端口号建立TCP连接,然后选择切换类型,是音视频同步切换还是只切换视频或音频。接下来选择输入通道,一次只能选择一个输入,但是可以同时选择多个输出,然后点击切换按钮,这样可以完成一切多的操作。此外,主页还有一个开启或关闭指定输出通道的功能。
第二个页面是功能页面,已完成的功能是读取某一路输出端口所接显示设备的EDID,然后通过IIC总线写入输入接口的EEPROM中。输出只可以选一个,输入可以多选。
4 系统实现与测试
本系统可以实现RS232串口控制切换,上位机软件通过网口控制切换。测试环境如下,所接输入1为笔记本电脑输入,输入2为台式机输入,一个HDMI显示屏接输出1。
切换前屏幕选择的输入端口为输入2,切换后的屏幕显示画面从输入2变为输入1,如图7所示。
图7 串口测试切换前后显示器显示图Fig.7 Display before and after serial port test switching
通过以上多次测试,得出结论,视频矩阵可以准确快速地完成切换,还可以完成关闭开启输出通道,读取显示器EDID功能。
5 结语
本文设计的视频矩阵实现了视频快速切换的目标,可以完成视频切换,视频通道开启关闭,显示器EDID读写功能,并且在调好以后,即使断电,下次开机时也能还原上一次的输入输出对应状态。另外,本视频矩阵控制方式多样化,不但能通过RS232串口控制,还可以通过TCP/IP控制,且上位机软件界面友好,人性化设计及布局,操作简便易上手,具有较强的应用价值。