Design of image acquisition system for robot navigation application based on fpga

7
- 367 - http://www.sj-ce.org Scientific Journal of Control Engineering December 2013, Volume 3, Issue 6, PP.367-373 Design of Image Acquisition System for Robot Navigation Application Based on FPGA Peng Wang 1 , Jixiang Li 2 , Yuan Zhang 1 , Xin Li 1 1. School of Mechanical and Power Engineering, Harbin University of Science and Technology, Harbin 150080, China 2. College of Automation, Harbin University of Science and Technology, Harbin 150080, China Email: [email protected] Abstract Considering the influence of the environment for the robot to perform tasks, the outdoor robot navigation requirements were analyzed, design scheme of the acquisition module for vision navigation system was determined. In the design, FPGA ping-pong operation method was used. The OV9650 camera module, EP4CE15 main control chip module and auxiliary module (clock unit and a storage unit) were completed with module method, and the software design of the system was completed, including the control module and image acquisition module. Finally, the simulation of data transfer was carried on. Simulation results show that the embedded real-time image acquisition is stable. Keywords: Robot; Image Acquisition; FPGA; Ping-pong Operation 面向机器人导航应用的 FPGA 图像采集系统设计 * 王鹏 1 ,李吉祥 2 ,张元 1 ,李鑫 1 1.哈尔滨理工大学 机械学院,黑龙江 哈尔滨 150080 2. 哈尔滨理工大学 自动化学院,黑龙江 哈尔滨 150080 要:考虑环境对机器人执行既定任务的影响,通过对室外机器人导航需求的分析,确定其视觉导航系统的采集模块 设计方案。在设计中,采用基于 FPGA 的乒乓操作的思想。以模块法的方式完成 OV9650 摄像头模块、EP4CE15 主控芯 片模块及辅助电路模块(时钟单元和存储单元)的硬件电路设计,并完成系统软件设计,包括控制模块和图像信息采集 模块。最后进行了数据传送仿真测试,结果显示可以实现实时的嵌入式图像采集。 关键词: 机器人;图像采集;FPGA;兵乓操作 引言 室外机器人完成工作的现场环境多为非结构性环境。这使得机器人必须满足稳定性的要求,第一,机 大朵采用左右对称结构,避免机器人重心左右偏置;第二,在非平坦结构环境下,机器人机体工作时的稳 定度不能影响到图像采集设备采集到的图像质量;第三,机器人能够按设计要求执行既定任务。对室外机 器人而言,增加其搜索信息的能力主要有两种方式。方式一,增加传统图像采集设备,主要针对的是具有 人工远程控制的机器人而言,增加摄像采集设备,方式二,增加导航系统,主要应用于嵌入式下具有智能 自主控制能力的搜救机器人,通过导航系统采集并处理图像信息,并根据处理后的图像信息作为机器人后 续工作的依据 [1] 。为了更好的完成任务,机器人的图像采集系统应该保证图像信息采集的完整性和采集时间 的持续性。 * 基金项目:国家自然科学基金(51105122),黑龙江省教育厅科学技术研究项目资助(12521097),黑龙江省自然科学基金 F201242),中国博士后科学基金面上项目(2012M520760

description

Peng Wang, Jixiang Li, Yuan Zhang, Xin Li

Transcript of Design of image acquisition system for robot navigation application based on fpga

Page 1: Design of image acquisition system for robot navigation application based on fpga

- 367 -

http://www.sj-ce.org

Scientific Journal of Control Engineering December 2013, Volume 3, Issue 6, PP.367-373

Design of Image Acquisition System for Robot

Navigation Application Based on FPGA Peng Wang

1†, Jixiang Li2, Yuan Zhang

1, Xin Li

1

1. School of Mechanical and Power Engineering, Harbin University of Science and Technology, Harbin 150080, China

2. College of Automation, Harbin University of Science and Technology, Harbin 150080, China

†Email: [email protected]

Abstract

Considering the influence of the environment for the robot to perform tasks, the outdoor robot navigation requirements were

analyzed, design scheme of the acquisition module for vision navigation system was determined. In the design, FPGA ping-pong

operation method was used. The OV9650 camera module, EP4CE15 main control chip module and auxiliary module (clock unit

and a storage unit) were completed with module method, and the software design of the system was completed, including the

control module and image acquisition module. Finally, the simulation of data transfer was carried on. Simulation results show that

the embedded real-time image acquisition is stable.

Keywords: Robot; Image Acquisition; FPGA; Ping-pong Operation

面向机器人导航应用的 FPGA 图像采集系统设计*

王鹏 1,李吉祥 2,张元 1,李鑫 1

1.哈尔滨理工大学 机械学院,黑龙江 哈尔滨 150080

