基于MX27处理器和CH7024芯片实现机载视频输出接口设计

引言
在无人机视频采集系统中,对于视频信号的要求比较高,采集到的模拟视频信号在arm9处理器中经过a/d转换,视频压缩编码后通过无线传输到地面基站,通过视频编码芯片将数字信号转换为模拟信号,输出到显示设备上。由于目前数字视频具有多种格式,然而,普通的视频编码模块的输入接口比较单一,不能很好地兼容多格式的视频输入信号,故输出的模拟信号抗干扰性和传输距离都不是太好。
针对上述问题,本文提出了一种基于freescale的mx27处理器,以linux 2.6.19为内核操作系统的多格式视频输入编码模块设计方案。硬件方面,以ch7024为主芯片进行电路板设计;软件方面,在linux环境下,根据芯片的特点,编写相应的驱动程序和寄存器配置。通过加载驱动程序,将不同格式的数字视频信号转换为cvbs复合视频信号,相比其他的模拟视频输出信号,cvbs复合视频信号将亮度、色度、同步和色彩脉冲信息整合到一根电缆内,具有传输距离远,抗干扰能力强等优点。
1、 设计方案
1. 1 系统硬件结构
硬件连接如图1所示,将mx27中lcd控制器输出的标准数字视频信号(包括像素数据ld[17:0]、像素时钟lsclk,行同步信号lp/hsync、场同步信号plm/vsync,数据使能信号acd/oe)接入ch7024的数字输入接口。此外,将mx27中i2c控制器的spc,spd线直接与ch7024相应的信号线连接。
1.2 视频输出接口设计
由于以前的芯片输入数据只有16位,接口兼容性不好,而选择的ch7024有24位视频数据信号线,可接收不同的数据格式,包括rgb和yc-rcb(如rgb565,rgb666,rgb888,像itu656的ycrcb),可接收24b/18b/15b/12b/8b等多路复用数字输入。为了能在系统运行出现故障时方便地进行复位,设计中添加了人工复位电路,这也是以前芯片所没有的。应用ch7024芯片设计的编码器,具有很好的兼容性和通用性,所以选择用ch7024主芯片进行设计。
ch7024视频编码芯片的输入接口最多能接收到的视频信号位数为24位,输入格式为rgb888。这样rgb每个通道用8 b来表示,但是对于rgb 666和rgb565等格式的视频信号就涉及到每个通道用几位来表示某个颜色的问题。对于rgb666来说,每个通道用6b来表示;对于rgb565来说,r和b每通道用5 b表示,g通道用6 b表示。对于rgb666和rgb565格式的视频信号,在设计中芯片上的24位数据线分配情况如图2所示。通过对相关寄存器的配置,实现对不同格式视频信号的接收,使其具有较好的兼容性。该方案是以mx27处理器为平台进行设计的,mx27输出的视频信号为18位数据,这样mx27处理器发出的rgb666和rgb565格式的视频,都能通过该方案设计的编码器进行编码。
2、 视频编码器软件设计
2.1 i2c总线
i2c总线是一种两线式串行总线,用于连接微控制器及其外围设备。由于接口直接在组件之上,因此i2c总线占用的空间非常小,减少了电路板的空间和器件引脚的数量,降低了互联成本。i2c总线可支持多主机控制,其中任何能够进行发送和接收的设备都可以成为主控端。
i2c总线的串行总线由数据线sda和时钟scl构成,可用于发送和接收数据,并可在cpu与被控ic之间、ic与ic之间进行双向传送。在数据传送过程中共有3种信号,分别是开始信号、结束信号和应答信号。其中,开始信号是在scl为高电平时,sda由高电平向低电平跳变,开始传送数据;结束信号是在scl为低电平时,sda由低电平向高电平跳变,结束传送数据;应答信号是接收数据的ic在接收到8 b数据后,向发送数据的ic发出特定的低电平脉冲,表示己收到数据。cpu向受控单元发出一个信号后,等待受控单元发出一个应答信号,cpu接收到应答信号后,根据实际情况判断是否继续传输信号。若未收到应答信号,则认为受控单元出现故障,如图3所示。
2.2 视频数据的传输
在该设计中,视频数据经过mx27处理器后转换为rgb输送到lcdc中,通过ch7024输入接口接收数据,数据传输的方式如图4所示。当场同步信号(vsync)产生低电平时,说明新的一帧数据需要采集,这时采集到的是有效视频信号;当场同步信号再次产生低电平时,一帧数据采集完成,等待进入下一帧数据的采集。在场同步信号之间有n行数据,现以其中一行数据来分析,只要开始采集和采集完一行数据就会产生行同步信号(hsync),当行同步信号产生低电平时,说明要采集的一行为有效数据,在等待中断采集;即当oe为下降沿时,开始采集一行数据;当oe变为上升沿时,一行数据采集完毕。图中给出的line[1:n]是说一帧图像有n行,每行有m个像素,也就说一帧图像的大小为n×m。
2.3 寄存器配置
在完成对ch7024的硬件电路设计后,需要在软件上对相应的寄存器进行配置,在ch7024.c驱动程序中将相应寄存器地址后面的值进行配置,如视频输入格式、输出格式、分辨率大小等。ch7024寄存器的初始化相关程序代码如下:
2.4 驱动程序编译加载
由于应用环境是在linux操作系统下,开发板中用的是linux 2.6.19内核,在内核中并没有ch7024相关的驱动模块,这就需要把编写好的驱动程序加载到内核中,生成需要的模块形式,重新编译内核,下载到开发板上。
向内核中添加tvout ch7024驱动的流程如下:
至此,修改完毕。此时可以使用make menuconfig。出现内核配置的窗口如图5所示。
选择device drivers→graphics support可以看到,出现了tvout ch7024 driver support→选项,进入选择“m”,即将驱动程序编译成动态加载模块,然后通过“make modules”命令生成了ch7024.ko文件。将ch7024编码器的输入端连接到pc机,输出端连接到监视器上,上电后,将生成的模块文件由超级终端下载到开发板上,在终端中用insmod ch7024.ko加载驱动。ch7024.ko驱动加载时,会通过i2c读ch7024的寄存器信息,并打印它的id号“chip version id(0x22)=0x22”,如果等式右边的值与左边括号里的值不等,则说明i2c有问题,或者没有加载其驱动,tvout则不能正常工作。在i2c正确的情况下,加载相关视频采集驱动程序,通过ccd摄像头采集到的视频就能在监视器上看到。
3、 结果分析
在实验中该方案能够通过摄像头采集视频数据,并能在监视器上实时看到采集的视频图像。由于输入接口设计成了接收不同格式的视频信号,使其能够接收多种格式的视频信号,编码器不用更改硬件,只需要在软件方面做相应的修改就能实现不同格式视频的接收。
4、 结语
通过对视频编码芯片的软硬件设计,使ch7024芯片能够接收多种格式的视频信号,由于cvbs信号传输距离远,抗干扰性强,将不同格式的视频信号转换成cvbs复合视频信号。随着技术的发展,处理器芯片的输出视频数据为24位,该设计的编码器也能应用,节省设计成本,缩短开发周期,具有一定的实用性。


土壤取样器可为采集样品而提供适合的工具
VHDL在通用异步串行接口中的实用设计
工业自动化热门技术之控制系统网络化
或将引发新的骨传导耳机大战:Nank南卡首款入门级骨传导耳机发布,仅售249!
物联网在医疗保健行业解决的七个痛点
基于MX27处理器和CH7024芯片实现机载视频输出接口设计
跑步戴哪款无线耳机好,最好的跑步耳机推荐
Python中参数化测试的实现思路解析
欧瑞博、艾拉物联、绿米三家无主灯方案对比,谁更胜一筹?
什么是工业机器人末端执行器
NVIDIA公司宣布开放NVIDIA Holodeck抢先体验版
研扬BOXER-8640AI –全能AI解决方案
MSO5204数字示波器概述及特点
为什么在新设计中使用 LPWAN 模块?
全数字式微波对射探测器是什么,它都有哪些优势
电动汽车充电桩的组成部分
巴西已允许华为公司继续在该国推进其5G网络建设
集成MEMS微振镜的3D相机,让智能装备看得“清”
Profinet协议转换为CanOpen协议来连接CanOpen伺服驱动器的应用
佳能利用人工智能进行面部识别的“笑脸识别”门禁管理系统