Profile - CN585


CN585

苛刻环境下无人探测机器人设计实现

首都师范大学
信息工程学院






Advisor

Name: 李志平

Members

No. Name English Name
1 揭艺 Jie Yi
2 姚叶鹏 Yao Yepeng
3 王丽 Wang Li

Project Paper

1. 设计概述 (Preliminary Paper)

1.       研究背景

在矿井安全监测、野外无人区监测、森林防火和病虫害监测、环境污染监测、泥石流与山体滑坡等自然灾害的监测中,由于监测环境中可能存在有甲烷、一氧化碳等易燃易爆性气体(如煤矿井下监测系统、化工厂监测系统),野外湿度大,灰尘多,且大多监测场所分散,距离较远,在此情况下,使用计算机和数据采集卡来实现监测任务是相当危险和不可靠的,而且布控也难以实现,因此,研究苛刻环境中的监测平台意义重大。

脱机工作的嵌入式监测系统是一种能够独立于PC 机而工作的监测系统,它的软件、硬件自成体系。这种类型的控制系统已经成为目前研究的重点。其主要优点包括:

(1)脱机控制系统不依赖于计算机,自成一体,依靠这种体系结构可以设计出精巧、便携的系统;

(2)防水、防尘、防爆性能容易实现;

(3)系统功耗小,在无法或很难供电的监测现场,可以使用电池进行长时间供电;

(4)系统的稳定性好;

(5)可以设计出实时性好的高速处理系统。

其亟需解决的主要问题是:

(1)如何将监测平台设计成能够独立工作的脱机监测系统;

(2)选择满足安全工作需要的、便于在野外露天或其它环境恶劣的监测现场进行维护的远程通信方法;

(3)建立一套适合于远程监测系统需要的视频图像处理理论体系,包括图像的压缩处理、图像的模式识别处理等;

(4)如何将工业监测系统中的先进技术应用于苛刻环境现场的监测,提高监测系统的处理能力、提高其智能化程度、扩大监测系统

Wireless Multimedia Sensor Networks(多媒体无线传感器网络)Wireless Sensor Networks(无线传感器网络)的高级形式,其传感器节点由照相机、移动电话等具备多媒体信息采集功能的设备组成。它所具备的对数据、图像、音频、视频等多媒体信息的感知、采集、处理和传输能力,可满足多媒体监察传感器网络,广域交通堵塞规避系统,专业健康护理信息采集以及工业进程监控等各方面需求,应用前景十分广泛。近年来CMOS照相机、移动电话等廉价设备的高速发展极大的促进了WMSN技术的发展,科研工作者对其硬件设备,算法实现及传输协议等问题进行了深入细致的探究,逐步对其结构特征与优势缺点形成了系统的认识。这一网络架构为脱机工作的嵌入式监测系统所面临的主要问题提供了一个可行的解决方案。

2.       设计目的

本设计从WMSN架构思想出发,使用Altera公司提供的SOPC Builder开发工具和NiosII软核以及DE1开发平台,构建以苛刻环境下无人探测机器人PC机组成的最小化WMSN结构。该机器人不但可以作为特例化的WMSN节点,进行数据的采集压缩、初步处理、转发,还可以通过上位机系统的人机交互程序远程控制机器人运动,完成避障、寻物等功能。

3.       作品介绍

本作品使用DE1开发版为核心平台,配合CMOS摄像头,扩展电路,无线路由及运动载体等实现了视频数据采集压缩、远程运动控制及远程数据传输功能。系统结构如图所示:

图1.1 系统层次结构图

完成作品外观如图:

图片1.2 作品成果图 

4.       应用领域

(1)       地震、洪涝灾区特种监测、搜寻任务

(2)       矿井安全监测

(3)       森林防火和病虫害监测

(4)       泥石流与山体滑坡等自然灾害监测

(5)       多媒体监察传感器网络

(6)       工业进程监控

(7)       军用监测监控

5.       开发平台

(1)       硬件平台:     使用DE1 Development and Education Board,包含Altera Cylcone II EP2C20F484C7 FPGA带有20000Les8MbyteSDRAM4Mbyte闪存、内建 Altera USB Blaster 电路、240-pin扩充接头等。

图片1.3 DE1 Development and Education Board  

