(计算机应用技术专业论文)基于嵌入式linux的图像监控系统的研究.pdf_第1页
(计算机应用技术专业论文)基于嵌入式linux的图像监控系统的研究.pdf_第2页
(计算机应用技术专业论文)基于嵌入式linux的图像监控系统的研究.pdf_第3页
(计算机应用技术专业论文)基于嵌入式linux的图像监控系统的研究.pdf_第4页
(计算机应用技术专业论文)基于嵌入式linux的图像监控系统的研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

摘要 图像监控系统是一门集计算机技术、通信技术和多媒体技术于一 体的综合系统。它以直观、方便、信息内容丰富等特性而被广泛地应 用于工业生产、交通、电信、电力等场所。随着嵌入式技术和图像处 理技术的发展使得数字化图像数据的网络实时传输和控制成为现实。 嵌入式图像监控系统作为一种新型的监控系统,它在稳定性、实 时性、处理速度、功能、价格、扩展性等方面相比传统的监控系统有 着突出的优势,同时它也代表着目前图像监控系统研究和发展的重要 方向。 本文设计了一种基于嵌入式l i n u x 的图像监控系统,在此监控系 统中,服务器端采用嵌入式l i n u x 系统平台,具体采用a r m 内核的 $ 3 c 2 4 1 0 a 芯片作为处理器。服务器程序在其上以后台方式运行,等 待监控系统中的客户端发出访问请求。服务器端接收到客户端发出的 请求后,就把采集到的图像数据通过网络发送给客户端。 本文首先综述了选题背景以及国内外研究现状,然后介绍了嵌入 式系统,l i n u x 操作系统和网络技术。在此基础上,从硬件和软件两 个方面设计了嵌入式l i n u x 图像监控系统。硬件部分重点分析了 $ 3 c 2 4 1 0 处理器。软件部分讨论了交叉编译环境的建立,b o o t l o a d e r 和内核的移植。接着重点分析了l i n u x 设备模型结构和网络设备驱动 程序。在介绍了v 4 l 编程后,实现了监控系统的图像采集和网络传 输部分。论文的最后,构建了系统实验环境,测试结果显示,达到了 本课题预定的目标,实现了图像监控的功能。 关键字:a r m ,l i n u x ,v 4 l ,嵌入式系统,图像监控 a b s t r a c t i m a g em o n i t o r i n gs y s t e mi sa ni n t e g r a t e ds y s t e mc o m b i n e d w it hc o m p u t e rt e c h n o l o g y ,c o m m u n i c a ti o nt e c h n o l o g ya n d m t l lt i m e d a , c h n o l or f o ri t si n t u i t i o n i s t i c ,i v e n i e n t ,a n d m u l t i m e d i a t e c h n oo g yo r1 t si n t u l t i o n l s t l cc o n v e n l e n a n a , a b u n d a n tm e s s a g ec h a r a c t e r i s t i c ,i ti sw i d e l yu s e di ni n d u s t r y m a n u f a c t u r e ,t r a f f i c ,c o m m u n i c a t i o n ,p o w e rs t a t i o n ,e t c w i t h t h ed e v e l o p m e n to fe m b e d d e dt e c h n o l o g ya n di m a g ep r o c e s s i n g t e c h n o l o g y ,r e a l t i m e rt r a n s m i s s i o na n dc o n t r o lo fn e t w o r k u n d e rd ig it a li m a g ed a t ah a sr e a liz e d a san e wm o n i t o r i n gs y s t e m ,i m a g em o n it o r i n gs y s t e mb a s e d o ne m b e d d e dl i n u xh a so u t s t a n d i n ga d v a n t a g e si ns t a b i l i t y , p r o c e s s i n gs p e e d ,p r i c e ,e x p a n s i b i l i t y a n do t h e rf a c t o r s c o m p a r e dw i t ht r a d i t i o n a lm o n i t o r i n gs y s t e m ,m e a n w h i l e ,i t r e p r e s e n t st h ei m p o r t a n td i r e c t i o no fc u r r e n ti m a g em o n it o r i n g s y s t e m t h i sp a p e rd e s ig n sa ni m a g em o n i t o r i n gs y s t e m b a s e do n e m b e d d e dli n u x t h ew e bs e r v e rp r o g r a mr u n su n d e rt h ee m b e d d e d l i n u xs y s t e mp l a t f o r mw h i c ha d o p t sa r m 。k e r n e l $ 3 c 2 4 1 0a si t s c p u s e r v e rr u n s i nt h eb a c k s t a g ea n dw a i t sf o rc l i e n t s r e q u e s t w h e ns e r v e rr e c e i v e st h er e q u e s tf r o mc l i e n t ,i tw i l l s e n dc o ll e c t e di m a g ed a t at oc ll e n tt h r o u g hn e t w o r k f i r s t l y ,t h i sp a p e ri n t r o d u c e s t h eb a c k g r o u pa n dh i s t o r yo f m o n i t o r i n gs y s t e ma n dt h es t a t u so ft h ed o m e s t i ca n df o r e i g n r e s e a r c h ,t h e ni n t r o d u c e se m b e d d e ds y s t e m ,1i n u xa n dn e t w o r k t e c h n o l o g y b a s e do nt h i s ,t h ew h o l es y s t e md e s i g n i sd i v i d e d i n t oh a r d w a r ed e s i g na n ds o f t w a r ed e s i g nt w op a r t s i nh a r d w a r e d e s i g np a r t ,e x p l a i n se s p e c i a l l yt h e $ 3 c 2 4 1 0c h i p i ns o f t w a r e d e s i g np a r t ,d is c u s s e s c r o s s c o m p il e r e n v i r o n m e n t e s t a b l i s h m e n t ,a n dt h et r a n s p l a n t a t i o n s o fb o o t l o a d e ra n d e m b e d d e d1i n u xo nt h ea r mp l a t f o r m t h e nr e s e a r c h e ss t r u c t u r e s 1 1 1 o fl i n u xd e v i c e sa n dn e t w o r kd e v i c ed r i v e rr e a l i z a t i o n a f t e r i n t r o d u c i n gv 4 l ,i m a g eg a t h e r i n ga n dn e t w o r kt r a n s m i s s i o n u n d e re m b e d d e dl i n u xa r er e a l i z e d f i n a l l y ,t h ee x p e r i m e n t r e s u l ts h o w st h a tt h es y s t e mr e a l i z e st h ef u n c t i o no fi m a g e m o n it o ra n dr e a c h e st h ep r e d e t e r m i n e dt a r g e t k e yw o r d s :a r m ,l i n u x ,v 4 l ,e m b e d d e ds y s t e m ,i m a g em o n i t o r i n g 湖南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 学位论文作者签名张 文一1 年 处理来自传输层的分组发送请求:将分组装入i p 数据报, 填充报头,选择去往目的结点的路径,然后将数据报发往适当的网络 接口。 处理输入的数据报:首先检查数据报的合法性,然后进行路 由选择,假如该数据报已到达目的结点,则去掉报头,将i p 报文的 数据部分交给相应的传输层协议;如果该数据报尚未到达目的结点, 则转发该数据报。 处理i c m p 报文:即处理网络的路由选择、流量控制和拥塞控 制等问题。 ( 3 ) 传输层 t c p i p 参考模型中传输层的作用与o s i 参考模型中的传输层的 作用是一样的,即在源结点和目的结点的两个进程实体之间提供可靠 的端到端的数据传输n 刮。 t c p i p 模型提供了两个传输层协议:传输控制协议 t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) 和用户数据报协议u d p ( u s e r d a t a g r a mp r o t o c 0 1 ) 。t c p 协议是一个可靠的面向连接的传输层协议, 它将某结点的数据以字节流的形式无差错的投递到网络中的任何一 台机器上。t c p 同时处理有关流量的问题,以防止快速的发送淹没慢 速的接收方。用户数据报协议u d p 是一个不可靠的、无连接的传输协 议。i p 、t c p 和u d p 的关系如图2 - 5 所示。 t e l n e tf t ps m t p n 删 t c pu d p i p 以太网f d d ix 2 5a t m 应用层 传输层 网络层 网络接口层 图2 - 5t c p i p 模型各层使用的协议 ( 4 ) 应用层 该层负责处理实际的应用程序细节,包括所有的高层的协议,如 基于嵌入式l i n u x 的图像监控系统的研究 f t p 协议、d n s 协议、f t p 文件传输协议等等n 。 2 3 2s o c k e t 网络编程 本系统中网络传输部分的软件实现是采用s o c k e t 编程,系统调 用s o c k e t0 函数,返回一个s o c k e t 描述符,随后的连接建立、图像 传输等操作都是通过该s o c k e t 函数实现的n 引。 ( 1 ) s o c k e t 套接字 套接字是支持t c p i p 协议的网络通信的基本操作单元,可以将 套接字看作不同主机间的进程进行双向通信的端点,它构成了网络间 的编程界面。 套按字有两种不同的类型:流套接字和数据报套接字。流套接字 是面向连接的,通信双方进行数据交换前,必须建立一条路径,这样 既确定了它们之间存在路由,又保证了双方都是活动的,彼此响应的。 流套接字常被用来传输需要保证传输可靠性的数据,i n e t 地址族中 的t c p 协议支持该套接字。数据报套接字是无连接的,它不保证接收 端是否正在侦听,支持双向的数据流,但并不保证数据传输的可靠性、 有序性和无重复性,也就是说一个数据报套接字接收信息的进程有可 能发生信息重复,或者和发出时的顺序不同的情况,i n e t 地址族中 的u d p 协议支持该套接字,本系统采用的是基于t c p 连接的套接字编 程。 ( 2 ) 建立套接字s o c k e t ( ) 当编写t c p i p 程序时,需要使用无连接和面向连接的协议。 s o c k e t 接口可以使程序通过一个s o c k e t 连接使用这两类型的协议。 术返回:非负描述字一成功,一1 一出错术 s o c k e t 函数规定了三个参数:协议族、s o c k e t 类型和协议。 参数p r o t o c o l f a m l i y 指定通信发生的区域,u n i x 系统支持的 地址族有:a f u n i x 、a f i n e t 等,而d o s 、w i n d o w s 中仅支持a fi n e t , 它是网际区域。因此地址族与协议族相同,包括:a f _ i n e t ,a f i n e t 6 ( i p v 6 ) 和a fl o c a l ( 本地局域网) 。 参数s o c k e t t y p e 描述要建立的套接字的类型( 字节流、数据报 或原始套接口) 。 参数p r o t o c o l 说明该套接字使用的特定协议,如果调用者不希 望特别指定使用的协议,则置为0 ,使用默认的连接模式。 ( 3 ) 指定本地地址- - - b i n d ( ) 当一个套接字用s o c k e t0 创建后,存在一个名字空间( 地址族) , 但它没有被命名。b i n d0 将套接字地址( 包括本地主机地址和本地端 口地址) 与所创建的套接字号联系起来,即将一个本地地址与套接口 捆绑 m tb r a d ( r o ts o c k f d ,c o n s ts t r u c ts o c k a d d m y a d 妣i n ta d d r l ) ; 木返回:非负描述字成功,一卜出错木 参数s o c k f d 是由s o c k e t0 调用返回的并且未有作连接的套接字 描述符,参数m y a d d r 是指向特定协议地址结构的指针,赋给套接字 s o c k f d 的本地地址,其长度可变,结构随通信域的不同而不同, a d d r l e n 是该地址结构的长度。注意:不要采用小于1 0 2 4 的端口号。 所有小于1 0 2 4 的端口号都被系统保留,可选择从1 0 2 4 到6 5 5 3 5 的端 口中未被其他程序使用的端口。 ( 4 ) 监听套接字连接- - - l i s t e n0 函数l i s t e n 仅被t c p 服务器调用。当函数s o c k e t 创建一个套接 口时,被假设为一个主动套接口,也就是说,它是一个将调用c o n n e c t 发起连接的客户套接口,函数l i s t e n 将未连接的套接口转换成被动 套接口,指示内核应接受指向转换到l i s t e n 状态。此调用用于面向 连接服务器,表明它愿意接收连接。其调用格式如下: i n tl i s t e i l ( i n ts o c k f d m tb a c k l o g ) ; 术返回: 非负描述字一成功, - 1 - - - 出错术 参数s o c k f d 标识一个本地已建立、尚未连接的套接字号,服务 器愿意从它上面接收请求。b a c k l o g 表示请求连接队列的最大长度, 用于限制排队请求的个数。l i s t e n0 在执行调用过程中可为没有调用 过b i n d0 的套接字s o c k f d 完成所必须的连接,并建立长度为b a c k l o g 请求连接队列。 ( 5 ) 建立套接字连接a c c e p t0 基于嵌入式l i n u x 的图像监控系统的研究 a c c e p t0 函数由t c p 服务器调用,用于使服务器等待来自用户进 程的实际连接。它从已完成的连接队列头返回下一个已完成的连接。 若已完成连接队列为空,则进程睡眠。 h a ta c c e p t ( i n ts o c k f d ,s t r u c ts o c k a d d r * t h e i r a d d r , s o c l d c n _ t a d d r l e n ) ; 术返回非负数值一一o k ,一卜一出错水 a c c e p t0 用于面向连接服务器。参数t h e i r a d d r 和a d d r l e n 存放 客户的地址信息。调用前,参数t h e i r a d d r 指向一个初始值为空的地 址结构,而a d d r l e n 的初始值为0 :调用a c c e p t0 后,服务器从编号 为s o c k f d 的套接字上接受客户连接请求,而连接请求是由客户端的 c o n n e c t ( ) 调用发出的。当有连接请求到达时,a c c e p t ( ) 调用将请求 连接队列上的第一个客户端套接字地址及长度放入t h e i r a d d r 和 a d d r l e n ,并创建一个与s o c k f d 有相同特性的新套接字n e w s o c k f d 。 新的套接字可用于处理服务器并发请求。 ( 6 ) 输入输出多路复用一- - s e l e c t0 s e l e c t0 调用用来检测一个或多个套接字的状态。对每一个套接 字来说,这个调用可以请求读、写或错误状态方面的信息。请求给定 状态的套接字集合由一个f d _ s e t 结构指示。在返回时,此结构被更 新,以反映那些满足特定条件的套接字的子集,同时,s e l e c t0 调用 返回满足条件的套接字的数目,其调用格式如下: m ts e l e c t ( i n tn f d s ,f d s e tf a r - r e a d f d s ,f d s e t f a r ,w r i t e f d s ,f d s e tf a r 年 e x c e p t f d s ,c o n s ts t r u c tt i m e v a lf a r t i m e o u t ) ; 参数n f d s 指明被检查的套接字描述符的值域,此变量一般被忽 略。参数r e a d f d s 指向要做读检测的套接字描述符集合的指针,调用 者希望从中读取数据。参数w r i t e f d s 指向要做写检测的套接字描述 符集合的指针。e x c e p t f d s 指向要检测是否出错的套接字描述符集合 的指针。t i m e o u t 指向s e l e c t0 函数等待的最大时间,如果设为n u l l 则为阻塞操作。 s e l e c t0 返回包含在f d s e t 结构中已准备好的套接字描述符的 总数目,或者是发生错误则负值。 ( 7 ) 数据传输一s e n d ( ) 与r e c v ( ) 硕士学位论文 当一个连接建立以后,就可以传输数据了。常用的系统调用有 s e n d0 和r e c v ( ) 。s e n d t o0 和r e c v f r o m ( ) 应用在无连接的数据报套 接字。 s e n d ( ) 调用用于将n e w s o c k f d 指定的已连接的数据报或流套接 字上发送输出数据,格式如下: i n ts e n d ( i n tn e ws o c k f d ,c o n s t v o i d 幸m s g , i n tl e n ,i n tf l a g s ) ; 水返回实际发送缓冲区的数据的字节数- - - o k ,- 1 - - - 出错同时 设置e r r n o * 参数n e w s o c k f d 为已连接的本地套接字描述符。m s g 指向存有 发送数据缓冲区的指针,其长度由f e n 指定。f l a g s 指定传输控制方 式,如是不发送带外数据等。一般情况下把f l a g s 设置为0 。 r e c v ( ) 调用用于n e w s o c k f d 指定的已连接的数据报或流套接字 上接收输入数据,格式如下: i n tr e c v ( i n tn e w _ s o c k f d ,v o i d 幸b u f , i n tl e n ,u n s i g n e di n tf l a g s ) ; 术返回实际读入缓冲区的数据字节数- - - o k ,- 1 - - - 出错同时设置 e r r n o * r e c v ( ) 函数与s e n d ( ) 函数相似:参数n e w _ s o c k e d 为已连接的套 接字描述符,b u f 指向接收输入数据缓冲区的指针,其长度由l e n 指 定,f l a g s 指定传输控制方式,如是否接收带外数据等。 ( 8 ) 关闭套接字- - - c l o s e0 c l o s e0 关闭套接字n e w s o c k e t ,并释放分配给套接字的资源; c l o s e ( ) 的调用格式如下: i n tc l o s e ( i n ts o c k e t ) ; 水返回非负值- - - o k ,- 1 - - - 出错木 2 4 本章小结 嵌入式系统是多学科的领域知识的综合应用,具有软硬件紧密结 合的特定,因些在进行嵌入式系统开发的时候需要了解嵌入式技术、 基于嵌入式l i n u x 的图像监控系统的研究 l i n u x 操作系统、网络技术等多种技术才能更好的进行嵌入式系统设 计。正是基于此,本章对嵌入式技术,l i n u x 操作系统还有网络技术 做了详细的介绍。 堆于嵌 式l i n u x 的目像监控系统的研究 3 嵌入式l i n u x 图像监控系统设计 本文设计的嵌入式l i n u x 图像监控系统是在基于a r m 芯片 ( s 3 c 2 4 1 0 a ) 的硬件平台上移植嵌入式l i n u x ,并在l i n u x 的平台上实 现基于u s b 摄像头的图像数据采集和开发网络通信程序实现图像网 络传输。本章从硬件和软件两个方面来设计和架构嵌入式l i n u x 图像 监控系统。 31 基于嵌入式lio u x 图像监控系统硬件平台设计 硬件平台的没计是嵌入式系统设计的核心,本系统的硬件甲台由 两个模块组成:以s a m s u n g $ 3 c 2 4 1 0 a 微处理器( a p d v l 9 ) 为核心的目标 开发板和图像数据采集模块。 311 核心开发板 为了开发的方便性和简便性,本文研究所使用的硬件以s a m s u n g $ 3 c 2 4 1 0 a 微处理器( a r t y l 9 ) 为核心的目标开发板,$ 3 c 2 4 1 0 a 的接口非 常丰富,主频可高达2 0 3 m h z ,其内部集成了一系列完备的接口,从而 可以在最大程度的降低开发成本,减少外围器件的使用。本文所采用 的硬件平台如图3 - 1 所示: 幽3 1 嵌入j t 幽像临拄系统核心开发板 硕士学位论文 ( 1 ) s a m s u n g $ 3 c 2 4 1 0 a 嵌入式微处理器 s 3 c 2 4 1 0 a n 们微处理器是一款由s a m s u n ge l e c t r o n i c sc o ,l t d 为手 持设备设计的低功耗、高度集成的嵌入式微处理器。$ 3 c 2 4 1 0 a 最突 出的特性是采用了由a r m 公司设计的1 6 3 2 位a r m 9 2 0 tr i s c 处理 器( 2 0 3 m h z ) 为其c p u 内核并且采用了一种新的总线结构,即a m b a ( 高级微控制器总线结构) ,它的低功耗、精简和出色的全静态设计 特别适用于对成本和功耗敏感的应用。它集成了如下片内外围功能部 件2 0 1 : 1 个l c d 控制器( 支持s t n 和t f t 带有触摸屏的液晶显示屏) ; s d r a m 控制器; 令3 个通道的u a r t ; 4 个通道的d m a ; 夺4 个具有p w m 功能的计时器和1 个内部时钟; 令8 通道的l o 位a d c ; 令触摸屏接口; 夺i i s 总线接口; 2 个u s b 主机接口,1 个u s b 设备接口; 令2 个s p i 接口; , 今s d 接口和m m c 卡接口; 夺看门狗计数器; 夺1 1 7 位通用i o 口和2 4 位外部中断源; 夺8 通道l o 位a d 控制器。 在时钟方面s 3 c 2 4 1 0 a 也有突出的特点,该芯片集成了一个具有 日历功能的r t c 和具有p l l ( m p l l 和u p l l ) 的芯片时钟发生器。 m p l l 所产生的主时钟能够使处理器工作频率最高达到2 0 3 m h z ,这 个工作频率足以使处理器轻松运行l i n u x 、w i n d o w sc e 等操作系统 以及进行较为复杂的信息处理。u p l l 产生实现主从u s b 功能的时 钟。 $ 3 c 2 4 1 0 a 将系统的存储空间分成8 个存储块( b a n k ) ,每块大小 是1 2 8 m b ,共1 g b 。b a n k 0 到b a n k 5 的起始地址和空间大小是固定 的,用于r o m 和s r a m 。b a n k 6 和b a n k 7 用于r o m 、s r a m 或d r a m , 基于嵌入式l i n u x 的图像监控系统的研究 只有这两个存储块可编程;其中,b a n k 6 的起始地址是固定的,而 b a n k 7 的起始地址是b a n k 6 的结束地址,灵活可变。所有存储块b a n k 的访问周期都可编程。$ 3 c 2 4 1 0 a 采用n g c s 7 :0 8 个通用片选信号选 择这些块。 $ 3 c 2 4 1 0 a 支持从n a n df l a s h 启动,n a n df l a s h 具有容量大、 比n o rf l a s h 价格低等特点。系统采用n a n df l a s h 与s d r a m 组 合,可以获得非常高的性价比。$ 3 c 2 4 1 0 a 具有三种启动方式,可通 过o m 1 :o 管脚进行选择。 ( 2 ) f l a s h f l a s h 存储器又称为闪存,是一种新兴的半导体存储器件,能在 不加电的情况下长期保持存储的信息。它具有功耗低、容量大、擦写 速度快、可整片或分扇区在系统编程等特点,并且可由内部嵌入的算 法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。 作为一种非易失性存储器,f l a s h 在系统中通常用于存放程序代码、 常量表以及一些在系统掉电后需要保存的用户数据等。常用的f l a s h 的数据宽度为8 位或1 6 位,编程电压为单3 3 v 瞳。 f l a s h 又可分为n o rf l a s h 和n a n df l a s h 两种类型。n o rf l a s h 的特点是芯片内执行( x i p , e x e c u t ei np l a c e ) ,且芯片拥有独立的数据 和地址总线,所以能直接快速的随机读取。n o rf l a s h 的传输效率很 高,在1 - - - 4 m b 的小容量时具有很高的成本效益,但是很低的写入和 擦除速度大大影响了它的性能。 n a n df l a s h 的地址和数据采用同一总线,使用复杂的i o 口来 分时串行地传送控制、地址和数据信息。n a n df l a s h 随机读取的速 度慢且不能按字节随机编程,因此存放在n a n df l a s h 中的代码必须 拷贝到内存中才能执行。n a n df l a s h 以页为单位进行读写操作,一 页为2 5 6 或5 1 2 字节。以块为单位进行擦除操作,每一块为4 k b 、8 k b 或1 6 k b ,所以编程和擦除的速度快。n a n df l a s h 的引脚少,芯片 尺寸小,能提供极高的单元密度。 在系统运行之前,需要启动代码( 如:b o o t l o a d e r 程序) 将系统 的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核和 用户应用程序准备好正确的环境瞳引。这样,启动代码、操作系统内核 硕士学位论文 以及用户应用程序可以存放在n a n df l a s h 中,直接从n a n df l a s h 中启动。其原理介绍如下: s 3 c 2 4 1 0 a 内部集成了n a n df l a s h 控制器,为了支持系统从 n a n df l a s h 中启动,s 3 c 2 4 l o a 内部有一块被称为“垫脚石 ( s t e p p i n g s t o n e ) 的s r a m 缓存。在启动时+ ,$ 3 c 2 4 1 0 a 会自动的将 n a n df l a s h 存储器中最前面的4 k b 数据拷贝到$ 3 c 2 4 1 0 a 内部的 s r a m 中并自动执行,通常这4 k b 数据存放的是启动代码,这样, 启动代码就在$ 3 c 2 4 1 0 a 内部的s r a m 中执行。启动代码初始化系 统和外部s d r a m 后,将存储在n a n df l a s h 中的操作系统和应用程 序拷贝到外部s d r a m 中,整个系统就可以启动了。 本系统选用的目标开发板集成的n a n df l a s h 芯片是s a m s u n g 公司型号为k 9 f 1 2 0 8 u o m 的n a n df l a s h 芯片,容量为6 4 m b ,使 用8 位数据宽度。其接线图如图3 2 所示。 s 3 c 2 4 1 0 a d o d 7 k 9 f 1 2 0 8 u o m d 7 :0 】i o 7 :0 】 c l ec l e a l ea l e n f i 也n f r e r n br n b 1 1 f 、砸n f e n f c e r l f c e 图3 2 $ 3 c 2 4 1 0 a 与n a n df l a s h 的接线图 ( 3 ) s d r a m 与f l a s h 存储器相比较,s d r a m 不具有掉电保持数据的特性, 但其存取速度大大高于f l a s h 存储器,且具有随机读写的特性。因此, s d r a m 在系统中主要用作程序的运行空间、数据及堆栈区。在启动 代码完成系统的初始化后,操作系统内核或用户应用程序调入 s d r a m 中运行,以提高系统的运行速度。 基于嵌入式l i n u x 的图像监控系统的研究 $ 3 c 2 4 1 0 a 集成了s d r a m 控制器,可以连接两组s d r a m ,总 容量可达2 5 6 m b 。其数据位宽度可编程为8 位、1 6 位或3 2 位。 在$ 3 c 2 4 1 0 a 中因为有s d r a m 控制器,只要选择合适的s d r a m 存储器芯片,与$ 3 c 2 4 1 0 a 对应的引脚相连即可。本系统的目标板集 成的s d r a m 芯片是s a m s u n g 公司的型号为k 4 s 5 6 1 6 3 2 的s d r a m 芯片,单片容量为3 2 m b ,使用1 6 位数据宽度。将这两片k 4 s 5 6 16 3 2 并联可构建3 2 位的s d r a m 存储器系统,它具有6 4 m b 的s d r a m 空间,可满足嵌入式操作系统及各种复杂运算的需要。其连线如3 3 所示: s 3 c 2 4 1 0 a a d d r 1 4 :2 】 a d d r 2 5 :2 4 】 d a t a 1 5 :0 】 s c l k 0 】 n g c s 6 】 n s r a s n s c a s 1 1 w r e n w b e o 】 n w b e 1 】 d a t a 3 1 :1 6 】 s c l k 1 】 n w b e 2 】 n w b e 3 】 k 4 $ 5 6 1 6 3 2 a 1 2 :0 】 b a 1 :0 】 d q 1 5 :0 】 c l k c r 瓦硒 g 醛 w f l d q m u d q m k 4 $ 5 6 1 6 3 2 a 1 2 :0 】 b a 1 :0 】 d q 1 5 :0 】 c l k a 广 1 0 添 c 恐 w r l d q m u d q m 图3 - 3 $ 3 c 2 4 1 0 a 与s d r a m 的接线图 3 1 2 摄像头的选择 由于需要实时采集图像数据,所以摄像头必不可少。当前摄像头 主要可以分为两大类:c c d 类和c m o s 类,两种传感器都可以将光转 化为电荷,进而处理成电信号,但两种传感器有各自的特点。 c c d ( c h a r g ec o u p l e dd e v i c e ) ,即“电荷耦合器 ,是一种特殊的 半导体材料。它由大量独立的光敏元件组成,这些光敏元件通常是按 矩阵排列。光线透过镜头照射到c c d 上,并被转换成电荷,每个元件 上的电荷量取决于它所受到的光照强度。 c m o s ( c o m p l e m e n t a r ym e t a lo x i d es e m i c o n d u c t o r ) 即“互补金 属氧化物半导体 。它和c c d 一样都是可用来感受光线变化的半导体, 相比c c d 而言,c m o s 的产品通透性一般、对实物的色彩还原能力偏 弱,曝光也都不太好,但是c m o s 产品的制造成本和功耗都要远低于 c c d ,因此在摄像头领域还是得到了广泛的应用。 考虑到成本和集成方面,u s b 接口的c m o s 摄像头有着良好的性 能,低廉的价格、灵活方便易于集成到嵌入式系统的特性,本系统使 用中星微z c 0 3 0 i p 芯片的摄像头,这款芯片的特点是内含数字摄像 i c 接口,实时图像压缩引擎、u s b 接口等功能,这款芯片的压缩比大 于5 :1 ,输出帧速度最高为3 0 帧s ,输出的图像为数字格式,完全满 足实时监控的需要。 3 2 基于嵌入式l in u x 图像监控系统软件平台设计 在完成硬件平台设计后,就可以进行系统的软件平台的设计,本 系统的软件平台设计需要完成以下几个部分:操作系统的选择,交叉 编译环境的建立,b o o t l o a d e r 的移植,l i n u x 内核和根文件系统的移 植。 3 2 1 操作系统的选择 本系统采用l i n u x 操作系统。l i n u x 操作系统由于其稳定性和强 大的功能,得到越来越多的商家青睐,更重要的是,由于l i n u x 系统 完全免费,对于开发厂商而言,可以进一步降低成本,提高市场竞争 基于嵌入式l i n u x 的图像监控系统的研究 力。 l i n u x 作为嵌入式操作系统的优势主要表现在以下几个方面晗引: 功能强大的内核,性能高效、稳定、多任务。l i n u x 的内核非常 稳定。它的高效和稳定性已经在各个领域,尤其在网络服务器领 域获得广泛的赞誉,而且l i n u x 内核小巧灵活,易于裁剪。 令 支持多种体系结构,l i n u x 支持x 8 6 、a r m 、m i p s 等多种体系 结构。目前l i n u x 已被移植到数十种硬件平台上,几乎支持所有 流行的c p u 。现在,l i n u x 甚至可以在没有m m u ( i 为存管理单元) 的处理器上运行。 夺完善的网络、图形用户界面和文件管理机制。l i n u x 诞生于网络 这就保证了它支持所有的标准因特网协议。另外l i n u x 支持e x t 2 、 e x t 3 、f a t 、j f f s 、r o m f s 、c r a m f s 等多种文件系统。在图形用户界 面方面,l i n u x 既有xw i n d o w ,也有q t ,m i n i g u i 等嵌入式g u i , 还有f r a m e b u f f e r 、d i r e c t f b 等优秀工具。 冷 支持大量的周边硬件设备,驱动丰富,从而大大降低开发难度和 周期。 可裁剪性。l i n u x 内核与用户界面是完全独立的。它非常灵活, 各部分的可定制性都很强,能适合多种需求。 令程序源码全部公开,任何人可以修改并在g n u 通用公共许可证 下发行。这样,开发人员可以对操作系统进行定制,适应其特殊 需要。 夺l i n u x 具备一整套功能强大的开发工具链,如g c c 、g d b 等, 开发者可自行搭建相应的嵌入式系统的交叉开发调试环境。 嵌入式l i n u x 是按照嵌入式操作系统要求而设计的种小型操作 系统,它对标准l i n u x 进行了小型化裁剪,能够固化在容量只有几 k b 或者几m b 的存储器芯片中,非常适合于手持式设备应用场合, 因此本系统选用其作为嵌入式操作系统。 3 2 2 交叉编译环境的建立 通常嵌入式系统的软件编译和执行是在两个不同平台上进行的, 是在宿主机上编译的,执行是在目标机上,即嵌入式系统的硬件平台。 硕上学位论文 一般是在宿主机上通过交叉编译器将源文件编译成目标平台上的可 执行文件,再通过串口或网络下载至目标平台上的f l a s h 或者其它 存储介质,然后由目标机来运行这些软件。 本系统所采用的宿主机是p c + l i n u x 2 6 1 2 ,目标板则为 s 3 c 2 4 1 0 a + l i n u x 2 6 1 2 。 首先将p c 。机切换到l i n u x 界面,将编译器的压缩包 c r o s s - 3 4 1 t a r b z 2 拷贝到某个目录下,然后用命令解压该压缩包 # t a rx j v fc r o s s 一3 4 1 t a r b z 2 然后在u s r l o c a l 下建立目录a r m ,并将解压后的文件夹3 4 1 放到指定目录u s r l o c a l a r m 下。最后编辑e t c b a s h r c 文件,在其 最后增加路径e x p o r tp a t h = u s r l o c a l a r m 3 4 1 b i n :$ p a t h 。这 样交叉编译环境就建立了,以后编译内核或其它应用程序就可以用 a r m - 1 i n u x 一来指定交叉编译器。 3 2 3b o o tlo a d e r 的移植 b o o t l o a d e r 是在操作系统内核运行之前的一段程序,通过这段 程序,可以初始化硬件设备,建立内存空间的映射图,从而将系统引 到一个合适的状态,以便为调用操作系统内核准备好正确的环境。一 般它只在系统启动时运行非常短的时间,但对嵌入式系统来说,这是 一个非常重要的系统组成部分。b o o t l o a d e r 是严格地依赖于硬件环 境实现的,特别是在嵌入式系统中瞳4 j 。 b o o tl o a d e r 启动分为s t a g el 和s t a g e 2 两个阶段,其启动流程 如图3 4 所示。 b o o tl o a d e r 一开始执行s t a g el 阶段,s t a g el 阶段包括硬件设备 的初始化、拷贝s t a g e 2 到r a m 空间、堆栈s p 设置等等,这些都依赖 于具体的c p u 体系结构,而且通常都用汇编语言来实现,以达到短小 精悍的目的,加快启动速度。 本阶段的工作主要包括以下几个步骤: ( 1 ) 基本硬件的初始化:包括设置c p u 的速度和时钟频率,屏 蔽所有的中断( 在b o o t l o a d e r 运行时不必响应任何的中断) ,关闭处 理器内部指令数据c a c h e 。 基于嵌入式l i n u x 的图像监控系统的研究 ( 2 ) r a m 初始化:为第二阶段的运行准备r a m 空间,包括正确设 系统的内存控制器的功能寄存器以及各内存控制寄存器等。 ( 3 ) 将s t a g e 2 拷贝到r a m 中。 ( 4 ) 设置堆栈:堆栈指针的设置是为了执行c 语言代码作好准 备。通常可以把堆栈s p 的值设置成上面所安排为s t a g e 2 准备的内存 区的最顶端( 堆栈向下生长) 或最底端( 堆栈向上生长) 。 ( 5 ) 跳转到b o o t l o a d e r 的第二阶段的c 程序入口。 图3 4b o o t l o a d e r 届动流程图 s t a g e 2 阶段的主要工作是加载操作系统和文件系统,并为内核 设置适合的启动参数,调用内核并将c p u 控制权完全交给操作系统。 s t a g e 2 通常用c 语言来实现,这样易于实现复杂的功能,而且代码 会更好的可读性和可移植性。 这一阶段的主要任务有: ( 1 ) 初始化本阶段用到的硬件设备:至少初始化一个串口,以便 和终端用户进行i o 输出

温馨提示

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

最新文档

评论

0/150

提交评论