小樱知识 > 生活常识 > 接口转换器(电脑网络转换器接口)

接口转换器(电脑网络转换器接口)

提问时间:2022-06-05 12:43:03来源:小樱知识网


福州大学物理与信息工程学院研究人员张、叶、黄在《电工技术》2019年第8期上撰文(论文题目为《基于STM32的视频接口转换器的设计与实现》)。目前,我们正处于一个视频爆炸的时代,各种新兴的视频技术如雨后春笋般涌现,导致各种视频接口标准并存。因此,视频接口的兼容性成为一个突出的问题。

提出了一种基于STM32和高速视频处理芯片的4K视频流从HDMI接口到LVDS接口的实时转换方案,并选择了不同格式的码流进行测试和验证。经过测试,该方案可以实现音视频数据流的分离输出,同时支持音视频参数的转换,达到了预期的设计要求,有助于超高清数字电视的推广。

随着视频技术的飞速发展,人们对视频质量的要求越来越高。从最初的黑白或彩色模拟视频,到目前主流的高清1080p,以及正在推广的超高清4K数字视频,各种新技术不断涌现,形成了多代设备、多种技术标准并存的局面。

不同的设备在欣赏各种视频的同时,也给人们的工作和生活带来了诸多不便。通常,设备支持的视频接口是有限的。如果视频接口不匹配,会造成很多问题,严重影响用户体验。因此,本文设计的视频接口转换器的解决方案具有重要的意义。

转换器和接口介绍

顾名思义,接口可以实现不同视频接口之间的对接匹配,将一种视频接口标准的视频信号转换成另一种视频接口标准的信号。在转换过程中,还可以对视频分辨率、颜色空和颜色深度进行转换,以满足不同设备对视频信号的要求。本文主要实现HDMI接口到LVDS接口的转换。音频输出采用I2S接口协议,系统控制采用I2C接口控制专用芯片。

HDMI接口是一种特殊的数字接口,支持高清视频和多路数字音频数据的高质量高速传输,具有数字视频版权保护功能(HDCP)。与上一代HDMI1.4标准相比,目前的通用HDMI 2.0接口标准增强了对4K视频的支持,线缆速率从10.2Gbit/s提升至18Gbit/s,可支持RGB 4:4:4的4K@60Hz视频传输。

LVDS接口是一种低压差分信号传输方式,也是一种电平标准。它允许信号在差分PCB线路或平衡电缆上以几百Mbit/s的速率传输。具有低电压、低功耗、低噪声、高速传输的特点。

I2S总线是飞利浦定制的音频数据传输总线标准。它采用三线制,由位时钟线(SCK)、通道选择线(WS)和串行数据线(SD)组成。该接口将数据信号和时钟信号分开传输,以避免时差引起的失真。

2系统硬件框架

视频接口转换器的实现是STM32主控模块控制视频专用芯片将输入的HDMI信号转换成视频信号(LVDS信号)和音频信号(I2S信号)。同时STM32检测端口的输入视频格式信息,显示在液晶屏上,检测按键输入。STM32根据输入指令,配置视频专用芯片的输出音视频格式,选择输出接口。STM 32通过I2C接口与视频专用芯片通信。

该系统由交互部分、STM32主控部分、视频处理芯片部分和输入输出部分组成。系统的整体框图如图1所示。

图1整体系统框图

系统的主要控制是为视频处理芯片配置一些初始化寄存器,检测按键输入和视频输入信号格式,获取相关数据进行判断,根据输入要求配置芯片输出。因此,本系统选用ST公司的STM32F103系列芯片作为主控制器。

该系列芯片是基于Cortex-M3内核的32位嵌入式处理器,而RBT6属于该系列中等容量芯片。片内Flash为128kB,片内SRAM为20kB。系统主频可达72MHz,有丰富的外围资源满足本系统的设计要求。芯片控制通信接口选择I2C2(GPIOB.10、GPIOB.11)接口。

系统的输入输出部分包括HDMI_RX接口、LVDS_TX接口和I2S_TX接口。

系统的视频数据转换和处理部分由专用的视频处理芯片完成。所选视频处理芯片的要求是:芯片配有HDM2.0标准输入接口,支持热插拔,支持HDCP1.4/2.2,支持多种视频格式的输入,能够检测并反馈输入的视频格式,能够支持高达4K分辨率的视频输入,能够将一路HDMI信号转换成一路LVDS视频信号和一路I2S音频信号输出。因此,系统选用了日本Sohee公司生产的高性能低功耗专用视频处理芯片,广泛应用于数字电视和数字机顶盒。与其他专用视频处理芯片相比,价格更低,可以降低系统硬件的设计成本。

系统的交互部分由按键部分和液晶显示部分组成。关键部分是一个4×4矩阵键盘,通过GPIOA.2- GPIOA.5口与主控模块连接。主控模块分析按键输入的指令,并对视频处理芯片进行相应的配置。液晶部分选用2.8英寸的TFTLCD屏幕作为显示器,分辨率为320×240。显示驱动模块为16位80位并行接口ILI9320,支持65k彩色显示,通过FSMC接口连接和控制。用于显示当前输入信号源的端口号、输入视频参数、音频参数、输出视频参数、音频参数等系统状态信息。

软件的设计与实现3

市场上常用的嵌入式ARM平台开发环境有两种,分别是Keil MDK和IAR。凯尔MDK v5是一个集成开发工具,具有最佳性能的ARM系列微控制器,尤其是ARM Cortex-M系列核心微控制器。因此,本次系统设计选择Keil uVision5作为软件开发环境,系统整体软件设计分为初始化和控制两部分。

3.1系统初始化软件设计

系统的初始化主要是初始化STM32和视频芯片,调用的关键初始化函数如表1所示。

表1系统初始化的关键功能

STM32的初始化:在Keil MDK v5建立的项目中,可以直接使用ST公司编写的启动代码文件startup_ STM32f10x_md.s来初始化控制芯片。该文件已经配置了芯片系统堆栈的初始化、中断向量表、系统时钟的配置等。用户只需要配置自己的相关模块。

此次使用的STM32资源包括GPIOA、GPIOB、中断控制、systick定时器、I2C2接口等。首先调用NVIC_PriorityGroupConfig()函数,将系统中断优先级设置为组4,子优先级为0和16抢占优先级。配置systick定时器的参数,调用SysTick_Init()函数,设置中断时间间隔为1ms,用于延时功能的计时。

调用RCC_APB1PeriphClockCmd()和RCC_ APB2PeriphClockCmd()函数来使能外设I2C2的时钟以及安装在APB1和APB2总线上的GPIOA和GPIOB端口的时钟。然后调用KEY_Init()和LCD_Init()函数初始化按键和LCD显示模块,最后调用Hi_I2C_ Init()函数初始化控制通信接口I2C2。

专用视频芯片初始化:STM32通过I2C控制接口读写专用视频芯片的寄存器,完成芯片的初始化配置。有系统时钟、锁相环、上电复位、接口物理参数配置等。然后调用hdmirx_ init()、lvdstx_init()和i2stx_init()三个SDK库函数分别初始化芯片的输入输出端口,从而完成整个系统的初始化操作。

3.2系统控制部分的软件设计

系统的控制代码包括四个模块:端口状态检测、音视频格式检测、键盘检测和输出控制。

1)端口状态检测

(1)端口状态检测模块。

系统初始化后,HDMI接口要求即插即用,系统配置要求自适应输出,因此系统设计要求实时检测输入端口状态,为后续数据处理和输出配置提供参数。端口检测模块的流程图如图2所示。

图2端口检测流程图

(2)端口状态检测方法。

首先,当前端口输入状态now_port_status和先前端口输入状态pre_port_status都被设置为零,并且定义了端口定时变量port_status_tick。该变量会随着时钟信号每1ms自动加1(由系统systick定时器中断触发),每200ms判断一次端口检测时间。

然后调用库函数getrx_port_status(&port_status)获取当前端口输入状态,如果当前端口有信号接入,则设置now_port_ status=1,并将now_port_ status与之前的端口输入状态pre_port_status进行比较;如果不是,说明当前端口输入状态发生了变化,更新LCD上显示的系统输入状态,通知主控模块做相应处理。

最后,将now_port_status的值赋给pre_port_status,并更新端口的port_status_tick变量,等待下一次端口状态检测。所有四个输入端口执行相同的端口状态检测处理。

2)音视频格式检测

(1)音视频检测模块。

在实际应用中,用户会随机切换音视频格式,因此需要在端口状态检测后同步检测输入音视频格式的状态。音视频格式状态检测涉及的库函数见表2。

表2音视频状态检测相关库函数

(2)音视频格式检测方法类似于端口检测方法。

首先,构建了系统视频和系统音频两种结构。system_video用于存储输入视频的端口号、分辨率、采样格式、帧率、颜色空信息。System_audio用于存储端口号、采样频率、量化位数、通道号等。音频。定义了一个变量av_status_tick,随系统时钟信号每1ms自动加1,每200ms检测一次音视频格式。

然后调用库函数getrx_av_status (&rx_av_ status)函数获取当前输入的音视频状态rx_av_status,比较rx_av_ status。video_format带最后输入的音视频状态变量pre _ rx _ avpre _ rx _ av _ status . video _ format。如果它们不相等,则表明输入的音频和视频状态已经改变。此时音视频状态标志变量rx_av_status_change置1,调用getRx _ video _ format((HDMI Rx _ video *)&(v form . htx))函数,获取当前输入的视频格式信息,更新LCD状态显示。将rx_av_status.audio_format与之前的音频标志状态变量pre _ rx _ av pre _ rx _ av _ status . audio _ format进行比较。

如果它们不相等,则意味着输入音频状态已经改变。将音频状态标志变量rx_av_status_change设置为1,调用HDMI Rx _ get _ audio _ format((HDMI Rx _ video *)&(v form . htx))函数获取当前输入音频格式信息,更新LCD状态显示。接下来,将rx_av_status分配给pre_rx_av_status,并等待下一次音频检测。

3)键盘检测

键盘上有16个键,分为0到9的10个数字键,lvds功能键,i2s功能键,取消键,确认键,上下键。STM32的所有GPIO端口都支持外部中断功能,键盘检测由外部中断触发。中断处理函数解析键盘输入的视频格式指令并赋给结构成员vform.sys,解析视频和音频端口选择指令并分别赋给变量lvds和i2s。

4)输出控制检测

输出控制模块根据一些标志变量的值调用库函数实现输出功能。使用的库函数列表见表3。当rx_av_change_status=1,lvds=0,i2s=0时,调用库函数lvds TX _ SET _ VIDEO _ FOR-MAT((lvds TX _ VIDEO *)&(v form . sys))设置LVDS视频输出格式,调用库函数lvdstx_video_mute(&tx_mute)和i2stx_audio_mute (&tx_mute)打开系统的LVDS接口和i2s接口输出,更新LCD显示状态信息;当rx_av_change_status=1,lvds=1,i2s=1时,系统关闭lvds接口和i2s接口的输出,并更新LCD显示状态信息。

表3系统输出控制的相关功能

系统的总体流程图如图3所示。启动后,首先系统初始化STM32和HV2芯片。STM32通过I2C接口读写HV2的端口状态寄存器,检测输入端口的变化。接下来,它检测输入音频和视频格式状态,并更新LCD显示的输入格式信息。然后根据状态标志变量和按键输入确定输出端口,并配置输出格式;最后,输出打开,LCD上显示的输出格式信息更新。

测试和分析

首先搭建测试环境,用机顶盒播放不同的测试流进行测试。选择一个由机顶盒播放并通过HDMI接口输出的4K/60p测试码流,连接到转换器的HDMI接口输入。输入音频采样频率为48kHz,采样位数为20位。用示波器测试输出端口的波形。音频I2S接口和视频LVDS接口的实测输出波形如图4和5所示。

图3系统总体流程图

图4 LVDS输出数据波形图

图5 I2S输出数据波形图

接下来根据LVDS数据格式和I2S数据格式标准,分析波形图得到输出数据,与输入的音视频数据格式对比得到输出分辨率为4K/ 60P,输出音频采样率为48kHz,采样位数为20bit。通过比较输入的音频和视频数据,我们可以知道转换器系统工作正常。然后,我们将它与4K/30p、4K/25p和4K/24p等不同的码流进行了测试和比较。

摘要

在本系统设计方案中,选用意法半导体公司的STM32F103RBT6芯片、Soxi公司的某专用视频处理芯片、按键模块、LCD显示模块和接口模块,完成视频接口转换器的系统设计。

经过一系列的测试和比较,该方案实现了HDMI接口到LVDS接口的输出和音视频的分离输出,支持高达4K分辨率的各种常见分辨率输入。在接口转换的同时,该转换器还可以实现不同接口之间的音视频系统参数转换,从而更好地解决接口匹配问题,达到预期的设计目标。

该转换器可靠性高、使用方便、功能强大,可有效解决数字电视应用中视频接口的兼容问题。它在数字电视中应用广泛,值得进一步研究和推广。

了解更多信息

以上内容就是为大家推荐的接口转换器(电脑网络转换器接口)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题

内容来源于网络仅供参考
二维码

扫一扫关注我们

版权声明:所有来源标注为小樱知识网www.cnfyy.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。

本文标题:接口转换器(电脑网络转换器接口)

本文地址:https://www.cnfyy.com/shcs/292374.html

相关文章