(2)       软件平台:     本作品使用了Altera公司的QuartusII 7.2软件、SOPC BuilderNiosII IDE等软件进行FPGA内硬件逻辑和嵌入式系统软件的开发。

(Revision: 5 / 2008-06-15 23:26:18)

2. 功能描述 (Final Project Paper)

1.  总体功能综述

苛刻环境下无人探测机器人的研究旨在实现基于WMSN架构的机器人平台,使其具有高度灵活、稳定的运动控制系统接口,并且具有无线网络传输的功能,可将CMOS摄影镜头采集的图像通过无线网络向上位机传输,并可接受上位机的无线控制信号,实现远程运动控制功能。

2.  层级模块划分

本设计硬件资源主要由DE2-7.0实验平台(DE1开发平台于9月后收到,来不及重新制作包括网络控制芯片的扩展板)CMOS摄影头,外部扩展电路板,无线网络路由和运动载体构成。系统结构层次划分如下:

软件层:包括运动控制程序、网络传输程序、图像数据采集(Image Data三个部分。并由硬件描述层接口(HAL),中断服务程序及主程序等内容构成。

SOPC层:包括运动控制模块、CMOS接口模块、网络传输模块的设计及SOPC系统的配置。

底层硬件构成:包括运动控制电路与车体构成、红外传感器电路、电池电源电路(DE2-7.0实验平台、无线路由及运动载体供电)

3.  模块功能

运动控制功能:

运动功能模块应具有良好的接口,协同远程控制系统完成精确、稳定、高效的运动控制功能。

图象采集功能:

嵌入式系统应可使用CMOS Camera Device进行图像数据采集,为此必须实现可靠的NiosII外设IP核接口模块。为便于网络模块传输,需将图像数据进行灰度预处理,降低数据传输量。

网络传输功能:

嵌入式系统应可将采集到的图像数据按一定速率向无线网络发送封包,在上位机系统中编写程序接收封包并完成图像显示功能;并可接收上位机发送的运动控制包,完成远程控制功能。此功能可先使用100MEthernet进行验证,然后使用无线路由设备连接无线网完成无线传输功能。

4.  系统实现方法

SOPC各层级模块设计依模块性质选择使用VerilogVHDL语言进行设计,分别通过功能仿真后使用原理图设计统一为具有独立功能的模块,进行模块级功能仿真。之后集成Avalon总线接口规范设计为SOPC自定义外设,并加入以NiosII软核为核心的嵌入式系统,通过SignalTapII仿真进行功能验证。

其中JPEG压缩模块首先使用MatLab进行算法数学验证,之后分别使用Simulink的标准库与DSPBuilder库进行数学、工程建模;最后自动生成VHDL文件完成设计。

上位机软件程序使用Java语言实现,与嵌入式系统通过基于UDP网络协议的应用层协议进行交互。底层硬件使用实验平台的40Pin扩展槽连接外部扩展电路板,在其上实现运动控制电路、红外传感器电路及电池电源电路,并通过其与运动载体及电池设备连接。

 

(Revision: 5 / 2008-09-14 02:19:59)

3. 性能参数 (Final Project Paper)

1. 视频采集参数

采集视频格式:               Gray格式

采集视频分辨率:           640*512像素

数据采集量:                    640*512*Bbit/Frame

数据采集速率:               10Frame/s

2. 无线传输参数

传输数据量:                    640*512*8Bit/Frame

无线传输速率:               <0.6s/Frame

3. FPGA资源使用情况

 

4. DE2开发板资源使用情况

FPGA                                Altera Cyclone II 2C70 FPGA

动态存储器:                   32MB SDRAM

静态存储器:                   2MB SSRAM

闪存:                                 8MB FLASH

50Mhz27Mhz晶振

开关、按键、LED

以太网控制器

40Pin扩展槽*2

(Draft / 2008-09-14 10:15:52)

4. 设计结构 (Preliminary Paper)

1.系统概述

核心DE1开发平台通过一块扩展硬件PCB电路板与无线路由设备、运动载体及电池电源相连接。扩展PCB电路板由电源电路、传感器电路、电机驱动电路及扩展网卡电路组成,其上包括DM9000A网卡及反射型红外距离传感器设备。无线路由设备通过扩展网卡与DE1开发平台相连,为其提供远程无线传输链路,与上位机系统共同协作完成远程运动控制及远程数据传输功能。运动载体由FPGA芯片提供逻辑控制扩展板电机驱动电路控制。CMOS摄像头完成数据采集功能,通过自制NiosII外设IP进行数据采集、图像压缩,并将压缩完毕的JPEG图片数据通过无线网络向上位机传输,在上位机整合为MPEG视频。

图4.1 系统综述图

2.SOPC系统结构 

SOPC系统以NiosII CPU为核心,通过Avalon总线与各种常规外部设备相连接(包括存储设备、内部时钟、JTAG UART及多个DMA 控制器)。同时与Avalon总线上的多个自制复杂IP连接。载体接口IP即运动控制模块通过寄存器组生成运动控制逻辑,控制运动载体运动行为。摄像接口即图像数据采集模块将CMOS摄像头采集的图像进行处理,压缩为JPEG图片格式通过DMA控制器协调存入SDRAM存储器。其他DMA控制器与网络接口共同进行网络数据的接受、发送任务。本设计中个外设均采用中断机制运作。

图4.2 SOPC系统结构图 

3.软件系统结构

软件系统由嵌入式系统程序与上位机程序共同构成。嵌入式系统程序包括运动控制API,图像采集中断服务,图像网络传输程序及网络收包中断程序等构成。上位机程序使用Java语言编写,以面向对象方式开发,完成接受图像并显示及远程控制功能。

 

图4.3 嵌入式软件系统结构

(Revision: 15 / 2008-06-16 00:03:39)

5. 设计方法 (Final Project Paper)

1. SOPC系统设计

SOPC Builder是作为Altera NiosII嵌入式处理器软件开发包,实现NiosII系统的配置、生成及软件调试平台的建立。SOPC Builder系统开发工具允许嵌入式系统设计者在很短的时间内创建高度定制的可编程片上系统(SOPC)。用户使用SOPCBuilder可以将IP核、存储器、接口和微处理器等复杂系统组件简单又快速地集成到Altera高密度FPGA中,从而缩短设计周期。

SOPC Builder还可通过自动生成和目标硬件匹配的软件节省设计者的时间,自定义的软件开发套件包括头文件、自定义外围设备程序和设计特有的操作系统内核。SOPC Builde 配置界面如下图9所示:

本系统的Nios II 系统结构如下图所示:

2. SOPC自定义外设设计

(1) 运动控制模块

实现方案

该模块使用多寄存器协同控制PWM信号生成,具有稳定、高效、层次分明的特点,为运动控制程序的编写提供了更为规范,有效的接口。

结构构成

该模块主要由Avalon总线接口与寄存器组、运动控制信号生成两个模块构成。其中Avalon总线接口与寄存器组由一个Avalon-MM从端口MCM与八个8bit寄存器组成(包括两个保留寄存器)。六个有效寄存器分别为:

1)   中断寄存器(Interrupt_Register)

