当前位置: 首页 > >

偏离预警系统中图像处理模块的研究

发布时间:

分类号:U27;U46
10710.0822019

滚专犬海
硕士学位论文
基于达芬奇*台的车道偏离预警系统中

图像处理模块的研究
付强

导师姓名职称
{;i。≮,j.

仝秋红教授
工学硕士

申请学位级别

学科专业名称

车辆工程

论文提交日期201 1年5月22日论文答辩日期
学位授予单位 长安大学

2011年6月7日

答辩委员会主席
学位论文评阅人

曹建明教授

蹇小*教授

.≯




A research based


on


DaVinci platform of image

。 -

Drocessln2

module







bout lane departure warning

system


A Dissertation Submitted for the Degree of Doctor

Candidate:Fu

Qiang

Supervisor:Prof.Tong

Qiuhong

Chang’an University,Xi’an,China

论文独创性声明
本人声明:本人所呈交的学位论文是在导师的指导下,独立进行 研究工作所取得的成果。除论文中已经注明引用的内容外,对论文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本论 文中不包含任何未加明确注明的其他个人或集体己经公开发表的成
果。

本声明的法律责任由本人承担。

论文作者签名:

讨缎,zoll年∥月17

El

论文知识产权权属声明
本人在导师指导下所完成的论文及相关的职务作品,知识产权归 属学校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请 专利等权利。本人离校后发表或使用学位论文或与该论文直接相关的
学术论文或成果时,署名单位仍然为长安大学。 (保密的论文在解密后应遵守此规定)

论文作者签名: 导师签名:

讨孤

zD

f/年石月甲日

2刀7年多月/p日





随着我国经济的高速发展,汽车越来越广泛的普及到我们生活的各个角落,然而交 通事故的潜在危机使得我们面临着巨大的紧迫感。避免交通事故发生的措施有很多,除 了完善法规,加强管理,提高驾驶员素质之外,通过科技手段,利用汽车电子产品在汽 车上的安装来提高道路交通安全已经成为人们的共识。本文的研究内容涉及车道偏离预 警系统,系统在避免因驾驶员注意力不集中而引起的交通事故方面有着良好的作用。 经过调研国内外车道偏离预警系统的发展趋势,发现国内车道偏离预警系统的研究 远远落后于国外,而且以算法研究居多,相关的系统硬件*台搭建的比较少。本文的研 究内容主要是系统整个*台的搭建以及相关图像处理算法在*台上的验证工作。通过比 较,采用德州仪器推出的达芬奇实验板做为系统的基础开发*台,然后在此*台的基础 之上,搭建设计了整个系统的框架,设计了视频采集模块、视频图像处理模块、视频显 示模块。然后对系统的硬件框架和软件框架进行了设计,在硬件*台的基础之上,对软 件开发环境的搭建和达芬奇系统的开发流程做了详细的探讨。 搭建好系统软硬件*台的基础后,进行了道路视频的实时处理与存储试验,在试验 过程中对图像进行了*滑处理和边缘检测处理,将比较经典的算法在*台上进行对比试 验,从而确定了在此*台上处理效果较好的滤波算法和边缘检测算法,同时也验证了该 *台满足系统性能的要求。最后,对道路图像的实时存储做了深入的研究,设计了硬盘 存储模块,实现了道路图像的实时存储,为整个课题的下一步研究打下了坚实的基础。 关键词:图像处理,达芬奇*台,车道偏离,边缘检测,硬盘存储

Abstract

Witll the rapid development of
every

our

economy,car is more and more extensive spread to
US

comer of

our

life.However,traffic accident potential crises make

facing huge

sense

of urgency.There

are

many measures to avoid traffic accident happened,besides strengthen
statutory and improve pilot quality,Using automobile electronic
consensus

management,perfecting
products in
cars

installation to improve road traffic safety has become the

of people.

This research

content

is about lane departure warning system,this system has



decent role in

avoiding the traffic accident caused by the driver’S inattention. After investigation of domestic trend,we find domestic

and

foreign lane departure

warning system development

lane

departure system research lagged far

behind

the abroad,the
content

majority

in algorithms and the relevant system hardware platform less.The main

of

this paper is the whole platform’S construction and related image processing algorithm in the validation work
on

the platform.By comparison,DaVinci

experiment

board Produced by in the

Texas instruments Was chosen as system based development based
on

platform.Then

platform

the design of the system,build

the hardware

framework,design

the video acquisition

module,the video image processing module and video display module.Then we system’S hardware the
structures

design

the

framework and

software framework.On the basis of hardware platform,

of software development environment


and

the DaVinci system development

process to do

detailed discussion.

On the good foundation of system hardware

and

software

platform,we

made



video of

real-time processing and storage test.In the test,we made smooth processing of image
process

and

edge detection.In the

platform,we made
performance

the classical algorithm test.So we find
to

well filtering
proves this

algorithm

and edge detection algorithm

Our

platform,meanwhile

we also

platform

meet the system of

requirements.Finally,we made depth

research in the path real—time

image storage,design

the hard disk drive storage module,and


realize the real-time storage of the road images.At last,we establish
research.

solid foundation for the

Keywords:image processing,DaVinci platform,lane departure,edge detection, hard disk storage





第一章绪论…………………………………………………………………………………..1 1.1论文的研究背景及意义………………………………………………………………1 1.1.1车道偏离预警系统的简介……………………………………………………1 1.2车道偏离预警系统的发展概况……………………………………………………..2 1.2.1国外车道偏离预警系统的相关研究现状……………………………………2 1.2.2国内车道偏离预警系统的相关研究现状……………………………………3 1.3车道偏离预警系统图像处理中目前存在的问题…………………………………..4 1.4本文的主要研究工作………………………………………………………………。4 1.4.1论文的内容和组织结构……………………………………………………….4 1.4.2论文研究的意义………………………………………………………………5 第二章开发环境介绍…………………………………………………………………………6 2.1达芬奇*台简介……………………………………………………………………..6
2.1.1

DVEVM数字视频评估板……………………………………………………..6

2.2编译和调试工具……………………………………………………………。匕……8 2.3系统集成……………………………………………………………………………l


第三章车道偏离预警系统中硬件系统的总体框架………………………………………12 3.1视频图像处理系统的总体框架……………………………………………………12 3.1.1视频采集模块………………………………………………………………一12 3.1.2视频图像处理模块…………………………………………………………。l 5 3.1.3视频显示模块………………………………………………………………..1 5 3.2软硬件功能实现的划分…………………………………………………………….16 3.3系统的硬件架构……………………………………………………………………17 3.3.1系统的片外构架……………………………………………………………..17 3.3.2系统的片内架构……………………………………………………………一18 3.3.3视频处理子系统……………………………………………………………..19 3.4软件构架…………………………………………………………………………….20 3.4.1软件的组成…………………………………………………………………。20 3.4.2软件系统的开发流程…………………………………………………………2l 3.4.3软硬件*台搭建过程………………………………………………………..30 3.5本章设计小结………………………………………………………………………40 第四章实车道路视频的处理与存储……………………………………………………….4l 4.1道路图像*滑处理…………………………………………………………………42 4.2图像的边缘检测……………………………………………………………………45 4.3道路图像信息的存储模块…………………………………………………………49

ATA硬盘接口的实现…………………………………………………………50 4.3.2 ArA数据的传送……………………………………………………………….50
4.3.1

4.3.3具体实现过程…………………………………………………………………5 l 4.4本章小结……………………………………………………………………………。51 第五章总结与展望…………………………………………………………………………53 5.1本文的研究成果……………………………………………………………………53 5.2本文的不足…………………………………………………………………………54 5.3课题展望…………………………………………………………………………….54 参考文献……………………………………………………………………………………..56
到C

谢……………………………………………………………………………………………………………………..60

长安大学硕士学位论文

第一章绪论
1.1论文的研究背景及意义
随着国家对汽车工业的扶持和汽车下乡活动的深入开展,汽车已经普及到了我们生 活的各个角落。与此同时,汽车行车安全受到越来越多的关注,交通事故的频繁发生所 带来的经济损失和人员损失就像悬挂我们头上的一把达摩克利斯之剑。潜在的危机促使 我国的各级部门采取一系列的防范措施,但是由于人为不确定因素的影响,随着现在汽 车保有量的持续增长,事故的发生也越发频繁。从汽车的性能方面考虑,汽车的安全性 分为主动安全和被动安全,其中主动安全成为越来越受重视的部分,随着电子产业的发 展和汽车电子的广泛应用,人们更希望在事故发生之前能采取合理的措施将其避免。而 车道偏离预警系统作为主动安全系统中的新成员,受到人们越来越多的重视。 通过相关调查显示,在汽车行驶过程中,由于驾驶员注意力不集中而引起的车辆偏 离车道是造成交通事故的一个不可忽视的因素,但是在我国由于经济利益的驱使和安全 意识的缺乏,这种由于疲劳驾驶而引起的注意力不集中所导致的交通事故短时期内还无 法消除。而且由于我国高速公路的飞速发展,长途运行也变得越来越频繁,在我国开发 能够有效的防止交通事故发生的车道偏离预警系统的任务越来越紧迫,具有极强的现实 意义。 综合分析认为,由疲劳驾驶所引发的交通事故量的持续增多,使得车道偏离预警系 统的开发刻不容缓,系统所拥有的独特的优越性受到社会越来越多的关注。而德州仪器 公司推出的达芬奇技术更为此提供了技术上的支持和可能,为其深入的发展做出了铺挚 和贡献。 1.1.1车道偏离预警系统的简介 根据美国国家公路交通安全管理局的定义,车道偏离预警系统【l】是指一种通过报警 的方式提醒驾驶员避免和减少车道偏离事故发生的系统。系统通过摄像头采集道路图像 信息,通过传感器获取汽车运行过程中所需要的其它参数如车速、加速度等,以这些参 数为基础,通过相应的判定和决策算法的判别,判断汽车是否发生或者已经发生车道偏 离。如果判定的结果是会发生车道偏离,那么系统将会通过显示器显示、发出警报声等 方式向驾驶员报警,从而促使驾驶员采取积极的措施使汽车回到正常的行驶道路上,避 免事故的发生。 通过相关的研究发现,文献12l认为车道偏离预警系统可以有效的预防至少24%的由

第一章绪论

车道偏离引起的伤亡事故,其对于防止由于驾驶员短暂分神而引起的事故作出了巨大的 贡献。鉴于以上事实,各大汽车企业对其展开了深入的研究活动。同时伴随着智能交通 研究热潮的来袭,人们越来越希望通过科技的力量来保证驾驶的安全性,安装各式电子 系统来促使驾驶员保持足够的警惕性,提醒潜在的危险和提示驾驶员应当采取合理适当 的措施来避免危险的发生,从而提高车辆行驶时的安全性。越来越多的电子系统开始被 人们所选购,安装在汽车上,发挥着越来越广泛的作用。 综上所述,为了降低事故的发生率,对驾驶员无意识的车道偏离进行干预,使之及 时的采取措施,对我们创造安全的交通运行环境有不错的效果,可以有效的保证驾驶员 以及路人的安全以及减少经济损失,有着极其重要的作用和极为深远的意义。 通过对国内一些高校和企业进行的相关研究调研,发现各种理论算法的提出和改进 层出不穷,也有的地方利用VC*台或matlab*台进行了系统的开发,但是随着嵌入式 系统的广泛发展,基于VC*台和matlab*台的系统不论从性能上还是从成本上都远远 落后,而相应的基于嵌入式系统的算法应用实现以及产品化还有很大的空白需填补。本 文就是基于目前研究的缺陷,选取了恰当的实验*台,在该*台的硬件系统基础上进行 了探索性的实验和创新,并且对算法的实现进行了验证,取得了良好的效果。研制本系 统可以有效降低由于车道偏离而引起的交通事故,从而有效的保证行车安全。

1.2车道偏离预警系统的发展概况
目前不论是在学术界还是在市场上,相关的研究早已展开,大量的资源也被汽车厂 商投入到此项开发中,且已经有产品开始推向市场。经市场调研发现,在沃尔沃XC60、 雪铁龙C6、宝马新7系、大众CC等豪华车上已经配备各厂家自主研发的产品,但普遍 存在成本偏高,误报率高等缺点,导致整车价格也相应的偏高,且在低端车上没有应用, 此系统的推广就目前来说还不现实。且因为技术保密和我国电子产业的落后等原因,我 国尚未有成熟的国产化产品推向市场,但与此同时,我国正加紧对此研发的投入力度, 相信用不了多久,就能有成熟的产品出现。 1.2.1国外车道偏离预警系统的相关研究现状 1.AURORA系统 卡耐基一梅隆大学研发的AURORAi31【41系统是基于计算机视觉的横向位置评价系 统,它所实现的主要功能有:检测跟踪识别公路表面的车道标志线;进而评价车辆和标 志线之间有无发生相对位移;当车辆偏离车道或者存在偏离车道的趋势时,系统会通过



长安大学硕士学位论文

显示屏或音箱发出信号来提醒驾驶员采取合理的措施来避免事故的发生。用于收集道路 信息的摄像头在系统中被放置在车辆的侧面,它能拍摄到的是车辆侧方1.5米一2米左 右的范围。高性能的数字图像采集卡对摄像头采集到的信息进行收集,然后发送到便携 式Sun Sparc工作站进行处理,进而进行分析判定,输出结果。不过因为此系统开发的 时间比较早,所采用的核心虽然是便携式的工作站,但仍存在体积过大,成本过高等一 系列问题,随着现在嵌入式系统的飞速发展,其性能已经比不上一些其它的系统,不过 它当时在系统设计时采用的一些的方案和思路仍值得我们学*和借鉴。 2.AutoVue系统t5i 该系统由DaimlerChrysler公司和Iteris公司联合开发,目前为止已经开发到其第二 代产品。该系统的组成包括一个摄像机、两个音箱、一个显示设备和控制单元,它为此 类系统的搭建建立了一个宏观上的框架,虽然后续推出的一些产品在构造和组成器件上 有所区别,但是大体上还都是依靠这个框架来的。在工作过程中,它实时监测车辆的横 向位置有无发生改变,不断计算车辆和车道标志线之间的相对距离,在系统中早已设定 好一个报警距离,系统将检测到的距离和预设报警距离进行比较从而判断是否需要报 警。当检测到的距离小于系统的预设报警值时,它会通过音箱发出警示声和通过显示器 发出警告图像来提醒驾驶员采取相应的操作来修正车辆的位置。目前,此系统得到了欧 盟的认可,在欧洲的货车上进行了强制性的推广。
3.Mobiley9 AWS系统


该系统是由荷兰的Mobileye公司开发,从2007年开始已经被宝马、通用等知名汽 车厂商指定为汽车配件供应商。用来检测车道标志线的摄像头安装在前挡风玻璃的后 面,它的原理也是通过摄像头测量车辆和道路标志线的相对距离。通过检测标识线的位 置,对车辆跨越车道线的时间进行预测,当该时间小于系统的预设值时,系统即将触发 视觉和声音警告,促使驾驶员对不同的危险情况做出恰当合理的反应从而减少事故的发 生概率15I。不过作者觉得此系统的判定决策有一定的缺陷,有意识的偏离车道和无意识 的偏离车道往往在时间上差距不是十分的明显,时间可以做为一个参考值,不能做为一 个判定值。 1.2.2国内车道偏离预警系统的相关研究现状 在国内,由于总体科研水*和电子产业的落后,在该项研究方面远远落后于欧美等 国。截止到目前为止,国内还没有自主研发成功、具有自主知识产权的、产品化的车道 偏离预警系统。目前,仅仅有吉林大学、东南大学、长安大学等有限的几所高校开展了



第一章绪论

这方面的研究。伴随着我国汽车消费的越来越普通,人们对汽车质量的要求也越来越高, 安全性与舒适性在人们选车时成为了一项重要的参考指标,车道偏离预警系统作为一项 实用高效的安全系统,会给汽车的安全性大大的增添砝码。因此,深入研究此系统的原 理以及开发高效实用的产品,是当前面临的重要任务,也是摆在本土汽车企业面前的一 个大问题,更是本土汽车企业追赶世界先进水*的一次机遇,对本土汽车电子事业的发 展具有意义深远的影响。

1.3车道偏离预警系统图像处理中目前存在的问题
经过相关的调研,发现制约我国车道偏离预警系统发展的主要是硬件*台,国外成 熟产品所采用的*台都是基于DSP或ARM。众所周知,目前我国还无法自己开发生成 出与之相同水*的处理器,所以只能采用国外的处理器,而整个系统硬件*台的设计搭 建、软件开发环境的设立,都牵扯到一系列的问题,整个系统的整合以及算法在系统上 的实现是一个比较困难的问题,而许多优秀的算法也将面临空有一身本领而无用武之地 的处境。因此,本文就这一问题而进行探索,希望能对后续的研究者提供具有指导意义 的引导和帮助。

1.4本文的主要研究工作
1.4.1论文的内容和组织结构 本论文研究的内容是基于达芬奇*台的车辆偏离预警系统。论文共分五章,各章的 具体内容安排如下: 第一章绪论主要介绍了论文研究的背景,以及车道偏离预警系统在交通运行中所具 有的重要意义。介绍了当前欧美国家先进系统的发展现状,综合分析我国的发展现状, 指出限制我国发展的瓶颈和以后努力的方向,并对本文所研究的内容作适当的介绍。 第二章主要介绍了达芬奇*台,对其硬件系统、编译调试工具和软件系统都进行了 相应的介绍,对开发环境搭建过程中所需要做的一些工作也做了相应的介绍。 第三章主要讲述了嵌入式车道偏离系统的实现方案,对系统的总体框架进行了设计 搭建,对其中的视频采集模块、模拟图像的A/D转换与解码、视频图像处理模块进行了 详细的搭建。且对整个系统的硬件构架,软件构架,以及软件系统的开发流程、软硬件 开发*台的搭建过程,都做了详细的工作。 第四章主要介绍了图像处理算法在此硬件*台上的运行效果以及相互之间的比较, 以及硬盘存储模块的设计。本章首先对图像处理算法进行分析比较,得出比较适合本*



长安大学硕士学位论文

台的算法。最后,在*台上实现了外扩硬盘的设计与存储,对采集的道路图像进行硬盘 存储。 第五章是将本文所做的工作做一个整理,总结所取得的成果,而且对本文所欠缺的 地方做了总结,对下一步要做的工作进行展望,提出了建设性的意见。 1.4.2论文研究的意义 伴随着交通事业的飞速发展,交通事故的发生也面临着越来越暴增的趋势,而其中 由车道偏离而引起的交通事故所占的比例大更是突出。所以,专门针对车道偏离事故而 开发的车道偏离预警系统的研究就显得特别有意义。本文对车道偏离预警系统中的硬件 系统进行了探索性的设计,且在此*台上进行了算法的较好的研究,取得了比较好的效 果,为以后的相关研究做出了探索性的指导,为我国在此方面的研究,赶超世界先进水 *,作出了积极的探索和贡献。



第二章开发环境介绍

第二章开发环境介绍
2.1达芬奇*台简介
德州仪器公司推出的达芬奇*台是采用当前业界最先进的技术研发而成,它具有较 完善的软硬件系统和开发工具,且德州仪器在中国的第三方合作公司提供了较好的技术 支持,自推向市场以来,风靡了电子领域,成为了无数工程师的最爱。达芬奇*台是一 个包含高中低档全系列的产品,不同领域不同需求的客户都可以在这里找到适合自己要 求的解决方案,且不同方案之间具有一定的继承性,使得客户以后对自己产品的升级、 后续研发十分的方便,这一点,很博得工程师们的喜爱。 工程N#l'l的想象力和创造力赋予了电子产品灵魂,一件件令人惊叹的产品包含了工 程师们无数的心血。为了激励鼓舞工程师们开发出更加完美、更具创新性的产品,德州 仪器采用达芬奇的名字来命名该*台,是希望工程师们能继承达芬奇的创新精神,掀起 电子产业的一场“文艺复兴"运动161。 为了从成本和性能方面满足不同客户的要求,达芬奇可以根据不同的需求作出最优 的组合,可以极恰当的控制好性能和成本之间的*衡,此项特点可以极大的方便工程师 的工作,免除工程师的后顾之忧,使之尽情的发挥自己的才能。
2.1.1

DVEVM数字视频评估板 德州仪器官方推出的达芬奇*台提供了一款实用的数字视频实验板171,实验板附带

了达芬奇*台所支持的所有外设以及接口单元【8J,我们所选用的实验板虽然都是经过第 三方修改补充过的,不过其大体的框架并没有修改,只是在原来的基础上更加丰富了而 已,接下来对其所包含的资源做简要的介绍。



长安大学硕士学位论文

图2.1

SEED.DVS6446开发板实物图

(1)存储器单元 DM6446集成了标准的EMI*涌冢私涌诳梢苑奖愕奈低成杓婆浔父髦执娲⑸ 备。在开发的过程中,我们就在主板原来仅有16M的NorFlash、64M的NANDFlash 的基础之上,外扩了大容量的硬盘,拓展了系统的性能。DDR2接口连接了256M
芯片。
DDR2

DM6446内部集成了DDR2存储器寄存器,在系统中我们外接了128MB的DDR2 芯片,该部分主要用来解决系统运行过程中程序、数据和视频存储的问题。 (2)音频单元 实验板提供了标准的两路音频输入输出接口,支持音频项目的开发,截止到目前为 止,在本项目中没有用到,不过可以考虑做声控命令部分,对防止驾驶员在驾驶过程中 由于操作仪器而分神应该有不错的效果。
(3)网络单元

网络方面采用Intel公司的LXT971芯片,实验板上提供一个标准的列.45接口,在
Linux实验*台下的有关实验中,会用到网络单元,且此单元的存在,对汽车网络通讯 的开发也有帮助。 (4)供电单元


第二章开发环境介绍

实验板采用的供给电流为直流12Vtgl。其中12V的电源通过相关的转换芯片分别转 换成1.2V、1.8V、3.3V分别给不同的设备供电。实验过程中,采取将220V交流转变为 12V直流电的方法对实验板供电。不过由于在实车试验中汽车上没有220V的交流电, 我们将汽车点烟器处的电源变压为220V,从而解决了这一难题。

2.2编译和调试工具
系统所包含主要有实验板1101、电脑主机以及JTAG仿真器。实验板正常运行需要在 ARM端和DSP端都有各自的可执行文件,它们的生成主要是利用Linux环境下的交叉 编译器编译生成,生成可执行文件之后,利用网络通讯功能将其复制到实验板的 MotavistaLinux文件系统中,最终在实验板上运行调试程序。实验板和计算机之间的数 据通信是通过以太网口实现的,从而使得实验板能够访问计算机端的NFS文件系统, 编译好的可执行文件也能够通过网络接口下载到实验板,方便了我们的调试工作。实验 板自带了一个标准RS232串口,计算机的串口与之相连接之后,通过Windows自带的 超级终端作为控制台,可以监视和控制实验板上的Linux系统和程序的运行状况。在进 行调试工作的时候,使用JTAG仿真器可以大大的方便调试工作。 下面介绍系统开发过程中所需的一些软硬件工具。 (1)JTAG仿真器 我们选取的仿真器为SEED—XDS560PLUS,在进行仿真器的采购过程中,另有一款 510仿真器同样引起了我们的兴趣,不过在调试过程中我们发现,510仿真器的仿真速 度不够快,容易出现掉线和死机等现象,所以我们选取560仿真器,虽然价格偏高,不 过其可以完全满足系统对仿真速度的要求。它具有在线调试和监测DM6446CPU的工作 状态的功能,可将系统的片内寄存器和寻址空间内的内容实时的读取出来,方便我们实 时的对程序进行监控,从而进行相应操作。



长安大学硕士学位论文

图2.2 (2)CCS

XDS560PLUS仿真器实物图



CCS是德州仪器专门针对DSP而设计的高效集成开发环境,它将开发DSP端的应 用程序所需要的工具都集成在一起。程序中所需要的库文件就是利用CCS将算法进行 编辑和编译生成的。 (3)Sourcelnsight编辑器
≯。

Sourcelnsight是一个面向项目开发的程序编辑器和代码浏览器,它提供了可快速访 问源代码和源信息的功能,在读写比较大的程序或者进行嵌入式系统的开发时,相互之 间的定义、引用等非常频繁,使用此软件可以快速的找清楚它们之间的关系,一目了然, 非常的方便快捷。 (4)Winodws超级终端 在超级终端方面我们采用了Windows自带的超级终端,非常简单实用。它可通过串 口监视实验板上程序的运行,我们可以通过键盘操作,并将命令通过串口发送给实验板, 并且可以实时的将系统运行的情况打印出来,人机交换的效果非常好。
(5)RedHat

Linux交叉编译器

交叉编译【lll是在嵌入式ARM开发过程中采用的一项技术,在嵌入式系统中运行的 程序代码不是由嵌入式系统本身生成,而是由另一台机器编译生成。产生交叉编译的原



第二章开发环境介绍

因是,嵌入式目标系统大多硬件配置比较低,编译所需要的硬件资源无法得到满足,所 以工程师们一般将编译工作放在性能比较高的主机中来做,编译完成之后,再将编译好 的文件下载到目标机中。主机上所建立的交叉编译环境主要由编译器、连接器和解释器 组成。 Linux下的交叉编译环境由以下几个部分组成: 1、针对嵌入式系统的编译器gcc: 2、针对嵌入式系统的二进制工具binutils: 3、嵌入式系统所需的标准c库glibc; 4、嵌入式系统的linux内核头文件。

2.3系统集成
此系统的开发*台相对来说对计算机的硬件要求比较高,在配置较低的电脑上可能 会出现仿真速度过慢,或者硬件资源满足不了要求而无法运行的情况。开发环境主要分 为CCS和Linux,因为我们*常使用的电脑都是Windows操作系统,大家对Linux也不 是很熟悉,所以我们就采取了在Windows环境下安装一个虚拟机的方法,然后在虚拟机 里虚拟出来的环境中安装Linux,这样的话对硬件的要求也比较低,开发上手的难度也 比较小。当然,各部分必须经过编译调试整合之后才能正常工作。下面对系统集成中所 做的一些工作进行一下简要的介绍。 (1)算法库的编译【’21 我们采用德州仪器推出的CCS3.3集成编译工具对两个算法源代码进行改写编译, 在后续的算法编写过程中,主要也是运用CCS编写。利用CCS我们可以生成两个不同 的lib文件,然后在DSP端和ARM端运行的程序中对它们进行调用。 (2)DSP文件的编译 利用Linux环境下的DSP编译器将BIOS、CodeEngine和算法库进行整合编译,生 成DSP端的可执行文件?.x64P,否则单独的一个算法库文件是没法运行的。 (3)U-boot的编译 U.boot是Linux中的一个开源引导程序,在达芬奇*台中,官方将其打包成一个压 缩文件,在实际的运用中,通过运行Linux下的编译脚本就可以将根据需要改写之后的 U.boot进行重新编译。通过CCS可以将U.boot.bin文件烧写到系统的Nand Flash中, 烧写过程在下面有简单介绍。 (4)Linux内核的编译
10

长安大学硕士学位论文

通常情况下来说,内核不需要进行改动,但在面临某些特殊情况时需要对驱动进行 相应的修改,例如硬件设计的改动,这时候就需要重新将Linux内核I”I进行编译。不过 就目前本项目的进度和需要,还没有需要对内核进行编译,在此仅对其进行简单的介绍, 为后续的开发做准备。与U.boot的编译过程相类似,通过运行相应的脚本程序就可以 将ulmage文件编译好,然后用CCS将其烧写到系统的Nand Flash中。 (5)应用程序的编译 顾名思义,应用程序部分就是用户自己要实现的部分,根据要实现的功能编写相应 的程序,当然也要自己根据需要编写编译脚本。德州仪器公司为了使一部分用户更好的 入门,在达芬奇*台中提供了一些简单的demo程序,为我们提供了一个相对来说可以 借鉴的思路,我们可以根据需要修改里面的内容即可。当然,如果做到比较熟练的程度, 可以按照自己的思路编写具有新流程的程序。 (6)文件系统的裁剪 达芬奇*台随机附带的文件系统比较庞大,且提供的功能非常全面。但是在实际使
兽’

用中,所做出来的产品经常只是为实现某些特殊的功能,它不需要各个方面都很全面, 而且为了节省成本,硬件方面往往能省则省。所以,我们没必要用那么全面的文件系统, 这样的话,文件系统中暂时不需要的部分就可以去除掉,例如文件系统中体积最大的/usr 目录,在实际中可以对其进行裁剪,以节省出资源和提高效率。 (7)U.Boot、内核、文件系统的烧写 将U.Boot、内核、文件系统烧写进Flash,在开发的过程中使用的方法是利用常见 的JTAG方式进行烧写。在Linux环境下,我们配置好编译的选项,选择用交叉编译器 就可以将文件编译好,然后在CCS环境下就可以将其烧写到Nand Flash内核中。过程 比较简单,在这里不做过多的叙述。

第三章车道偏离预警系统中硬件系统的总体框架

第三章车道偏离预警系统中硬件系统的总体框架
本章主要讲述了嵌入式车道偏离预警系统的实现方案,在对系统的总体框架进行设 计的基础上,将系统的硬件构架和软件构件都进行了成功的开发,并且对系统需要实现 的功能在软硬件上进行了划分,详细介绍了软件系统的开发流程和硬件*台的搭建过 程,由此构建了一个完整的车道偏离预警系统的软硬件*台。

3.1视频图像处理系统的总体框架
本系统的目的是实现道路图像信息的处理,所以在系统的最前端,首要完成的任务 就是图像信息的采集。道路图像信息是通过CCD摄像头进行采集的,系统所选用的CCD 摄像头输出的是PAL制式的模拟信号,但是进行图像相关算法处理的图像必须是数字 信号,所以在将图像数据输入系统之前要先进行模数转换。进行完A/D转换的数据经过 视频解码之后,有一路信号被存入帧缓存中,然后由VGA显示器将其显示出来;同时 另外一路目标区域的信息被截取之后,进而用于接下来的图像处理,以供判断决策模块 参照。 我们将摄像头采集到的道路图像进行相关的图像处理,而滤波和边缘检测是其中不 可缺少的两个环节,经过这两个环节的处理,我们可以去除掉图像中的噪声干扰,还可 以将图像中我们感兴趣的部分强化出来,供决策机制在下一步的分析判定中引用。图像 滤波的主要作用是对道路图像进行滤波处理,因为在采集图像的过程中,由于设备和环 境因素的影响不可避免的会产生噪声,这部分噪声将会对我们的判定决策机制产生影 响。在对图像进行完滤波处理之后,再对道路图像进行边缘检测,将其中的道路标志线 检测出来,供接下来的标志线跟踪识别,以及决策判定之用。总体框图如图3.1所示。





傀额田像处壤模块





●●……-………●…………………………●●●
图3.1硬件系统的总体框架 3.1.1视频采集模块

在此模块中我们有两个问题需要解决:其一,摄像头的选择问题,因为不同的摄像
12

长安大学硕士学位论文

头的性能特性各不相同,对系统的性能有很大的影响;二是当道路信号采集到之后如何 对它进行A/D转换以及视频编码问题。 1.车用图像传感器的选择 (1)图像传感器的简要介绍 图像传感器是摄像头的重要组成部分,根据元件的不同,可以分为可分为CCD
(Charge Coupled

Device,电荷耦合元件)和CMOS(Complementary Metal-Oxide

Semiconductor,金属氧化物半导体元件)两大类,它们各自拥有不同的优缺点,应用在 不同的场合中。 (2)车用图像传感器的特殊要求 由于汽车运行环境和行驶条件的变化多端,车用图像传感器在某些性能方面面临苛 刻的要求。首先必须具有动态范围必须足够宽的特点,这样才能满足汽车运行环境亮度 变化大的要求;其次必须具有足够高的成像敏感度,这样才能在光线*档那榭鱿碌玫 有用的图像,不因采集图像的质量问题而影响系统的正常工作;再次必须具有较宽的频 谱范围,最好带有*红外线的效果,这样在夜间行驶的时候情况会好一些,效果也更理 想。 ①动态范围宽 动态范围表示图像中所包含的从“最暗"至“最亮”的范围。动态范围越大,所能 表现的层次越丰富,所包含的色彩空间也越广。假使图像传感器的动态范围宽度比较小 的话,那么系统的判定决策部分将得不到判定所需要的足够精细的图像细节,比较通俗 的说就是照的太模糊了。在传感器动态范围比较大的话,即使它的运行环境很暗,也能 够采集到足够的判断所需的细节,而且在某些光线比较强的地方,还能避免饱和现象的 发生,不因此情况而丢失掉目标。 ②成像灵敏度高 在同等光线强度的环境下,传感器的灵敏度越高,采集图像所需的光线就越少。需 要的光线越少的话,它面对不同环境时就具有更好的灵活性和适应性,所以通常情况下 我们要求传感器的灵敏度越高越好,不过,如果灵敏度越高的话,成本也会相应的增加, 这就需要我们合理的选择。当然,我们可以采用安放放大器或者提高输出的光信号的放 大倍数来增强效果。但这样存在另外一个问题,在放大有效信息的同时,图像里所包含 的噪声干扰也相应的增强了。通常情况下,我们为提高灵敏度,可利用以下措施:提高 采集效率、降低电磁干扰、提高像素单元的填充系数、降低暗电流的大小等等。当然,

13

第三章车道偏离预警系统中硬件系统的总体框架

每种方法都有它不同的实现措施,在这里不做过多的介绍。 (3)CMOS和CCD摄像头的选择 CCD与CMOS传感器是被普遍采用的两种图像传感器,两者都是利用感光二极管 进行光电转换,将图像转换为数字数据,而其主要差异是数字数据传送的方式不同。而 由于数字数据传输的方式不同,造成了它们在效能与应用和存在很多差异。首先是灵敏 度的差异,CMOS传感器的灵敏度要低于CCD传感器。其次,由于COMS传感器采用 一般半导体电路最常用的CMOS工艺,可以轻易的将周边电路集成到传感器芯片中, 因此可以节省外围芯片的成本,而且它的成品率比CCD传感器要高很多。但是,因为 原理上的差别,CMOS传感器的噪声注定会比CCD传感器增加很多,从而影响图像品 质。在功耗方面的差异,CCD的发热量比CMOS大,功耗大。 综合所示,CMOS传感器具有低成本、低功耗、以及高整合度的优点,但是CCD 传感器在灵敏度、分辨率、噪声控制方面都优于CMOS传感器。相对来说,CCD摄像 头更适合我们的要求,所以我们在此系统中采用CCD摄像头做为采集道路图像信息的 工具,如图3.2所示:

图3.2

CCD摄像头实物图

2.模拟图像的A/D转换与解码 在本方案中我们选用的CCD摄像头输出的信号是模拟信号,而我们进行图像处理 的必须为数字信号,这样才能进行相关的后期运算。所以我们必须首先将采集到的信号
14

长安大学硕士学位论文

经过A/D转换芯片,这样就可以将其转换为数字信号,然后才能传送给主处理系统。我 们采用了德州仪器推出的TVP5150PBS作为我们的视频编解码芯片。它支持NTSC、 PAL、SECAM等模拟视频信号输入,输入信号按照YcbCr的格式转换为数字信号,在 系统的设计过程中,我们采用了两片TVP5150PBS,每片只使用1路的复合视频信号, 所以系统理论上能支持两路模拟视频的输入和处理。 DM6446与TvP5150PBS的连接如图3.3所示:

TM¥3洲Tv艿I,oA
Y—帅CCD—k7I
HD





V∞—Dh订



Il样∞


C FlELD

I●



V獬
rlD



PCU‘

—I

CU‘

图3.3

TVP5150与DM6446连接示意图

我们进行视频采集处理的一个大概的流程是这样子的:通过CCD摄像头,我们将 采集到的道路图像信息输入到系统中,然后经过TVP5150PBS的转化,将其转变为数字 信号之后,可以依据标准将其解码为4:2:2的视频流,解码之后的视频流会通过转换交 、’ 为4:4:0格式,最后再将它的颜色空间从YUV转换为VGA适用的RGB。 3.1.2视频图像处理模块 视频图像处理的过程:通过CCD摄像头采集到的道路图像,根据程序中设定好的 时间,自动截取到的图像被存入SDRAM之中。当截取到的图像稳定静止时,程序会自 动读取SDRAM中包含的信息,紧接着利用图像处理算法对其进行运算处理。首先要进 行多次滤波,将图像中的噪声和干扰去除掉,然后对图像进行边缘检测和运动检测等其 它算法,最终能突出图像中感兴趣的部分,然后在下一步的处理中调用它们。 3.1.3视频显示模块 在我们的系统中,经过处理的视频信号通过主芯片片内的四路10位的DAC输出, 然后通过显示屏显示出来,在实验阶段,因为受到实验成本的限制,我们采用的是 GADMEI(佳的美)液晶彩色显示器做为我们的最终显示终端,它基本符合我们的实验

15

第三章车道偏离预警系统中硬件系统的总体框架

要求,主要参数性能如下所示: 1)采用宽视角TFT技术,画质生动细腻; 2)支持常见的PAL、NTSC、SECAM等图像制式的输出; 3)显示器在硬件上支持显示图像的翻转,从而适应各种不同的显示需求情况。 显示器的主要技术参数如下所示: 1)电源功耗:DC:12V-一850mA; 2)视频接收制式:PAI—-D依、I、B/G;PAL…M/N NTSC…M;PAL+SECAM—D/l<、
I、B/G:

3)接收频率范围:47~870MHZ;

图3.4彩色液晶显示器实物图

3.2软硬件功能实现的划分
如果做过51、AVR单片机等的开发的话,就容易知道,在传统的开发过程中,软 件和硬件的设计开发往往是由不同的工程师分开来做的,他们之间往往缺乏有效的管理 和沟通。而随着硬件系统的快速发展,高性能芯片的层出不穷,软件和硬件在系统中所 分别占用的功能和它们之间的联系就显的尤为重要,而软硬件协同设计正是对此而提出 的有效解决思路。 软硬件功能的划分在我们的工作中是非常重要的第一步,它往往牵扯到系统的分工 和工作的进展以及系统的执行效率等等问题。众所周知,如果某项命令用硬件执行,则

16

长安大学硕士学位论文

需要占用一定的逻辑单元和硬件执行时间;而如果用软件执行,则会占用相应的存储器 容量和处理器运行时间。软硬件划分就是在硬件资源占用和时间耗费上做一个合理的* 衡,力求使系统的性能和资源达到最佳的*衡和最好的效果。 经过相关的研究可知,实时图像处理系统必须达到每秒25帧以上的速率才能被人 眼认为是实时的,我们系统的性能满足这方面的要求,所以我们将道路图像的采集和显 示放在硬件端来做;大量的实时道路图像需要处理,为了更加合理的分配系统的资源和 取得比较好的效果,我们采用的方法为软硬件相结合;而道路有效信息的提取和检测工 作,由于涉及到的计算量相对较小,我们在软件端来实现这部分内容。

