软件开发|编程技术|编程代码|编程入门先学什么—程序设计语言

基于嵌入式系统的图像数据采集系统设计

1.引言

随着后PC时代的到来和嵌入式的蓬勃发展,运用嵌入式系统实现远程数据采集已成为社会需求的趋势。本文采用嵌入式系统采集图像数据实现加工零件的远程测量,代替传统的人工检测。其特点有:网络化,准确性高,节约人力和物力。

2.系统软硬件平台

由于嵌入式设备资源有限,所以在开发嵌入式系统的软件部分需要在宿主机平台上实现,运用宿主机的资源编译目标机平台上可运行的软件。本文系统的宿主机平台:Redhat 9.0,交叉编译环境:ARM-Linux-Gcc;目标机平台:UBOOT 1.1,Linux 2.4.18 和YAFFS 根文件系统。

系统硬件平台的处理器采用 Samsung 公司的集成有ARM920T 内核的处理器S3C2410,该处理器资源丰富,具有16KB 的指令Cache 和16KB 数据Cache、MMU 虚拟存储器管理器、LCD 控制器、支持NAND Flash 系统引导,RAM 控制器、3 通道UART、4 通道DMA、4通道带PWM 定时器、RTC、并行I/O 口、8 通道10 位ADC、触摸屏接口、IIC 接口、IIS接口、2 个USB 接口控制器、2 通道SPI 及内部PLL 时钟倍频器,主频最高可达203MHz。此外,在处理器丰富资源的基础上还进行了相关的配置和扩展,配置了64MB 的Flash 和64MB 的SDRAM,并引出了两个HOST USB 接口。在USB 接口上外接带USB 口的摄像头Webeye V 2000。嵌入式Linux 操作系统上建立图像采集和图像恢复两个软件模块。开发板拥有CS8900A-CQ3 芯片,具有10“100M 自适应的网络通信能力。通过它实现图像数据的远程传输。整个系统的硬件概图如图1 所示:

图1 系统硬件结构图

3.RGB数据流的采集

Webeye V 2000摄像头内部拥有ov7620、ov511和一个存储芯片。由于Linux操作系统中嵌有ov511芯片的驱动,故在编译Linux操作系统时需要加载ov511驱动,主要步骤:

①选择Multimedia device-》下的Video for linux。加载video4linux模块,提供了编程接口;

②在usb support-》目录下选择support for usb和usb camera ov511 support。加入了对采用ov511接口芯片的USB数字摄像头的驱动支持。

在嵌入式Linux操作系统平台上驱动摄像头,通过Video4Linux接口控制摄像头参数、图片的格式和窗口大小等等。Video4Linux是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数。USB口摄像头驱动程序中需要提供基本的I/O操作接口函数open、read、write、close的实现。对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl的实现等,并把它们定义在struct file_operaTIons中。本系统采用内存映射法,即mmap方式截取图像或视频数据。mmap函数调用使得进程之间通过映射同一个普通文件实现共享内存。该映射内容区可读可写并且不同进程间可共享,不需要任何数据的拷贝。

函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序对设备的控制命令,省略号一般表示类型长度的参数, 也可没有。

4. 图像的恢复

上一节已经介绍了系统采集RGB图像数据流。为了满足用户观看采集的图像数据和相应测试,故需要将RGB流转换成在Linux系统和Windows系统下都可以浏览的BMP格式的图片。BMP格式的图片分为文件描述区和图像存储区两部分。头文件信息中又包含了信息区和调色板区两部分,信息区又可以细分为文件信息区和图像信息区两部分。恢复BMP图片的关键是首先手动生成BMP文件的头文件,然后将采集到的RGB数据流填充到BMP文件的数据区。拍摄的物体为加工好的环行零件,检验其加工是否合格,中心点位置等等。以下将介绍BMP文件的数据结构和头文件,图片恢复如图2所示:

5. 图像的传输和处理

系统采用网络方式读取BMP 文件。远程终端建立FTP 服务器,实现系统和FTP 服务器的连接建立,将BMP 文件放置到服务器上,具体命令:FTP open 服务器的IP 地址Put 命令将bmp 文件放到FTP 服务器上终端可以通过网络获得FTP 服务器上的BMP 文件,终端上安装Matlab7.1 应用程序,运用Matlab7.1 做图像处理,从而得到对加工零件的中值滤波,边缘检测,二值化和中心点的坐标,查看零件合格。具体命令和结果如下:

下面是中心点坐标的提取命令:

6.结束语

本文基于嵌入式平台的实现了图像采集软硬件,RGB 图像数据流向BMP 文件的转换和图像的处理。实验结果证明:网络化检测加工零件准确性高,节约人力和物力。为今后完成机械手定位打下一定基础。

本文作者创新点: 嵌入式Linux平台集成图像采集软硬件,RGB流和BMP转换,远程终端处理零件图像,实现远程检测系统具有微型化,图形化,方便和经济等特点。