用于产生、清零中断信号,报告红外避障模块状态及红外传感器触发信息。

每次红外避障行为触发两次红外避障中断信号。在中断信号产生后,触发软件中断服务,读取中断寄存器值。由Int_startInt_end位可判断红外避障状态;由Int_frontInt_backInt_leftInt_right判断触发红外避障功能的障碍物所在方向。

位号

位名称

描述

0

   Int_state

   生成、清零INT信号标志

1

   Int_start

   避障功能起始中断

2

   Int_end

   避障功能结束中断

3

   Int_mask

   软件控制INT掩码标志

4

   Int_front

   前端红外传感触障标志

5

   Int_back

   后端红外传感触障标志

6

   Int_left

   左端红外传感触障标志

7

   Int_right

   右端红外传感触障标志

3.中断寄存器信号定义

2)   控制寄存器(Control_Register)

用于控制运动模块使能,红外避障模块使能,左右轮方向。

位号

位名称

描述

0

   Ctrl_en

   运动模块使能信号

1

   Ctrl_left_P

   左轮正转控制信号

2

   Ctrl_left_N

   左轮反转控制信号

3

   Ctrl_right_P

   右轮正转控制信号

4

   Ctrl_right_N

   右轮反转控制信号

5

   Ctrl_infrared_en

   红外避障功能使能信号

6

   Ctrl_reserved1

   保留控制信号1

