这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 遥控式可存储的图像采集系统的设计与实现

共1条 1/1 1 跳转至

遥控式可存储的图像采集系统的设计与实现

工程师
2019-07-17 14:18:50     打赏

FPGA图像采集系统的基础上,设计了一种遥控式且带存储功能的图像采集系统。设计采用MT9T001作为图像传感器,以FPGA芯片EP2C8Q208和AVR单片机ATmega8L的组合为主,以高速视频数模转换芯片ADV7125和USB接口芯片VNClL-1A为辅助,完成了图像的采集、实时显示、图像以灰度位图格式的存储及对已存图片的重新显示、存储控制、遥控器解码及用遥控器调节图像参数等功能。此设计应用到工业相机领域,操作简单且方便灵活,对130万像素的图像数据实时显示的速度可以达25 f/s,写入存储设备和从存储设备中读出并显示的时间分别可达6s和5s。对图像存储功能的设计与实现进行了详细介绍,并对遥控功能进行了描述。

0 引言
    图像采集技术随着科技的不断进步在全球的应用已越来越广泛,如军用工业、医疗、电子等各领域。在国内,各行各业对采用图像采集技术的工业自动化、智能化需求也广泛出现,逐步开始了工业现场的应用,比如,制药行业的药品检测分装、印刷业的印刷色彩检测、PCB板的表面质量检测、LCD屏的质量检测等。所以,以图像采集功能为核心,开发一款适合工业领域应用且功能齐全、操作方便的图像采集系统会给用户带来很大的实惠。
    目前图像采集方面已有很多且很完善的方案,本文设计选择了利用FPGA进行图像采集的方案,设计了一套图像采集系统。与普通应用于工业方面的图像采集系统不同,本系统添加了存储功能,并对传统的控制操作的方式进行了改进。

1 系统总体设计
    系统总体设计如下:图像通过VGA接口显示器显示,显示速率可达25 f/s;系统可以将在显示器上看到的当前图像以位图的格式存储到优盘或其他USB设备中,并可以对存储的图像进行回显;用遥控器代替了按键的控制方式,可以在几米范围内用遥控器调节曝光、增益、十字线、存图和读图等所有功能,操作灵活方便。系统用美光公司的130万像素MT9T001作为图像传感器;Altera公司的FPGA芯片EP2C8Q208来完成图像采集和显示功能的控制,在实时浏览图像时,它从MT9T001中采集出Bayer阵列的黑白图像数据,然后将采集的数据用插值算法转换成24位RGB数据,由于采集图像的速度为40 MHz,而VGA显示的速度只有25 MHz,所以FPGA将转换完的数据放到SDRAM中缓存一下再送给驱动VGA显示的ADV7125芯片;ADV7125为ADI公司的高速数模转换芯片,将数字真彩色图像数据转换成可以用VGA接口传输的模拟视频信号;用Atmel公司的ATmega 8L芯片来完成遥控器的解码、读写USB设备的控制以及位图格式的创建等;用集成了文件系统的FTDI的VNC1L-1A芯片作为与USB设备通信的接口芯片,单片机加一片接口芯片完成USB的Host功能,省去了对文件系统的处理,节约了软件的开发时间。将这款带存储功能和遥控控制方式的图像采集系统应用到了工业领域,做成产品,作为工业众多工业相机中的一种。图1是其总体设计框图。