3.3系统的硬件架构
本系统所采用的硬件电路*台主要是以DM6446处理器芯片为核心,以外围扩展电 路为补充整合而成,整个系统采用12V的直流电供电,在实验过程中,我们采用外部电 源将220V交流转换为12V直流电。系统的原理框图如图3.5所示。

图3.5系统原理框图

3.3.1系统的片外构架 主要包括NandFlash单元、SD卡接口单元、DDR2单元、视频输入输出单元、电* 转换单元、ATA硬盘接口和串口单元。 (1)NandFlash单元114】 我们选用容量为64M大小的NandFlash作为系统的NV(可编程非易失)存储器。 它具有容量大,成本低,烧写速度快,性能稳定,可烧写次数多等特点。NandFlash主
17

第三章车道偏离预警系统中硬件系统的总体框架

要用于根文件系统和内核文件的存储。DM6446中的ARM处理器支持系统从NandFlash 的以片选方式启动,但于此同时,应该屏蔽掉系统从硬盘启动的功能。这项功能在系统 的程序调试过程中显的非常的方便实用,但在我们实际使用过程中,出现过NandFlash 损坏而无法烧写的情况,希望能引起后人的注意。
(2)DDR2

SDRAM存储器

实验板上选用两片32M*1 6bit的DDR2 SDRAM并联来实现大容量同步动态随机存 储器(128MB,32Meg*32Bit)。DDR2 SDRAM被映射到DM6446的DDR存储空间, 工作频率为100MHz,支持8/16/32位访问,DDR2总线利用内部PLL主频高达166MHz, 双边情况下可达325MHz,其刷新由达芬奇芯片自动实现。该存储空间主要用于程序、 数据和视频的存储。 (3)电*转换电路【”1 系统的电源选择的是220V交流电,主要是为了系统调试,程序编写的方便,在电 *转换电路中,我们将220V电源转化为12V、5V电源,最后再根据不同芯片的需求, 进行第二次转换,提供1.2V、1.8V和3.3V三种电*,分别供给不同的芯片。 (4)串口单元【161 对于嵌入式*台来说,不论是51、DSP、ARM,RS232接口是个必不可少的接口, 虽然比较简单,但是具有效率高、通讯方式简单可靠等优点,在现在的嵌入式系统中还 是不可或缺的一种通讯端口。当然硬件外形可以做成9针、USB或网口等样子,但是它 们的根本作用都是与PC机的串口连接通讯,从而实现程序的调试、下载以及监控的作
用。

3.3.2系统的片内架构 主要由DSP子系统、ARM子系统、视频处理子系统(VPSS)、视频影像协处理器 (VICP)以及外设组成。 (1)DSP子系统集成了德州仪器主频高达594MHz的高性能C64x+DSP内核,在系 统中它主要的工作是对图像数据进行运算处理,它是C6000系列的DSP*台中性能最 高的定点处理器,而且它的构架是建立在德州仪器开发的第二代VLIW构架的增强版之 上,性能稳定,可以出色的完成关于视频处理的任务。 (2)ARM子系统采用的是采用管道化流水线技术的32位的精简指令集处理器 ARM926EJ.S,它主要负责中断的处理,各种系统资源的协调以及对整个芯片的控制, 虽然它的性能在ARM体系中不是最先进的,但就目前来看,已足以满足我们的要求。

18

长安大学硕士学位论文