7

   Ctrl_reserved2

   保留控制信号2

4.控制寄存器信号定义

3)   左轮速度寄存器(Left_Speed_Register)

用于存储8bit左轮PWM生成阈值,以控制左轮速度。

4)   右轮速度寄存器(Right_Speed_Register)

用于存储8bit右轮PWM生成阈值,以控制右轮速度。

5)   红外避障速度寄存器(Interrupt_Register)

在红外传感器探测到障碍物后,作为左右轮PWM生成阈值,进行转向行为。

6)   红外避障功能时长寄存器(Interrupt_Register)

在红外传感器探测到障碍物后,控制红外避障模块作用时间,结合避障速度寄存器可控制避障转向角度。

运动控制信号生成模块由两个双路选择(MUX)、两个PWM信号生成器(PWM Signal Generator)、红外避障信号生成模块(Obstacle Avoidence Signal Generator)及方向控制模块组成。

自定义外设生成

为实现符合Avalon总线规范的SOPC接口IP核,需在接口模块内定义符合Avalon总线规则的信号。本模块需一个支持无延迟读写操作的Avalon-MM从端口。

编写IP核模块后,使用SOPC Buildercreate new component将模块加入为NiosII外设。

最终信号定义如图:

(2) 图象采集模块

实现方案

经分析,该模块从CMOS图像传感器接受图像数据,经预处理之后通过异步FIFO缓冲,后通过Avalon总线配合DMA Controller IP核存入SDRAM存储器。

异步FIFO将传感器数据流与系统数据流分流,当FIFO内数据达到一定深度后,通过中断信号产生逻辑生成中断信号,通过中断寄存器与Avalon从端口ToCore交互,向高层系统申请中断服务。中断服务触发DMA Controller驱动Avalon从端口ToDMASDRAM直接形成数据通路,并使用突发传输进行256byte的块传输。

结构构成

1)   CMOS Image Sensor模块:

   提供CIS工作所需要的主时钟,并通过FVALLVALPCLK三个同步信号,正确抓取CIS送回FPGA的数据流,为下一级处理准备数据。

2)   I2C Sensor Configuration模块:

   内部包含一个I2C总线控制器以及一个对应于CIS内部寄存器地址的查找表,通过I2C总线提供开机或者按键设定完整的CIS配置,也可通过上层软件调整增益、曝光时间以及CIS输出格式。

3)   Bayer Color Pattern Data to 30bit RGB模块:

   使用行缓冲+流水线的处理方式,将前一级得到的数据适时转换成标准的30bitRGB数据,以便后面的图像处理与存储。

4)   Mirror Data模块:

   设想头采集到的数据是从右到左扫描,因此对前一级图像数据进行镜像操作,并进行适当数据下采样,将1280×1024的数据采样为640×512数据,以方便后面数据压缩、传输和显示。

5)   Asynchronism FIFO模块:

   使用异步FIFO将前一级流入数据缓冲,当队列存储数据达到256深度后将中断触发信号使能,该信号与中断寄存器中掩码信号进行与逻辑深沉中断信号。

6)   寄存器组及Avalon总线接口:

   用于实现SOPC接口。

自定义外设生成

为实现符合Avalon总线规范的SOPC接口IP核,需在接口模块内定义符合Avalon总线规法的信号。本模块需两个Avalon Slave Port,其中用于与DMA Controller交互的ToDMA接口必须能够支持突发块传输,因此还需加入Avalon总线规范定义的readdatavalid类型信号。与NiosII CPU交互的ToCore接口需要irq类型信号以支持中断功能。两个接口使用公共的总线clk/rst信号。

编写IP核模块后,使用SOPC Buildercreate new component将模块加入为NiosII外设。

最终信号定义如图:

3. 扩展电路板设计制作及硬件系统集成

(1) 扩展电路板设计

为提高扩展电路灵活性,本项目采用了多种供电模式设计,包括单路12V电池电源供电;双路12V电池直接共地供电;以及双路12V电池使用光电耦合器件共地供电。最终实现扩展电路可通过两个插针设置供电模式,为DE2-7.0实验平台,无线路由设备及运动载体供电。采用这种设计的原因是驱动大功率电机的强大电流可能会造成数字电路逻辑错误,甚至损害设备。而为降低成本,尽量使用单路电池供电,并不使用光电耦合器件。

本设计采用轮式移动方式。并采用异步差速控制的直流电机组进行,它具有响应速度快,起动转矩较大等优点。驱动电路采用LMD18200直流电机驱动芯片,其内部集成有续流二极管,并有一个电流检测反馈输出,过热时能自动关断。LMD18200有一个方向引脚输入和一个PWM(脉宽调制)信号输入引脚,制动引脚输入支持再生制动。当PWM信号频率高于1KHz时,引脚1和引脚2之间,以及引脚10和引脚11之间需要各加一个0.1微法的电容。典型应用电路如图:

             

电机驱动电路部分由左、右两组电机驱动构成。每组电路中的核心驱动芯片LMD18200使用12V电源供电,按照典型电路使用电阻、电容进行处理,生成驱动逻辑直接连接直流电机。驱动芯片分别使用break(刹车控制)dir(方向控制)PWM(脉冲速率控制)三位控制信号,配合上层软件进行异步差速运动控制。

设计单面PCB电路板如下:

 

最终实现扩展电路板如图:

 

 (2) 硬件系统集成  

     

     

                

将设备连接如图:

 

4. 嵌入式系统软件设计

本系统设计主要包括以下模块:运动控制模块,图像数据采集模块,扩展接口电路设计。

(1) 运动控制API

运动控制API提供一组规范的运动控制接口函数,用于操作运动控制模块模块的寄存器组,完成高效、灵活、稳定的运动控制功能。

(2)   中断初始化程序

该部分程序将各中断服务加入系统中断服务程序列表中。包括网络中断收包服务,图像采集中断服务以及DMA控制器中断服务等。

(3)   设备初始化程序

主要是对网卡控制器进行初始化,并设置初始运动控制信号。

(4)   图像采集中断服务程序

实时图像采集功能对系统的响应速度与传输速率提出了严苛的要求。软件系统必须及时对硬件中断响应,将异步队列中的数据存入存储设备当中,完成图像数据的采集。

(5)   网络收包中断服务程序

该部分程序响应网络接口中断,接受网络UDP数据报并进行各层拆包,读取有效的控制指令,调用运动控制API完成远程控制功能。

(Revision: 6 / 2008-09-14 04:30:33)

6. 设计特点 (Preliminary Paper)

1.  作品构思:    本设计在传统苛刻环境监测现场(如煤矿井下、野外露天等)可达到理想的监测效果,同时可作为应急系统设备,在防震救灾,抗洪抢险等紧急突发事件中完成特种任务,如利用震灾后建筑物废墟间空隙,钻入救灾人员无法进入的建筑物废墟内部搜寻受困人员。基于WMSN(Wireless Multimedia Sensor Networks,即多媒体无线传感器网络)架构的特性使得本设计在非苛刻环境监测现场也可实现固定监测点所无法实现的特殊监测功能,因此亦可在多媒体监察传感器网络,广域交通堵塞规避系统,专业健康护理信息采集以及工业进程监控等各方面获得广泛应用。

2.  作品功能:    多媒体传感器节点构想、视频数据采集及处理、远程运动控制与大批量数据远程传输的实现使本设计在同类产品中同时具有概念创新、技术优势及商业竞争力。而NIOS II系统灵活、高效的特点也赋予其进一步优化、强化的潜力,对其功能的完善、扩展工作易于实施。如针对煤矿井下监测环境,易于扩展出气体含量检测装置(COCH4含量检测),完成特殊监测环境下的特殊功能要求。

3.  硬件设计:    采用多级结构将硬件结构进行分层,并分别设计出低耦合高内聚的硬件模块。其高度独立性使得各功能模块可依据不同的任务需求进行高效、易行的重构。如单独对运动控制模块中的运动行为解释模块进行重构,可将设计加载于不同的运动载体上(如船模载体、氦气球模型载体等)

4.  自制复杂IP         NiosII核心通过Avalon总线结构与众多标准外设及多个自行研发的复杂IP相连接。这些复杂IP依功能需求进行设计,将高性能数据运算功能集中在硬件部分实现。如实现的JPEG压缩模块,大幅度降低了数据采集及网络传输功能中的数据量,使系统达到实时性能要求。

5.  DMA与中断:设计中大量使用中断机制与DMA传输提高系统效率。尤其是多通道DMA突发传输的使用,极大地提高了系统数据采集、网络传输的带宽,使系统达到实时性能要求。

6.  硬件扩展:    使用DE140pin扩充接头连接简单、低成本的扩展硬件PCB板,提供运动载体驱动电路、传感器电路、扩展网卡电路以及电源电路。扩展网卡部分使用低成本的DM9000A网卡,连接无线路由设备实现远程网络传输功能。

7.  操作系统:    嵌入式操作系统μC/OS-IILWIP协议栈在Nios II IDE中对μC/OS-IILWIP协议栈的使用是十分方便的,不同于ARM等硬核处理器在使用μC/OS-II操作系统的繁琐,直接将μC/OS-IILWIP协议栈集成到了Nios II IDE开发环境中,这样一来配置操作系统等工作量便成了友好的GUI界面的操作,大大加速了软件开发的进程。考虑到视频传输的实时性要求及方便我们采用标准的套结字(SOCKET)编程,我们选择了μC/OS-II操作系统,LWIP协议栈支持标准的套结字编程,更进一步地促进了软件开发的流程。

8.  C2H加速:      NiosⅡ提供的C2H编译器能够将对性能要求较高的C语言程序自动转换为硬件加速器,集成到基于FPGANiosⅡ子系统中,对我们提高系统运行速度提供了有利的支持。

(Revision: 2 / 2008-06-15 22:46:28)

7. 总结 (Final Project Paper)

1. SOPC技术的更进一步认识

通过Altera公司举办这次竞赛,我们接触到了Altera公司针对FPGA提出的SOPC解决方案,特别是Nios II 软核处理器,使得我们从整体上改变了以往对FPGA的理解。SOPC的解决方案将FPGA的功能单一的工作进行了极大的扩展,把以往需要外部控制单元(如单片机)做的工作全部集成到一片FPGA中,且内部Nios II软核的多种外设和接口都可以随需要增减,这为设计带来了极大的方便。它摒弃了传统的思想——设计更改必须更改硬件,同时实现了处理器与硬件逻辑的无缝接口,减少了硬件布线的麻烦,又保证了系统的稳定性。SOPC解决方案中的软硬件协同开发技术使得在同一片FPGA上可以将FPGA逻辑开发和Nios软核内部的程序开发同步进行,大大提高了系统设计的效率。

2. 竞赛中遇到的问题及解决

本系统使用的是DE2-70开发板,在开发的过程中,我们也遇到过很多问题。比如程序下载到Flash中,在不断查询和尝试中,终于解决了这个问题。程序运行速度很慢,我们采用了DE2-70自带的C2H编译器加速了程序运行速度。

3. 系统设计方案

1)硬件设计

采用多级结构将硬件结构进行分层,并分别设计出低耦合高内聚的硬件模块。其高度独立性使得各功能模块可依据不同的任务需求进行高效、易行的重构。

2) 特别设计

  1自制复杂IP:通过Avalon总线结构与众多标准外设及多个自行研发的复杂IP相连接。实现的JPEG压缩模块,大幅度降低了数据采集及网络传输功能中的数据量,使系统达到实时性能要求。

2DMA与中断:极大地提高了系统数据采集、网络传输的带宽

3)硬件扩展:使用DE140pin扩充接头连接简单、低成本的扩展硬件PCB板,提供运动载体驱动电路、传感器电路、扩展网卡电路以及电源电路。

4C2H加速:采用C2H编译器,对我们提高系统运行速度提供了有利的支持。

4. 心得体会

  通过本次竞赛,我们深刻体会到合作对于一个团体的重要性。通过我们一起努力,使得我们有为了一个技术难题,一起熬夜钻研的经历。这将成为我们以后人生记忆中最重要的一部分。尤其是最后阶段,压力很大,可是我们努力坚持了下来。在这里,我们要向我们的指导老师:李志平老师说声感谢!是他给了我们最大的支持。没有他的帮助,我们不会有现在的成果。我们的作品做得并不完美,但我们从中得到的东西,尤其是专业知识,以及对Altera公司优秀器件的理解,都是弥足珍贵的。如果有机会,我们会把我们的作品做的更加完善。

  最后,谢谢Altera提供的这次竞赛的机会。

 

(Revision: 2 / 2008-09-14 02:34:41)