(计算机软件与理论专业论文)基于平台的嵌入式网络摄像机系统设计和实现.pdf_第1页
(计算机软件与理论专业论文)基于平台的嵌入式网络摄像机系统设计和实现.pdf_第2页
(计算机软件与理论专业论文)基于平台的嵌入式网络摄像机系统设计和实现.pdf_第3页
(计算机软件与理论专业论文)基于平台的嵌入式网络摄像机系统设计和实现.pdf_第4页
(计算机软件与理论专业论文)基于平台的嵌入式网络摄像机系统设计和实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机软件与理论专业论文)基于平台的嵌入式网络摄像机系统设计和实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于平台的嵌入式网络摄像机系统设计和实现 摘要 数字视频监控以其直观、方便、信息多样,广泛应用于多种场合嵌入式网络摄 像机是视频监控系统的主要组成部分系统的软硬件平台与其相关应用软件的设计, 是嵌入式网络摄像机系统设计中的主要工作与p c 平台的系统设计方法相比,嵌 入式平台的设计方法还处于探索阶段。嵌入式系统的设计方法成为决定产品上市时 间和设计制造成本的主要因素。 基于平台的设计方法将嵌入式系统设计划分为软件平台和硬件平台,并通过定义 设计过程中的分层结构达到缩短上市时间,节省设计成本的目的。在当前进一步降 低嵌入式产品价格、加快产品开发进度的趋势下,基于平台设计方法在网络摄像机 嵌入式系统的设计中的应用具有重要的理论和实践意义 本文采用基于平台的设计方法提出了一种嵌入式网络摄像机的设计方案,并研究 了设计过程主要内容如下: 1 、介绍了基于平台开发方法的主要思想和概念 2 、研究了嵌入式网络摄像机系统中包括的主要软件组件和硬件部件,提出了嵌 入式网络摄像机系统软件平台的分层结构和软件平台到系统平台栈之问的映射 3 、进行了系统的图像采集模块分析设计包括摄像头驱动的移植、视频采集应 用程序设计 4 、网络视频传输模块分析设计采用网络套接口进行网络视频传输应用程序编 程。 最后一部分总结了论文的主要工作 硕士研究生曲玉昭( 计算机软件与理论) 指导教师于忠清研究员 关键词:嵌入式网络摄像机;基于平台设计方法;视频采集;网络通信 d e s i g na n di m p l e m e n to f p l a t f o r m - b a s e de m b e d d e dw e bc a m e r as y s t e m a b s t r a c t 伽d i g i i a lv i d e om o n i t o rs y s t e mi sw i d e l ya p p l i e df o ri t si n t u i t i o n i s t i ca n dc o n v i n i e n t c h a r a c t e r i s t i c e m b e d d e dw e be a m c l ai s 缸e s s e n t i a lc o m p o n e n to ft h es y s t e m 1 1 垃 s y s t e ms o f t w a r ea n dh a r d w a r ep l a t f o r m s ,a p p l i c a t i o ns o f t w a r ed e s i g na 托t h em a i nw o r k f o rt h i ss y s t e m t h i st h e s i sp r o p o s e d 鼬e m b e d d e dw e bc a m e r as y s t e md e s i g nb a s e do n t h ep l a t f o r m - b a s e dd e s i g nm e t h o d o l o g y c o m p a r e dw i t ht h ed e s i g nm e t h o d o l o g i e so np c p l a t f o r m , t h ee m b e d d e ds y s t e md e s i g nm e t h o d o l o g i e sa r ei nt h es t a g eo f e x p l o r a t i o n n 圮 e m b e d d e ds y s t e md e s i g nm e t h o d o l o g i e sa r et h es i g n i f i c a n te l e n m tf o rt h et i m e - t o - m a r k e t a n dd e s i g nc o s t t h ep l a t f o r m - b a s e dd e s i g nm e t h o d o l o g yd e v i d e ss y s t e md e s i g ni n t os o t h v a r ea n d h a r d w a r ep l a t f o r m i ti m p r o v 器t i m e - t o - m a r k e ta n ds a v e sd e s i g nc o s tb yd e f m el a y e r so n t h ek e yp o i n t so fd e s i n gp r o c e s s t h e r e f o r e ,t h ep l a t f o r m - b a s e dd e s i g no fe m b e d d e dw e b c a m e r ad e s i g ni sp r o f o u n di nt h e o r yr e s e a r c ha n dp r a c t i c e n ct h e s i sa d o p t e dp l a t f o r m - b a s e dd e s i g nm e t h o d o l o g ya n dp r o p o s e dad e s i g nm e t h o d o f e m b e d d e dw e bc a r n a as y s t e m n 嶂m a i nc o n t e n t so f t h i st h e s i sa r e : 1 t h em a i nt h e o r ya n dc o n c e p t sa r ei n t r o d u c e d 2 t h i st h e s i sd o n et h er e s e a r c h e so fs y s t e ms o f t w a r ea n dh a r d w a r ec o m p o n e n t s ,a n d p r o p o s e dt h es y s t e ms o f t w a r ep l a t f o r ml a y e r s ,t h em a p p 咄o fs o f t w a r ep l a t f o r mt o a r c h i t e c t u r ep l a t f o r mm a c k 3 v i d e oc p a t u r e i n gm o d u l ed e s i g nw 粥i n t r o d u c e d 。w h i c hd e s c r i b e dt h ep r o g r a m m i n g f o rc a f f l e l av i d e oc a p t u r e i n g t h e r ei sa l s ot h ew o r ko f c a m e r ad r i v e rp o r t i n g 4 n e t w o r kv i d e ot r a n s p o r t a t i o na n a l y s i sa n dd e s i g na r ei n t r o d u c e d , i nw h i c ht h e t h e s i sd e s r i b e st h ep r o c e s sf o rt h i sm o d u l e f i n a l l y , t h et h e s i sc o n c l u d e dt h ed e s i g no f t h es y s t e m p o s t g r a d u a t es t u d e n t :y u - z h a oq u ( c o m p u t e rs o f t w a r ea n dt h e o r y ) d i r e c t e db yp r o f z h o n g q i n gy u k e yw o r d s :e m b e d d e dw e bc a m e r a ;p l a t f o r m b a s e dd e s i g n :v i d e oc a p t u r e n e t w o r kc o m m u n i c a t i o n 学位论文独创性声明 学位论文独创性声明 本人声明,所星交的学位论文系本人在导师指导下独立完成的研究成果。文 中依法引用他人的成果,均已做出明确标注或得到许可论文内容未包含法律意 义上己属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论 文或成果 本人如违反上述声明,愿意承担由此引发的一切责任和后果 论文作者签名: 协玉睨日期:为,7 年期妇 学位论文知识产权权属声明 本人在导师指导下所完成的学位论文及相关的职务作品,知识产权归属学 校。学校享有以任何方式发表,复制、公开阅览、借阅以及申请专利等权利。本 人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名单 位仍然为青岛大学 本学位论文属于: 保密口,在年解密后适用于本声明。 , 不保密日 ( 请在以上方框内打“4 ”) 论文作者签名: 渤丑鸭日期:婶娟船 导师签名: ( 本声明的版 使用) 日期:砷年f 月f 日 有,未经许可,任何单位及任何个人不得擅自 青岛大学硕士学位论文 第一章引言 1 1 嵌入式网络摄像机 视频监控是一种防范能力较强的综合系统,是安全防范系统的重要组成部分 视频监控以其直观、方便、信息多样及内容丰富,广泛应用于多种场合。近年来, 随着计算机、网络以及网络处理、传输技术的飞速发展,视频监控技术也随之有 了新的突破嵌入式网络摄像机是视频监控系统中的核心部分嵌入式网络摄像 机与其相关硬件与嵌入式软件系统,成为网络化及数字化监控领域中的重要环 节。嵌入式网络摄像机拥有自己独立的i p 地址,能够直接连接到网络,无需与 p c 机连接,它可以独立运行,并可安置在任何一个具备i p 网络接口的地点 1 2 国内外研究现状 近年来为了适应设计复用及产品首次的正确性,及时上市的压力、设计复 杂性及制造时拥有的总成本导致不同的设计风格。嵌入式产业业在大部分的设计 过程中比以往更倾向于可编程的方案,设计方法学己经成为焦点嵌入式系统设 计的总体目标是平衡产品成本和开发时间,以及其他成本,包括性能、功能和产 品尺寸等。目前嵌入式设计领域的主要设计方法有基于构件的设计、基于平台的 设计、软硬件协同设计等。传统的结构化白上而下设计方法虽然节省了时间和成 本,但制约了设计的可扩展性和可复用性相对于个人电脑系统设计软件工程的 成熟度,嵌入式系统设计方法还处于探索阶段 在安全监控市场上,网络化监控系统的发展将是必然趋势。嵌入式网络摄像 机的优势和广阔前景促使国内外安防厂商纷纷研发嵌入式网络摄像机,如:索尼、 松下、三星、安讯士、台湾一硕和晶睿、d - - + i n k 、j v c 、p i x i h 等,国内也有部 分安防企业生产不同型号的嵌入式网络摄像机,亚安、明景、泰和中科、优比特、 东英、锐图科技、广州安居宝等。 但国内生产厂商在设计过程中对设计方法的研究和应用较少,这造成嵌入式 网络摄像杌的上市时间过长,系统可扩展性和软件复用性较差对嵌入式网络摄 像机系统设计方法的研究和应用具有较大的理论指导和实践意义。 第一章引言 1 3 本文主要研究内容 基于平台的设计方法在嵌入式设计流程的各个关键结合点定义了不同平台和 各平台之间的过渡每个平台表示设计流程中的一层,每一层都是子设计流程 的抽象。平台是一种抽象层次,从两层图看:上层是设计的抽象,用于屏蔽下层 的细节上层可以开发不同的应用在下层用户可以根据方法所定义的规则定制 不同的部件集合构成平台的一部分1 2 1 基于平台的设计方法可以提高组件和模块 复用并规范化设计流程 本文根据基于平台的设计方法,提出了一种嵌入式网络摄像机的软件设计分 层结构和软件平台到系统平台栈的映射。本文具体章节的内容如下: 第一章介绍了嵌入式网络摄像机的发展现状和基本原理以及基于嵌入式设计 模式的发展和挑战最后介绍了本文个章节的内容安排 第二章介绍了基于平台设计方法的主要原理和概念,并描述了基于平台软件 分层结构和设计方法,以及上层和底层之间的映射 第三章详细研究了基于平台的嵌入式网络设计像机系统分析和设计,提出了 嵌入式网络摄像机软件系统的分层结构和软件平台到系统平台栈的映射。然后描 述了硬件平台所包含的部件。 第四章具体描述了系统的视频采集模块。其中包括摄像头驱动程序的设计和 移植,视频采集应用程序的设计。 第五章介绍了系统的网络视频传输模块。其中简介了套接口编程,随后给出 了嵌入式网络摄像机和p c 机客户端的具体设计步骤。 第六章介绍了实验结果并对嵌入式网络摄像机系统的设计进行了总结。 青岛大学硕士学位论文 第二章基于平台的设计方法 在经济上可行的嵌入式设计流程要求_ - 种结构化的设计方法学即在理论上需要 限制搜索的空间。基于平台设计方法是以在设计流程中所有关键节点上对平台的定 义为基础的每一个平台代表在设计流程中的一个层,该层是所涉及到的后续设计 步骤的抽象。通过仔细地定义平台层、细化子层并从一层平台转换到另一层平台 基于平台的设计方法的抽象层隐藏了更低一级抽象层不相关的细节。基于平台的 设计已经出现了若干年,而且也有若干基于该原理推出的若干芯片、芯片组、体系 结构及中间件,包括操作系统、编译器、设备驱动程序及网络通讯协议 基于平台的设计方法学是s o c 一个主要关注的问题,其目的是芯片制造与设计 的经济性嵌入式系统设计的最高目标是在与开发时间有关的生产成本及与性能, 功能及产品体积等限制条件相关的成本之间寻求平衡【3 j 基于平台设计的设计方法学的目标是对部件的制造、n r e 及设计成本方面进行 统筹考虑,尽量减少设计性能方面的降低【4 1 2 1 平台 平台的概念已经出现数年,已有很多的平台概念,但都依赖于应用的领域。在集 成电路领域,一个平台需要考虑的问题是利用对芯片的一个或多个部件进行“编程” 来实现一个特殊用途的应用,即将一个“灵活的”的集成电路进行定制化工作编 程可以在“金属定制化”( 门阵列) 、电子修正( f p g a 个性化) p l 上实现,或者在运 行在一个微处理器上或d s p 上的软件上实现。例如,一个固定的微型体系结构的平 台,其目的是使掩膜制造成本最小化,但必须足以灵活,以保证其若干的应用在大 规模的生产中并能够延长芯片的生命周期这种方法的问题在于缺乏优化,从而导 致性能较低且面积过大这种概念的扩展就是同一芯片的“一个系列”。即基于同一 微处理器但芯片的一个或多个部件不同 基于平台的设计定义为:创造一个稳定的基于微处理器的体系结构,该体系结构 能够快速地扩展、能为某些应用进行定制及为用户提供快速的解决方案嘲在p c 机 领域,p c 机的制造商能够围绕标准的。平台”快速及高效地开发他们的产品,该平 台已经出现数年,其体系结构标准总结如下【7 】: a x 8 6 指令集体系结构( i s a ) 使操作系统及应用软件在二进制代码级上可复 用: b 一个完全规范的总线集( i s a 、u s b 及p c i ) 使不同产品共用相同的扩展板或 第二章基于平台的设计方法 集成电路成为可能; c 一贯支持处理软件与硬件之间交互作用的i s 中断控制器; d 若干非常规范的i o 设备,如键盘、鼠标、音响及视昕设备 所有的p c 机都满足这些规范,如果仔细地检查p c 平台的结构,就能发现不但在 硬件细节方面的体系结构是标准化的,而且还存在在体系结构上受到若干限制的抽 象层( 上述的a 到d ) 平台是一“系列”的( 微) 体系结构的一个抽象在这种情 况下,由于基本的部件是固定的,而在某种程度上允许在性能及成本上进行优化, 设计时间大幅度地缩短。 2 2 基于平台的设计 l ,基本概念 各种基于平台的设计已经使用了多年。但需要关心的是对基于平台设计的各个关 键因素进行规范的定义,这些关键因素是进行设计技术研究与实践的基本框架。萋 于平台的设计方法学的基本原则如- f i l l : 将设计看作为一个“中闻过程”,其中规范说明的每一步细化等价于下一步 实现的抽象。 精确定义层的标识是处于细化与抽象处理发生的位置层用于支持设计将低 一层的细节进行隔离,但又有足够的信息来查看低层的抽象可以使用参数的方法 来传递信息,从丽完成对抽象当前层的设计选择。将抽象的这些层称为平台,以强 调在设计过程及完整性方面的作用。 可以将一个平台定义为设计流程中的一个抽象层,用于在设计流程中将可能出现 的细化转换为后续抽象层( 平台) 嘲。经常将两个相连的层及其之间的“填充”看 作为一个唯一的层,从上面看为顶部抽象层,从下面看为底部抽象层。 一个平台栈( p l a t f o r ms t a c k ) 是一对平台1 9 1 ,其中的工具与方法用于将上一层 的抽象映射到下一层的抽象 2 、体系结构平台 通常,将用于嵌入式系统中的集成电路开发成为一个特殊体系结构平台的实例, 即并不是由若干已经开发出来的独立模块组装的,而是从一个特殊的“系列”体系 结构演化而来的,其目的是为了解决一类特殊的问题,可以由系统开发者修改( 扩 展或裁剪) 系列中的元素实际上是一种能够适应多种应用场合的“硬件”的另一种命名方法。 因此,由紧密联结在一起的系列体系结构组成的体系结构平台主要的目标是为了 优化设计时间,系列中的每一个元素都可以通过改变控制体系结构的相应参数而迅 青岛大学硕士学位论文 速得到唧 体系结构平台通常拥有可编程部件,因此,从体系结构平台演化而来的每一个平 台的实例均具有足够的灵活性,以支持保证能够经济地大规模制造的应用定义体 系结构的库也可以拥有可重构部件可重构性分为两个方面的内容【咖,其一是运行 时可重构,即将f p ( ;a 的模块由用户定制而不需要改变掩膜,因此,节省了设计时间 与生产成本:另一种可重构方法是设计时可重构,在这种情况下,只是节省了设计 时间 3 、体系结构平台实例 一个体系结构平台的实例是从体系结构平台演化而来的,其方法是选择来自于体 系结构平台库的若干部件并设置库中可重构部件的参数 一个平台实例的灵活性,即能够支持不同应用的能力,由可编程部件予以保证。 可编程性有多种方法,目前常用两种方法i t l l ,其一是软件可编程性,利用微处理器、 d s p 及其他可编程的部件;其二是硬件的可编程,利用可重构逻辑模块,如f p ( ;a , 其中的逻辑功能可由软件工具进行修改而不需要对掩膜组进行定制 4 设计方法 目前,体系结构平台的选择与其说是科学不如说是艺术从应用的角度来看,决 定体系结构平台的制约常常借助于性能及“大小”来指定,对于一个具体的应用, 为了完成某些功能,要求c p u 至少运行在一定的速度,同时要求内存至少需要多少 字节由于每一种产品都具有不同的功能指标,制约确定了不同的体系结构平台, 应用越复杂,对体系结构的制约越多。从i c 制造厂商的角度来看,生产与设计的成 本意味着增加了平台的制约,最终将减少了选择的数量两种制约合起来就定义了 用于最终产品的体系结构平台。需要注意的是,最终产品所选择的平台实例可能是 超前设计的,即产品的实现功能没有完全利用设计所给出的功能,在p c 平台中,超 前设计是非常普遍存在的现象。在很多的应用中,超前设计的体系结构一直是用来 作为新的软件产品与扩展应用的载体。在嵌入式系统领域中,为了追求设计成本及 上市时间,在适当范围内的超前设计是完全可以接受的因此,体系结构平台。设 计”是折衷的结果。 一旦选择好了体系结构平台,设计过程必须遵循体系结构平台的制约。这些制约 不但管制部件本身,而且也约束其通讯机制。事实上,具体的总线是通讯机制的一 个必然选择( 例如,a r m 系列处理器的a m b a 总线) 基于体系结构平台的设计既不是自上而下也不是自下而上的设计方法学,确切地 说应该是“处于中间”的一种方法1 1 2 1 在纯粹的自上而下的设计过程中,应用说明 应该是设计过程的开始设计决策的顺序将驱使设计者选择体系结构成本最小的方 案。在自下而上的设计方法中,先设计一个具体的体系结构( 体系结构平台的一个 第二章基于平台的设计方法 实例) ,用于支持若干不同的应用,而这些应用的定义通常是模糊的,一般是根据设 计者的直觉及来自于市场的反馈通常,i c 公司一般遵循平台实例的应用数量最大 化原则。来来的趋势是在定义平台及平台实例时与系统公司紧密合作,因此,必须 采用处于中间的设计方法 应用开发者利用所使用的体系结构平台。首先选择能够胜任工作任务的最合适的 体系结构要素,以产生一个平台实例然后,再将应用映射到平台实例上,映射的 过程包括硬件与软件的功能划分【1 2 1 在完成了这一步骤之后,设计者可能需要将运 行在可编程部件上的软件实现转移到一个逻辑模块上。这种硬件的实现可以从可编 程逻辑到全定制均能够实现,硬件的描述将从实现平台中抽象出来。一旦在划分及 平台实例的选择完成之后,设计者也就开发了最终及优化后的应用软件版本。 一个系统功能的大部分实现是由软件来完成的,事实上,在系统级上的设计方面, 非常明显的趋势是重视软件的设计而不是硬件的实现市场的数据统计表明,软件 的工作量要比硬件多出8 0 以上,这就意味着一个有效的平台必须为软件提供一个 强大并且与开发成本相适应的设计环境。另外,推动平台中可编程部件向标准化方 向发展的动力是软件的复用如果指令集的体系结构( i n s t r u c t i o ns e t a r c h i t e c t u r e ,i s a ) 保持不变,软件的对接还是比较容易的件事情。但是,这种 机制也限制了设计者的自由度,为了维持软件的兼容性,因为这将迫使他们放弃改 变平台的可能性,只得使用原有的体系结构。于是一个有效的基于平台的设计存 在下面两个问题 1 3 j : a 软件开发环境; b 若干将平台的细节与应用软件隔离的工具。 2 3a p i 平台 体系结构平台的概念本身并不涉及到应用软件的复用,体系结构平台必须抽象到 一个层上,在该层上应用软件能够“看”到硬件的更高一层接口,将该层称为应用 程序接口( a p p l i c a t i o np r o g r a mi n t e r f a c e ,a p i ) 【1 4 】,或者称为程序员模型。使 用一个软件层来实现这个抽象( 见图2 1 ) ,该层也将体系结构平台的基础部分进行 了封装【i ,l ,即: 通过实时操作系统( r e a lt i m eo p e r a t i n gs y s t e m ,r t o s ) 对可编程内核及 内存子系统进行了封装: 通过设备驱动程序对i o 子系统进行了封装; 通过网络通讯子系统对网络连接进行了封装 6 青岛大学硕士学位论文 图2 1 分层的软件结构 在基于平台设计的概念框架中,编程语言是i s a 的一个抽象,而a p i 是多种计算 资源( 并发模型由r t o s 提供) 及外设( 设备驱动程序) 的一个抽象a p i 是体系结 构平台对软件层的唯一抽象由于a p i 是以这种方式定义的,应用软件对每一个平 台实例都是可以复用的。由于a p i 本身就是一个平台,也将a p i 称为a p i 平台i 1 0 1 当然,在一个平台中,定义的抽象层越高,含有的实例就越多例如,对于共享 源代码来说,必须需要相同的操作系统,但并不需要具有相同的指令集,而对共享 的二进制代码来说,必须对体系结构进行制约,要求使用相同的i s a ,因此,体系 结构选择的制约大幅度增加。 在基于平台设计的概念框架中,r t o s 负责有效计算资源任务的管理及任务与内 存予系统之间通讯的管理1 9 1 在很多的嵌入式系统中,有效的计算资源只是由一个 微处理器组成。在其他领域中,如无线手持设备,将r i s c 微处理器或控制器与d s p 结合起来使用已经广泛应用于2 g 、目前的2 5 g 与3 g 中。在机顶盒中,已经采用了 一个r i s c 控制器及一个多媒体处理器。通常,在一个多核的系统结构平台中,r t o s 负责管理跨越不同计算引擎的软件进程。 7 第二章基于平台的设计方法 2 4 系统平台栈 系统平台栈的基本概念见图2 3 口1 在两个锥平面的顶点之处就是 p i 及体系结 构平台的交汇点。系统的设计者将其应用映射到抽象的描述中,该抽象“包括”一 系列从优化的成本、效率、能耗节省及灵活性几个方面进行选择的体系结构如果 具备若干有效的软件工具( 如软件综合、r t 0 s 综合及设备驱动综合) ,可以实现从 应用到由a p i 说明的实际体系结构的映射。很明显,综合工具必须关注体系结构的 特征及a p i 这些工具可以利用软件层以实现从a p i 平台到体系结构平台的连接 系统平台栈是两个平台与能够将个抽象映射到另一个抽象的工具的组合。从平 台栈的概念中可以看出,将顶层平台与底层平台粘合在一起可以得到一个“单”层, 从上往下看是a p i 平台,从下往上看是组成体系结构平台的若干部件 在设计的过程中,很明显需要在a p i 的抽象层与所包含的不同平台实例的数量之 间进行折衷a p i 的抽象越多,平台实例将越多,但选择“完美”的体系结构平台 并进行自动地映射就越困难。因此,期望大多数的系统平台栈能够具有稍微不同的 抽象与工具。例如,含有数量不多部件的传统平台,如具有微处理器及d s p ,所含 有的a p i 就比可重构体系结构简单 综观已经给出的方法,可以认为设计首先是一个提供抽象视图的过程。也就是说, 一个“a p i ”平台是一个在某些比较复杂设备或系统之上的预先定义的抽象层,这些 设备或系统能够用于在更高一层上进行设计假设低一层的机器是一个具有某些外 围设备及某些可编程逻辑的微控制器。使用固定外围设备模型的一个高级语言编译 器、一个小型的k t o s 及一个用于可编程逻辑的综合工具,就可以在a p i 平台与机器 的体系结构之闻提供连接。 在该模型之后,可以看到抽象到“a p i ”模型之中的一个设计的结构化视图,“a p i ” 模型提供了支撑在该抽象层之上的设计过程的基础。为了选择合适的体系结构平台, 需要在a p i 层上留出体系结构平台的一个“执行”模型,其作用是评估低一层体系 结构平台的性能,该模型可能包括尺寸大小、能耗及时序,还有在低一层抽象( 实 现平台) 相关的变量及不能够在“a p i ”层上计算的变量另外,还需要从制约的角 度出发,从高一层的抽象到低一层的抽象持续进行细化,以满足原始设计所提出的 制约。为了选择可行的方案,将制约与评估过程同时处理,也可以使用成本函数。 总而言之,系统平台栈是一个重要的模型,从视图的角度来看,该模型包括了应 用及实现两个平台的视图,在图2 2 中系统平台栈处于两个锥面的交汇点。 青岛大学硕士学位论文 圈2 2 系统平台栈 系统平台有效地将应用开发过程( 上三角) 从体系结构实现过程( 下三角) 中分 离出来。一旦使用了上述的“a p i ”抽象定义,其情况非常相似于p c 平台,但又是 全部是硬件的实现。对于全定制硬件方案,程序员模型是不重要的,因为在将要实 现的功能与实现这些功能的逻辑模块之间存在一对一的陕射基于平台的设计是在 传统的设计方法学上增加了某些更高层的抽象,可复用当然就无从谈起一个映射 到相应平台上的应用及从低一层平台到a p i 的性能参数的输出。 9 第三章基于平台的嵌入式网络摄像机系统设计 第三章基于平台的嵌入式网络摄像机系统设计 本系统采用基于平台的方法进行设计,按照系统的功能划分为硬件平台和软 件平台硬件平台采用a r 鹕核心的微处理器及相应的网络和视频外设作为体系 平台结构实例软件平台采用嵌入式a p 瑚- l i n u x 、摄像头设备驱动程序和网络套 接口的封装为设计者提供a p i 平台 3 1 嵌入式网络摄像机系统的软件平台分层 在软件开发平台上,包括的功能有设各初始化、摄像头参数控制、视频采集、 网络视频数据传输。网络视频传输功能分布在嵌入式平台和嵌入式平台视频服务 器软件和p c 机客户端软件。通过摄像头驱动程序提供的接口编写视频采集应用 程序采集j p e c 图像,图像数据通过s o c k e t 接口程序发送到p c 机的客户端接收 并显示 根据基于平台的设计方法,对嵌入式网络摄像机软件平台进一步细化,形成 自下而上的四个层次。四层依次为硬件驱动层、图像采集层、a p i 平台层、应用 层。软件系统的组件分布在各个层次中如图3 1 应用层 a p i 平台层 图像采集层 硬件驱动层 图3 1 软件平台分层 应用层包括视频采集应用程序采集j p e g 图像,图像数据通过s o c k e t 接口程 序发送到p c 机的客户端接收并显示 a p t 平台包括:引导加载程序、l i n u x2 4 1 8 内核的a r ml i n u xa p i 嵌入式 操作系统、网络通信协议栈。“”其中引导加载程序即通常所说的b o o tl o a d e r 。 l i n u x 内核根据本系统的需要进行了裁剪。i l ”驱动程序通过高层抽象为应用程 序提供通用接口。 图像采集层软件包括摄像头初始化、状态控制、曝光控制以及图像采集。在 应用执行期间,这个软件保持摄像头的状态和控制、处理图像需求以及执行构造 和控制需求。 l o 青岛大学硕士学位论文 硬件驱动层软件主要包括摄像头和网络控制器驱动,由系统开发者提供,图 像采集层将其用于访问物理成像硬件以及在系统上运行与硬件相关的任务。图像 采集层调用这一层来处理对硬件的物理控制,比如定时功能、低级别中断服务例 程控制、d m a 初始化和控制、系统专用内存控制等 3 2 软件开发平台到系统平台栈的映射 基于平台设计方法中,设计者利用所使用的体系结构平台,首先选择能够胜 任工作任务的最合适的体系结构要素,以产生一个平台实例。然后,再将应用映 射到平台实例上,映射的过程包括硬件与软件的功能划分。嵌入式两络摄像机系 统分为硬件开发平台与软件开发平台。图3 2 给出了软件开发平台与系统平台栈 的映射 系统平台栈 图3 2 软件开发平台到系统平台找的映射 图中左侧为系统软件开发平台自上而下实现的功能,右侧为嵌入式网络摄像 机系统的系统平台栈。根据基于平台的设计方法,在系统软件平台分层完成之后, 将各个软件模块映射到系统平台栈。按照自下而上的顺序对功能进行映射: 图像压缩映射到硬件平台的摄像头中,通过摄像头内部的d s p 进行压缩,生 成j p e g 图像格式视频图像数据将存储在设备缓冲区中,通过驱动程序的封装 供软件系统读取。 摄像头初始化和参数控制功能映射到摄像头驱动程序提供的接口。从而屏蔽 第三章基于平台的嵌入式网络摄像机系统设计 底层的硬件细节,便于程序设计者直接调用 图像采集功能模块和网络视频传输子系统通过为应用层所实现的功能,通过 交叉编译工具和a p i 平台中封装的v 4 l 及套接口映射到体系结构平台 下面将介绍基于平台系统设计过程中的系统平台栈 1 、a r 时- l i n u x 嵌入式系统 a r ml i n u x 是l i n u x 内核在a r m 平台上的移植l i n u x 在a r m 平台的移植由 r u s s e l lk i n g 领导,很多其他人为此作出了相关的工作在a r ml i n u x 的整个 开发过程中,不同国家的组织和个人都作出了贡献。a r ml i n u x 内核已经成功移 植到5 0 0 多种不同的应用中,包括完整的计算机、网络计算机、手持设备和开发 板。“”目前国内用得较多的是2 4 版。由于2 4 版比较稳定,本设计中采用了 2 4 1 8 版本的l i n u x 内核 2 、嵌入式网络摄像机系统的b o o f l o a d e r 简单地说,b o o t l o a d e r 就是在操作系统内核运行之前运行的一段小程序。通 过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统 的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的 环境。 大多数b o o t l o a d e r 都分为s t a g e l 和s t a g e 2 两大部分。依赖于c p u 体系结 构的代码,比如设备初始化代码等,通常都放在s t a g e l 中,而且通常都用汇编 语言来实现,以达到短小精悍的目的。而s t a g e 2 则通常用c 语言来实现,这样 可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。 b o o tl o a d e r 的s t a g e l 通常包括以下步骤“”: 硬件设备初始化。 为加载b o o tl o a d e r 的s t a g e 2 准备r a m 空间 拷贝b o o tl o a d e r 的s t a g e 2 到r a m 空间中 设置好堆栈 跳转到s t a g e 2 的c 入口点 b o o tl o a d e r 的s t a g e 2 通常包括以下步骤: 初始化本阶段要使用到的硬件设备。 检测系统内存映射( m e m o r ym a p ) 将k e r n e l 映像和根文件系统映像从f l a s h 上读到r a m 空间中 为内核设置启动参数 调用内核 3 、a r m - l i n u x 交叉编译环境 ( 1 ) 交叉编译 交叉编译是指在一个平台上生成另一个平台上的可执行代码而交叉编译其 青岛大学硕士学位论文 就是在本她机器上可以运行的编译器,用它编译生成的可执行文件在本地机器上 不能运行,是为另一个平台准备的 目前一般采用的解决办法是首先在主机端( 可称之为h o s t ) 编写程序通过交 叉编译生成目标平台上( n - - f 称之为t a r g e t ) 可运行的二进制的代码,在下载到 目标平台上的特定位置运行在主机端和目标板之间需要通过某种方式进行通 信,如使用r 3 2 3 2 串口、以太网等。“町 宿主机( h o s t ) g d b 调试工具 g c c 编译嚣r $ 2 3 2 b i n u t i i s 工具包 f t h d m d 用户程序 g l i b c 库 主 机 文件系统 交 通 换 讯 l i n u x 内核 交叉工具链 机 层 c) b o o t l o a d e r 目标机接口层 - 一 r $ 2 3 2 图3 3 交叉编译环境示意图 ( 2 ) 创建交叉编译器 在裁减和定制l i n u x ,运用于你的嵌入式系统之前,由于一般嵌入式开发系 统存储大小有限,通常你都要在你的强大的p c 机上建立一个用于目标机的交叉 编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。一个完整 的交叉编译器包括以下几个部分:交叉编译器( g c c ) ,库文件( g l i b c ) ,调试工 具( g d b ) 、l i n u x 头文件,以及些常用的操作二进制文件的工具( b i n u t i l s ) 获得这些相应部件,就可以手工搭建交叉编译环境了。但建立一个交叉编译工具 链是一个相当复杂的过程。 过程包括以下几步: a 下载源文件、补丁和建立编译的目录 b 建立内核头文件 c 建立二进制工具( b i n u t i l s ) d 建立初始编译器( b o o t s t r a pg c c ) e 建立c 库( g l i b c ) f 建立全套编译器( f u l lg c c ) 本系统为了快速建立交叉编译环境,可以使用了已经编译好的交叉编译工具 第三章基于平台的嵌入式网络摄像机系统设计 链由于编译不同版本的内核需要试用相应版本的编译器,本系统使用2 4 1 8 版本的内核,所以使用c r o s s - 2 9 5 3 t a r b z 2 软件包。本机的开发环境为宿主 机i 3 8 6 - r e d h a t 9 ,目标机a r m 9 2 0 t ( 3 ) 安装交叉编译工具链 启动p c 机并进入l i n u x 操作系统,拷贝c r o s s - 2 9 5 3 t a r b z 2 到u s r i o c a l 目录下,再此目录下再建立一个a 堋目录二进入a r m 目录再执行解压命令:t a r 。x j v f u s r l o c a l c r o s s 一2 9 5 3 t a r b z 2 ,就可以在此目录下看到解压所得 到文件夹“2 9 5 3 ”,之后编辑e t c b a s h r c 文件,在文件最后增加路径e x p o r t p a l l i = u s r l o c a l a r m 2 9 5 3 b i n :$ p a t h 当编译内核或应用程序时可以用 a r m - l i n u x 一来制定交叉编译器。 4 、l i n u x 设备驱动程序 在l i n u x 中几乎每种系统操作最后都要映射到物理设备上。除了处理器,内 存和少数其他实体外,几乎所有设备的控制操作都由设备相关的代码来实现。这 些代码就是设备驱动程序 在本系统中使用了v i m i c r 0 3 0 1 p 摄像头和c s 8 9 0 0 a 网络控制器,对0 v 9 6 5 0 摄 像头和c s 8 9 0 0 a 的驱动程序在a r m l i n u x 平台上进行移植是工作之一本系统中 0 v 9 6 5 0 摄像头的驱动程序编译为模块,存储在文件系统中,并于l i n u x 启动时 进行加载。c s 8 9 0 0 a 网络驱动直接编译到内核中去。 ( 1 ) l i n u x 中的模块 l i n u x 的一个很好的特征就是,它可以在运行的时候扩展内核代码,也就是 说在系统运行的时候可以增加系统的功能。 每个可以增加到内核中的代码称为一个模块l i n u x 内核支持相当多的模块 的类型( 或“类”) ,但不仅仅只局限于设备驱动程序。每个模块由目标代码组成 ( 没有连接成完整的可执行文件) ,通过i n s m o d 程序它们可以动态连接到运行着 的内核中,而通过r n m o d 程序就可以去除这些模块。 l i n u x 可以以模块的形式加载每种设备类型,因此允许用户在最新版本的内 核上实验新硬件,跟随内核的开发过程。 每个模块通常只实现一个驱动程序,因此是可以分类的。例如,字符设备模 块,或块设备模块。将模块分成不同的类型或类并不是固定不变的:程序员可以 选择在单独一整块代码中创建一个模块实现不同的驱动程序。 ( 2 ) l i n u x 的设备的分类 l i n u x 所支持的硬件设备,有如下三种类型: 字符设备 可以象文件一样访问字符设备,字符设备驱动程序负责实现这些行为。这样 的驱动程序通常会实现o p e n ,c l o s e ,r e a d 和w r i t e 系统调用。系统控制台和并 1 4 青岛大学硕士学位论文 口就是字符设备的例子。它们可以很好地用流概念描述通过文件系统节点可以 访问字符设备,例如d e v t t y l 和d e v i p l 在字符设备和普通文件系统间的唯 一区别是:普通文件允许在其上来回读写,而大多数字符设备仅仅是数据通道, 只能顺序读写。当然,也存在这样的字符设备,看起来象个数据区,可以来回读 取其中的数据。 块设备 块设备是文件系统的宿主,如磁盘在大多数u n i x 系统中,只能将块设备看 作多个块进行访问为,一个块设备通常是1 k 字节数据l i n u x 允许象字符设备 那样读取块设备一允许一次传输任意数目的字节。结果是,块设备和字符设备 只在内核内部的管理上有所区别,因此也就是在内核驱动程序间的软件接口上 有所区别就象字符设备一样,每个块设备也通过文件系统节点来读写数据,它 们之间的不同对用户来说是透明的。块设备驱动程序和内核的接口和字符设备驱 动程序的接口是一样的,它也通过一个传统的面向块的接口与内核通信,但这个 接口对用户来说时不可见的。 网络设备 任何网络事务处理都是通过接口实现的,即可以和其他宿主交换数据的设备 通常,接口是一个硬件设备,但也可以象1 0 0 p b a c k ( 回路) 接口一样是软件工 具。网络接口是由内核网络予系统驱动的,它负责发送和接收数据包,而且无需 了解每次事务是如何映射到实际被发送的数据包。尽管“t e l n e t ”和“f t p ”连 接都是面向流的,它们使用同样的设备进行传输;但设备并没有看到任何流,仅 看到数据报 7 由于不是面向流的设备,所以网络接口不能象d e v t t y l 那样简单地映射到 文件系统的节点上l i n u x 调用这些接口的方式是给它们分配一个独立的名字( 如 e t h o ) 这样的名字在文件系统中并没有对应项内核和网络设备驱动程序之间 的通信与字符设备驱动程序和块设备驱动程序与内核间的通信是完全不一样的 内核不再调用r e a d 、w r i t e 。它调用与数据包传送相关的函数。 本系统中的摄像头属于字符设备,而网络控制器属于l i n u x 的网络设备。 ( 3 ) l i n u x 驱动程序 l i n u x 的设备管理是和文件系统紧密结合的,其最基本的管理思想是:将设备 作为一个特殊文件对待,通过文件访问接口对文件进访问l i n u x 中各种设备都 以文件的形式存放在d e v 目录下,称为设备文件。应用程序可以打开、关闭、读 写这些设备文件,完成对设备的操作就像操作普通的数据文件一样。为了管理这 些设备,系统为设备编了号,设备号又分为主设备号和次设备号主设备号用来 区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论