(3)视频处理子系统由视频前端处理和视频后端处理两部分组成,分别应用于外部 采集图像的输入和视频图像处理结果的输出。 3.3.3视频处理子系统 DM6446的视频处理子系统包含了VPFE和VPBE,其中VPFE即为视频前端处理, 用于外部图像输入设备;VPBE为视频后端处理,用于视频输出设备。为了满足系统的 要求,系统利用VPFE扩展了两路CVBS标准模拟视频采集通道:利用VPBE扩展了支 持一路CVBS视频输出和VGA视频输出。

CM0¥fCCD
or v|aeO decoder

Anabgdata
fDACSl DigtaJ

d柏

(LCO)

图3.6视频处理子系统结构框图
(1)VPFEtl71

视频前端处理由CCD控制器,预览器,图像缩放模块,硬件自动白*衡、自动对 焦、自动曝光装置和柱状图模块等组成。它的作用是可以对我们通过CCD摄像头采集 进来的图像信息进行我们所需要的初步操作,为图像处理程序的实现做初步的准备。
(2)VPBE[18】

视频编码器和OSD模块组成了视频后端处理。其中视频编码器的作用是产生模拟 的视频输出,OSD模块的主要作用是在硬件上实现视频数据与数据字符相叠加,然后以 YCbCr格式传送给VENC进行编码输出。这项功能在进行算法调试的时候可以通过OSD 模块实时显示出当前正在运行的算法,比较方便。且在以后做出的产品上,可以通过 OSD模块显示一些实时的数据供驾驶员读取,有利于安全行车。

19

第三章车道偏离预警系统中硬件系统的总体框架

3.4软件构架
软件系统由ARM子系统和DSP子系统两部分组成,本节主要介绍基于Linux下的 ARM端开发和基于CCS的DSP端程序编写工作。 在我们的系统中,DSP的任务主要是进行有关图像的处理,也就是说图像的算法部 分主要是放在DSP端来做;而ARM端,我们主要将系统外设的控制,其他用户端程序 以及中断的一些处理,例如车速信号、天气信号、道路信号以及系统硬件之间的协调放 在其中去做,所以我们的开发也可以分为两部分。 3.4.1软件的组成 如图3.7所示,此为软件系统的组成,整个软件构架由ARM端软件和DSP端软件 两大部分构成。ARM软件包括了Motabista-Linux内核、底层设备的相关驱动和应用软 件三大部分。其中,内核中包含了Code Engine单元,它的功能是负责和DSP端进行通 讯。应用软件部分则包含一些算法调用模块、网络模块、主控模块等。DSP软件则主要 负责算法部分,包括图像*滑算法、边缘检测算法和BIOS操作系统等,其中的BIOS 内部包括了DSPLINK单元,它主要是用来做双核通信的,由它来和ARM端的CE进行 通讯。
?‘‘。‘‘。。‘‘。。。。‘‘‘。‘‘‘‘‘‘‘’。。。。‘。‘。。。‘。‘。。‘‘’。。‘。’‘‘。‘’。。●

:l塔I'



:A期

图3.7软件系统框图

首先,算法部分,一般是基于DSP采用CCS软件开发,适合C6000系列的DSP版 本为CCS3.3,我们在CCS中将我们的算法经过编译可以生成一个符合Xdm标准的编解

20

长安大学硕士学位论文

码算法的库文件?.1ib,然后将对应的库函数和出口函数封装在一起。当然,如果我们的 算法不符合Xdm标准的话,就需要自己另外创建自己的Stub和Skeleton。然后再生成 一个在DSP端上运行的可执行程序幸.x64P(即.out文件),也就是DSP Server。再次, 我们再根据生成的DSP Server的名字以及其中包含的具体的音视频编解码算法创建
Codec

Engine的配置文件?.cfg,这个文件会根据CE的不同而有不同的配置,例如CE

的名字、每个CE里包含的程序以及每个程序是运行在ARM端还是DSP端,都会有对 应的不同配置。最后,我们将不同的codec包、DSP Server和CE配置文件?.cfg,再加 上自己开发的应用程序,通过编译、链接,最终生成ARM侧可执行文件。最后,将生 成的可执行文件复制到NFS文件系统中,将系统设置为从NFS根文件系统启动,启动 系统后,登陆系统,进入可执行文件所在的目录,加载完相应的配置文件之后,执行应 用程序就可以了。 3.4.2软件系统的开发流程 下面简要介绍一下软件系统的开发流程 1.工具链概述 DM6446的双核架构使得系统的开发流程相对与单核的DSP或者ARM处理器来说 麻烦了很多,一个合理的开发流程、一个工具链的构建和维护、一个团结的团队,这些。 都齐全了之后,在开发自己的产品、算法的时候,才会显的比较得心应手。 因为刚开始的时候我们设计的车道偏离预警系统是基于DM642,后来发现DSP的 主频不够高,处理过程中发现满足不了要求,后来过渡到DM6446之后,发现有很多的 问题需要解决,例如系统的构架方面就有天壤之别。 从本质上来说,DM642是单核的DSP芯片,系统上的所有的资源都是它的内核独 自享用,没有别的器件和它分享,更牵扯不到系统资源的共享问题,所以在开发的过程 中相对来说就比较简单。 而DM6446则与此不同,它的DSP+ARM的架构使得将面对系统资源的分配使用这 一麻烦问题,两个内核处理器之间要进行合理的通信,才能避免对同一硬件资源进行操 作。两个内核之间通信的原理类似于两个线程之间的通信,一般是通过共享缓存,信号 量,互斥量,邮箱等资源实现的,对此,德州仪器设计出具有创新性CodecEngine。其 本质上是一个框架,不论是DSP内核还是ARM内核,甚至是双核,都可以作为这个框 架的底层,框架的上层软件一般是算法和应用程序,在运行过程中,应用程序通过CE
的API(Application Programming Interface,应用程序编程接口)来调用算法,至于算法
曩.

21

第三章车道偏离预警系统中硬件系统的总体框架

是在DSP端上运行还是在ARM端运行,应用程序是完全不知道的,通过CE屏蔽掉了, 这一点上看,有点类似于黑箱的原理。其实这个过程就是采用了RPC原理(Remote
Procedure Call

Protocol,远程调用协议),

在软件开发的过程中采用CE的好处是,基

于其开发的软件能方便的移植到不同架构的达芬奇处理器上而不需太大的改动,因为德 州仪器为此推出了xDM标准来保证应用软件和算法之间的兼容性。 CE里包含一些组件,我们称之为package,在软件开发过程中需要对其进行了解, 接下来对其进行简约的介绍: DSPLink:主要任务是做应用软件和算法之间的信令通信,DSPLink的package里 内含很多小模块,我们可以根据自己的需要运行脚本进行配置,然后再重新编译出需要 的dsplink.ko做为Linux模块加载的驱动,从而适应不同的要求; CMEM:主要任务是做共享内存的分配工作,因为应用程序的运行环境是在
Motavista Linux上,在应用程序里malloc(向系统申请分配指定size个字节的内存空间)

到的bu仃er都是虚拟地址,而在实际上可能是间断的物理空间,当把这个指针传递给算 法的时候会出现问题,因为算法是运行在DSP/BIOS上的,它只有物理地址,所以在共 享缓存动态申请空间的时候,一般采用CMEM提供的API来解决这个问题; XDCTools:是一个最核心的组件,任何的编译行为都是通过xdctools来解释脚本内 容调用各种编译器来完成的,xDC根据一套build指令build生成可执行文件。xDC同 时也会build依赖文件,并且可以一次build多个目标对象的可执行文件。xDC的源文件 可以是C程序、C++程序、汇编程序和库文件等。

图3.8

xI)C原理图

CGTools:DSP的交叉编译器,在这里不做过多的介绍; DSPBios:使用CE一定要用DSPBios,毕竟那是德州仪器官方推出的,效率也经 过优化,个人感觉效果还是不错的,上手的难度也不算很大。不过也曾有人自己抛弃了 Bios和CE,自己做双核通信,说是因为Bios效率低,个人觉得那样会导致研发过程的

长安大学硕士学位论文

冗长,而且自己开发的也不见得会更好。 2.达芬奇工具链的建立 工具链是指的是在Linux下程序的编译环境。在试验过程中主要是通过采用德州仪 器提供的资料中的videnc_copy工程将CCS下调试好的程序进行封装并生成 videnc_copy.a64P,再通过video_copy工程把videnc_copy.a64P封装成a11.x64P。最后再 通过前文所述的过程调用a11.x64P,编译成我们所需要的配置文件。 3.ARM端开发环境的建立 1)对于达芬奇*台来说,德州仪器公司在推出这款产品时为了充分发挥双核的效 用,在硬件资源上给予了其充足的支持;为了满足音视频开发的需求,在DSP端采用 DSP/BIOS支持算法的运行;对于系统外设,运行在ARM端的MontaVista Linux可以完 成对其的管理。而用Code Engine和Codec

Server来管理ARM端和DSP端的数据交换。


2)基于达芬奇*台的开发流程分为codec和应用程序两大部分。在开发之前需要 将相应的软硬件开发环境建立起来。硬件环境主要包括:达芬奇开发*台(含DM6446的 DSP和ARM的双核芯片以及外设)、LCD显示器、CCD摄像头、串口线、JTAG仿真 器。在选择ARM端软件开发环境的时候主要考虑Linux的版本问题,不同的Linux版 本之间在兼容性上可能有所不同。环境搭建好之后的第一步工作是对Linux主机进行配 置,选择合适的服务。在嵌入式系统的开发流程中,初始化硬件的工作需要一个 bootloader,系统启动时的相关配置可以通过编译bootloader时来确定。启动bootloader 之后,通过tftp服务将Linux内核镜像文件下载到内存,最后利用NFS服务将位于Linux 主机上的目标文件系统启动,而且网络之间相互通讯所需要的IP地址可以通过DHCP 设置,通过这些配置,基于IP的开发的准备工作就完成了。接下来简单介绍一下开发 环境中相应模块的有关设置。 3)TFTP服务器的配置:
TFTP(Trivial File Transfer




Protocol,简单文件传输协议)是TCP/IP协议族中的一个

用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传 输服务。 首先要检查Linux开发环境是否已安装TFTP服务,通过如下命令检查: ¥rpm-qalgrep
tftp一0.32.4

tftp

第三章车道偏离预警系统中硬件系统的总体框架

mp-server-O.32-4

若没有安装,则需从Linux安装盘重新用rpm安装TFTP相关模块,并打开TFllP 服务。不过现在的Linux版本基本都带有此服务。 4)配置NFS服务器: NFS服务是指不同的电脑通过网络共享文件的方法,可以将其看成是一种文件系统 的格式,Linux既不仅可以作为NFS服务器也可以作为NFS客户端,简要的说就是它 不仅可以把自身的文件系统导出给其他系统,也能将其他机器上的文件系统导入。在开 发过程中采用NFS服务主要是用来把主机Linux上的MV Linux映射到实验板上去,这 样实验板就能在本身不带有文件系统的情况下,运行各种程序。 5)配置DHCP服务器: 配Linux主机和实验板的IP地址,只有在配置好各自的IP之后才能进行网络通信。 设置的过程比较简单,使用命令直接设置就可以,在这里不做过多的叙述。 6)bootloader的烧写: Bootloader是嵌入式系统的操作系统运行所必不可少的一部分,它是在内核运行之 前运行,主要功能是对硬件设备进行初始化、建立内存空间的映射表,对嵌入式系统的 软硬件环境进行初始化设置,只有这样才能准备好正确的环境,为最终调用操作系统内 核做准备,烧写前要做如下工作: 软件部分:u-boot.bin;文件falshwriter.out;CCS软件。 硬件部分:达芬奇实验板;JTAG仿真器;RS232串口线;准备好上述软硬环境后, 即可以开始烧写了,烧写的软件我们采用CCS,烧写过程很简单,烧写过程中可能会出 现烧写错误的情况,多烧写几次就好了。 7)设置实验板的启动参数 我们通过超级终端观察实验板的运行情况,然后把实验板*簦*糁蠼氲缴 置环境中,在命令行中输入如下命令:#setenv
bootargs mem=60M console寸t)rSO,

115200n8 root=/dev/nfs noinitrd n)l,ip=dhcp nfsroot=192.168.253.210:/opt/nfs video=dm64

xxfb:outpu唧al,当然,参数的设置可以根据我们的需要而改变。当设置完实验板的启
动参数,然后再*艟涂梢粤恕 到此为止,我们ARM端的初步开发环境建立起来了,我们接下来就可以在这个环 境的基础上开发我们的程序了。 4.DSP端开发环境的建立

24

长安大学硕七学位论文

在前面只是建立了达芬奇*台的开发环境,只能进行ARM端程序的开发,在进行 DSP端的算法开发之前就还需要安装DM6446SDK开发套件,套件包含如下内容:
●Monta Vista
Linux Profession Edition

v4:相对于德州仪器发布的montavista

linux demo

版本来说,这个版本功能要全面的多;
●DSP/BIOS for

linux:DSP/BIOS为一个可升级的实时DSP内核,相对于window版本

来说,Linux版本不包含相应的图形分析工具;
●TI Codegen Tools for ●Framework

linux:一些与DSP相关的编译、连接工具;

Components:主要是用来支持DSP端算法开发的一些模块,能够管理符合

xDAIS标准的算法模块,分配内存和DMA资源。这些模块是被CE来使用的,但如果 有必要在DSP端程序也可以使用; ●CCS:运行在windowsXP上的高效集成开发环境,用来开发基于DSP的应用程序和 相关算法; 有了以上相关套件,就可以构建DSP端的相关开发组建,其中Codec
Engine Romote

Server运行在DSP/BIOS上,而在RS中封装了相关算法,在算法的封装中要用到一些 xDAIS的框架组件。DSP和GPP之间的通讯由DSP/BIOS Link来完成。 (1)DVSDK的安装与配置 具体的安装过程在下面会详细介绍。
(2)XDC(Express
DSP

Component)的配置

XDC的作用是用来编译和打包,它能够构建实时软件组件包RTSC(Real Time
Software

Component)。它能够像其他编译工具一样将源文件和库文件编译生成可执行文

