嵌入式机载视频输出接口设计

发布者:dfdiqc最新更新时间:2014-10-21 来源: 21ic关键字:嵌入式Linux  视频编码  视频输出  驱动程序 手机看文章 扫描二维码
随时随地手机看文章
0 引言
    在无人机视频采集系统中,对于视频信号的要求比较高,采集到的模拟视频信号在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.JPG


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.JPG



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所示。

5.JPG


2.2 视频数据的传输
    在该设计中,视频数据经过MX27处理器后转换为RGB输送到LCDC中,通过CH7024输入接口接收数据,数据传输的方式如图4所示。当场同步信号(VSYNC)产生低电平时,说明新的一帧数据需要采集,这时采集到的是有效视频信号;当场同步信号再次产生低电平时,一帧数据采集完成,等待进入下一帧数据的采集。在场同步信号之间有n行数据,现以其中一行数据来分析,只要开始采集和采集完一行数据就会产生行同步信号(HSYNC),当行同步信号产生低电平时,说明要采集的一行为有效数据,在等待中断采集;即当OE为下降沿时,开始采集一行数据;当OE变为上升沿时,一行数据采集完毕。图中给出的LINE[1:n]是说一帧图像有n行,每行有m个像素,也就说一帧图像的大小为n×m。[page]

4.JPG


2.3 寄存器配置
    在完成对CH7024的硬件电路设计后,需要在软件上对相应的寄存器进行配置,在CH7024.C驱动程序中将相应寄存器地址后面的值进行配置,如视频输入格式、输出格式、分辨率大小等。CH7024寄存器的初始化相关程序代码如下:
5.JPG
2.4 驱动程序编译加载
    由于应用环境是在Linux操作系统下,开发板中用的是Linux 2.6.19内核,在内核中并没有CH7024相关的驱动模块,这就需要把编写好的驱动程序加载到内核中,生成需要的模块形式,重新编译内核,下载到开发板上。
    向内核中添加TVOUT CH7024驱动的流程如下:
    (1)选择一个放置驱动代码的位置:drivers/video/mxc/把代码放到这个目录中。
    (2)在drivers/video/mxc/添加Kconfig文件,内容如下:
    6.JPG
8.jpg
    (3)编写makefile,内容为:
    9.jpg
    (4)修改上一级Makefile和Kconfig,即video目录下的Makefile和Kconfig,在Makefile中添加:
    10.jpg
    (5)在arch/arm的Kconfig中添加:
11.jpg
    至此,修改完毕。此时可以使用make menuconfig。出现内核配置的窗口如图5所示。

7.JPG


    选择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位,该设计的编码器也能应用,节省设计成本,缩短开发周期,具有一定的实用性。

关键字:嵌入式Linux  视频编码  视频输出  驱动程序 引用地址:嵌入式机载视频输出接口设计

上一篇:基于RFID 技术的电子密码锁的研究及实现
下一篇:基于CPLD的OMAP-L137与ADS1178数据通信设计

推荐阅读最新更新时间:2024-03-16 13:43