2 存储模块设计
    目前存储数据的方式有很多种,如硬盘、FLASH、光盘等,其中容易携带且使用方便的应是移动硬盘、优盘、SD卡,这几种方式都可以通过USB口来传输数据(SD卡或CF等可借助相应的读卡器再通过USB口传输数据),可见USB总线的应用已经很普遍,USB总线的即插即用、速度快、可以自供电等优点也的确是其他设备所不能比的。所以系统的存储部分设计成USB设备,USB设备分为USB主(Host)设备和USB从(Device)设备,USB从设备只能被动地由主设备写入或读出数据,不符合本系统的要求。所以选择了USBHost设备,只要将优盘等USB从设备插到系统的USB口上,就可以将当前要存储的图片存储到U盘等存储设备中。
    USB Host设备的典型例子是PC机,这种Host功能是在操作系统下完成的,所以现在市面上可以移植操作系统的微控制器芯片大多都集成了USB Host功能,像三星和飞利浦的ARM芯片、君正公司开发的MIPS核芯片JZ4740等。这种采用带操作系统的方案对有一定经验的开发人员来说开发起来比较容易,但对生手来说需要一定的熟悉过程。只为了实现USB Host功能就选择用操作系统的方式完成整个系统的控制是没有必要的,这样做不仅浪费资源,而且会增加底层驱动的开发时间。所以本设计选择了比较简单的方式,只用一片单片机和一个USB接口芯片来完成USB Host功能。这样只要会用单片机的开发人员都可以做USBHost设备。市场上USB从设备的接口芯片有飞利浦的PDIUSBDl2和ISPl581等,但USB Host接口芯片则比较少。经试验,最终确定VNClL-1A这款芯片作为USB Host控制器。
2.1 USB Host控制器
    VNClL-1A芯片在FTDI公司Vinculum系列中第一个嵌入了USB主控制器,不仅能处理USB Host接口和数据,还内置了MCU和FLASH,而且也封装了USB Device类。它集成了12~48 MHz的时钟倍频器,支持上电复位功能,嵌入了64 KB FLASH ROM,4 KB SRAM,拥有FTDI提供的标准的USB固件库,支持USB 2.O的全速(12 Mb/s)和低速(1.5 Mb/s)速率。28个GPIO可以做通用I/O和命令监测接口,具有2对USB总线接口,可以用串口或者磁盘方式对其烧写程序。当芯片作为主设备要与优盘等从设备通信时,它可以处理FAT文件系统,支持FATl2,FATl6,FAT32格式,文件命名方式为传统的8.3格式,即文件名不超过8个字符,扩展名为3个字符,如文件名可以为text.txt。在执行具体的操作时只需要向VNClL发送一个简单的命令就能完成像新建文件夹、新建文件、读文件、写文件、打开关闭文件等功能。比如要在优盘中创建一个hello.-txt文件,可以用字符方式向VNClL逐一写入“OPW+空格+hello.txt+回车”的字符,就可以在优盘中看见一个hello.txt的文件,或者用十六进制代码的方式发送“09 20 file OD”,其中file为hello.txt各字符的相应ASCII码值。厂家在网站上提供了免费的目标代码,用户可以根据不同的需求下载不同的目标代码,在本设计中,选择用一个USB口作USBHost功能的VDAPFUL_V3_65.ROM目标代码,并设计成串口方式将目标代码烧录到芯片中。所以用户不用关心VNClL内部程序是怎么执行的,只关心需要它完成USB主设备还是从设备还是其他功能,去找相应的目标代码就可以了,烧录完程序的VNCIL芯片就相当于一颗接口芯片,只要接口连接正确,时序操作正确需要的功能就会正常运行。VNC-lL拥有专门的UART,SPI和并口引脚,所以对它进行控制时可以选用三种接口中的任意一种,如果想看一下操作命令的返回值,可以用串口方式连接到PC机上,在PC机上用串口调试助手向VNClL发送相应的命令后,会看到对应的返回值情况。
2.2 存储过程的实现
    位图图像在计算机中使用很广泛,例如在Windows中,记事本、写字板中的文字就是用位图图像表示出来的。许多以其他格式存储的图像,就是在位图图像的基础上,进行优化处理后得到的,例如JPEG图像等。在数字图像处理中,许多算法就是针对24位真彩色位图或灰度位图设计的。因此,将采集的图像以位图的格式存储便于后期对图像的处理。位图的存储格式分为24位真彩色格式和灰度位图格式,24位真彩色格式比灰度位图格式大2/3,因为灰度图像是用一个字节表示一个像素,而24位真彩色位图是用三个字节表示一个像素,所以本设计用灰度位图格式存储图像。
    当要存储一帧图像时,ATmega8L向VNClL发送新建文件命令,在存储设备中就会新建一个.BMP文件,然后ATmega8L再将位图的14 B的文件头、40 B的信息头、1 024 B的颜色索引表写入.BMP文件的开始部分,写完后ATmega8L给FPGA一个ready信号,FPGA收到此信号后直接将图像数据通过VNC1L送到存储设备的.BMP文件中;FPGA送完一帧图像数据后再给ATmega8L一个结束信号,之后ATmega8L执行关闭当前文件命令,至此一个BMP图存储结束。本设计希望此系统采集的所有图像在存储设备中用单独的文件夹存储,这样每次在新插入存储设备时ATmega8L要先向VNC1L发送一个查询命令,查询当前根目录中是否已存在本系统专用的文件夹,如果没有则新建此文件夹,有则在此文件夹中查询是否已经有.BMP文件,如果没有则新建,并且文件名以数字编号O开始命名,如果有则要查询当前哪个文件名的编号最大,然后以最大编号数加一的方式作为要新建文件的文件名。当要从存储设备中读取一幅图像时,ATmega8L同样要执行查询文件夹和文件是否存在的命令,如果都存在则从文件名编号最大的那张图片开始读取。读取过程与写过程类似,只是用的命令不同,而且读的时候要等VNC1L将位图的1078B的文件信息读完后才能将图像数据传给FPGA。VNC1L与FPGA和ATmega8L用并口的方式进行通信,只需8条数据线和4根信号线即可完成数据传输,接口连接如图2所示。



3 遥控功能设计 
    目前大多数的电子产品采用的控制方式都是开关式按键或触摸的方式,如数码相机、手机等,工业用的设备也是如此。本文所述的控制方式采用了无线的遥控方式,这种遥控方式在电视机领域已应用多年,技术已经很成熟,原理简单,易于实现。由于选用的遥控器适用于36~40 kHz载波频率的红外接收器,所以设计中选用了36 kHz红外接收器,ATmega 8L接收红外接收器的信号,从中解析出遥控器上各个按键的码值,并会转去执行遥控器上相应按键上的功能。遥控器上设计了21个按键,代表了此系统拥有的所有功能,分别为:
    图像存储功能 按下存储键就可以将当前看到的画面存储到存储设备中;
    图像预览即读图功能 将存储在存储设备中的图片重新读出,在显示器上显示,预览图片时可以在当前图片的基础上,上翻或下翻即可循环浏览已存储的所有图片;
    红、绿、蓝增益及曝光值的调节功能 可以对这4个参数进行增大和减小的控制;
    双十字线的控制和调节功能 当想要十字线功能时只要按一下十字线按键就会在当前实时显示的画面上看到两条十字交叉的线,十字线的位置可以根据用户的需要任意移动,当需要双十字线时需要两个控制十字线的按键都按下,使用双十字线可以圈定整幅画面上重点观察的范围;
    图像冻结功能 当冻结键按下时显示器上的整个画面冻结,此时不能进行存图、读图或其他任何操作;
    当前参数值保存功能 此键按下后会对当前的增益、曝光、十字线位置等参数的当前值存储到ATmega8L的E2PROM中,这样在下次启动系统时,系统会将E2PROM保存的各参数值一一读出;
    复位初始参数值功能 如果用户不小心将某一参数值调乱了,可以按下此键来恢复系统最原始的参数值。

4 结语
    本文所述的图像采集系统中存储方案的选择和设计对于数据量稍大又不是很复杂的系统的设计具有借鉴作用,而且将遥控器技术作为系统控制操作的方式,让人耳目一新,此图像采集系统应用于工业领域,操作方便且实惠新颖。




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]