件。它额外的特性在于能够自动的进行性能优化和版本控制。XDC还能够根据所提供 的配置脚本语言产生代码,这一特性在编译如编解码器、服务器和引擎等可执行程序时 尤为重要。 XDC的调用语法格式在参数过多时可能会很复杂,所以通常情况下我们把它写成 shell脚本来运行,这样会大大方便我们的工作。 5.达芬奇编解码引擎 达芬奇*台是DSP和ARM双核架构的SOC芯片。对芯片与外界的交互通过ARM
端的Montavista Linux和相关驱动与应用程序来管理,DSP端只处理编解码相关的算法。

DSP和ARM之间的通讯和交互是通过引擎(Engine)和服务器(Server)来完成的。 核心引擎API,从应用和本质上来说,CE其实是一组API的集合,它的主要功能

25

第三章车道偏离预警系统中硬件系统的总体框架

是调用xDAIS算法,实例化和调用xDAIS算法都能通过这些API实现。应用程序和 xDAIS算法相交互主要依靠达芬奇系统提供的VISA接口来实现。在这个过程中有一点 要明白,对算法的接口调用是不会变的,它不会因为算法是运行在ARM端还是DSP端 而改变,也不会因为硬件体系是只有ARM或是只有DSP或两者都有而改变,对操作系 统也同样如此,不因操作系统是Linux、VxWorks、DSP/BIOS,还是WinCE而有所改变。 它的这个特征在编写引擎的配置文件?.cfg时就可以注意到,而且决定自己的程序是运行 在哪一端是可以自己在配置文件里设定的。 CE包括核心引擎API和VISA API,核心引擎API相关接口模块为:初始化模块 (CERuntime_)、CE运行时模块(Engine_)、抽象层内存模块(Memory_);VISA API的接口 模块常用的有:视频编码接口(VIDENCx-)、视频解码接El(VIDDECx-)、音频编码接口 (AUDENCx-)、音频解码接IEI(AUDDECx),各模块分别包含在对应的头文件中。 应用程序必须使用CE的核心引擎的三个相关模块去打开和关闭编解码引擎的实 例。需要注意的是引擎的句柄是非线程保护的,对单独使用CE的每个线程来说,必须 执行Engine nepo.问访的序顺以可也,说来用应程线多对而柄句擎引的己自好理管并

一个共享的引擎实例,我们目前采用的就是后者,只定义了一个引擎句柄,多个解码器 共用。编解码引擎同时还提供相关的API用以访问系统的内存使用状况和CPU的负载 信息。 我们通过调用Codcc Engine的API来调用和运行符合xDAIS的算法。在Davinci 软件中,符合xDAIS的音视频编解码算法(即xDM算法)的调用是通过Codec Engine的
VISA

API完成的。Codec Engine通过这套API为算法的执行提供了一个标准的软件架

构和接口,体现在以下几个方面: (至)CodecEngine API调用的算法可以运行在本地(ARM端)或远端(DSP端); @)Codec

Engine的运行环境可以是ARM+DSP、DSP或者删;

③不论Codec Engine的运行环境是ARM还是DSP,所对应的Codec Engine API是 一致的,不因运行环境的改变而改变; QCodec Engine的API与操作系统无关。不因操作系统是Linux、VxWorks或WinCE 而有所不同。
Codec

Engine是介于应用程序和具体算法之间的软件模块,其中的VISA API通过

stub和skeleton访问Engine SPI最终调用具体的算法。因此,Codec Engine的工作是通 过完成VISA API的任务来体现的。VISA APl分为四部分VISA
create/control/process

长安大学硕七学位论文

/delete,我们以codec算法运行在DSP为例,简要叙述VISA API的执行过程,从而了
解Codec Engine的工作原理。

在调用VISA API之前需要在应用程序中通过Engine_open()这_Engine API把DSP 的可执行程序加载到DSP的memory,同时把DSP从复位状态释放,这时DSP开始运 行DSP Server的初始化程序在DSP端创建一个优先级最低的任务RMS(Remote
Management Server),RMS负责管理和维护对应到具体codec算法的Instances。如下图

所示,应用程序调用VISA table中查到这个codec
Abstraction Layer)、DSP

create

API,相应的VISA create函数到Engine SPI中的Codec
System

行在远端DSP侧。接着Engine SPI通过OSAL(Operating

Link把VISA create的命令传到DSP侧的RMS。RMS通过DSP

侧Engine SPI的codec table找到要调用的codec算法后,就会在RMS中创建一个相应 的Instance(且O一个DSP/BIOS系统中的任务)。VISA create会返回一个Instance的 Handle,以便于给这个Instance做后续的VISA control/process/delete提供信息。VISA
delete和VISA create原理类似,只是RMS删除掉相应的codec算法的Instance和执行

codec算法的任务。

@ ¨洲二描蠹


、I—…一7
APP xDM



1(。1I
f弓【曩

~一

x0M

Ljn呱

……一~….◆..

——…1哥擘~J

?=_Y翼■SPL
OSAL

SPI瓜
l:

0SJ

L.

}凸sP链接;●;。rf

DsP氍拉

DSP BlOS

图3.9双核通信流程图

概括来说,VISA control用来动态的修改codec instance的属性,VISA process用来 对算法的输入数据流做处理并返回一个输出数据流。应用程序在调用VISA
process/control时会通过xDM Stub把传递给codec算法的参数收集起来,并且转换成

DSP可以识别的物理地址。Stub把这些参数和相关的命令通过Engine SPI、OSAL和DSP Link传递到DSP侧的Instance。Instance再通过Skeleton把传递过来的参数和命令解析 出来,通过DSP侧VISA control/process对codec算法执行control/process。 6.达芬奇编解码服务器

27

第三章车道偏离预警系统中硬件系统的总体框架

从本质上分析,编解码服务器(Codec Server--CS)其实就是一个二进制文件,它将 编解码器,框架组件以及一些系统代码集成在一起,当其在DSP上运行时,它将DSP/ BIOS作为它的内核。CS可以代表导入到DSP上的镜像文件、实际的硬件设备及运行 中的任务,可通过如下两个步骤对其进行配置: 1)通过TC*疟居镅耘渲茫模樱校拢桑希樱 2)通过XDC配置剩下的组件,比女H:FC组件、DSP/BIOS
Link、Codec

Engine等。

配置完成的服务器镜像文件是在引擎配置文件(ceapp.cfg)中使用的,如
demoEngine.server=”./encodeCombo.x64P”:

●编译一个编解码服务器 CS镜像文件的创建过程是通过XDC工具来完成的,CS在创建时需要编写一个 main.c文件以及相应的BIOS配置脚本.tcf文件。 tcf:其作用主要是对DSP/BIOS内核进行配置,例如:定义DSP的内存映射,设置 DSP的中断向量表,创建和初始化其他DSP/BIOS数据对象等。 main.c.在算法实现XDM接口的条件下,需要编写main.C对CE进行初始化,初始 化之后,采用其他配置脚本就可以创建一个服务器镜像文件?.x64P。在main.c里面除了
调用CERuntime

初始化 CE 外,就是对于 trace 0tini.课本在,理处和化始初的数函关相

题的研究过程中,还没有对其做深入探讨。另外有需要注意的是,在实验过程中我们发 现,在这里可以利用函数代码的方式来实现对cache的重新配置,因为在tcf文件里面 对cache的配置可能会不起作用,具体原理还未知。 7.引擎CE与服务器CS的工作原理 编解码引擎CE和服务器CS之间的关系可以比作客户机和应用服务器之间的关系, 本质上是在双核上远程调用思想的体现。 1)远过程调用(RPC)的工作原理 远过程调用最早是用在C/S架构上进行互操作的一种机制,是OS中进程间通讯在 网络环境中的延伸应用。其目的是使得应用程序在调用另一个远程应用程序(在另外一 个节点上,或本节点上的另一个进程中)时,采用与本地调用相同的调用方式,就像本 地进行的调用过程一样,其过程如下:

①客户按本地调用的方式,直接调用本地的客户指代(stub),客户指代具有与服务器
相同的过程接口;

②客户指代不进行任何逻辑处理,只是一个中介,因此它仅将客户的调用请求进行

长安大学硕士学位论文

加工、打包,向低层通讯机制发出请求信息; ⑨客户端通过低层通讯机*⒋透衿鞫说耐ㄑ痘疲 ④由于一个服务器节点上可能运行多个服务器程序,因此服务器端需要部分的解析 消息,找出客户希望调用的服务器程序; ⑤服务器骨架(skeleton)对消息进行解析,从中获得调用者的参数,然后调用服务器 程序; ⑥服务器程序执行相应的过程; (上面没有标出这一操作,其余步骤以此类推);

⑦服务器程序将结果返回给服务器骨架; ⑨服务器骨架将结果打包,向低层通信机制发出应答消息; ⑨服务器端通讯机*⒋透突Ф送ㄐ呕疲 ⑩由于一个客户端节点上也可能有多个调用点,因此通信机制需要部分的解析返回 的消息,找出消息应该返回给哪个应用程序,并将消息发送给对应的客户指代; 客户指代从消息中解析出结果,返回给客户程序。 2)RPC过程中客户指代的主要工作包括: ①建立客户与服务器之间的连接; ②将客户的高层调用用语句打包为一条低层的请求消息(RPC的编排),然后向服 务器发出请求信息; ③等到服务器返回应答消息; ④接收来自服务器的应答消息,并将来自低层的应答消息解析为可以返回的数据 (RPC的还原); ⑤将返回值传送给客户指代。对应服务器骨架也包含上述类似的功能。 3)引擎与服务器的通讯框架 在系统的ARM端,采集到的原始图像信号会被应用程序通过VISA接口调用相关 的Codec存根函数,然后由存根函数调用相对应的Engine API函数,也就是SPI(service
provider

interface)接El,理论上是如此的。但在实际的处理中,Codec算法在远端(DSP

端)运行,我们必须通过引擎把道路图像信号进行封装,然后通过操作系统的抽象层与 DSPLink之间进行通讯,将打包之后的数据发送到DSP端。 DSP端收到发送来的数据之后,数据被服务器上运行的的算法实例(codec)所接 收,但因为数据在发送之前被打包封装过,而无法直接对其进行操作,所以DSP端接 收到数据之后必须首先由服务器骨架对数据进行解析,分析得到相关的VISA接口参数

29

第三章车道偏离预警系统中硬件系统的总体框架

之后,然后才能调用xDM Codec实例,处理结束之后,处理结果的返回与之前的过程 相逆。在整个处理的过程中,ARM端被看为是客户机,DSP端被看为是服务器,服务 器骨架是service,服务器上的应用程序为codee。 3.4.3软硬件*台搭建过程 ARM端的开发是基于Linux或WinCE操作系统,所以在开发之初,我们需要搭建 操作系统服务器。个人觉得因为Linux具有免费和极强的灵活性等优点,所以本课题选 用Linux*台来开发ARM端的程序:而DSP端的开发编译环境为CCS3.3,它是德州 仪器公司推出的专门针对DSP的高效开发编译环境,在WindowsXP操作系统下安装即 可。在本节中我们对其两个开发*台的搭建配置进行详细的介绍。 一.Linux开发环境的搭建 Linux端的开发环境通常包括Linux服务器、Windows工作台以及6446实验板*台, 经过网络系统的搭建之后三者处于同一局域网内,如图3.10所示:

图3.10

Linux开发环境示意图

Linux开发环境的搭建包括建立Linux开发主机以及配置串口终端两项工作。 1.Linux开发主机的建立 1)Linux操作系统的安装 作为一个开源的操作系统,Linux系统拥有很多不同的版本,本系统选用的是Red
Hat Enterprise Linux

v4版本,该版本使用者比较多,相对来说比较成熟,且使用方便上

手难度小,与6446实验板所配备的开发套件完全兼容。 至于Linux系统在PC机端的安装,因为我们大多数人所常用的都是Windows操作 系统,对其它的操作系统不是很熟悉。且因为实验条件的限制,很多情况下找一台单独 的机器做成Linux系统比较难,所以通常我们都是在Windows操作环境下,安装虚拟机

30

长安大学硕士学位论文

软件,然后在虚拟机的虚拟环境里安装Linux,这样可以大大的节省硬件资源,而且在 进行开发的过程中,可以方便的进行两个操作系统的切换,便于资料的查找和程序的编
写。

我们在实际的开发过程中,选用的虚拟机版本为VMware7.0版本,经过测试,可 以和现有的硬件*台以及Linux相兼容,虚拟机的具体安装过程在这里不做具体的阐述, 安装好了虚拟机之后,在配置Linux的时候有一点需要注意,在配置防火墙的选项时, 应选择为“无防火墙’’,这主要是为了方便开发过程中实验板和主机之间进行通讯,否 则,系统会屏蔽掉很多网络功能,那样的话在开发过程中需要的nfs服务,串口通讯等 将无法使用。
2)SEED—DVS6446 SDK套件的安装

安装的套件中包括Linux内核、交叉编译器、DSP端开发工具、ARM编解码程序 源码、以及一些例程的源码等。 在其安装过程中,需要注意的一点是,我们登陆Linux开发主机时要采用root账号, 且进行所有操作都要以root权限,因为Linux下的root账户拥有最高的安全权限,如果 采用其它安全权限比较低的账户的话,在进行一些操作的时候可能会受到以安全权限为
由的限制。

(1)首先我们要将DVS6446的配套光盘里的Davinici开发套件 SEED.DVS6446_SDK.tar.gz复制到Linux开发主机的/opt目录下;此过程中我们可以直 接在Windows环境下复制,然后切换到Linux环境下进行粘贴就可以。 (2)在Linux开发主机桌面上我们点击鼠标右键,打开终端,进/X,至tJ/opt目录下, 进行解压安装操作,使用命令:
Host#cd/opt Host#tar zxvf SEED-DVS6446_SDK.tar.gz

解压过程会将所需要的软件安装至1]/opt根目录下,大概会需要10分钟,因机器的 配置而时间可能会不同。 等其安装完成后,会在/opt下创建以下目录: @dvevm


20,该目录下位DVEVM与DVSDK套件,包括各种cmem、dsplink、 engine、demo资源及dspbios、xdctools、cgtools等dsp端编译

frame component、codec

器等资源: ②mv
pro

,该目录下面为 ARM 端的 ARM v5t 交叉编译, linux 0.4.文标目及以核内

31

第三章车道偏离预警系统中硬件系统的总体框架

件系统:

(甄lfs,该目录为配置完毕的NFS文件系统;
(3)SEED DVS6446 SDK配置

开发套件安装完毕后需要对其进行相应的配置才能正常使用。 (4)配置ARM v5t交叉编译器的PATH 在进行交叉编译之前,我们需要对交叉编译的源文件和目标文件的路径进行相关的 设置,这样编译器才能工作。 ①以root权限,进入到root根路径,运行:Host#cd/root ②修改root目录下的.bash profile文件。在Linux下常用的的文本编辑器是vim和 gedit等。以gedit为例,执行命令:Host撑gedit.bashrc,打开.bashrc文件,添加如下内 容:
PATH=”/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_4.0/montav

ista/pro/bin:/opt/mv_pro__4.0/montavista/common/bin:¥PATH”

b——■●■●—■———●———■圄盘盛墨重婴曩■—■■■—●■■■■■●■■也迎
宜n{E,

然后保存退出即可。修改的设置一般要*粝低澈蟛拍苌АP薷耐瓯先缤迹常保彼荆
瞒搬-EJ 矗白y, 挫^‘S,
10工, 正●’D) 带盎挣H’

图3.11操作示意图一

在实验过程中,我们可以通过以下方法测试arm—v5t编译器是否配置正确,在Linux 服务器控制台进行如下操作:Host#arm—v5t—le—gcc显示如下信息时,表示配置正常: 否则的话说明配置不正常,需进行重复配置。

32

长安大学硕士学位论文

File墼暨剿工e肌一Ta—bs
职LvSLlelcc:聃irput files

Help

【root@Iota]host一】青arLvSt。le-gcc

[rootOloca]h。ost。】髯_

图3.12操作示意图二

配置NFS文件系统服务,修改/etc/exports文件,添加如下内容
/opt/nfs

?(rw,sync,no_root_squash,no all squash)

保存退出即可。修改完毕如图3.13所示:

蔓::曩塑塑蔓曩固圜固蔓曼匪盟嚣翟墅翟毽婴宽窭塑曼墨塑曼曼匦塑圈!型 脚E鳓堑_童刚’蛐l敏mts
;-letp

i日


New

0咖

口v


Save

l因; l




Redo

{昏


Psi}Undo

Cm

C啊Paste







图3.13操作示意图三

通过运行以下命令启动nfs服务:
Host#/usr/sbin/exportfs—a Host荆sbin/service nfs
restart

到此为止,我们已经安装完开发工具,接下来可以使用开发包中提供的资源。 2.Linux*台实验程序运行环境配置 Linux*台实验程序运行环境配置步骤如下: 1)将开发套件提供的文件seed__exp.tar.gz复制到linux开发主/f:tl,/opt/dvevm 录下。 2)在终端中敲入命令进入目录/opt/dvevm
Host撑cd/opffdvevm 1 20
l 20



20目

33

文杈D编鲰9查氰塑终端D杯猕少帮脒坳
[rooI圈口talko警t]霉cd

IoptldvevnLI..20/|
图3.14操作示意图四

3)解压实验程序包。
Host群tar zxvf seed_exp.tar.gz


文傅D蝙辑(旦奁氰蚴终端D标镦勘帮脚出

图3.15操作示意图五

4)解压后的包中包含了5个实验程序源代码,和运行程序所需的配套文件包,进 入解压后的目录seed_exp/insmll_scripts
Host#cd seed_exp/install_scripts

文件(D

鳊辑《E)

蠢看(堂

l冬端回

标签(B)

帮助{出

seed—e,xp/I)4.videoo'sdtvideo_o'sd—app/video.h




seed—np/.4.videoo-d“tdeo_o蟠d—applyIdeuusd?c曙

rI— seed—exp/1)4.videoo sdtvideo_osd—app/cI cd seed—eIp,in-l-1l一_cript 【rooI蝴UCaIbo,?t dvtvm_l一20]U

xU

lj l U 削。

图3.16操作示意图六

5)执行如下脚本文件建立linux*台实验程序执行目录/opt/nfs/opt/seed_exp,并将 运行程序所需的一些log文件和负责ARM与DSP之间的通信的cmem.ko和 dsplink.ko等文件复制到该目录下。
Host拌./install.sh

图3.17操作示意图七

至此,Linux*台实验程序运行环境配置完成。 3.串口终端的配置 利用PC电脑上的串口终端,我们可以与6446实验板进行交互操作,进行控制并调

34

长安大学硕七学位论文

试程序等工作。在PC机端我们一般使用windows系统自带的超级终端来监控实验板, 其配置过程如下所示: 1)在Windows环境下运行超级终端,逐步按照提示进行操作。在第一步区号的选 择上比较随意,对系统的影响不大,设置完后再次点击确定,在下一步的对话框中输入 “车道偏离预警系统”;接下来就是选择希望使用的串口,一般都选择COMl口,不过 偶尔会出现当COMl口被占用的情况,可以选择其它COM端口;而后在COMl属性 的设置中选择如图3.18所示的选项:

图3.18操作示意图八

2)用串121线一端连接PC机串口,另一端连接6446实验板的RS232串口P启动 6446实验板之后,如果超级终端上自动显示出如下信息,说明已经对终端进行了正确的 配置;否则,需对配置过程进行检查查错。

35

第三章车道偏离预警系统中硬件系统的总体框架

图3.19操作示意图九

二.Windows开发环境的搭建 1.安装仿真器硬件设备 仿真器的配置过程比较简单,大体来说分为两步:一是安装对应的仿真器驱动程 序,在这里尤其有一点要注意,仿真器的驱动应该安装在CCS安装目录下,否则的话, 容易出现找不到驱动,仿真器连接不上等情况。二是将仿真器与实验板和PC主机相连 接,此过程比较简单,在这里不做赘述。 2.目标DSP板驱动程序的安装及开发环境建立 1)CCS的安装,此过程比较简单,在此省略。 2)运行“Setup
CCStudio

v3.3",此程序的作用是在启动CCS之前对其进行相应的

设置,设置完成之后启动CCS,CCS就可以直接进行硬件连接方面的工作。在设置过程 中,按照如下图所示的操作,将会对我们的实验系统配置以合适的驱动: (1)在“Family“栏中,选择实验系统中使用的DSP系列型号,我们选择“C64x+" 系列。

36

长安大学硕士学位论文

图3.20操作示意图十

(2)在“Platform“中选择目标系统中所应用的仿真器型号,也就是我们实验板采 用的仿真器,此处选择“xds560
emulator'’。

■q-■一时★l’It.t■1●““--●■坩●t●n-对tt-.

图3.2l操作示意图十一

(3)在“Available

Factory

Board“栏中,将所需要的仿真驱动拖拉至左栏"System
XDS560

Configuration“中,或直接双击,就可以选择合适的驱动,在此选择“DM6446
Emulator with ICEPICK

C"最后结果如下图:

37

第三章车道偏离预警系统中硬件系统的总体框架


File

~一
至d.t YIe_ £批lp

。。

。曼鲤鲤晴p墼曼鲤曼‘曼整懋

。;

。.

璺.e●刚

眵臻慰翮瓢感骝溺匾蕊戳瑟麓既互要瑟瑟:滋爱臻弱要爱瑟墨露滋J警诼d
£11.Qp?A


oup

D*b,x,g

Oktt oM

li*iF

— Vi一

nl伊I俘1分I耷l爹阻f-dt白哪■!IhLrd


■f

霉systen i一囊DlIB44G x援酗o bul.tor



h-?

C]PU

st?t?‘

lI凹lcI_-c.,j■f

枷M+I哪Ick¥cs…:

FZOCeSj;oT

-。-ic?Tr,?

Cloelk

{Po_r

M,.:一。

咖r‘…



鐾j嚣黑。。m。一。. ●^啪.o cm‘。t Dm。?
谣ETBlI.岍n ‘◆C114007‘;n:ble
Th『e§d_h。el。曲qg《lng





图3.24操作示意图十四

隧翻滋瑟感瀚嬲蕊黝魈瓿瑟瑟盘五匿篓签缀:。芏翌譬兰夏:篡。三i:夏鍪爱麓:燃慧:翟:二=翟翌:要。叠!锄d
£ll?细?A鱼。砷nbu‘02t

两l移l伊}多}耷l必lD?f越t☆哪■llo。d yi“
一霉Syst*m
,‘-● CPIf Status

J.on:酗lD一

~一

-I
1*toeossolr ‘■●-It●Tlrne

Clock

Pourer

‰露豳豳
●^脚9-0

ICE?ICI_C=:.二一:一一一EmI珥。Ic嚣i吐s。.二-上…1=、u.1a—tofi…——…葛“i……一。耐

辕rrBll_O

自≯c“∞哪_p





图3.25操作示意图十五

(6)右键AI洲9-0,选择Open,这时会打开CCS主界面,加载ARM端的Gel
文件:DaVinciEVM_arm.gel,然后连接ARM,即在Debug菜单选择Connect选项(或 者使用快捷键“ALT+C”)。如果连接正常如图3.26所示:

39

第三章车道偏离预警系统中硬件系统的总体框架

r————————jr———————■*三_曼蔓 嗣甜

曲口基…,P’.?一:厂—二二■——————]

““’’^~嗡‘二叠咐:.1?4{l-{‘.{E
6一

1-

●‘■+●‘●‘:

●压

…...…......J

长安大学硕士学位论文

第四章实车道路视频的处理与存储
在前面我们主要介绍了基于达芬奇系统的车道偏离预警系统的硬件*台的搭建和 软件模块的构建以及调试工作,在本章中介绍一下目前相关的图像处理算法以及图像处 理的算法在系统上的试验效果。而且尝试了进行道路图像信息的存储工作,对外接硬盘 的存储模块做了一定的研究。 根据相关的图像处理的知识并结合我们开发的车道偏离系统的硬件特点,我们设计 视频采集回放的流程图如下:



系统初始化



GPIo口设置





TVP51

50初始化l
1L

设置TVP5150寄存器

'L
VPFE视频前端初始化


VPBE视频后端


采集视频


判断

1L



输出视频





显示采集结粜
图4.1视频采集回放程序流程图

通过对系统的设置和调试,我们在Linux环境下运行简单的视频编码解码程序,系 统对道路图像的显示如下图所示:

4l

第四章实车道路视频的处理与存储

4.1道路图像*滑处理
一般情况下,在电子系统中进行传递和转换的图像信息会造成图像的某些方面的质 量降低。例如:在采集图像的过程中,由于光学系统的失真、摄像头和目标之间的相对 运动、周围大气的流动等不确定因素的影响都容易使图像模糊。汽车运行的环境也比较 复杂,当然不可避免的会面临这些情况,所以我们在图像处理之前必须进行处理,否则 容易对后续的图像处理造成影响。 通常情况下,进行图像质量改善的方法有两类:一类是不考虑图像降质的原因,仅 仅是将图像中感兴趣的部分进行突出,将次要的信息进行衰减,这种方法能有效提高图 像的可读性,衰减其中包含的噪声,使之更方便计算机的识别;另一类是针对图像降质 的原因,设法补偿图像中缺少的元素,这样处理的结果将会尽可能的复原原始图像,这 一类技术一般称为图像复原技术,不过在我们的车道偏离预警系统中应用的比较少,在 此不做过多的介绍。 综上分析,我们进行图像处理的第一步就是抑制图像中的噪声,常用的方法是对图 像进行*滑处理,通过处理,可以对图像中的低频分量进行增强,也会对高频段的噪声 进行抑制,从而达到改善图像的目的。*滑滤波可以在空间域进行,也可以在频率域进 行。频率域*滑是利用信息在空域和频域的对应关系来进行的,即空间位置突变的信息 多对应高频区域,也就是噪声频谱多在高频段;而缓变的信息是在频域的位置是在低频

42

长安大学硕士学位论文

区域,我们就可以利用这个特征来进行转换。

究的主要是硬件系统的相关工作,因此采取比较成熟的空域滤波算法对图像进行*滑处

g(x,y)_-f(x,y)%(x,y)

(4.I)

在其中:f(x,y)表示的是图像单元处理之前的像素,g(x,y)表示的是图像单 元处理之后的像素,h(x,y)表示的是空间运算函数,表示像素经过了什么样的处理。 空域*滑中最常用最成熟的算法是邻域*均法,一般情况下我们通过选择不同的模

*均模板的思想是采用某点领域内所有点的灰度的*均值来取代该点的灰度值,如

的*均值来代替其核心的那个像素。其掩模*滑矩阵为吉[i}i]

-‘

不同点之间影响效果的差异,采取引入加权系数的方法,改造*均模板为去【.;三;J

43

第四章实车道路视频的处理与存储

均值滤波的处理方法是给目标像素一个模板,此模板包含它的邻*像素,然后用模 板中所有像素的均值代替目标像素值原始的像素值。通过这种处理之后,图像中突变点 的灰度就分散到相邻点之中,从而能达到比较好*滑效果,算法的程序编写相对来说也 较简单,但经过此处理容易使图像变得模糊,n值选得越大,处理过的图像就变的越模 糊,所以在实验的过程中,选取合适的n值很重要。 4.中值滤波 1)中值滤波的特点 和均值滤波相比较,中值滤波在处理椒盐噪声和干扰脉冲时有不错的处理效果,同 时对图像边缘的保持效果也比较好,当然,处理的效果会根据使用的场合和滤波窗口的 不同。为了在滤除噪声和干扰的同时又保留所需要的细节部分,使用时需注意以下条件: (1)中值滤波比较适合滤除椒盐噪声和干扰脉冲,当目标物的外形是块状时拥有不错 的处理效果。 (2)在处理尖角几何结构的图像时,多采用十字形滤波窗13,而且需要注意的是,所 选用窗口的大小不要大于图像中最小目标的尺寸,否则处理过程中会丢失其几何特征。 (3)在处理图像时面临保持细线和尖顶角细节的要求时,因中值滤波处理效果不够理 想,故一般不使用中值滤波。 2)中值滤波法的原理 作为基于排序统计理论的非线性滤波技术,中值滤波法的处理原理是把某点邻域内 所有像素的灰度值按大d,Jil页序进行排列,然后用中间值代替该点像素的灰度值,这样处 理的效果是:在去除噪声的同时,图像的边缘信息等被保存下来。 二维中值滤波的定义是:将一个窗口A内的所有像素灰度值进行排序,然后选取排 序的中间值作为窗口A中心点处像素的灰度值。用如下公式表示: g(x,y)=Median{f(x—f,Y一/),(f,,)∈A)
(4.2)