2. 哈尔滨理工大学 自动化学院,黑龙江 哈尔滨 150080

摘 要:考虑环境对机器人执行既定任务的影响,通过对室外机器人导航需求的分析,确定其视觉导航系统的采集模块

设计方案。在设计中,采用基于 FPGA的乒乓操作的思想。以模块法的方式完成 OV9650摄像头模块、EP4CE15 主控芯

片模块及辅助电路模块(时钟单元和存储单元)的硬件电路设计,并完成系统软件设计,包括控制模块和图像信息采集

模块。最后进行了数据传送仿真测试,结果显示可以实现实时的嵌入式图像采集。

关键词: 机器人;图像采集;FPGA;兵乓操作

引言

室外机器人完成工作的现场环境多为非结构性环境。这使得机器人必须满足稳定性的要求,第一,机

大朵采用左右对称结构,避免机器人重心左右偏置;第二,在非平坦结构环境下,机器人机体工作时的稳

定度不能影响到图像采集设备采集到的图像质量;第三,机器人能够按设计要求执行既定任务。对室外机

器人而言,增加其搜索信息的能力主要有两种方式。方式一,增加传统图像采集设备,主要针对的是具有

人工远程控制的机器人而言,增加摄像采集设备,方式二,增加导航系统,主要应用于嵌入式下具有智能

自主控制能力的搜救机器人,通过导航系统采集并处理图像信息,并根据处理后的图像信息作为机器人后

续工作的依据[1]。为了更好的完成任务,机器人的图像采集系统应该保证图像信息采集的完整性和采集时间

的持续性。

* 基金项目:国家自然科学基金(51105122),黑龙江省教育厅科学技术研究项目资助(12521097),黑龙江省自然科学基金

(F201242),中国博士后科学基金面上项目(2012M520760)

Page 2: Design of image acquisition system for robot navigation application based on fpga

- 368 -

http://www.sj-ce.org

FPGA 在实时图像采集上可以充分发挥其优点,利用其丰富的片上资源,采用并行流水线处理的方式,

提高处理效率,提高实时处理的能力[2-4],此外,由于 FPGA 具有现场可编程的操作,使得模块硬件电路的

修改及后续开发更为便捷。本研究所需要的图像处理模块是为室外机器人服务的,主要为实现实时图像采

集功能,因此其注重于图像的处理速度及系统的处理能力,从这两点出发,使用 FPGA 的硬件方案相比于

其他的处理方案,不仅仅是提高了处理速度,同时由于采用 FPGA 芯片取代了计算机,减小了处理模块的

体积、降低了成本,同时在灵活性上得以加强[5-7]。因此,选择 FPGA 硬件电路设计方案作为室外机器人图

像采集设计。

Altera 公司提出的可编程片上系统(SOPC)有效的解决系统后续改造和扩展较困难等其他问题,它由

单个芯片完成整个系统的主要逻辑功能并具备软硬件可编程的功能。目前,在 FPGA 中最优秀的是嵌入软

核处理器 NiosⅡ。NiosⅡ最大优势和特点是模块化的硬件结构,并且具有良好的修改及扩展能力。本系统

以 Quartus II 作为硬件开发平台,以 FPGA 芯片作为控制器,以图像传感器、存储器、视频转换器、TFT

显示接口等作为 FPGA 外设,利用 SOPC 技术实现对 FPGA 及其外设的编程与控制,最终实现对实时图像

的采集。

1 基于 FPGA 的乒乓设计方法

在应用基于 FPGA 的设计思路的前提下,本研究采用何种设计方法用于室外机器人图像采集系统成为

了设计的首要问题。使用串行设计和并行设计方法进行设计,对这两种设计方法而言,串行设计方法在执

行运算任务的时候仅仅只需要一组寄存器和存储器,节省了硬件电路资源,但是其运算速度相比于并行设

计方法而言,在执行相同运算时,运行速度慢。虽然并行设计方法比串行设计方法占用了更多的硬件电路

资源,但是对于本研究而言,主要注重运算处理速度,因此,选择并行设计方法作为本研究的基于 FPGA

的数字系统的设计。在并行设计方法中,有着多种设计操作,相比于其他的设计操作而言,乒乓操作(图

1)的设计思想更为适合本研究。

输入

数据流

选择

单元

MUX

2选1

数据缓冲

模块1

数据缓冲

模块2

输出

数据流

选择

单元

MUX

2选1

数据流运算

处理模块

图 1 乒乓操作示意图

由图 1 不难得出乒乓操作的处理流程:通过选择单元将输入的数据分配成等时的两部分,分别存入缓冲

模块,然后执行缓冲模块。部分 A 的输入数据通过输出数据选择单元输出,与此同时,数据输入选择单元

