真空泵厂家
免费服务热线

Free service

hotline

010-00000000
真空泵厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于ARM的嵌入式USB图像采集与显示

发布时间:2020-06-30 18:27:01 阅读: 来源:真空泵厂家

引言

本文引用地址:目前市场上大部分的图像采集与处理系统是基于DSP 芯片的,这种图像采集与处理系统成本高、功耗高、体积约束等特点并不适用于一些简单的应用。随着USB 摄像头的普及和基于ARM 的嵌入式芯片的快速发展,将二者结合的便携性越来越受人们欢迎。本文介绍了一种基于三星S3C2440A 芯片的嵌入式USB 摄像头图像采集与显示方案,该方案具有良好的可移植性和扩展性,并且成本、大小和实时处理都能够满足市场需求。

1 系统架构

系统通过当前市场上应用最广泛的中芯微公司生产的zc301p 芯片的USB 摄像头进行图像采集,然后将图像信息传送到ARM 芯片中进行处理,最终通过基于Qt/Embedded 编写的图形显示程序在LCD 上实时显示。系统的整体架构如图1 所示。

2 视频图像采集

系统采用中芯微公司生产的zc301p 芯片的USB 摄像头作为图像采集设备,并介绍了基于Video4Linux 编程协议进行视频图像采集的一般过程。

2.1 USB 摄像头驱动

Linux 内核能够很好地支持OHCI(开放式主机控制接口协议),并且能够很好地支持包括OV511系列摄像头在内的各种各样的USB 设备,但是并不包括zc301pUSB 摄像头。直到后来2.6.27 版本左右的内核中才增加了针对zc301 系列芯片的驱动,统称为Linux UVC.本文采用的是Linux2.6.32.2 版本内核,只需要对内核进行简单的配置,就可以实现功能了。

在配置菜单选项中,设备驱动是最重要的配置项。选择的配置项如下:

Device Drivers - - - >

Multimedia devices - - - >

Video For Linux

Enable Video For Linux API 1(DEPRECAteD)

Video capture adapters - - - >

V4L USB devices - - - >

USB Video Class (UVC)

UVC input events device support

GSPCA based webcams - - - >

ZC3XXX USB CAMEra Driver

USB ZC0301 [P]Image Processor and Control

Chip support

现在,内核被配置成可以支持Video4Linux 的视频接口,并且加入了支持zc301pUSB 摄像头的驱动程序。

2.2 基于Video4Linux 的视频图像采集程序设计

Video4Linux(简称V4L)为目前市场常见的电视捕获卡和并口及USB 口的摄像头提供统一的编程接口。在Linux 内核中它为用户空间提供统一的编程接口,V4L 分为两层:底层是音频和视频设备驱动程序的内核;上层为系统提供一些API 接口信息。视频图像采集流程如图2 所示。

(1)打开视频设备。

在Linux 中视频设备是被作为设备文件来执行的,本文USB 摄像头的设备文件名为/dev/video0.

int my_v4l_open (char*dev,my_v4l_STruct*vd) 函数用于打开视频设备并初始化摄像头设备,该函数调用open 函数可以读设备文件,成功返回设备描述符,失败返回- 1.主要程序代码如下:

int my_v4l_open(char*dev,my_v4l_struct*vd){

if((vd- >fd=open(vd- >videodevice,O_RDWR))= =- 1){

printf(“ERROR opening V4L interface”);

exit(1);}

……} linux操作系统文章专题:linux操作系统详解(linux不再难懂)

辽宁工作服

制作工作服

聊城制作防静电工作服