式(4.2)中g(x,Y)为点(x,Y)处的灰度值,A为窗口,在应用的过程中,通常将窗口选 取为奇数,这样就容易得到中间像素,不需要进行复杂的计算。 3)中值滤波窗口 因为不同形状和大小的滤波窗口会带来不同的滤波效果,所以我们要选择合适的 窗口和大小。实际的应用过程中会根据需要处理的图像中所包含的噪声需要达到什么样 的处理效果进行选择。中值滤波窗口有线状、十字状、X状、方形、菱形和圆形等,可 以根据需要而灵活的进行选择。通常来}兑,处理图像信息变化缓慢、具有较长轮廓线物

长安大学硕士学位论文

体的时候,可选取方形或圆形的滤波窗口,而处理有尖角细节的物体图像的时候采用十 字窗口效果会比较好一些。


5.本文采用的方法 本文的主要工作是实验*台软硬件的搭建调试,当然,在系统搭建完成的基础上, 我们对采集道路图像进行道路标线的初步分析识别,由于道路图像中包含的信息相对简 单、目标线条形状单一等特点,我们采取中值滤波对图像进行*滑处理,选择实验窗口 为方形,11值选用3。经过我们的实车验证,其算法在硬件*台上实现了比较良好的效 果,下图为道路图像经过均值滤波、中值滤波的效果对比,我们可以比较容易的看出中 值滤波的处理结果要比均值滤波的效果理想很多,在此硬件*台上是比较理想的算法。 且前面所搭建的车道偏离系统的硬件*台运行良好可靠。

路图像

图4.4均值滤波图

图4.5中值滤波图

4.2图像的边缘检测
我们利用计算机和微处理器进行图像处理的目的有两个:其一,产生更适合人观察 和识别的图像;其二,希望能由计算机自动识别和理解图像中蕴藏的信息,为智能化打 下基础。无论为了哪种目的,图像处理中关键的地方在于,对包含有各种信息的图像进 行分解。而分解的结果是,图像被分解成一些具有某种特征的最小成分,我们称之为图 像的基元。分解之后的基元和整幅图像相比较的话,在技术上更加容易实现,适合我们 快速处理应用。 而传统的图像处理理论认为,图像边缘是其最基本的特征,是以图像局部特性的不

45

第四章实车道路视频的处理与存储

连续性的形式出现的,详细的说,边缘的本质指图像中像素灰度有阶跃变化或屋顶变化 的一些像素的集合。边缘能勾画出目标物体轮廓,直观的让我们分别出目标和背景,给 我们提供了形象直观的信息(如形状、方向等),是在目标识别过程中一项非常重要的 指标。 物体的边缘是由灰度的不连续性所决定的,而边缘点检测就是要通过考察图像的每 个像素在某个邻域内灰度的变化来确定图像中有没有边缘点,如果有的话还要进一步确

长安大学硕士学位论文


















。爪’.




肘’






v一

f““x>





f’HxI
p”

八扒一
图4.7屋顶边缘灰度变化

图4.6阶跃边缘灰度变化

的灰度变化的上升和下降沿往往都比较缓慢,如图4.6(b)和图4.7(b)所示,表现为 斜坡状。 从图4.6(c)和图4.7(c)可以看出,对于阶跃边缘,一阶方向导数在边缘处取极 值,而对于屋顶边缘,一阶方向导数在边缘处呈零交叉。因此,根据边缘灰度变化的一 阶导数,图像中的边缘就能被检测出。 从图4.6(d)和图4.7(d)可以看出,对于阶跃边缘,二阶方向导数在边缘处呈零 交叉;而对于屋顶边缘,二阶方向导数在边缘处取极值。因此,根据边缘灰度变化的二 阶导数,图像中的边缘也能被检测出。 由于边缘处像素的灰度值变化较大,经过微分运算,它的微分计算值相对来说就比 较高,所以就可利用阈值检测的方法进行判别,从而判定提取出微分值大于阈值的图像 点,这些图像点的集合就可以认为是图像的边缘。从中可以看出,所选用阈值的大小对 检测结果的准确性和边缘的存在性有紧密的关系,如果选取的阀值过高,一些比较模糊 图像边缘容易漏检;反之,如果选取的过低,系统会检测到许多因噪声而引起的虚假边 缘,容易造成误判的现象。

47

第四章实车道路视频的处理与存储

在图像处理中,一阶导数的算法是通过梯度来实现的,所以通常称利用一阶导数进 行检测的方法为梯度算子法。梯度算子类的处理往往有加强高频分量,抑制低频分量的 效果。而图像中所含的噪声一般都在高频区,所以,这类算子对噪声较敏感。在处理时 容易检测出虚假边缘从而造成误判,这样的处理效果会对边缘特征提取和特征目标的跟 踪带来很大的干扰,也影响系统工作的稳定性。所以在进行图像边缘点检测时,我们希 望采用的检测算法对噪声具有一定的抑制作用。在众多的算法中,Prewitt算子和Sobel 算子是*滑梯度算子,具有抑制噪声的效果。在基于二阶导数的算法中,比较典型的是 Laplacian算子,不过因为它对噪声非常敏感,在进行一阶导数的处理中,即使很小的局 部峰值也容易导致二阶导数过零点,算法的整体检测效果劣于一阶导数算子。所以截止 的目前为止,我们采用Sobel算子进行车道线的特征值提取。 2.各种算法结果比较

图4.8普通sobei算子

图4.9

prewitt算子

图4.10

Laplaeian算子

图4.11优化过的sobel算予

通过实验所采集的处理结果我们可以看出:基于一阶导数的梯度算子能较好的识别 图像的边缘信息,并能够较好的将其显示出来;而基于二阶导数的laplacian算子虽然也 可以识别出图像的边缘信息,但是处理的效果较一阶导数梯度算子差很多。并且比较直 观的可以看出,利用达芬奇经过优化过的图像处理库所处理过的照片所采集的照片,处 理的效果优于我们所使用的其它算法,所以我们应该采用其算法,后续的实验中可以在

长安大学硕士学位论文

其算法的基础之上编写其它的算法,而且就现在的实验效果来看,我们的系统对于算法 的实现和车道线的边缘检测能满足要求,不会出现像DM642那样处理图像时会出现的 图像卡壳现象,更坚定了我们采用此*台的信心。

4.3道路图像信息的存储模块
作为一个流行的存储设备接口,御队被广泛应用于PC机上,作为主机与硬盘、光

盘和可移动存储设备等设备接口。TMS320DM6446片上集成了一个A髓。控制器,在硬
件设备上实现了该接口,可以挂载硬盘等大容量的存储设备,完成对图像与音频的保存 和读出。 我们可以充分的利用这一点,因为随着天气的变化,每次采集的图像信息肯定是不 同的,这样的话,在研发过程中,相同的算法可能在不同的条件下的效果也不同;同理, 两种不同的算法可能在不同情况下表现出同样的性能,这样算法的优劣也无从分析。为 了避免这一点,我们可以采用硬盘存储模块,采集一段道路图像信息,然后将不同的算 法加*渖希庋腿菀妆姹鹚惴ǖ挠帕有浴6遥庋褂幸桓龊么Γ蛭诘魇缘 时候,不可能写出一个算法,就出去到道路上去做实验,那样所花费的人力物力成本都 比较高,采用硬盘存储模块,可以大大降低研发费用。


此外,在后续的开发过程中,我们可以将硬盘存储模块做成类似于飞机上的黑匣子 的模块,可以用来存储汽车在行驶过程中所遇到的各种信息,如果遇到交通事故或者意 外的话,还可以在事故发生之后用来分析当时的情况。 ATA总线将实验板和存储硬盘相连接,他们之间数据通信的原理如下:首先我们要 明白,对硬盘的读/写操作不是ATA总线在主机的控制下直接完成的,而是由集成在硬 盘上的控制器完成的,主机仅仅是通过ATA总线与硬盘上的硬盘控制器进行通信,这 种工作模式是ATA标准规定的。对于主机来说,主机与硬盘控制器的通信是通过标准 化的寄存器和数据口进行的,主机通过ATA总线操作这些寄存器和数据口,将指令参 数和命令码写入寄存器之中,而硬盘上的控制器则对这些指令参数和命令码进行解释执 行,从而完成对硬盘的实际读/写和控制操作。 其次触队标准规定硬盘上的控制器必须具备一组标准化的寄存器和数据口,而且 还规定了对这组控制寄存器和数据口读写的信号及时序,即规定了符合ATA标准的物
理层。

最后A1队标准规定了硬盘上的控制器必须实现的命令集,及主机与硬盘之间进行 通信的命令的顺序和命令码及相应的命令参数的定义,即符合ATA标准的传输层。
49

第四章实车道路视频的处理与存储

4.3.1

ATA硬盘接口的实现 ATA硬盘接口的实现,主要是指符合ATA标准的物理层的实现。在实际的操作中,

也就是实现对物理层各个寄存器的访问。主要包括两组寄存器: 1.命令块寄存器组(Command 2.控制块寄存器组(Control 命令块寄存器组(Command
Block Registers)

Block Registers) Block

Register),共有10个寄存器,由2个只读寄存器和

2个只写寄存器,以及6个读/写寄存器组成,其中只读和只写寄存器共用1个寻址单元, 所以共占用8个寻址单元,由CS0进行片选。
4.3.2

ATA数据的传送 主机与存储设备通过ATA总线进行数据传输的方式有三种方式:PIO传输方式、多

字DMA(MultiWords DMA)传输方式和超级DMA(Ultra DMA)传输方式。下面对三种传 输方式做一简单介绍。 (1)PIO传输方式 采用通用的异步存储器接口方式进行访问,即以主机为主设备,给出读/写访问的数 据总线、地址线、片选线和读/写控制信号,对相应的存储设备中的单元进行访问。 PIO传输方式适用于主机对存储设备控制器寄存器的访问,由主机发命令给存储设 备或从存储设备上读取当前的状态信息, 也可以通过数据寄存器进行真正意义上的存

储数据的交换。但PIO传输方式的效率相对较低,不太适合于大信息量的数据传输。 (2)多字DMA(MultiWords DMA)传输方式 多字DMA传输方式是为了改进PIO传输效率而提出来的,专门用于主机与存储设 备之间的数据传输,并提供有效的手段实现数据流的控制。 这种传输方式下,主机与存储设备之间数据传输是由存储设备提出数据传输请求 (DMA请求DMARQ),主机在接收存储设备的DMA请求后,如果准备就绪就给出DMA 应答信号DMACK,并由主机给出读/写访问的数据总线和读/写控制信号进行数据传输, 主机与存储设备之间数据传输是通过数据口进行的,由于数据口只有1个,所以无需地 址线和片选线。一旦数据传输开始,存储设备即认为在与主机进行一连串的数据传输, 即在ATA数据总线上形成了一连串传输数据流,那就有一个如何控制数据流暂停和继 续的机制。ATA标准规定在多字DMA方式时,数据流的控制既可由主机给出,也可由 存储设备给出。主机通过使DMACK无效来告诉存储设备暂停数据传输,通过重新使 DMACK有效来告诉存储设备回复数据传输。

50

长安大学硕士学位论文

(3)超级DMA(Ultra DMA)传输方式 超级DMA传输方式是在多字DMA传输方式基础上为了进一步提高传输效率而提 出来的,同样是专门用于主机与存储设备之间的数据传输,同样有一套有效的手段实现 数据流的控制。 超级DMA传输方式与多字DMA传输方式的不同在于多字DMA无论是读传输还 是写传输,读/写控制信号均由主机给出,而超级DMA在读传输时,读/写控制信号由 存储设备控制器给出,在写传输时,读/写控制信号则由主机给出。 4.3.3具体实现过程 在数据传输模式方面,我们采用了超级DMA传输方式,这种方式可以大大的提高 数据的传输效率,更有利于图形信息的存储。 我们采用的图像存储环境为Linux操作系统,采用了三星160G的硬盘作为系统的 外扩硬盘,启动系统之后,我们通过超级终端登录系统,然后运行视频编码程序,系统 在采集分辨率为720*480码率为2400000的视频H264编码,并且存储为chedao.264文 件的情况下没有问题,完全符合我们的要求。 下图所示,就是我们进行图像存储时在Linux下的操作界面:

图4.12图像存储操作图

4.4本章小结
本章在前面几章搭建的车道偏离系统的*台基础上,深入学*了关于图像处理的相 关知识,根据我们的系统特点,设计了合理的道路图像的采集流程,且将众多算法的处

51

第四章实车道路视频的处理与存储

理效果进行综合分析,选择出处理效果比较理想的算法。 另外,本章还对车道图像的存储做了进一步的研究,将车道图像成功的存入外扩硬 盘之中,为后续实验的进行,无论从方便性上还是从实用性上都取得了一定的效果。

52

长安大学硕士学位论文

第五章总结与展望
随着电子产业的飞速发展,电子器件不论从成本上还是性能上,都越来越得到了长 足的发展,其在各个领域的应用也得到了极大的拓展。随着汽车机械系统慢慢的发展到 了极致,电子系统在汽车上的应用开始面临一个井喷似的发展热潮。本文就目前广泛关 注的车道偏离预警系统,以德州仪器公司推出的达芬奇系统为核心,开发出了较实用的 车道偏离预警系统。并在硬件系统的基础之上,进行了恰当合理的算法的验证,取得了
不错的效果。