将再次分好的等时数据送入缓冲模块 1,当部分 A 的数据输出完毕之后,输出模块 2 中部分数据 B 数据开

始通过输出选择单元输出,同时向缓冲模块 2 送入数据。依照此流程持续输出,完成乒乓操作。

2 采集模块硬件设计

2.1 OV9650 模块

OmniVision 公司的 COMS 摄像头 OV9650,具有 130 万像素,可以清晰的采集到图像信息。OV9650 的

Page 3: Design of image acquisition system for robot navigation application based on fpga

- 369 -

http://www.sj-ce.org

数据接口称为 SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的 SIO_C,另

一个是用于传输数据信号的 SIO_D。SCCB 一次要传输 9 位数据,前 8 位为有用数据,而第 9 位数据在写周

期中是不必关心位,在读周期中是 NA 位。SCCB 定义数据传输的基本单元为相(phase),即一个相传输一

个字节数据。SCCB 的传输周期如图 2 所示。

SCCB

3相写传输周期

2相传输周期

2相读传输周期

设备从地址

内存地址

所写数据

设备从地址

内存地址

设备从地址

所写数据

图 2 SCCB 传输周期

当需要写操作时,应用 3 相写传输周期,当需要读操作时,依次应用 2 相写传输周期和 2 相读传输周

期。因此 SCCB 一次只能读或写一个字节。OV9650 具有高像素,且由于其 SCCB 的传输方式与 IIC 传输相

似,故应用 IIC 传输替代它原有的 SCCB 传输,使得传输过程简化,便于硬件实现。

2.2 主控芯片模块

FPGA 的主芯片的选择主要需考虑逻辑单元(LE)个数、存储器容量、通用 PLL 个数及 I/O 端口个数

等几个方面,本研究着重于存储器容量、逻辑单元个数。Altera 公司的 Cyclone IV E 序列芯片 EP4CE15 具

有较大的存储容量及逻辑单元数量。EP4CE15 的接线如图 3 所示。

图 3 EP4CE15 外围接线

Page 4: Design of image acquisition system for robot navigation application based on fpga

- 370 -

http://www.sj-ce.org

2.3 辅助电路模块

2.3.1 时钟单元

本研究所设计的时钟模块,为整个导航系统提供不同的时钟信号,完成不同寄存器的控制。使用 FPGA

上的全局时钟只能提供一个时钟信号,无法实现控制功能,而门控时钟在稳定工作的条件下,无法提供多

种异步时钟信号,因此,本研究引入多时钟系统,通过多级逻辑时钟的设计提供多种异步时钟信号。

在 FPGA 时钟电路设计中,时钟歪斜是最严重的问题之一。所谓的时钟歪斜就是在系统内不同元件处

检测到有效的时钟跳变沿所需的时间差异。减少时钟歪斜的方法主要通过适当时钟缓冲器的使用和 FPGA

内的 PLL模块对输入时钟进行分频和倍频,从而降低时钟歪斜的影响。

本研究所设计的 FPGA 图像采集板是为搜救机器人进行图像导航服务的,因此,其时钟模块主要是对

采集设备提供时钟源。由于模块间时钟信号的不同步,因此使用采集板上具有的 50MHz 有源晶振,其为系

统提供精准的时钟源;同时还留有一个有源晶振的焊位,为系统二次扩展加入其它频率的时钟源提供了便

利,形成多时钟系统,组成时钟模块,其原理图如图 4 所示。

图 4 FPGA的晶振电路

EP4CE15 还提供了四个 PLL,图像采集板需要对 PLL 外围进行相关设计,参考 Cyclone II 的数据手册

中的相关内容,其原理图如图 5 所示。图中 FB1 和 FB2 为铁氧体磁珠,可以有效去除高频干扰,确保搜救

环境图像信息的准确获取。

图 5 FPGA的 PLL 电路

2.3.2 存储单元

Page 5: Design of image acquisition system for robot navigation application based on fpga

- 371 -

http://www.sj-ce.org

存储电路主要由 SDRAM 和 FLASH 组成,可以通过硬件语言对其进行描述的方式使用,但其为构建

Nios II 系统的设计更为常用。存储器电路中包含有片选信号线、地址线、数据线和信号线。的设计中,为

了确保存储器电路的正常工作,这些信号线中用于实现片选功能的信号线不能复用。考虑到 SDRAM 工作

性质的特殊,为保证其受到最小的外界干扰,所以在本研究的存储器模块电路设计中将 SDRAM 的数据地

址线单独使用,不与其他存储器复用,而 FLASH 则复用数据线地址线,使得 SDRAM 得以独立控制。

图 6 FPGA的 SDRAM 电路

3 采集模块软件设计

3.1 系统主模块设计

NiosⅡ工程的建立。在 QuartusⅡ环境下新建图像采集工程(图 7),使用选择合适的控制核心及其外围电

路,与 FPGA 引脚进行绑定,完成 QuartsuⅡ工程的信息配置;最终生成 BDF 文件,NiosⅡ系统配置见图 8。

图 7 QuartusⅡ下的图像采集项目

Page 6: Design of image acquisition system for robot navigation application based on fpga

- 372 -

http://www.sj-ce.org

图 8 NiosⅡ系统配置

图像传感器控制 IP 核设计。NiosⅡ提供了 Avalon 总线,外围器件通过 Avalon 总线与 CPU 沟通,所以

需要一个 Avalon 总线的传感器控制程序,并封装成 IP 核。

3.2 图像信息采集模块设计

图像采集模块由图像传感器配置单元和图像信息提取单元组成。采集到的数据通过 I2C 总线传送给信息

提取子模块,之后再次传送给处理模块。

3.2.1 I2C 图像传感器配置单元

通过 I2C 总线来实现对寄存器的读、写操作。如图 9 所示为 I2C 总线的传送时序。本研究采用 FPGA 控

制作为采集模块的主机,而其相应的寄存器作为从机,主机通过 I2C 来配置从机,从而实现数据的传送。

1 7 8 9 1 8 9 1 8 9

slae

addrR/W ACK B15-B8 ACK B7-B0 ACK

StopStart

SCK

SDA

图 9 I2C 传送时序

3.2.2 图像信息提取子单元

FPGA 向寄存器提供工作所需的主时钟,并通过 VS、HREF 及 PCLE3 个信号的赋值,将寄存器内的数

据输出给主控芯片。采集过程以判断条件 VS 是否为高电平为触发条件,当 VS 为高电平的时,系统赋予地

址主控、程序启动。通过 HREF 电平从低变高的判断,系统开始采集图像并同时将 WE 置为低电平开始提

取信息。当 PCLE 为高电平时,赋予新地址,继续提取信息。

4 图像采集数据的传输仿真

因为在 SOPC Builder 不提供 I2C 内核,因此需要通过主机程序的编写,使得控制芯片的 I/O 端口实现

I2C 通讯功能,如图 10 所示为数据传送仿真波形图。

Page 7: Design of image acquisition system for robot navigation application based on fpga

- 373 -

http://www.sj-ce.org

图 10 数据传送仿真波形图

通过仿真图可知时钟线 SCL 和数据线 SDA 的波形,当 SCL 高电平 SDA 由高电平变成低电平时,数据

开始传送,reg_out 接收到从 reg_in 处传送过来的信息。之后通过 SCL 和 SDA 高低电平变化来控制数据的

传送起始和结束,从而完成主从机的信息传送。可见,整个图像采集数据传输过程是稳定的。

5 结论

采用基于乒乓操作的设计思想,完成了对主控芯片及其配置电路的 FPGA 设计,包括时钟电路和存储

器电路。同时对系统进行了软件设计,完成了采集模块中的数据配置模块和提取模块的软件设计。仿真实

验结果显示,本设计的稳定性满足实时的图像采集。下一步的工作将展开 FPGA 图像处理系统的设计。

REFERENCES

[1] 王鹏, 江文浩, 李鑫. 四足搜救机器人的视觉导航控制系统设计[J]. 仪器仪表学报, 2012, 33(8): 266-269

[2] 吕亮, 吴嗣亮. DSP 十 FPGA实时信号处理系统中 FPGA设计的关键问题[J]. 微型计算机信息, 2005, 21(5): 80-81

[3] 陈炳权, 曾庆立. 基于乒乓操作的计费系统算法及 DSP+FPGA 实现[J]. 襄樊学院学报, 2006, (6): 21-23

[4] 杨海涛, 苏涛, 巫檬. 基于 FPGA 的 SDRAM 控制器的设计和实现[J]. 电子科技, 2007, (2): 35-36

[5] 张传胜. 基于 FPGA/SOPC 架构的面阵 CCD 图像采集系统的设计[J]. 液晶与显示, 2011, 26(5): 636-639

[6] 刘龙申, 沈明霞, 孙玉文, 等. 基于 FPGA的农田图像采集与 3G无线传输系统设计[J]. 农业机械学报, 2011, 42(12): 186-190

[7] 潘明, 陈元枝, 李强. 基于 FPGA 的图像采集系统的设计[J]. 国外电子测量技术, 2012, 31(3): 58-61

【作者简介】

王鹏(1976-),男,汉族,博士后,教授,研究生导师。研究方向为仿生机器人、医疗机器人。

Email: [email protected]