关闭

关闭

关闭

封号提示

内容

首页 基于NiosⅡ多核驾驶疲劳检测系统设计.pdf

基于NiosⅡ多核驾驶疲劳检测系统设计.pdf

基于NiosⅡ多核驾驶疲劳检测系统设计.pdf

上传者: xl46512 2012-05-08 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《基于NiosⅡ多核驾驶疲劳检测系统设计pdf》,可适用于IT/计算机领域,主题内容包含。()计算机工程与设计ComputerEngineeringandDesign嵌入式系统工程基于NioslI多核驾驶疲劳检测系统设计凌朝东杨亮亮李国符等。

。()计算机工程与设计ComputerEngineeringandDesign嵌入式系统工程基于NioslI多核驾驶疲劳检测系统设计凌朝东杨亮亮李国刚(国立华侨大学信息科学与工程学院福建泉州)摘要:采用SOPC技术对多核驾驶疲劳检测系统进行了研究与设计。为了实现系统设计的单片化把Niosll软核处理器、摄像头采集控制器lP核、部分图像处理算法模块等系统部件都集成到一块FPGA上。为了提高系统处理速度系统采用双Niosll软核处理器设计同时利用Niosll处理器自定制指令与CH加速编译工具对系统中关键部分进行硬件加速使系统具有实时性检测功能。关键词:可编程单芯片系统NioslI软核疲劳状态图像处理自定义指令中图法分类号:TP文献标识码:A文章编号:.().DesignofmulticoredriverfatiguestatesurveillancesystembasedonNioslILINGChaodor培YANGLiangliangLIGuogang(CollegeofInformationScienceandEngineeringHuaqiaoUniversity,QuanzhouChina)Abstract:SOPCtechniqueisusedtOperformaresearchanddesignonfatiguestatesurveillancedetectingsystem.Inordertorealizeasystemasinglechip,NioslIsoRcorcprocessor,theIPcoreofcameracollectioncontroller,somemodulesofimageprocessingere.areintegratedonasingleFPGA.ForspeedingupthesystemprocessingdoubleNiosllsoftcoreprocessorsareimplemented.FurthermorethecriticalpartsofsystemarehardwareacceleratedbybothinstructionsofNioslIprocessorandCHcompiletools.Allthedesignsmakethesystemhavetherealtimedetectingability.Keywords:SOPCNiosllsoRcarefatiguestateimageprocessingc璐tominstruction引言对交通事故统计数据分析表明驾驶员疲劳驾驶是造成交通死亡事故的重要原因之一。根据交管部门的不完全统计因驾驶疲劳导致的车祸可能占全国车祸总数的五分之一。疲劳驾驶危害之大急需研究设计能够实时榆测驾驶员是否处于疲劳状态的系统在刚刚发现驾驶员有疲劳驾驶迹象时就立即发出警报或强制停车休息避免交通事故。目前已有一些接触式的疲劳榆测方法但这些方法会给驾驶员造成一定身体卜的影响给驾驶带来小便还有一些非接触式的疲劳检测方法是在PC机卜通过运行相应的PC程序实现视频的采集显示与存储所需处理时间较长设备占据的地方比较大。当前基于DSP、ARM等硬核单处理器的车载驾驶疲劳检测系统存在检测时间较长达不到实时检测的目的。为了解决上述问题本文采用了SOPC技术在单片Altera公司的FPGA芯片上采用多核设计与IP资源复用技术构建一个具有实时性、便携式、灵活可配置等优点的驾驶疲劳检测系统。SOPC(system咖programmablechip)J可编程片上系统是随着现代计算机辅助设计技术、EDA(elcctronicdesignautOmation)技术和大规模集成电路技术高度的发展而出现的是~种基于FPGA解决方案的SOC。Niosll嵌入式处理器是Altem公司推出的软核处理器用户可以获得超过DMIPS的CPU性能。Niosll处理器允许用户增加自定义指令和自定义硬件加速单元无缝移植自定义外设和接口逻辑。该软核处理器处理器采用Avalon交换式总线总线使用最少的逻辑资源来支持数据总线的复用、地址译码、等待周期的产生、外设的地址对齐、中断优先级的指定以及高级的交换式总线传输等。系统介绍系统中配置了双NioslI软核CPU两个CPU同在一块SDRAM内存中运行由Avalon总线模块提供仲裁机制实现双CPU对SDRAM的分时访问。CPUA主要负责图像数据实时采集与SD卡的数据写入等任务:CPUB则完成图像数据处理与发出控制信号。两个CPU通过邮箱建立相互通信。CPUA把采集到的数据存入到SRAM中。SRAM有两块地址固定的数据存储区A与B。当CPUA采集一帧图像数据并存储在A区后便产生中断信号通知邮箱CPUB开始读取A区的数据数据送至CPUB的图像预处理与人脸检测模块进行人脸检测与定位。当CPUB在读取A区数据的时候摄像头采集模块继续传来数据这时CPuA将接收的数据存储到B区收稿日期:Email:edajlt.eom基金项目:福建省自然科学基金项目(A)厦门市科技计划基金项目()。作者简介:凌朝东(一)男福建泉州人副教授研究方向为生物医学电子学:杨亮亮()男.江苏灌南人。硕士研究生研究方向为信号采集与处理李围刚().男福建邵武人。副教授。研究方向为微电子技术、集成电路设计。万方数据凌朝东杨亮亮李国刚:基于NioslI多核驾驶疲劳检测系统设计()中当B区写满后CPUB则开始读取B区CPUA又开始写A区因此CPUB读取数据区数据与CPUA写入数据区数据不会产生冲突。人脸检测模块完成人脸定位后的数据通过总线送至CPUB继续进行入眼榆测与特征值提取最后经过计算判断驾驶员的状态并通过邮箱通知cPuA把状态数据写入SD卡。系统的框图如图I所示。悭。州k串审审审哮口掣AvalonBusANiosIIL.倒’Ul墅ⅡI‘CPUB{广AvalonB惦BFPGA图l系统系统关键模块设计本系统主要由图像采集、图像数据处理、SD卡存储大关键模块组成。系统的硬件平台采用Altera公司CyclonellCFPGA芯片(DE开发板)采用SOPC技术将NioslI软核、图像采集模块IP核、图像数据处理模块、存储器、功能接口和扩展I/O口等集成在一块FPGA芯片上外围扩展了CMOS摄像头、sD乍存储器等硬件来实现系统的整体架构。.图像采集模块设计本设计采用Micron公司的万像素CMOS图像传感器MTMl进行图像采集。该图像传感器具有可编程的增益控制、曝光控制和黑标准校正可以在保持流畅、连续的动态图像的同时在roW的能耗下。以最高帧/秒的帧率进行任意大小的图像捕捉叫。为了实现NioslI处理器能对摄像头进行控制获取摄像头采集到图像数据因此需要设计摄像头图像采集控制器IP核。该控制器核采用VerilogHDL自行设计图像数据能够通过Avalon总线主端口的块传输方式进行传输利用DMA控制器实现从片上YCrCbFFO到SRAM的自动写入。该图像采集控制器口主要由个部分组成:接口模块、内存模块和变换处理模块。接口模块:Niosll处理器是作为Avalon总线的主端口挂接在总线匕的它可以对挂接在总线上的从设备进行读/写和控制等操作。图像采集控制器IP作为总线的从设备为了实现Niosll处理器对它的控制图像采集控制器必须通过一个接口模块来挂接到Avalon总线上。接口模块是作为Avalon总线的从接口在系统启动之前处理器通过Avflon总线对接口模块进行配置及读取状态。接口模块主要是阻寄存器组方式存在的主要寄存器包括:控制寄存器、状态寄存器、DMA地址寄存器和中断寄存器。具体的寄存器功能如表所示。表图像采集口核寄存器描述/寄存器各位A.A寄存爨名读写O控制寄存器读写ReBerveEirqEdmal状态寄存器读写状态杏询DMA地址寄存器读写写入DMA传输的起始地址中断寄存嚣读清中断控制寄存器的Edma位用来启动DMAEirq用来使能中断状态寄存器用来查询中断状态DMA地址寄存器用来设置和查询DMA的起始地址中断寄存器则用来产生中断标志与清中断。内存模块:该模块主要是要设计一个DMA控制器利用DMA控制器建立YCrCbFIFO中采集到的图像数据到图像数据缓存器SRAM的自动写入。根据Avalon总线主端口突发写传输时序的要求如图所示DMA控制器采用有限状态机来实现。状态机可分为个状态:idle、address和data状态。图Avalon总线主端口突发写传输时序idle状态为空闲状态在该状态下主要是等待DMA启动信号的到来对块传输数量和DMA起始地址进行初始化在address状态下将等待总线上等待请求信号waitrequest的取消便进入数据写入状态data:在data数据写入状态下写信号将总线上的数据写入到相应的地址每连续写一个数据后块计数器就减l当写入一块(个位数据)数据后就回到地址状态addms等待同时地址自增:当数据写完一帧后回到字闲状态等待下一帧数据传输的开始。DMA控制器状态转移图如图所示。图DMA控制器状态机变换处理模块:负责摄像头图像数据的采集与变换处理主要由以下个小模块组成跚:CMOSSensorDataCapture模块、万方数据()计算机工程与设计ComputerEngineeringandDesignBayerColorPatternDataTo一BitRGB模块、MirrorData模块CSensorconfiguration模块、RGBtoYCrCb模块。CMOSSensorDataCapture模块提供摄像头工作所需要的主时钟并且通过FVAL、lVAI圾PCLK共个同步信号jF确抓取摄像头送回FPGA的数据流为下一级BayerColorPatternDataTo一BitRGB模块准备数据BayerColorPatternDataTo.HitRGB模块采用行缓冲与流水线的处理方式将前一级得到的数据实时转换成bitsRGB数据MirrorData模块把上一级BayerColorPatternDataT.BitRGB数据进行镜像转换因为摄像头采集到的数据是从右到左扫描的这个扫描顺序和图像数据在LCD上面显示顺序是相反的所以要对前一级的罔像数据进彳亍行镜像操作恢复能存LCD上面正确显示的扫描顺序CSensorconfiguration模块内部包含了一个C总线控制器以及一个对应于摄像头内部寄存器地址的查找表可通过C总线进行摄像头参数的设置:RGBmYC忙b模块是把MirrorData模块输出的bit的RGB数据转换为YCrCb进行色彩空间转换是为了消除光照闪素对图像的影响。在设计中用嵌入式逻辑分析仪SignalTaplI对图像采集模块中重要的信号节点进行实时测试测试波形如图所示。从图示波形中可以看出:图像采集模块在像素时钟pixclk下能够实时采集图像数据并通过DMA传输把采集到的数据写入到dmacurrentade潞所指向的存储地址。图图像采集模块工作时序.图像处理算法该部分主要由以下个步骤组成:图像数据预处理、人脸检测、眼睛检测与跟踪、状态判断。图像数据预处理包括噪声消除与图像增强处理。考虑到中值滤波与梯度锐化在罔像预处理中的优点我们采用中值滤波与梯度锐化实现图像的预处理。本系统还采用改进的层次型AdaBoost枪测算法实现人脸的检测该部分采用FPGA实现。在定位好人脸后开始眼睛检测这里采用了Hough变换找眼球和眼睑、累积差分帧相结合的方法来检测眼睛然后通过眼睛跟踪得到相应的眼睛位置提取相关参数后用眼睑的宽度来判断眼腈的开阔“。在驾驶中连续测试司机的PERCOLS值和眼睛持续闭合时间“如果司机的PERCOLS值大于%、眼睛持续闭合时间大于s监测系统就判定该司机的疲劳程度已达到为安全驾驶操作所不允许的界限系统会考虑采取自动切断电路和发出提示警报等措施。.图像处理算法硬件加速的实现系统中用到的图像处理算法多且复杂在单CPU上用纯软件实现该算法耗时较长不能达到实时检测的目的因此在系统中配置了一个CPUB来专门完成图像处理任务。同时采用了Niosll处理器定制指令的方法与CH加速编译器工具对部分算法进{j硬件加速以此提高系统的整体性能。Niosll处理器定制指令是把用户自定义的功能模块直接添加到NioslIcPU的算术逻辑单元(ALu)中来加快专项任务的执行速度。定制指令逻辑和Niosll的连接在SoPCBuilder中完成。系统生成时NiosllIDE为每条用户指令产生一个在系统头文件中定义的宏可以在C或C应用程序代码中直接调用这个宏进行程序设计。系统设计中添加了个用户自定义指令分别实现对三角函数(mathcos)、浮点运算(fpoint)和指数函数(mathexp)、中值滤波函数(medianFilter)、梯度锐化函数(imagegradsharp)进行加速。CH(C语言至硬件加速编译器)是Akera公司公司推出的它可以把实时性要求较高的C或C函数直接转换为FPGA中的硬件加速单元。经过CH编译器加速的单兀性能最多可以提高倍以上。如果在系统执行过程中频繁调用数据搬移函数Date.transO与数据循环读写Datewrite/Dataread()等函数这样会消耗很多时间同时此类函数的结构符合CH加速工具的加速条件.}天|此采用了CH工具对此类函数进行硬件加速。下表是在系统调试过程中几个关键算法模块经过加速处理后的耗时与占用FPGA资源情况。关键算法模块耗时与占用资源情况如表所示。表关键算法模块耗时与占用资源情况关键算法模块耗时ms占用资源几E中值滤波锐化mathcos、母oint、mathexp、、sAdaBoogI检测算法.数据存储模块设计本设计选用SD卡作为外接存储硬盘。SD存储卡具有大容量、高性能、安全性好等特点的多功能存储卡被广泛用于数码相机、掌上电脑和手机等便携式设备中。SD卡上所有单元由内部时钟发生器提供时钟接口驱动单元同步外部时钟的DAT和CMD信号到内部所甩时钟。SD卡有两稀通信协议即SD通信协议和SPI通信协议与SPI通信协议相比SD通信协议的最大优点是读写速度快单根数据线理论上可以达到MB/秒四线传输可以达到M/s本设计采用的是四线SD通信协议。本设计中对SD卡的协议采用软件编写:首先在SOPCBuilder里定义了个可编程口:SDCMD、SDDATODATSDCLK分别对应SD卡的命令、数据、时钟端口然后在NiosllIDE上按照SD卡的传输协议编写C程序来对个I/O口进行操作以此来实现SD卡的传输协议。(下转第页)万方数据()计算机工程与设计ComputerEngineeringandDesign(上接第页)但是SD卡存在着写数据较慢的问题原因是在写数据到SD卡的时候每一个block都需要计算位的CRC校验码占用了较长的发送时间。这里选采用自定义指令的方式加快CRCl运算速度。CRCl计算公式为:CRCl一CCITT=XXX。用VefilogHDL进行硬件设计命名为CRCi.V。CRCl自定义指令是作为多周期指令来实现的在多周期指令要求中必须包括信号elk、clken、reset。把自定义指令加到Niosll嵌入式CPU中。生成系统后在生成的system.h文件中关于CRCl自定义指令的宏如下#defineALT..CI..CRC.CUSTOM..INSTRUCTION.Nx#defmeAIJCICRCCUSTOMINSTRUCTlN(AB)builtincustominii(AIJCICRCCUSTOMnqSTRUCllONN(A)(B))经过测试采用优化的软件实现CRCl的时间为。ms而采用自定义指令后计算的时间是.ms性能得到了很大的提升。图人脸定位图像的LCD显示块的结构与HDL代码都经过了优化与验证具有一定的IP核通用性。通过实验结果可以看出.系统基本能够达到实时检测的要求但是实验结果是在实验室环境下进行同时对测试人员位置与状态有一定的要求检测的Ⅱ三确率还不够高。离真正的产品还一段距离.因此图像处理算法模块还需要进一步深入研究。实验结果参考文献测试人员眼睛状态判断PERCLOS(P)....李兰英.Niosll嵌入式软核SOPC设计原理及应用【M.北京:北京航窀航天大学出版社.MTgMldatasheetS.Micronlac..陈泳男.使用FPGA及CMOSImageSensor来达成实时机器视觉EB/OL.http://www.terasic.tom.魏良苏光大邓亚峰.基于FPGA的快速入脸检测【J.图形图像与多媒体():韩相军墚艳荣关永基于DSP的嵌入式驾驶疲劳监测系统研究【J.公路交通科技():.盛敬杨军平刘国满.基于机器视觉的驾驶员疲劳监控系统中的嘴唇定位算法【J.南昌工程学院学报():.高旭东陈金鹰叶舒亚.利用NiosII自定义指令实现高速DSP【J】.电子技术():.马光胜。冯刚.SoC设计与IP核重用技术【M】.北京:国防工业出版社,.AvalonbusspecificationreferencemanualS.Alteralnc.n眨口HB陋盯陷侉万方数据基于NiosⅡ多核驾驶疲劳检测系统设计作者:凌朝东杨亮亮李国刚LINGChaodongYANGLiangliangLIGuogang作者单位:国立华侨大学,信息科学与工程学院,福建,泉州,刊名:计算机工程与设计英文刊名:COMPUTERENGINEERINGANDDESIGN年卷(期):,()被引用次数:次参考文献(条)李兰英NiosⅡ嵌入式软核SOPC设计原理及应用MTMdatasheet陈泳男使用FPGA及CMOSImageSensor来达成实时机器视觉魏良苏光大邓亚峰基于FPGA的快速入脸检测()韩相军梁艳荣关永基于DSP的嵌入式驾驶疲劳监测系统研究期刊论文公路交通科技()盛敬杨军平刘国满基于机器视觉的驾驶员疲劳监控系统中的嘴唇定位算法期刊论文南昌工程学院学报()高旭东陈金鹰叶舒亚利用NiosⅡ自定义指令实现高速DsP()马光胜冯刚SoC设计与IP核重用技术Avalonbusspecificationreferencemanual引证文献(条)李光明何振琦张慧琳基于NiosⅡ多核高速图像采集系统设计期刊论文化工自动化及仪表()何振琦李光明张慧琳李颀高速图像采集系统的研究及FPGA实现期刊论文计算机应用()本文链接:http:dgwanfangdatacomcnPeriodicaljsjgcysjaspx

热点搜索换一换

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/5
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部