5.1本文的研究成果
1.设计实现了车道偏离预警系统的硬件*台 本文根据课题研究的要求和特点,经过长期的调研,最终选取了以德州仪器推出的 达芬奇技术为基础的DM6446做为系统的硬件*台,并选取了合适的外围原件,组建了 车道偏离预警系统,经过了软件算法在*台上的运行试验,取得了不错的效果,验证了 该硬件*台设计的合理性。整个系统在以实时性、高效性为要求的前提下实现了硬件资 源的合理搭配和使用,为后续的开发做出了深厚的铺垫。 2.设计实现了车道偏离预警系统的软件开发环境 根据达芬奇系统的开发要求,在试验的过程中,成功的搭建了基于Windows*台下 的CCS开发环境,用于DSP端的程序开发;也成功的搭建了Linux开发环境,用于ARM 端的程序开发。对系统的软件构架以及软件开发流程做了细致的探讨开发,取得了较好 的效果,在硬件*台的基础之上进行了软件环境的成功搭建,在进行试验的过程中,整 个软件系统运行良好,为下一步的算法的开发和优化,打下了坚实的基础。 3.基于硬件*台的算法开发和实现 综合分析了目前广泛使用的图像处理算法之后,本文作者在对硬件*台的合理理解 之上,对不同算法的优缺点进行了分析,将不同的算法在*台上进行了运行验证对比, 从而选取了适合本*台的图像处理算法,使得优秀的算法和高效硬件*台得到了充分的 整合。 4.实现了图像视频的编解码算法 在采集图像的过程中,利用算法封装包和Codec Engine进行视频的编解码程序设 计,成功的使用H.264算法对图像进行编解码,通过实车的道路采集处理试验,成功的 验证了该算法在本实验*台上的处理效果,对后续其他图像编解码算法在本*台上的实

53

第五章总结与展望

现有极大的参考价值。 5.实现了道路图像信息的硬盘存储工作 为了试验工作的进行和调试工作,也为了后续汽车道路图像信息“黑匣子”的开发, 本文作者成功的在达芬奇*台之上实现了道路图像信息的硬盘存储工作,经过实车的道 路视频采集存储,在存储图像的时候取得了比较理想的效果。大大的拓展了后续实验的 灵活性和机动性,作出了具有探索性的指引工作。

5.2本文的不足
本课题的研究内容是实现一套高效的车道偏离预警系统,目前所完成的工作主要是 实现了前期的硬件*台的搭建工作和车道图像信息的初步处理,包括图像的滤波和道路 图像信息的边缘检测,也实现了图像信息的存储工作。但是对于一个成熟的车道偏离预 警系统来说,还有很多的工作等待我们去做: 1.车道标志线的提取和跟踪 车道标志线的位置相对于车辆的位置是车道偏离预警系统中重要的判定标准,本文 只是对车道标志线进行了边缘检测且取得了不错的效果,但是仍存在一些问题,例如道 路上的树木阴影问题,*镂侍猓庑┒夹枰悸堑剿惴ㄖ腥ァG叶员曛鞠叩奶崛 和跟踪,还没有采取合理的算法对其进行实现,这部分主要在后续试验过程中的软件工 作部分实现。 2.车辆偏离策略的实现 关于车道偏离预警系统在什么时刻判定车辆已经进行了偏离,且在直线道路和弯道 道路上所选择的判定策略是不相同的,而本研究到目前为止,还没有进行相关的研究, 而策略的选择和优化,对一个系统来说是影响其性能的重要因素,所以这方面的工作是 以后工作的重点也是难点。 3.系统的标定问题 本系统中所采用的CCD摄像机安装的位置是在汽车后视镜的前方,CCD采集的图 像的坐标和汽车自身的坐标之间的变换关系等一系列的问题,它们之间的相互关系会对 处理的结果有重要的影响,所以在接下来的工作中,系统标定也是待解决的一个问题。

5.3课题展望
一个成熟的车道偏离系统是一个复杂的集成度很高的系统,它不仅仅需要车道图像 信息,也需要采集汽车运行中的各种数据参数,如车辆的速度、加速度、方向盘握力、

54

长安大学硕士学位论文

道路附着系数、光线强度等各方面的信息,一个简单普通的DSP是做不了这么多工作 的,所以我们选取了DSP与ARM相结合的达芬奇系统,在系统中充分发挥了两者的长 处,避免了两者的短处,就目前的进度来看,非常适合本系统的开发,当然,在后续的 工作当中,需要对其的潜能进行更大的开发,从而进行更加详实可靠的研发工作。 本文所写的只是在本研究中的初步的部分工作,且本研究目前尚处于试验阶段,距 离实用还有一段路要走,不过我相信,扎扎实实的工作,必将取得理想的成绩。

55

参考文献

参考文献
【1】易强,秦文虎.一种基于机器视觉的车道偏离报警系统【J】.南京:轻型汽车技术,2007 【2]Lloyd
Emery.Preliminary Safety Benefits for Road Departure Crash Avoidance Systems.

USDOT,1 997.

【3]Intelligent Vehicle
Safety

Initiative(IVI)2002 Annual Report:Saving lives Through Advanced

Technology,pp 8?1 8 Passenger Car Obtained
on

[4]Yoshiki MIICHI,Susumu MASUDA.“Mitsubishi’S ASV-2 Japan’S Land,Infrastructure and Transport Ministerial
Prior to

Approval-Testing

Public Roads

Commercialization”【M】.Mitsubishi Motors

Technical Review,2002,(14):66-68

【5】葛*淑.车道偏离预警系统算法改进研究[D】.吉林:吉林大学,2008 【6】郑小龙.达芬奇技术一德州仪器加速开发数字视频应用[M】.电子工程周刊;2005.12 【7]TexaslnstrumentsUser’Guide.DVEVMGettingStartedGuide.2008 【8]Texas 【9]Texas
Instruments homepage.http://www.ti.com Instruments User’S Guide.DaVinciEVM_Schematic,2008
User’S

【1 0]Texas Instruments

Guide.DaVinciEVM—TeehRef,2008

【11】赵勇.DaVinci技术原理与应用指南.东南大学出版社,2008 【1 2]Texas Instruments
Technical Training.The fast track to tomorrow’S

designs,DM6446

DaVinciTMTechnology Workshop,2008

【13】孙纪坤.嵌入式Linux系统开发技术详解一基于ARM.人民邮电出版社,2007
[14]胡晨峰,东南大学电子工程系ASIC中心.NANDFLASH在低成本移动设备中的应 用,《电子产品世界》2003年24期 【1 5]Texas Instruments
User’S

Guide.sN74AVC324245JI-282840,2008

【1 6]http://www.datasheet5.corn/.Max322 1,1 999 【1 7]Texas Instruments 【1 8]Texas
User’S Guide.VPFE,sprue3 8e,2008

Instruments User’S Guide.VPBE,sprue37c,2008

[19】裘伟.高速公路车道偏离告警系统的研究[D】.长沙:国防科学技术大学,2006,7 【20]Matthiss
Kopf.Advanced Driver Assistance Systems Research within INVENT.Business

Briefing:Global Autonotive Manufacturing&Techonology,2002:2—3.

【21]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用[M].第2版.北京:电 子工业出版社,2003:8.11 【22]陈亮,杨吉斌,张雄伟.信号处理算法的实时DSP实现【M】.北京:电子工业出版社,

长安大学硕士学位论文

2005:52-60

[23]张起贵,张胜,张刚,等.最新DSP技术一“达芬奇”系统、框架和组件[MI.北京: 国防工业出版社,2009:10.11 【24]季昱,林俊超,余本喜.DSP嵌入式应用系统开发典型实例【M】.北京:中国电子出版
社,2005:293.296

【25]林慧深,刘殊,尤国君.RedHatLinux服务器配置与应用【M】.北京:人民邮电出版社,
2006:12.30

【26]周3ff_功,陈明计,陈渝.ARM嵌入式Linux系统构建与驱动开发范例【M].北京:北京 航空航天大学出版社,2007:11-2 【27]李真芳,苏涛,黄小宇.DSP程序开发【M】.西安:西安电子科技大学出版社,2003:
203.20

【28]黄爱民,安向京,骆力,等.数字图像处理与分析基础【M】.北京:中国水利水电出版
社,2005:34.3

【29]M萨雷斯.数字图像处理(MATLAB版)【M】.北京:电子工业出版社,2006:305 【30].Kermtth.R.Castleman著,朱志刚,等译.数字图像处理【M】.北京:电子工业出版社,
1 998:220.274

【31]-谷口庆治.数字图像处理(基础篇)【M】.北京:科学出版社/OHM社,2002 [32】余天洪.基于机器视觉的车道偏离预警系统研究【D】,吉林:吉林大学,2006 【331张卫宁,栗华,马听.DSP原理与应用教程【M】.北京:科学出版社,2008:196—198 [34】张颖.在达芬奇DSP上对AVS视频编码器的结构优化[D】.武汉:华中科技大学,2008 【35】陆丰俊.基于视觉的车辆车道偏离预警系统算法研究【D】.武汉:华中科技大学,2006 【36】于兵,张为公,龚宗洋.基于机器视觉的车道偏离报警系统【J】.东南大学学报:自然 科学版2009,39(5):928.932 【37】余瑛.基予达芬奇*台的音频信号采集和处理技术研究【D】.北京:北京交通大学,
2008

【38]许录*.数字图像处理【M】.北京:科学出版社,2007:190.202 【39].M.Kanunan,L.onural.A.Atalar.Design
filter
and implementation of a general purpose

median

inVLSItJ].VLSI

Signal ProeessingIII,IEEE Press,1988:111?119 for impulse noise

【40].L.A ChristoPher,W.T.Mayweather,S.S.Pefiman.VLSlnedianfilter
Elimination in composite
or

component

TVsignals[J].IEEETrans.on

Consumer Electronics,

57

参考文献

l 988,34(1):263?267

【41】冈萨雷斯.数字图像处理(基础篇)【M】.北京:电子工业出版社,2006:305 【421赵坚勇.应用电视技术【M】.西安:西安电子科技大学出版社,2002:50.56 【43]彭真明,雍杨,杨光明.光电图像处理及应用【M].成都:电子科技大学出版社,
2008:17.19

【44]范立南,代红艳,恩莉,等.数字电子技术【M】.北京:中国水利水电出版社,2005:
210.228

【45】马*.数字图像处理和压缩[M】.北京:电子工业出版社,2007 [46]夏良正,李久贤.数字图像处理【M】.南京:东南大学出版社,2005 【47]陈传波,金先级.数字图像处理【M】一匕京:机械工业出版社,2005 【48】求是科技.Visual C++数字图像处理典型算法及实现【M】.北京:人民邮电出版社,
2006

【49]陈玉,王宗和,张旭东,等.TMS320系列DSP硬件开发系统【M】.北京:清华大学 出版社,2008 【50]-_-恒星科技.TMS320C6713DSP原理与应用实例【M】.北京:电子工业出版社,2009 [51]大奖赛组委会.2006年TI DSP大奖赛获奖成果汇编【M】.北京:电子工业出版社,2007 【52]SEED数字视频处理行业应用解决方案[G/OL]. http://www.seeddsp.com/jszc/show-down.php?cate=1&type=3 【53]TMS320DM644x DMSoc
DDR2 Memory Controller

User’Guide(SPRUE22A)[G/OL].

http://www.ti.corn/sc/docs/psheets/man_dsp.htm

【54]SEED

DVS6446 Hardware Test Programs User’S

Guide[G/OL].

http://www.seeddsp.com/jszc/download.php?view=seed 【55]SEED—DVS6446用户指南TMS320DM6446视频服务器模块[M/OL]. http://www.seeddsp.corn/jszc/download.php?view=seed 【56]Mei
Chen,Todd

jochem,Dean Pomerleau,AURORA:A Vision—Based Roadway
Conefrence
on

Departure

Warning System[M].IEEE and

Intelligent Robotsand Systems,Human

Robot Interaction

Cooperative Robots.1 995,l:243-248 warning system,http://www.mobileye.com/Mobileye

【57]MOBILEYE AWSTM,Advance j沁S。pdf

【58]Itefis’Lane DePartureWaming System

Now Availbale

on

Mercedes Turcks in EuropeIN】,

The Source for Intelligent Vehicle News,IVsource,June2000

58

长安大学硕士学位论文

【59]Parag H.Batvaia.Driver Adaptive Warning

Systems,tech.report CMU—RI—TR一98-07,

Robotics Institute.Carnegie Mellon University,March,1 998:5—25

[60]http://www.necel.com/applications/ergautomotive/imapear/index.html[EB/OL】 【61]Intelligent
Vehicle Initiative(IVI)2002 Annual Report:Saving lives Through Advanced
8-1 8 Passenger Car Obtained
on

Safety Technology,pp

[62]Yoshiki MIICHI,Susumu MASUDA.“Mitsubishi’S ASV-2
Japan’S Prior to

Land,Infrastructure

and Transport

Ministerial Approval-Testing
Technical

Public Roads

Commercialization'’【M】.Mitsubishi Motors

Review,2002,(14):66-68

【63]http://www.avnet.com[EB/OL】 [64]J.W.Lee,CD.Kee,W.K
Lee,A New Approach for Lane Departure

Identification[L],

Proe.oflEEE IV2003,2003:100—105

【65]Lee,Sukhan,Kwon,et
Intenrational Conefrence

a1..A Vsion Based

Lane

Departure

Warning System[J],IEEE

on

IRS.1 999:1 60—1 64

59

致谢

致谢
本论文的完成得到了我的导师仝秋红教授的悉心指导。仝老师渊博的知识、严谨的 学风以及对工作一丝不苟的精神,使我终身受益。在三年的学*生活中,仝老师教会了 我如何去学*,如何去进步,如何去选择,这使我受益终生。在仝老师严谨的科研作风 的影响下,我学到了很多,不仅仅是科研水*上,生活中也学到了很多。在每一环节上 仝老师都认真负责的给我指导,提出了很多宝贵的建议,在此向仝老师表示我最衷心的 感谢! 感谢谭小强师兄、吴红梅师姐在我生活和学*上的照顾,感谢赵增强、唐耀朋、高 申茂三位师兄,师弟付宽、李善海、陈亮、王志坤、邹静、梁景雨、马建欣、薛琴波对 我的课题提的研究提供的帮助,使我的课题能够顺利的完成,在此表示衷心感谢。 感谢和我一起度过这三年时光的朋友。 最后特别感谢我的家人,多年来,他们对我默默的支持、无私的奉献,使我得以顺 利地完成学业!感谢他们对我的支持和理解!

付强 2011年5月

基于达芬奇*台的车道偏离预警系统中图像处理模块的研究
作者: 学位授予单位: 付强 长安大学

本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1948397.aspx




友情链接: