MDIN380 SDI转VGA 转LVDS VGA转SDI 高清视频处理 MDIN380芯片 PCB代码方案资料 3G-SDI转VGA ?3G-SDI转LVDS ?高清视频 MDIN380、GV7601 芯片方案(PCB图和源码)。 此方案是韩国视频处理芯片MDIN380的整合应用方案。 3G-SDI转VGA或3G-SDI转LVDS。 方案共有两块电路板(一块底板,一块MDIN380核心板 四层板)。 MDIN380和GV7601 都是BGA封装,最好有焊接BGA经验才拍。 另外有视频处理方面其它需要可联系我定制开发。 其它视频格式转换,视频图像分割、拼接等可定制开发。 方案资料含有源码、PCB图。 方案已有成熟产品在应用。 注意该资料没有原理图,只有PCB图。 代码环境编译KEIL4。 画图软件Protel99、AD10。 电子文档资料
一、方案概述
本方案基于MDIN380芯片,实现了SDI到VGA、LVDS的高清视频信号转换与处理功能,同时支持VGA到SDI的反向转换。代码采用C语言开发,基于STM32F10x系列微控制器与Stellaris外设驱动库,涵盖了视频信号的输入解析、格式转换、画质优化、输出控制等核心功能,适用于高清视频传输、监控显示、多媒体设备等场景。方案共包含135个相关文件,核心代码分为公共模块、驱动模块两大核心部分,通过模块化设计确保了功能的可扩展性与维护性。
二、核心文件结构与职责划分
(一)公共模块(Common目录)
公共模块包含系统基础配置、接口定义、中断与ROM函数封装,为整个视频处理系统提供底层支撑。
| 文件名 | 核心职责 | 关键功能 |
|---|---|---|
| board.h | 硬件板级配置 | 定义GPIO引脚映射、I2C速率、调试串口选择、板卡版本等硬件相关宏定义;声明MDIN380芯片通道枚举类型 |
| common.h | 公共接口与数据结构 | 整合核心头文件依赖;定义USB传输相关结构体(USBREQSETUP、USBXFERPARAM等);声明系统初始化、中断处理、串口/USB通信等公共函数 |
| interrupt.h | 中断控制器驱动 | 封装NVIC中断控制器API,提供中断使能/禁用、优先级配置、中断挂起/清除等功能 |
| rom.h | ROM函数映射 | 定义Stellaris芯片ROM中各类外设驱动函数指针(ADC、I2C、GPIO、UART等),实现ROM函数的直接调用 |
| rom_map.h | 函数映射适配 | 提供ROM函数与Flash函数的自适应映射宏,优先使用ROM函数以节省Flash空间,提升执行效率 |
(二)驱动模块(Drivers目录)
驱动模块是视频处理的核心,包含MDIN380芯片驱动、I2C通信驱动、SDI信号解析驱动等,实现视频信号的全流程处理。
| 文件名 | 核心职责 | 关键功能 |
|---|---|---|
| mdin3xx.c | MDIN380芯片核心驱动 | 视频信号格式转换、PLL时钟配置、画质优化、帧缓冲管理、去隔行处理等核心功能实现 |
| mdin3xx.h | MDIN380驱动接口定义 | 声明视频处理相关枚举类型、结构体、核心函数原型,为上层应用提供调用接口 |
| Mdin1_I2C.c | I2C通信驱动 | 实现I2C总线的初始化、启动/停止信号、数据读写、ACK/NACK应答等底层通信功能 |
| GV7601.c | SDI信号解析驱动 | 实现GV7601芯片的寄存器读写操作,完成SDI输入信号的接收与解析 |
三、核心功能模块详解
(一)硬件配置与初始化模块
- 板级配置(board.h)
- 引脚映射定义:明确LED指示灯、MDIN380复位引脚、SDI收发复位引脚、按键扫描引脚等GPIO分配,例如LEDR(x)通过GPIOPORTBBASE端口控制PIN6引脚输出,实现红色LED的亮灭控制。
- 通信参数配置:支持I2C速率(100KHz/357KHz)、调试串口(UART0/UART1)的切换,通过宏定义I2CSPEED100K、DEBUGPRTUART1实现灵活配置。
- 板卡版本标识:通过BOARDREV宏定义区分不同硬件版本(旧版本/ver1.0/ver1.1),适配不同硬件设计差异。
- 系统初始化(common.h -> uComOnChipInitial)
- 完成微控制器内核、外设时钟、GPIO、I2C、UART等硬件的初始化配置。
- 初始化MDIN380芯片工作模式,为视频处理做好准备。
(二)视频信号输入处理模块
- SDI信号解析(GV7601.c)
- 提供GV7601Write和GV7601Read函数,通过SPI接口读写GV7601芯片寄存器,实现SDI信号的解码与接收。
- 支持16位数据传输,通过SomeNOP函数实现时序延时,确保数据传输稳定性。
- I2C通信支撑(Mdin1I2C.c)
- 实现I2C总线的底层通信协议,包括MDIN1Start(启动信号)、MDIN1Stop(停止信号)、MDIN1WriteByte(字节写入)、MDIN1ReadByte(字节读取)等核心函数。
- 支持多字节数据的连续读写(MDIN1I2CWrite/MDIN1I2C_Read),为MDIN380芯片寄存器配置、EDID数据读写等提供通信支撑。
(三)视频核心处理模块(mdin3xx.c/h)
作为方案核心,该模块实现视频信号的格式转换、画质优化、时钟同步等关键功能,主要包含以下子模块:
- 时钟配置(PLL配置)
- 视频PLL配置:通过MDIN3xxSetVideoPLL函数设置PLL预分频器(P)、后分频器(M)、后缩放器(S)参数,生成稳定的视频输出时钟,适配不同分辨率需求。
- 内存PLL配置:通过MDIN3xxSetMemoryPLL函数配置DDR内存时钟,确保帧缓冲数据读写的时序稳定性。
- 视频格式转换
- 输入格式配置:MDIN3xxSetSrcVideoPort函数根据输入信号类型(RGB444、YUV422、MUX656等)配置MDIN380输入端口模式,支持SD(720x480i/576i)、HD(1280x720p、1920x1080i/p)等多种分辨率。
- 输出格式配置:MDIN3xxSetOutVideoFrmt函数配置输出信号格式(VGA/LVDS/SDI),支持RGB/YUV色彩空间转换、10bit/8bit精度调整。
- 格式转换核心:通过MDIN3xxSetSrcVideoCSC和MDIN3xxSetOutVideoCSC函数实现颜色空间转换(CSC),支持标准范围(StdRange)与全范围(FullRange)的色彩映射,同时可调整亮度、对比度、饱和度、色调等画质参数。
- 去隔行与画质优化
- 去隔行处理:MDIN3xxSetDeinterCtrl函数支持自适应去隔行、帧内插值、帧间插值等多种模式,针对隔行扫描信号(如1920x1080i)进行优化,提升画面清晰度。
- 噪声抑制:集成前端噪声滤波(MDIN3xxSetFrontNRFilterCoef)、块噪声滤波(MDIN3xxSetBlockNRFilterCoef)等功能,降低信号噪声干扰。
- 锐化处理:通过MDIN3xxSetPeakingFilterCoef函数配置锐化滤波器系数,提升画面细节表现力。
- 帧缓冲管理
- 内存映射配置:MDIN3xxSetMemoryMap函数定义帧缓冲的内存地址、行字节数、帧行数等参数,支持256MB/128MB DDR内存适配。
- 帧缓冲分配:MDIN3xxSetFrameBuffer函数根据输入输出分辨率、处理模式(如降噪、去隔行)分配主视频帧、辅助视频帧、噪声帧等缓冲空间,确保数据处理的实时性。
- 同步信号控制
- 输出同步配置:MDIN3xxSetOutVideoSYNC函数配置水平/垂直同步信号的时序参数(同步起始位置、同步宽度、总周期等),确保输出信号与显示设备同步。
- 同步复位:MDIN3xxResetOutSync函数复位输出同步信号,解决信号切换时的同步异常问题。
(四)通信与控制模块
- 串口通信(common.h)
- 提供SerialRxHandler(串口接收处理)、SerialTxHandler(串口发送处理)、SerialCommandParse(串口命令解析)等函数,支持通过串口接收上位机命令,配置视频处理参数。
- 支持调试信息输出(XRCDebugMsgHandler),便于开发调试。
- USB通信(common.h)
- 定义USB传输相关结构体(USBXFERPARAM),支持批量传输(BULK)、DMA传输等模式。
- 提供UsbEP0MessageClassify、UsbEP0MessageExecution等函数,处理USB控制端点的命令请求,实现PC端对视频处理参数的配置与数据交互。
(五)中断管理模块(interrupt.h)
- 中断使能/禁用:
IntMasterEnable/IntMasterDisable控制全局中断开关,IntEnable/IntDisable控制特定中断源。 - 中断优先级配置:
IntPrioritySet函数设置中断优先级,确保核心中断(如视频同步中断)优先响应。 - 中断挂起/清除:
IntPendSet/IntPendClear函数管理中断挂起状态,避免中断丢失或重复响应。
四、关键技术特性
- 多格式适配:支持SDI、VGA、LVDS等多种视频接口的输入输出,兼容SD/HD全分辨率范围(640x480p~1920x1200p)。
- 高性能画质优化:集成去隔行、噪声抑制、锐化、色彩校准等多重画质优化算法,确保转换后视频清晰稳定。
- 灵活的通信控制:支持I2C、UART、USB多种通信方式,便于设备集成与参数配置。
- 模块化设计:核心功能按模块划分,代码复用性高,便于后续功能扩展(如新增HDMI输出、多通道切换等)。
- 硬件兼容性强:适配STM32F10x系列微控制器与Stellaris芯片,支持不同板卡版本的灵活适配。
五、适用场景与扩展方向
(一)适用场景
- 高清视频传输设备:SDI摄像头与VGA/LVDS显示器的信号转换。
- 监控系统:监控摄像头SDI信号转VGA显示,或VGA信号转SDI远距离传输。
- 多媒体终端:投影仪、高清电视等设备的视频接口适配。
(二)扩展方向
- 新增HDMI接口支持:扩展HDMI输入输出驱动,实现多接口全兼容。
- 智能画质调整:增加自动曝光、白平衡调整等智能算法,提升复杂场景适应性。
- 多通道切换:扩展多路SDI输入选择功能,支持通道轮巡显示。
- 网络远程控制:增加以太网通信模块,实现远程参数配置与状态监控。
六、注意事项
- 代码中涉及的GPIO引脚、I2C速率、串口波特率等参数需根据实际硬件设计调整。
- MDIN380芯片的寄存器配置需严格遵循数据手册,避免因时序错误导致视频处理异常。
- 帧缓冲的内存分配需根据输入输出分辨率合理配置,确保内存空间充足,避免数据溢出。
- 中断优先级配置需合理规划,核心中断(如视频同步中断)应配置较高优先级,确保实时响应。
本方案通过完善的硬件适配、高性能的视频处理算法、灵活的通信控制,为高清视频信号转换提供了稳定可靠的解决方案,可广泛应用于各类视频传输与显示设备中。