(计算机应用技术专业论文)嵌入式视频监控系统服务器的设计与实现.pdf_第1页
(计算机应用技术专业论文)嵌入式视频监控系统服务器的设计与实现.pdf_第2页
(计算机应用技术专业论文)嵌入式视频监控系统服务器的设计与实现.pdf_第3页
(计算机应用技术专业论文)嵌入式视频监控系统服务器的设计与实现.pdf_第4页
(计算机应用技术专业论文)嵌入式视频监控系统服务器的设计与实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式视频监控系统服务器的设计与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 摘要 随着网络通信技术与多媒体技术的发展,嵌入式视频监控技术已 进入网络数字化阶段。视频监控系统经历了本地模拟信号监控系统、 基于p c 数字监控系统、基于嵌入式技术的网络数字监控系统等发展过 程,正在向前端一体化、视频数字化、监控网络化、系统集成化的方 向发展。新的视频监控技术将带来易用性、灵活性以及远程监控等新 特点,实现了随时随地的监控。 论文研究了一种网络视频监控系统实现方案,该监控系统方案以 $ 3 c 2 4 l0 作为嵌入式处理器,以嵌入式l i n u x 作为操作系统,并在此 基础上建立嵌入式w e b 服务器,将u s b 摄像头采集来的视频信号,经 过网络传输到用户端,完成对现场和测试设备的网络视频监控任务。 论文主要内容为基于a r m 9 的嵌入式服务器的软件设计及其实 现,硬件部分主要对硬件平台的整体结构进行了详细的介绍;软件部 分则主要讨论了开发环境的构建以及应用软件的开发。 1 ) 开发环境的搭建主要是为应用程序提供底层支持,包含的具体 内容如下:启动程序u b o o t 的移植、l i n u x 内核的配置与移植以及根 文件系统的构建。 2 ) 应用软件控制着嵌入式系统的运作和行为,此部分主要工作如 下:视频服务器的搭建、嵌入式w e b 服务器b o a 的移植以及c g i 与程 序开发方法。 最后对系统进行了详细的测试,包括系统可靠性、功能和性能, 测试结果表明了系统实现了设计的功能,具有良好的实用和推广价值。 关键词:嵌入式系统;监控系统;l in u x ;a r m 西南交通大学硕士研究生学位论文第1 l 页 a b s t r a c t w i t ht h ed e v e l o p m e n to ft e c h n o l o g yo fn e t w o r kc o m m u n i c a t i o na n d m u l t i m e d i a ,e m b e d d e dv i d e om o n i t o r i n gs y s t e ms t e p si n t ot h en e wp e r i o d o fc o m p l e t e l yd i g i t a ln e t w o r ka p p l i c a t i o n i nt h ef i e l do ft e c h n i q u e m o n i t o r ,a f t e rt h es y s t e mh a v i n ge x p e r i e n c e ds o m es y s t e m s ,s u c ha s l o c a l s i m u l a t i o ns i g n a lm o n i t o rs y s t e m ,p cc a r db a s e dd i g i t a lm o n i t o rs y s t e m a n de m b e d d e dt e c h n i q u eb a s e dn e t w o r kd i g i t a lm o n i t o rs y s t e m ,t h ev i d e o m o n i t o rh a sa t e n d e n c yt ob e a s y s t e mi n t e g r a t e do nt h eh e a d ,v i d e o d i g i t a l i z e dm o n i t o rn e t w o r kb a s e d ,s y s t e mi n t e g r a t e d i th a sb e c o m ea t e n d e n c yt h a tl e a d i n gi tt ob ew i t hn e t w o r ka n yt i m ea n dp l a c e i nt h i sd i s s e r t a t i o n ,ak i n do fr e m o t ev i d e om o n i t o r i n gs y s t e mb a s e do n t h ee m b e d d e dl i n u xa n d $ 3 c 2 410h a sb e e ns u c c e s s f u l l yd e v e l o p e d t h e s y s t e mb u i l d saw e bs e r v e r , w h i c hc a nc a p t u r ev i d e os i g n a lf r o mu s b d i g i t a lc a m e r aa n dt r a n s p o r tt h es i g n a lt oc l i e n tt h r o u g hi n t e r n e t t h i sp a p e rh a sm a i n l yd e v e l o p e dt h es o f t w a r ed e s i g na n dr e a l i z a t i o no f t h ee m b e d d e ds e r v e rb a s e do na r m t h eh a r d w a r e p a r tm a i n l y i n t r o d u c e da r mm i c r o p r o c e s s o ra n dt h et o t a lc o n s t r u c t i o no ft h e h a r d w a r es y s t e m w h i l et h es o f t w a r ep a r td i s c u s s e dt h e d e v e l o p m e n t e n v i r o n m e n tc o n s t r u c t i n ga n dp r o g r a md e v e l o p m e n t 11t h ep u r p o s eo fb u i l d i n gd e v e l o p m e n te n v i r o n m e n ti st op r o v i d eb a s e s u p p o r tf o ra p p l i c a t i o n s t h ec o n t e n ti n c l u d e :t h es t a r t i n gp r o c e d u r e u - b o o t ,t h et r a n s p l a n to fl i n u xk e r n e la n df i l es y s t e mc o n s t r u c t i o n 2 ) a p p l i c a t i o nc o n t r o l s t h eo p e r a t i o na n db e h a v i o ro fe m b e d d e d s y s t e m t h ec o n t e n ti n c l u d e :s o c k e tp r o g r a m m i n g ,r t pp r o g r a m m i n g ,t h e t r a n s p l a n to fe m b e d d e db o a w e b s e r v e ra n dr e a l i z a t i o na n dc g ip r o g r a m t e s t i n gr e s u l t sd e m o n s t r a t et h a tt h ep e r f o r m a n c eo ft h es y s t e ma t t a i n s t h ed e m a n d s t h es y s t e mh a sh i g hp r a c t i c a lv a l u e k e yw o r d s :e m b e d d e ds y s t e m ;m o n i t o ra n dc o n t r o ls y s t e m ;l i n u x ;a r m 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有 关数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本 学位论文。 本学位论文属于 1 保密囹,在年解密后适用本授权书; 2 不保密彰使用本授权书。 ( 请在以上方框内打“4 ”) 学位论文作者签名:专霈祥 日期:w 叼0 7 - 。 指导老师签名: 日期: 鸟舌 ,乙 y 广、 暂 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研 究工作所得的成果。除文中已经注明引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出 贡献的个人和集体,均已在文中作了明确的说明。本人完全意识到本 声明的法律结果由本人承担。 本学位论文的主要创新点如下: 学位论文作者签名: t 耵评 日期:伊0 90 7 a 彳 西南交通大学硕士研究生学位论文第1 页 1 1 课题背景及意义 第1 章绪论 在2 0 0 2 年巴塞罗纳召开的第15 届国际自动控制大会上,网络化 控制己被视为将来最主要的控制研究方向之一。用网络化控制实现局 域乃至全球范围内的监视与控制,是工业控制系统的发展趋势【lj 。嵌 入式i n t e r n e t 远程监控技术正是网络化控制的代表,它与传统工业嫁 接,解决了工业控制领域中异构网络互联问题,提高了传统装备的智 能化水平,促进了传统产业结构的调整1 2 】。它既保留了嵌入式设备的 小巧、智能、可编程的特点,又借助于i n t e r n e t 这个全球最大的计算 机网络,将现场设备的控制延伸到地球上几乎任何角落【3 】。 目前远程视频监控技术的主流是应用i n t e r n e t 技术,在t c p i p 协 议和w w w 规范的支持下,结合成熟的视频编解码技术,合理的软件 结构,使用户通过访问嵌入式远程服务器来迅速获取自己权限下的所 有视频信息并及时做出响应。嵌入式视频监控系统可以使信息实现本 地化处理,改善服务器性能,可以使每一个监控终端具备上网功能, 即每一个监控终端都可以独立进行服务,从而大大提高监控的质量和 范围。 当前,网络视频监控己渗透到教育、政府、娱乐场所、医院、酒 店、运动场馆、城市治安等多种领域。网络视频监控也必将在这些领 域发挥越来越重要的作用。网络视频监控技术受到了前所未有的关注, 其应用领域如一f : 教育系统:主要是校园安全监控、电子考场监控、网络教学、 远程教育等; 电力系统:主要是机房监控、变电站监控、发电厂安全生产管 理监控等; 公检法系统:主要是社区监控、城市安全监控、监狱安全监控、 庭审直播等; 石化系统:主要是油井监控、储油库监控、加油站监控、石化 工厂安全生产监控等; 西南交通大学硕士研究生学位论文第2 页 银行系统:主要是银行监控系统的联网、储蓄监控、金库监控 等; 铁路系统:主要是站内调度管理系统( 视频部分) 、站内安全管 理、应急指挥系统等; 税务系统:主要是报税服务大厅监控; 钢铁系统:主要是安全生产管理监控系统; 医疗系统:主要是特护病房视频监控、手术直播及教学系统、 日常安全管理监控等。 总之,基于网络的嵌入式视频监控系统有着广阔的应用领域。 1 2 嵌入式视频监控系统发展历程 前端一体化、视频数字化、监控网络化、系统集成化是视频监控 系统公认的发展方向,而数字化是网络化的前提,网络化又是系统集 成化的基础,所以,视频监控发展的最大两个特点就是数字化和网络 化【4 】。视频监控系统经历了本地模拟信号监控系统、基于p c 机插卡的 数字监控系统和基于嵌入式技术的网络数字监控系统等发展过程【5j , 其中,基于嵌入式技术的网络数字监控系统代表了监控系统的发展方 向。 1 ) 模拟闭路电视监控系统:其有很多局限性,首先,有线模拟视 频信号的传输对距离十分敏感;其次,有线模拟视频监控无法联网, 只能以点对点的方式监视现场,并且布线工程量极大;另外,有线模 拟视频信号数据的存储会耗费大量的存储介质( 如录像带) 。 2 ) 基于p c 机插卡的数字监控系统:该系统终端功能较强,便于 现场操作,但稳定性不好,视频前端( 如c c d 等视频信号的采集、压 缩、通讯) 较为复杂,可靠性不高,p c 机也需专人管理,特别是在环 境或空间不适宜的监控点,这种方式不理想。 3 ) 基于嵌入式技术的网络数字监控系统 6 1 :由于这种监控系统的 硬件是一个处理器和操作系统捆绑较为紧密、功能专一、专门设计的 独立的设备,不像插卡系统那样受通用计算机系统中其它软件硬件的 影响,因此性能上更稳定,且便于安装、维护,易于实现系统的模块 化设计。当然,基于嵌入式技术的网络数字监控系统也有其不利的一 面:首先是网络摄像机的成本仍高居不下;其次是网络摄像机需要网 络支持,如果是使用静态i p 地址,则需要较为昂贵的网络使用费f 7 】。 西南交通大学硕士研究生学位论文第3 页 1 3 系统设计方案 l i n u x 操作系统是自由软件,它是19 9 1 年由l i n u s t o r v a l d s 发明的。 l i n u x 自诞生以来就对计算机产业产生了深远影响。 l i n u x 开放源码并对外免费提供,可大大降低产品成本。核心源码 采用c 语言编写,具有极强的平台可移植性,支持大多数嵌入式处理 器( 如a r m 、p o w e r p c 、m i p s 等) 。开发者可以根据自己的需要修改和 定制适合自己的内核。l i n u x 还具有丰富的图形用户界面和强大的网络 功能。基于以上种种优点,越来越多的嵌入式设备选择使用l i n u x 作 为操作系统。 在本设计中,考虑到l i n u x 操作系统具有免费、可裁剪、实时性 等优点,所以选择了l i n u x 作为视频监控系统的操作系统。 嵌入式视频监控系统的设计思路是将视频前端和嵌入式w e b 服务 器整合在一起,摄像头采集到的视频信号经过压缩后,通过内部总线 传送到内置的w e b 服务器”j 。w e b 服务器直接和i n t e r n e t 连接,网络 上用户可以用浏览器观看服务器上的监控图像,系统优点如下。 ( 1 ) 嵌入式w e b 服务器直接连入网络,没有线缆长度和信号衰减 的限制,彻底抛弃了地域的概念,布控区域广阔。 ( 2 ) 性能稳定可靠,由于视频压缩和w e b 功能集中到一个体积很 小的设备内,直接连入局域网或广域网,即插即看,系统的实时性、 稳定性、可靠性大大提高。 ( 3 ) 无需专人管理,非常适合于无人值守的环境。 综上,该系统符合监控系统的发展方向,有一定的工程实用价值。 1 4 论文主要内容与组织结构 本文的目标是构建一个功能较为完善的基于l i n u x 的嵌入式系统, 搭建w e b 服务器和视频服务器进行远程监控。主要工作包括:搭建系 统开发环境、掌握l i n u x 下驱动程序开发方法、深入理解v i d e 0 4 l i n u x 编程原理,开发图像采集程序、研究l i n u x 下u d p 协议和r t p r t c p 协议的原理与实现。 本文的章节安排如下: 第一章讨论了监控系统的设计背景、意义和论文的结构安排。 第二章介绍了系统开发环境的建立,包括:系统硬件组成结构的 西南交通大学硕士研究生学位论文第4 页 介绍、系统引导加载程序u b o o t 的移植、l i n u x 内核配置与移植以及 根文件系统的制作。 第三章主要介绍了u s b 摄像头视频采集程序的实现,包括:如 何选择摄像头、摄像头驱动程序分析、v i d e 0 4 1 i n u x ( 简称v 4 l ) 编程 原理以及如何使用v 4 l 进行连续的数据采集。 第四章重点讨论了嵌入式监控系统的整体架构以及各个部分的 实现,包括:基于u d p 协议传输方案的原理及其实现、基于r t p r t c p 协议传输方案的原理及其实现、w e b 服务器b o a 的移植、c g i 程序的 开发方法、嵌入式f t p 服务器的移植以及监控系统客户端实现方案简 介。 第五章最后对系统进行了详细的测试,包括系统可靠性、功能和 性能,测试结果表明了系统实现了设计的功能,具有良好的实用和推 广价值。 西南交通大学硕士研究生学位论文第5 页 第2 章系统总体结构 2 1 嵌入式系统定义 i e e e 对于嵌入式系统的定义是【9 】:嵌入式系统是“用于控制、监 视或者辅助操作机器和设备的装置”。在中国嵌入式系统领域,比较认 同的嵌入式系统概念是:嵌入式系统是以应用为中心,以计算机技术 为基础,软硬件可裁减,对功能、可靠性、成本、体积和功耗等有严 格要求的专用计算机系统。 一般来说,嵌入式系统包括硬件和软件两大部分。硬件部分主要 由嵌入式处理器和外围硬件设备组成,而软件部分则主要包括 b o o t l o a d e r 、嵌入式操作系统和用户应用程序。其中硬件部分是嵌入 式软件运行的基础,为嵌入式软件运行提供物理平台和通信接口。软 件部分的操作系统层通过提供应用程序编程接口( a p i ) 来为应用程序 提供必要的底层支持,而应用软件则控制着嵌入式系统的运作和行为, 用于实现对设备的控制、监视或管理等功能。 2 2 系统硬件平台构成 系统硬件平台的微处理器采用s a m s u n g 公司研发的的$ 3 c 2 4 1 0 。 $ 3 c 2 4 1 0 的内核是a r m 公司的a r m 9 2 0 t ,该微处理器采用o 1 8 u m 制造工艺,拥有独立的1 6 k b 指令c a c h e 和1 6 k b 数据c a c h e ,m m u , 支持t f t 的l c d 控制器,n a n d 闪存控制器,3 路u a r t ,4 路d m a , 4 路带p w m 的t i m e r ,i o 口,r t c ,8 路l0 位a d c ,t o u c hs c r e e n 接口,i i c 。b u s 接口,2 个u s b 主机,1 个u s b 设备,s d 主机,m m c 接口以及2 路s p i t l 0 】。$ 3 c 2 4 1 0 处理器频率最高可运行在2 0 3 m h z 。 本设计的硬件平台结构图如图2 1 所示。 西南交通大学硕士研究生学位论文第6 页 图2 1 系统硬件平台结构图 s d r a m ( 6 4 m ) :2 片3 2 m x l 6 b i t ,型号h y 5 7 v 5 6 1 6 2 0 ; n a n df l a s h ( 3 2 m ) :用来保存b o o tl o a d e r ,操作系统内核和 文件系统,型号k 9 f 2 8 0 8 u o a ; u s bc a m e r a :u s b 摄像头,型号为金和田g d s 0 2 ,采用 z c 3 0 1p 芯片,内部集成d s p ,支持输出j p e g 格式图像; 网络芯片:本系统为c s 8 9 0 0 a 芯片; i d e 硬盘:可以在本地保存必要的视频; 电源模块:电源管理,以延长系统独立运行时间。 2 3 系统软件平台构成 系统软件平台由b o o tl o a d e r 、嵌入式操作系统l i n u x 以及应用层 组成,其中应用层由嵌入式w e b 服务器、f t p 服务器、视频服务器组 成。系统结构如图2 2 所示。 摄像头采集数据,通过视频服务器对外发布,其中视频的传输格 式分为u d p 和流媒体两种,u d p 协议主要针对互联网用户,流媒体主 要针对互联网用户。用户可以通过w e b 服务器对系统发送命令,实时 察看系统状态。当用户需要时,可以通过f t p 服务器下载所需文件。 西南交通大学硕士研究生学位论文第7 页 服务器 n 面丽阿报务l w e l丽 务器f 导f 务器i 广_ j 1 一 l i n u x 操作系统 f b o o t l o a d e r ( u - b o o t l 2 0 ) 图2 - 2 系统软件平台结构 西南交通大学硕士研究生学位论文第8 页 第3 章系统开发环境的建立 3 1b o o tl o a d e r 移植 引导加载程序是系统加电后运行的第一段软件代码。p c 机中的引 导加载程序由b i o s 和位于硬盘m b r 中的o sb o o tl o a d e r 组成。b i o s 在完成硬件检测和资源分配后,将硬盘m b r 中的b o o tl o a d e r 读到系 统的r a m 中,然后将控制权交给o sb o o tl o a d e r 。b o o tl o a d e r 的主 要运行任务就是将内核映象从硬盘上读到r a m 中,然后跳转到内核的 入口点去运行,开始启动操作系统【l1 1 。但在嵌入式系统中,通常并没 有像b i o s 那样的固件程序,整个系统的加载启动任务完全由b o o t l o a d e r 来完成。 简单地说,b o o tl o a d e r 就是在操作系统内核运行之前运行的一段 小程亭。通过这段小程序,我们可以初始化硬件设备、建立内存空间 的映曼主图,从而将系统的软硬件环境带到一个合适的状态,以便为最 终调崩操作系统内核准备好正确的环境【12 1 。本设计选用u b o o t 作为 系统的b o o tl o a d e r 。 1 1u b o o t 简介 u b o o t 是德国d e n x 小组开发用于多种嵌入式c p u 的b o o tl o a d e r 程序,u b o o t 不仅仅支持嵌入式l i n u x 系统的引导,当前,它还支持 n e t b s d ,v x w o r k s ,q n x ,r t e m s ,a r t o s ,l y n x o s 等嵌入式操作系统; u b o o t 除了支持a r m 系列的处理器外,还能支持m i p s 、x 8 6 、n i o s 、 x s c a l e 等诸多常用系列的处理器。在嵌入式监控系统中,我们选用的 u b o o t 版本为1 2 o 版。u b o o t 项层目录下有3 类子目录,分别存放 不同类型的源程序【l3 1 。表3 1 列出了u b o o t 顶层目录下各级目录存放 原则: 第l 类目录与处理器体系结构或者开发板硬件直接相关; 第2 类目录一些通用的函数或者驱动程序; 第3 类目录u b o o t 的应用程序、工具或者文档。 表3 1u b o o t 顶层目录下各级目录存放原则 i 目 录 i 特性l 解释说明l 西南交通大学硕士研究生学位论文第9 页 l i ba r m平台依赖存放对a r m 体系结构通用的文件,主要用 于实现a r m 平台通用的函数 l i bi 3 8 6平台依赖存放对x 8 6 体系结构通用的文件,主要用于 实现x 8 6 平台通用的函数 i n c l u d e通用头文件和开发板配置文件,所有开发板的配 置文件都在c o n f i g s 目录下 c o m m o n通用通用的多功能函数实现 l i b g e n e r i c 通用通用库函数的实现 n e t通用存放网络的程序 f s通用存放文件系统的程序 d r i v e r s通用通用的设备驱动程序。 d i s k通用硬盘接口程序 r t c通用r t c 的驱动程序 d t t通用数字温度测量器或者传感器的驱动 t o o l s工具存放制作s r e c o r d 或者u b o o t 格式的映 像等工具,例如m k i m a g e d o c文档开发使用文档 b o a r d平台依赖存放电路板相关的文件 c p u平台依赖存放c p u 相关的文件 2 ) u b o o t 移植 移植u b o o t 主要内容是对u b o o t 进行合理的配置。开始移植之 前,先将u b o o t 已经支持的开发板和目标板进行分析对比,比较出和 目标开发板硬件配置最接近的板子,以其为基础进行移植工作,这样 可以减少工作量。选择的原则是,首先处理器架构相同,然后比较外 围接口,找出配置最接近的。 笔者的开发板硬件配置是按照s m d k 2 4l0 制作的,故以 s m d k 2 4 10 配置文件作为参考,具体移植步骤如下: ( 1 ) 在顶层m a k e f i l e 中为开发板添加新的配置选项,具体添加内 西南交通大学硕士研究生学位论文第10 页 容如下: s m d k 2 410 _ c o n f i g :u n c o n f i g m k c o n f i g $ ( :一c o n f i g = ) a r ma r m 9 2 0 ts m d k 2 4 l0n u l ls 3 c 2 4 x 0 参考上面2 行,添加下面2 行。 x wl0 _ c o n f i g :u n c o n f i g m k c o n f i g $ ( :一c o n f i g = ) a r ma r m 9 2 0 tx w 2 4 10n u l ls 3 c 2 4 x 0 ( 2 ) 创建一个新目录存放开发板相关的代码,并且添加文件,这 些文件可直接从s m d k 2 4 10 的目录下拷贝过来。 b o a r d x w 2 410 c o n f i g m k b o a r d x w 2 4lo f l a s h c b o a r d x w 2 410 x w 2 410 c b o a r d x w 2 41o m a k e f i l e b o a r d x w 2 410 m e m s e t u p s b o a r d x w 2 410 u b o o t 1 d s ( 3 ) 为开发板添加新的配置文件 可以复制参考开发板的配置文件,进行相应修改即可: $ c pi n c l u d e c o n f i g s s m d k 2 4 10 hi n c l u d e c o n f i g s x w 2 410 h ( 4 ) 添加驱动或者功能选项 此步骤需实现u b o o t 下n a n df l a s h 驱动。n a n df l a s h 用于系统 发布时存放系统b o o tl o a d e r 、内核、文件系统以及用户应用程序的, 移植开发n a n df l a s h 驱动对系统有着重要的意义。n a n df l a s h 芯片由 于受价格或者采购方面等因素的影响,多数开发板n a n df l a s h 芯片型 号一般不相同。本系统选用的n a n df l a s h 为三星公司的k 9 f 2 8 0 8 u o a 芯片,需要移植开发n a n df l a s h 的驱动。其开发原理与实现方法在 2 3 2 小节中给出。 ( 5 ) 配置开发板 $ m a k ex w 2 410 _ c o n f i g ( 6 ) 编译u b o o t 执行m a k e 命令,编译成功得到u b o o t 映像。 ( 7 ) 进行调试,直到u b o o t 在开发板上能够正常启动。到此,具 有n a n df l a s h 读写功能的u b o o t 移植成功。 西南交通大学硕士研究生学位论文第11 页 3 2n a n df l a s h 驱动原理与实现 本系统选用的n a n df l a s h 为三星公司的k 9 f 2 8 0 8 u o a 芯片,数 据存储容量为3 2 m b 1 4 】,图3 1 为控制器与n a n df l a s h 连接的方式, 表3 2 为其引脚功能说明。 1 ) 芯片内部存储布局及存储操作特点 一片n a n df l a s h 为一个设备( d e v i c e ) ,其数据存储为:1 设备 ( d e v i c e ) = 4 0 9 6 块( b l o c k ) ;1 块( b l o c k ) = = 3 2 页行( p a g e r o w ) ,页与 行意思相同;1 块( p a g e ) = = 5 2 8 字节( b y t e ) = = 数据块大小( 5 1 2 b y t e ) + o o b 块大小( 16 b y t e ) 。在每一页中,最后1 6 个字节( 又称o o b ) 用于 n a n df l a s h 命令执行完后设置状态,剩余5 1 2 个字节又分为前半部分 和后半部分。可以通过n a n df l a s h 命令0 0 h 0 1h 5 0 h 分别对前半部、 后半部、o o b 进行定位,通过n a n df l a s h 内置的指针指向各自的首地 址【1 5 。 s 3 c 2 4 10n a n df l a s h d a t a 7 :0 】 m d 7 :0 啪n b u s y n f 、v en 、v e i l l 硼正n r d a l e a l e n f c en c e c l ec l e 图3 1 控制器与n a n df l a s h 连接的方式 表3 2 引脚功能说明 引脚有效电平数据输入输出 m d 7 :0 高低片选使能 n b u s y 高低准备好忙 n w e低写允许引脚 西南交通大学硕士研究生学位论文第12 页 n r d低读允许引脚 a l e局地址锁存使能 n c e低片选使能 c l e 商命令锁存使能 存储操作特点:擦除操作的最小单位是块;n a n df l a s h 芯片每一 位( b i t ) 只能从l 变为o ,而不能从0 变为1 ,所以在对其进行写入操作 之前一定要将相应块擦除( 擦除即是将相应块的位全部变为1 ) ;o o b 部分的第6 字节( 即5 1 7 字节) 标志是否是坏块,值为f f 时不是坏块, 否则为坏块。除o o b 第6 字节外,通常用o o b 的前3 个字节存放n a n d f l a s h 硬件e c c 码。 2 ) e c c 校检原理 由于n a n df l a s h 的工艺不能保证n a n df l a s h 在其生命周期中保持 性能的可靠,因此,在n a n df l a s h 的生产中及使用过程中会产生坏块 【1 6 】。为了检测数据的可靠性,在应用n a n df l a s h 的系统中一般都会采 用一定的坏区管理策略。如果操作时序和电路稳定性不存在问题的话, n a n df l a s h 出错的时候一般不会造成整个b l o c k 或是p a g e 不能读取 或是全部出错,而是整个p a g e ( 例如5 1 2 b y t e ) 中只有一个或几个比 特出错。在n a n df l a s h 处理中,一般使用种专用的校验方法e c c 。 e c c 能纠正单比特错误和检测双比特错误,而且计算速度很快,但对 l 比特以上的错误无法纠正,对2 比特以上的错误不保证能检测。e c c 一般每2 5 6 字节数据生成3 字节e c c 校验数据,这三字节共2 4 比特 分成两部分:6 比特的列校验和1 6 比特的行校验,多余的两个比特置 1 ,如表3 3 所示。 表3 3 校检数据 i 0 7i 0 6i 0 5i 0 4i 0 3i 0 2i 0 1i 0 0 p 6 4p 6 4 p 3 2p 3 2 p 1 6p 1 6 p 8p 8 p 1 0 2 4p 1 0 2 4 p 5 1 2p 5 1 2 p 2 5 6p 2 5 6 p 1 2 8p 1 2 8 p 4p 4 p 2p 2 p lp 1 11 行:p 8 p 1 0 2 4 列:p l - - - p 4 表2 3 说明: p1 ,pl ,p 2 ,p 2 ,p 4 ,p 4 ,p 8 ,p 8 ,p16 , p16 ,p 3 2 ,p 3 2 ,p 6 4 , p 6 4 ,p 1 2 8 ,p 1 2 8 ,p 2 5 6 ,p 2 5 6 ,p 5 1 2 ,p 5 1 2 ,p 1 0 2 4 ,p 1 0 2 4 为2 2 位的校检 位( 多出2 位置1 ,共3 字节2 4 位) 。e c c 的列校验和生成规则如图3 2 西南交通大学硕士研究生学位论文第1 3 页 所示。 1 b y t e 2 b y t e 3 b y t e 4 b y t e 2 5 3 2 5 4 2 5 5 2 5 6 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i t1b i t 0 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i tlb i t 0 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i tlb i t 0 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i tlb i t 0 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i t1b i t 0 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i t1b i o b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i tlb i t 0 b i t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i t1b i t 0 p 1p l p 1p 1p 1p l p lp 1 p 2p 2 p 2 p 2 p 4p 4 p 8 1 p 16 p 8 0 2 4 , p 8 : p 1 6 p 8 图3 2e c c 校验和生成规则 列校检和生成规则的数学表达式为公式3 1 至公式3 6 ,行校检和 生成规则的数学表达式为公式3 7 至公式3 12 ,p 6 4 到p10 2 4 的计算 公式与p 3 2 形式类似,故未给出,详细过程可参考k 9 f 2 8 0 8 u o a 的 d a t a s h e e t 。 尸1 = b i t 7 0 b i t 5 0 b i t 3 0 b i t l op l ( 3 1 ) p 1 7 = b i t 60b i t 4ob i t 2ob i t oop l ( 3 2 ) 尸2 = b i t 7ob i t 6ob i t 3ob i t 20p 2( 3 3 ) p 2 7 = b i t 5 0 b i t 4 0 b i t l o b i t o op 2 7( 3 4 ) 尸4 = b i t 7 0 b i t 6 0 b i t 5 0 b i t 4 0p 4( 3 - 5 ) 尸4 7 = b i t 3 0 b i t 2 0 b i t l o b i t o op 4 7 ( 3 6 ) p 8 = b i t 7 0 b i t 6 0 b i t 5 0 b i t 4 0 b i t 3 0 b i t 2 0 b i t l o b i t 0 0p 8 ( 3 7 ) p 8 7 = b i t 7 0 b i t 6 0 b i t 5 0 b i t 4 0 b i t 3 0 b i t 2 0 b i t l o b i t o o p 8 7 ( 3 8 ) p 1 6 = b i t 7ob i t 6ob i t 5ob i t 4ob i t 30b i t 20b i t lob i t o0p 1 6 ( 3 9 ) 41 二op 一 23 , p 6 6 l l p p 矿8 矿 8 一 p p p p 西南交通大学硕士研究生学位论文第14 页 p 1 6 7 = b i t 7 0 b i t 6 0 b i t 5 0 b i t 4 0 b i t 3 0 b i t 2 0 b i t l o b i t 0 0 p 1 6 ( 3 1 0 ) p 3 2 = b i t 7ob i t 6ob i t 5ob i t 4ob i t 3ob i t 2 $ b i t lob i t oop 3 2 ( 3 1 1 ) p 3 2 7 = b i t 7 0 b i t 6 0 b i t 5 0 b i t 4b i t 3 0 b i t 2 b i t l o b i t 0 0 p 3 2 ( 3 1 2 ) 当往n a n df l a s h 的p a g e 中写入数据的时候,每2 5 6 字节生成一 个e c c 校验和,称之为原e c c 校验和,保存到p a g e 的o o b ( o u t o f - b a n d ) 数据区中。当从n a n df l a s h 中读取数据的时候,每2 5 6 字节生成一个e c c 校验和,称之为新e c c 校验和。校验的时候,将 o o b 区中读出的原e c c 校验数据和新e c c 校验数据按位异或,若结 果为0 ,则表示不存在错误;若3 个字节异或结果中存在l1 个比特位 为1 ,表示存在一个比特错误,且可纠正;若3 个字节异或结果中只 存在1 个比特位为1 ,表示o o b 区出错;其他情况均表示出现了无法 纠正的错误。 3 ) f l a s h 烧写程序实现 基本原理:将在s d r a m 中的一段存储区域中的数据写到n a n d f l a s h 存储空间中。烧写程序在纵向上分三层完成: 第一层:主烧写函数( 将s d r a m 中的一段存储区域中的数据写 到n a n df l a s h 存储空间中) ;第二层:该层提供对n a n df l a s h 进行操作 的页读、写,块擦除等函数,上层会调用该层函数实现具体功能;第 三层:为第二层提供具体n a n df l a s h 控制器中对特殊功能寄存器进行 操作的核心函数,该层也是真正的将数据能够在s d r a m 和n a n df l a s h 之间实现传送的函数。其中第二层为驱动程序的设计关键所在,下面 对该层的读、写( 又称编程) 和擦除的流程进行详细介绍。 n a n df l a s hr e a d 读数据操作是以页为单位,读数据时首先写入读数据命令0 0 h ,然 后输入要读取页的地址,接着从数据寄存器中读取数据,最后进行e c c 校验。图3 3 右半部为读程序流程图。 n a n df l a s he r a s e 首先写入6 0 h 进入擦写模式,然后输入块地址;接下来写入d 0 h , 表示擦写结束。图3 3 左半部为擦除程序流程图。 西南交通大学硕士研究生学位论文第15 页 写0 0 h 占 写地址 占 读数据 图3 3 读程序流程和擦除程序流程 n a n df l a s hp r o g r a m 首先写入0 0 h ( a 区) 0 l h ( b 区) 0 5 h ( c 区) ,表示写入那个区;再写 入8 0 h 开始编程模式( 写入模式) ,接下来写入地址和数据;最后写入 10 h 表示编程结束,图3 4 为编程程序流程图。 西南交通大学硕士研究生学位论文第16 页 下面对n a n df l a s h 的操作命令进行测试,图3 5 为测试结果。 n a n de r a s eo x10 0 0 0 00 x 2 0 0 0 0 0 从1m 处开始擦写n a n df l a s h ,擦写2 m 大小的空间。 n a n dw r i t e0 x 2 0 0 0 0 0 0 00 x10 0 0 0 00 x 2 0 0 0 0 0 将s d r a m 中的o x 2 0 0 0 0 0 0 0 处开始的内容,烧写到n a n df l a s h 的 o x l0 0 0 0 0 处开始的2 m 空间内。 n a n dr e a do x 2 0 0 0 0 0 0 00 x10 0 0 0 00 x 2 0 0 0 0 0 将n a n df l a s h 的0 x l0 0 0 0 0 处开始的2 m 空间内容,拷贝到 s d r a m 0 x 2 0 0 0 0 0 0 0 处开始的地方。 图3 4 编程程序流程 西南交通大学硕士研究生学位论文第17 页 3 3l i n u x 移植 图3 5n a n df l a s h 0 试图 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 是可以定制的,其系统内核最小只有约13 4 k b ”】。 一个带有中文系统和图形用户界面的核心程序也可以做到不足1 m b , 并且同样稳定:最后,它和多数u n i x 系统兼容,应用程序的开发和移 植相当容易。由于具有良好的可移植性,人们已成功使l i n u x 运行于 数百种硬件平台之上。l i n u x 的众多优点还使它在嵌入式领域获得了广 泛的应用,并出现了数量可观的嵌入式l i n u x 系统。其中有

温馨提示

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

评论

0/150

提交评论