随着信息技术的高速发展,图像采集、处理技术在交通、安防、工业控制等方面变得越来越重要。然而应用环境的复杂化,使得早期的由摄像头采集数据并交由PC进行图像处理的方式已经无法满足需求。嵌入式技术的高速发展使得图像处理方案多元化,DSP芯片由于其强大的浮点运算能力继而担任了嵌入式图像处理的主流载体。在某些危险环境中,由于人们无法对环境进行直接观察,且传统的电脑在这些场合中也受到诸多限制,所以对于基于嵌入式平台的图像前端采集处理方案的需求变得更加迫切[1]。为此,本文提出了一种针对模拟摄像头且集图像采集、处理、传输于一体的方案。
1 方案设计 1.1 总体结构设计为了进行图像处理,必须拥有足够的存储空间来存放图像,由此本文采用BF533作为DSP处理芯片。BF533拥有EBIU(external bus interface unit,外部总线接口)接口,通过该接口可进行外部存储(同步、异步存储)扩展[2, 3]。本设计采用了256 MB SDRAM作为图像临时存储空间,并使用16 MB Flash作为系统程序存放空间,使用SPI Flash方式启动。
由于BF533时钟资源有限,而图像传输时同步信号较多,所以在设计时要尽量减少时钟资源的利用。采用ITU-R BT.656(国际电信联盟定义的数字图像传输协议)格式传输图像可以不用外部行场同步信号,在节省系统资源的同时又避免了高频时钟信号之间的干扰,降低了印刷电路板(PCB)布线的难度。
本文采用的BF533,其外部IO(input/output)管脚资源较少,所以必须对其进行扩展。通常是采用复杂可编程逻辑器件(CPLD)进行外部IO扩展,但考虑到编程的复杂性、资源的有效利用率以及硬件电路所需元件数,本设计利用串行总线(I2C)转通用输入输出(GPIO)口的方式扩展IO口。
由于ADV7180解码芯片、CH7024编码芯片、LCD屏三者与DSP进行数据交互时,都是通过PPI(point to point interface)接口,但是BF533的PPI接口资源较少,有且仅有一个,所以为了实现模拟摄像头的前端解码、图像的本地处理及显示、图像的本地编码远程传输功能,必须要对PPI口进行充分的利用。本设计通过采用锁存缓冲芯片配合扩展IO口对PPI进行复用,设计的系统结构如图 1所示,数据控制模块如图 2所示。
![]() | 图 1 系统结构 Fig. 1 System structure |
![]() | 图 2 数据控制模块 Fig. 2 Data control module |
ADV7180作为一款常用的解码芯片,被广泛地用于视频采集中[4, 5, 6, 7],它能够自动识别输入的基带信号制式(PAL、NTSC、SECAM),并将其转换为ITU-R BT.656标准或YCbCr4:2:2格式的视频数据流。ADV7180内部拥有3个86MHz 10位模数转换器,可以接收CVBS(复合视频广播信号)、YCbCr(色差分量接口信号)、YC(分量视频信号)等格式的视频输入,通过I2C总线对其内部寄存器配置输出视频数据流。本文ADV7180被配置为PAL输入,ITU-R BT.656输出,寄存器配置如表 1所示。
|
|
表 1 寄存器配置 Tab. 1 Register configuration |
CH7024作为一款编码芯片支持8~24位的RGB\YUV4:2:2输入,可输出CVBS或YC分量视频信号[8, 9]。虽然可以接收ITU-R BT.656输入,但仅限于标准的ITU-R BT.656,其对输入图像分辨率及扫描方式有严格要求,具体要求如表 2所示。
|
|
表 2 输入分辨率表 Tab. 2 Input resolution list |
CH7024的优势在于,常规模式输入时,其输入图像的分辨率在一定范围内任意,通过寄存器配置可对图像的尺寸进行调整以达到正常的输出。本文CH7024被配置为输入格式ITU656,输入图像分辨率720×576逐行输入,输出CVBS信号,工作于Slave模式。为此在设计硬件时需要注意以下几点:
(1) 将37管脚P-OUT管脚不接,XCLK接外部像素时钟信号,在CH7024工作时,由PF2管脚控制使能12.5 MHz有源晶振作为像素时钟信号。
(2) 外部晶振频率最好大于像素时钟信号。
(3) HS、VS时钟信号由BF533的TIMER1、TIMER2提供。
(4) 由于只用16位输入,为防止干扰,将D0~D2、D8~D9、D16~D18这8个输入管脚接地。
1.4 YCbCr数据到RGB格式的转换由于从ADV7180得到的图像数据是YCbCr4 : 2 : 2格式,而CH7024的输入数据为RGB565格式,所以必须对图像数据格式进行转换。首先需要将数据转换成YUV4 : 4 : 4格式,然后将其转换成RGB格式,其转换公式如下:

在视频采集前先初始化SDRAM,然后利用模拟I2C对ADV7180进行初始化,成功后进行PCA9557初始化,打开ADV7180连接的缓冲器,配置PPI和DMA为接收ITU-R BT.656数据,打开PPI中断进行图像采集。采集完一帧后进入中断,然后关闭PPI中断,打开MDMA中断,配置MDMA开始内存搬运,完成后进入MDMA中断开始图像处理。处理完后利用I2C进行CH7024配置,设置PCA9557打开LCD及CH7024的缓冲器,打开PPI中断,配置PPI与DMA为输出模式,设置PCA9557,打开有源晶振使能作为CH7024的像素时钟信号,开始传输,传输结束后进行图像采集。如此循环,直至采集图像或者输出图像出现错误,则程序终止。程序框图见图 3。
![]() | 图 3 程序流程图 Fig. 3 Flow chart of the program |
根据方案设计制作出相应的电路板并进行测试。测试过程分四步:
(1) 对BF533最小电路的调试,通过JTAG对时钟进行初始化。由于采用的外部时钟源晶振为25 MHz,在程序中执行语句Set_PLL(16,4),从而实现16倍的倍频和4分频,在CLKOUT管脚测量的时钟频率应该为100 MHz。
(2) 对ADV7180模块进行测试。利用BF533对其初始化,在VDSP软件中的Image viewer窗口中可查看采集到的图像。
(3) 对CH7024模块进行调试。CH7024输出为基带信号,通过BF533对其初始化后,读出一幅图像,利用模拟屏接收CH7024输出的图像并查看是否正确。
(4) 对LCD模块进行调试。通过BF533读出一副图像并进行观察,当所有测试都正常后,进行模块组合,并烧入程序进行测试。测试结果见图 4。
![]() | 图 4 测试结果 Fig. 4 Test result |
通过测试可知,该方案可以在IO口、PPI接口以及时钟资源较少的BF533上实现针对模拟摄像头的前端解码、图像处理、本地显示以及编码,并通过无线模块进行远距离图像传输。采集的图像可在BF533内进行处理,利用LCD屏进行本地显示,同时通过编码芯片转换为基带信号,该信号能通过2.4 GHz的无线模块实现图像的远距离传输。当图像处理不是非常复杂时,该方案实时性较好,且可以适应不同环境,尤其是在某些特殊环境中,其灵活性较传统电脑具有更大的优势。
| [1] | 李琳.如何利用摄像头进行视频采集[J].决策与信息,2014(7):132. |
| [2] | 万琴,莫晓齐,李亚.基于BF533的视觉监控系统设计与实现[J].湖南工程学院学报,2013,23(4):1-4. |
| [3] | 李利军,张佩,张晓曦.基于ADSP-BF533的家庭安全系统设计[J].电子科技,2010,23(3):101-103. |
| [4] | 林海峰.基于FPGA的ITU656信号源的研究与实现[D].北京:北京工业大学,2008. |
| [5] | 严卫健.模拟电视信号数字解码及视频处理研究与设计[D].成都:电子科技大学,2006. |
| [6] | 吴君钦,宋健,刘昊.基于S3C6410和ADV7180的嵌入式视频采集系统设计与实现[J].计算机工程与科学,2012,34(12):115-119. |
| [7] | 廖诤,张攀,颜悦.ADV7180在图像采集嵌入式系统中的应用[J].电视技术,2012,36(S2):231-233. |
| [8] | 薛敏彪,吴广伟,王健,等.嵌入式机载视频输出接口设计[J].现代电子技术,2011,34(2):9-11. |
| [9] | 诸晓锋,吴开华.工件表面质量检测中高速图像采集技术研究[J].光学仪器,2015,37(4):299-302. |
2016, Vol. 38
Issue (3): 205-208





