APP下载

基于FPGA和USB的图像传输平台

2013-10-10杨晓慧

长春工业大学学报 2013年4期
关键词:固件驱动程序图像处理

杨 帆, 杨晓慧*, 黄 勇

(1.长春理工大学 电子信息学院,吉林 长春 130022;2.吉林博安消防设备有限公司,吉林 长春 130000)

0 引 言[1-4]

现如今附带底层图像处理的智能工业相机,其为了方便与PC的连接,大部分采用USB接口进行图像数据传输。文中设计一个基于FPGA和USB的图像传输平台,可以将挂在FPGA外部的SDRAM中的图像数据经过USB总线传到上位机。在数据传输过程中,使用了DMA技术,加速了图像传输的速度,减少了图像传输时对CPU的使用率。

为了验证图像采集的正确性,必须做出一套验证图像采集正确性的平台。最为直观的方法就是让肉眼可以观察到图像。常用的方法有3种:

1)使用VGA显示器显示;

2)使图像输出为视频信号,用监视器显示;

3)将图像传输到上位机显示。

第1种和第2种方法在实时图像采集的时候有很大优势,可以一直显示图像的各种变化。但是需要硬件一直在刷新操作,一旦停止刷新,图像将会立即停止显示。第3种方法难度较大,但可以显示一帧图像,也可以实时显示。当在要求只显示一帧图像的时候,硬件可以在显示完图像后结束刷新,图像依然可以用肉眼观察到,为此,本研究具有很大的研究意义。

1 整体介绍

本平台图像暂存在外挂的SDRAM内部,测试图像为1 024*768的灰度图像。FPGA内部运行NIOS核,所有外设在AVALON总线上统一编址。这样图像存储的地址就已知了,AVALON总线上的任意设备在AVALON总线协议的看管下,均可以对此图像数据进行读取。USB图像传输模块程序为IP核形式的,挂在AVALON总线上,与此模块相连的两个DMA控制器分别为数据的输出和输入通道。DMA控制器的优点是快速且不占用CPU时间。图像传输的过程:首先,等待上位机发送图像传输指令;然后,接到图像传输指令后,对输出DMA通道的参数进行配置;最后,分块将图像写入USB芯片的FIFO中,由USB芯片将图像数据进行打包发往上位机。

2 系统硬件平台

2.1 硬件结构

本系统所采用的FPGA为EP3C16F484C6,该芯片逻辑门丰富引脚众多,可以同时独立外挂两个SDRAM后仍旧拥有多余的引脚。该平台可以完成图像采集、图像处理、双目定位等功能的研究。

系统结构如图1所示。

图1 系统结构图

USB芯片外挂的EEPROM内部存放USB芯片的固件程序,上电后CY7C68013A发起读取信号,将固件程序读到芯片内部RAM中开始运行。

2.2 USB传输模块结构

USB传输采用Cypress公司的CY7C68013A,该芯片内部集成了USB2.0收发器、SIE、增强的8051微控制器和可编程外围接口,主从端点FIFO结构为其它芯片提供了简单和无缝的连接接口。高性能成熟的传输技术使它成为比较热门的USB传输芯片。

FPGA与USB芯片接口示意图如图2所示。

图2 硬件连接示意图

3 系统软件平台

3.1 USB芯片固件程序

Cypress公司提供了一个固件架构,实现了与USB兼容的外围设备所需的基本功能,只要进行少量的功能设置就可以完成通信功能。本平台的USB固件中,USB芯片工作在Slave FIFO接口方式上,将端点EP2配置为四缓冲的Auto-Out模式,将端点EP6配置为四缓冲的Auto-In模式,微控制器不参与数据传输过程。

3.2 FPGA内部程序

PLLTest模块为系统提供多种时钟,SDRAM正常工作时所需要的时钟要有一定的偏移,如果不能提供这样的偏移,则SDRAM无法正常工作。FLASH接口与外挂的EPCS芯片相连,保证程序掉电之后可以保存。

FPGA顶层原理图如图3所示。

图3 FPGA顶层原理图

3.3 NIOS程序

IsFLAGB()子函数为等待上位机发送的数据,紧接着开始发送图像数据,图像数据为1 024*768*8的灰度图像,一次发送512个字节包,所以,发送一阵图像需要发送1 536次。程序如下:

3.4 上位机驱动程序

根据网上的一些资料,本平台使用的驱动是直接在LabView环境下通过NI-VISA自带的驱动向导自动生成USB驱动程序,完全避开了以前开发USB驱动程序的复杂性,大大缩短了开发周期。

一个USB设备与电脑连接以后,会分配一个VID和PID。NI-VISA驱动向导根据这两个值生成驱动程序,运行Driver Wizard根据向导提供的步骤可以非常容易地获取需要的驱动程序。

3.5 LabView显示程序

NI-VISA(Virtual Instrument Software Architecture)是美国国家仪器公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。在LabVIEW 上使用NI-VISA进行USB通信时,使用USB RAW设备,USB RAW设备是指除了明确符合USB TMC规格的仪器之外的任何USB设备,通信时需要进行配置。

LabView测试程序采用NI-VISA接口,可以非常容易地与USB设备连接获得通信。NI-VISA接口通过USB设备的VID和PID的值寻址到待通信的USB设备,然后首先打开USB传输,先发送若干个字节,接着等待下位机发送而来的数据,最后关闭USB传输。接到的数据通过后来的转换形成数组,最后转成图像,显示非常直观[5-8]。

上位机程序如图4所示。

图4 上位机程序

4 结 语

本平台是以后实验的基础,基于本平台可以进行下位机图像处理及图像采集的开发工作,也可以进行双目视觉定位系统的开发工作。后期为了验证此平台方案的实用性,使用DSP控制器同样利用本实验的研究思路,又做了另一款基于DSP和USB的图像传输平台。

[1]余志荣,杨莉.基于 NI-VISA与LabVIEW 的 USB接口应用设计[J].单片机与嵌入式系统应用,2007(1):66-69.

[2]杨乐平,李海涛,赵勇,等.LabVIEW高级程序设计[M ].北京:清华大学出版社,2003.

[3]何维.一种高速数据采集及存储系统的研究[D]:[硕士学位论文].西安:西北工业大学,2007.

[4]王文杰.USB2_0加密接口芯片的设计及其FPGA验证[D]:[硕士学位论文].长沙:中南大学,2008.

[5]赵彦全.基于FX2的数据源设计与USB2_0高速传输探讨[D]:[硕士学位论文].北京:中国科学院电子学研究所,2006.

[6]冈萨雷斯.数字图像处理[M].2版.北京:电子工业出版社,2004.

[7]段雷.基于DSP+FPGA的图像处理电路板硬件设计[D]:[硕士学位论文].成都:西南交通大学,2008.

[8]闫丰,吴川,王延杰.一种基于FPGA的实时图像处理系统[J].长春工业大学学报:自然科学版,2003,24(4):50-52.

猜你喜欢

固件驱动程序图像处理
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
计算机硬件设备驱动程序分析
基于固件的远程身份认证
基于图像处理的定位器坡度计算
提取ROM固件中的APP
一种通过USB接口的可靠固件升级技术
基于MPC8280的CPU单元与内部总线驱动程序设计
多路手机固件升级工具设计