STM32开发笔记84: SX1268驱动程序设计(SPI总线)
单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍SPI总线驱动程序。 一、数据手册 1、关键点: 全双工SPI CPOL=0,CPHA=0 从器件 写操作:地址字节+数据字节 读操作:直接发送地址字节,就可返回一个数据字节 NSS在整个帧传输过程保持低电平 MISO在NSS为高时为高阻态 SCK最大时钟16M 2、几个时序图,t10是指从睡眠状态唤醒,NSS下降沿到SCK上升沿的时间,数据手册表明最短时间为100us。 3、芯片离开sleep模式的方法 可以通过NSS的下降沿使得芯片从sleep模式唤醒。下降沿发生后,芯片内部的稳压器都将打开。芯片
[单片机]
STM32开发笔记84: SX1268<font color='red'>驱动程序</font>设计(SPI总线)
基于嵌入式Linux的B超图像打印的实现
引言 B模式扫描超声诊断仪(简称B超)是一种医学影像设备,其扫描结果是一幅多灰度级(通常有256级以上)的图像。 B超图像作为重要的诊断依据,常需输出其硬拷贝,因此任何B超仪都需配备图像打印输出接口。此类接口形式多样,适合于不同的图像打印设备。 近年来由于普及的需要,小型B超越来越多地出现在市场上。这种设备的特点是体积小,售价低,但是功能比较单一,常用于空间限制或者对成本比较敏感的场合。目前多数小型B超基于8位微处理器,限于其处理器的有限处理能力,只配备标准视频(Video)接口作为其图像输出通道,因此只能使用视频打印机 (Video Printer)作为图像输出设备。这种配置带来若干缺点,首先视频打印机通常价格昂贵而且必须使
[单片机]
基于<font color='red'>嵌入式Linux</font>的B超图像打印的实现
浅析H.265视频编码技术的两大亮点
    关于H.265视频压缩标准,以调整压缩率控制图像质量参数,优化了每个具体区域内图像预测编码技术和PCM编码技术,防止在压缩大图像中包含复杂图像致数据包过大。视频编码技术推陈出新自然要有些亮点,对比之前的改变又有哪些值得关注的地方呢?     首先,图像质量控制参数的预测编码技术允许用一个小的数据来代表详细的图像模式。麻雀虽小五脏俱全,不仅节省了大量的存储空间,便于网络传输,也不会遗漏任何重要的图像元素。     700线摄像机经过H.264编解码后视觉效果     通过预测编码技术来控制图像质量,调整个图像中重要区域的压缩率,并消除数据压缩时要恢复图像质量的冗余数据。现有技术无法实现在用一个极小的模块表示一张元
[安防电子]
STM32开发笔记7: ST-LINK/V2-1驱动程序的安装
单片机型号:ST-LINK 插入ST-LINK/V2-1仿真器后,会提示驱动硬件的安装,除了大容量存储器外,虚拟串口和调试端口都需要安装驱动程序。 这个驱动程序存在于相应的IDE开发环境中,例如Keil软件,我们只需要将驱动程序的路径指定到相应的目录,即可进行正确的安装。 安装后的设备管理器如下图所示。 这样就完成了驱动程序的安装,我使用的开发板是STM32F030R8,与计算机正确连接后,LD1常亮,LD3常亮,LD2闪亮。
[单片机]
STM32开发笔记7: ST-LINK/V2-1<font color='red'>驱动程序</font>的安装
mini2440LED驱动程序开发
/*********************************************************实验源代码 ********************************************************************/ 一、源代码: /***********************mini2440_leds.c*********************** *******************************************************************/ #include linux/miscdevice.h #include
[单片机]
移植嵌入式Linux到ARM处理器S3C2410:设备驱动
设备驱动程序是操作系统内核和机器硬件之间的接口,它为应用程序屏蔽硬件的细节,一般来说,Linux的设备驱动程序需要完成如下功能:   ·设备初始化、释放;   ·提供各类设备服务;   ·负责内核和设备之间的数据交换;   ·检测和处理设备工作过程中出现的错误。   Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、write () 等。   Linux主要将设备分为二类:字符设备和块设备。字符设备是指设备发送和接收数据以
[单片机]
移植<font color='red'>嵌入式Linux</font>到ARM处理器S3C2410:设备驱动
STM32 SST25VF016B驱动程序
///** // ****************************************************************************** // * @file stm32f10x_SST25VF016B.c // * @brief SST25VF10B驱动程序 // ****************************************************************************** // * @ // * 接口定义(STM32 SPI1) // * CE--PA4 SO--PA6 SCK--PA5 SI--PA7 // * // *
[单片机]
嵌入式Linux系统小型化技术
作者Email: zhh@httc.cn 介绍了Linux在嵌入式领域中的应用和宿主机、目标机开发模式,详细地给出了精简内核的实现过程。分析了glibc系统库和ELF文件格式的结构和其中的共享库裁剪技术的原理,提出并实现了一种库裁剪方案。 关键词 嵌入式;Linux;小型化 一、 概述 嵌入式Linux一般是指对标准Linux发行版本进行小型化裁剪处理之后,适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式系统通常是资源受限的系统,无论是处理器计算能力还是RAM或其他存储器容量都比较“小”。因此,如何创建一个小型化的Linux作为操作系统开发成为首先需要考虑的问题。嵌入式Linux系统中普遍采用三层结构
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved