(电路与系统专业论文)基于ARM和uClinux的嵌入式字符识别系统研究[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)基于ARM和uClinux的嵌入式字符识别系统研究[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)基于ARM和uClinux的嵌入式字符识别系统研究[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)基于ARM和uClinux的嵌入式字符识别系统研究[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)基于ARM和uClinux的嵌入式字符识别系统研究[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

(电路与系统专业论文)基于ARM和uClinux的嵌入式字符识别系统研究[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

基于a r m 和 u c l i n u x的嵌入式字符识别系统研究 abs t r a c t o p t i c a l c h a r a c t e r r e c o g n i t i o n a l g o r i t h m i s a f a s t i n p u t t e c h n o l o g y w h i c h u t i l i z e s c o m p u t e r s o ft w a r e t e c h n o l o g y t o c o n v e r t h u m a n r e c o g n i z a b l e s y m b o l s i n t o c o m p u t e r a c c e p ta b le d a t a . u s u a l ly o c r a lg o r it h m is e x e c u te d o n u n iv e r s a l c o m p u te r p la tf o r m s . t h is m e a n s , th o u g h p o w e r f u l a n d c a p a b le o f h e a v y o p e ra tio n s , s o m e t im e s is n o t a p p r e c ia te d d u e t o t h e d r a w b a c k s o f h u g e v o lu m e a n d g r e a t p o w e r c o n s u m p ti o n . i n s o m e sp e c ia l c a s e s e m b e d d e d s y s te m s c a n b e u s e d t o re c o g n iz e a s p e c ia l s e t o f c h a r a c t e r s . i n t h i s p a p e r , a n a r m- b a s e d e m b e d d e d s y s t e m i s i m p l e me n t e d w i t h u c l i n u x o p e r a t in g s y s t e m r u n n i n g o n i t . a n a l g o r i t h m w h i c h i s d e v e l o p p e d t o r e c o g n iz e p r in t e d - ty p e a s c i i c o d e s is tr a n s p l a n te d t o s a id s y s te m to c o n s tru c t a n e m b e d d e d c h a r a c t e r r e c o g n i t i o n s y s t e m. r e s e a r c h a n d e x p e r i m e n t s h o w t h a t a ft e r b e in g ta ilo r e d a n d im p ro v e d o c r a l g o r it h m c a n r u n s m o o t h ly o n e m b e d d e d s y s te m s t o p e r f o r m c h a r a c t e r r e c o g n i t i o n i n s o me s p e c i a l f i e l d s . ke y wo r d s : e m b e d d e d s y s t e m , a r m, u c l i n u x , o c r 基于a r m和u c l in u a 的嵌 入式字符识别系统研究 绪论 上个世纪的诸项重大发明中,对人类生活影响最大的莫过于计算机的发明。 计算机的出 现把人类从一些复杂的脑力劳动中 解放出 来, 并己 广泛应用到日 常生 活和生产活动中。 总体来说计算机技术的应用大体上有两种形式: 一种是以通用 平台的形式存在, 如p c 机、 各种大中 型计算机、 工作站等: 另一种形式是嵌入 式系统, 如智能家电、 各种手持式消费类电子产品等, 它根据用户的 需要对计算 机系统的软硬件进行裁减以嵌入到用户系统中。 信息处理是计算机应用中很重要的一个组成部分,随着计算机技术的飞速发 展, 信息处理的范围 逐渐扩大, 开始涉及 存储在 传统媒体介质上的 信息, 其中 最 为常见的就是针对纸张类的文本信息的处理。 这种文本信息处理的核心技术在于 如何把人可识别的 字符、 公式、 表格等符号自 动转换为计算机可识别的符号并输 入到计算机中。 比 较成熟的做法是利 用光学系统将文本信息扫描成图 片输入到计 算 机 中 , 利 用 光 学 字 符识 别算 法 ( o c r - o p t ic a l c h a r a c t e r r e c o g n it io n ) 从 图 像识别出字符。 目 前 在纸张类文本信息 处理方面已 经有比较 成熟的商业产品出 现, 比 如各种 各样的扫描仪、 扫描笔等。 使用这些工具, 书籍、 报刊等文本可以 很方便地被扫 描输入计算机, 再由o c r软件识别生成文本文件。 成熟的商业化 o c r软件功能 强 大、 识别率高, 能够识别不同 字体、 不同 语言 的 字符, 有的甚至还能 够识别表 格、 公式、 手写体等。 这些算法本身非常复杂, 对硬件资 源要求较高,因 此不论 是体积 笨重的扫描仪还是 各种轻巧的扫描笔, 其字符识别算法都是 在p c 机等通 用平台上运行, 不能完全脱离计算机而独立工作, 因此严格地说它们都不能称作 是真正意义上的便携式设备。 得益于微电子技术的 进步, 计算机硬件系统的性能不断 提高, 这一趋势使嵌 入式系 统的处理能力日 益增强: 另一 方面当 一些复 杂的任务只涉及处理对象集合 中的一 小部分时, 传统的处理系统可被裁减成专用的嵌入式系 统。 就字符识别而 言,实际上很多应用仅仅涉及到一小部分字符和几种字体,针对特定的应用, o c r 算法也可以被裁减成很小的模块,因此在嵌入式系统中完成针对特定字符 集合的识别工作是可行的。 一个班型的嵌入式字符识别系统硬件上包括光学扫描系统和执行 o c r算法 基于a r m和u c li n u x 的嵌 入式字符识别 系统 研究 并控制外设的 硬件平台, 软件由 嵌入式操作系统、 扫描仪驱动程序和字符识别算 法构成。 这篇论文主 要研究了针对a s c i i 码字 符集的 光学字 符识别算法以 及用于 支持该算法的嵌入式系统平台的设计, 后者又分为硬件平台的设计和操作系统的 移植两部分。 本论文内 容共分为四部分, 第一部分主要 介绍了 嵌入式 系统平台 硬件 系统的 设计, 主要包括嵌入式处理器的选择, 硬 件体系结构的 设计, 硬件调试及开 发方 法等。第二部分介绍了嵌入式操作系统的概况、各种操作系统的特点,u c l i n u x 操作系统的移植以 及u c lin u x 下 驱动程序的 编译等。 第三部分介绍了操作系统的 加载方式、b o o t l o a d e r 的功能及st a g e 1 和s ta g e 2 两个阶段的实现方法。 第四部 分介绍了 一种针对a s c i i 码的 光学 字符识别算法, 分析了 其基本原理, 并将其裁 减移植到上述嵌入式平台中; 接下 来对算法的 性能 进行了实 验分析并对算法做了 一定的改进。论文最后分析了本课题的实际意义 基于a r m和u c l i a u x 的嵌入式字符识别系统研究 第一章基于 a r m 的嵌入式硬件平台的设计 嵌入式系统由 嵌入式硬件和固 化在硬件中的嵌 入式软 件构成, 为了 完成某一 功能而 将计算 机系统进行软硬件裁减后嵌入到 用户的系 统中去, 是一种面向 应用 的专用系统,它融合了计算机软硬件技术、通讯技术和微电子技术, 是信息技术 的最终产品。同通用平台相比较, 嵌入式系统所要实现的功能是单一, 运行的任 务是预先定义好的, 通常不需要人的干涉; 同时嵌入式系统可利用的资源十分有 限, 工作环境相 对比 较恶劣, 对功耗和体积也有十分苛刻的要求, 因此在软硬件 设计上都与通用平台有所不同。嵌入式系统虽然是由通用的计算机系统裁减而 成, 在体系结构上与通用的计算机系统是相似的, 但为了满足嵌入式应用的特殊 要求,在工作温度、 抗电磁干扰、可靠性等方面都需要进行特殊的设计。同通用 计算机相比,嵌入式系统具有体积小、重量轻、成本低、可靠性高等优点。 1 . 1 嵌入式处理器介绍 嵌入式系统的核心部件是 嵌入式 处理器, 事实 上任何 微处理器m p u或微控 制器 mc u都可以作为嵌入式系统的核。嵌入式处理器种类繁多,它们的基本功 能虽然相同, 但对特定的任务处理能力是不一样的, 应当根据嵌入式系统所要实 现的功能选择合适的处理器。 微控制器又称单片机,可用作某些嵌入式系统的核,它在一块芯片上集成了 一个完整的计算机系统, 一般以 某一种 c p u为 核心,根据应用需要在芯片内 部 集成总 线逻辑、 定时/计数器、 看门 狗、 1/ 0 、 串 行口、 脉宽调制输出、 a /d , d / a , f l a s h , r a m, r o m/ e p r o m, e e p r o m等各种必要功能模块、存储器及外设, 使单片机最大限度地和应用需求相匹 配, 以便充分降低功耗和系统成 本。 嵌入式 微控制器片上资源比较丰富, 适合于控制领域的应用,此类产品品种繁多,比较 有代表性的通用系列包括mc s 5 1 , p 5 1 x a, mc s - 2 5 1 , mc s - 9 6 / 1 9 6 / 2 9 6 , c 1 6 6 / 1 6 7 , mc 6 8 h c 0 5 / 1 1 / 1 2 / 1 6 , 6 8 3 0 0 , p i c等,以 8 和 1 6 位机型为主,它们对外设的控 制能力很强,但运算处理能力较弱。 x 8 6架构的 微处理器也可作为嵌入式系统的核。 采用这种架构的 微处理器 的一个典型代表就是 8 0 3 8 6 e x, 这款处理器使用 8 0 3 8 6 c p u,同时芯片内部集成 了通用的 1 0 口、中断控制器、d ma 控制器、定时/ 计数器、并行/ 串行口以及 基于a r m和n c l i n u x 的 嵌入式字符识 别系统 研究 v g a的l c d液晶驱动器,是最早的s o c ( s y s t e m o n c h ip ) 型的p c 。 由于它 与通用平台所使用的处理器架构兼容, 这种处理器具有开发方便和移植容易的 优 点,但其缺点是功耗大、体积大、实时性不高等,因此多出现在一些对体积功耗 要求不十分严格的工业控制和台式设备等应用领域。 数字信号处理器 d s p )也可用作嵌入式处理器。d s p是一种为执行ds p 算 法而优化设计的处理器, c p u内部具有 3 2 位乘加单元, 拥有丰富的支持ds p 算 法的指令。 d s p处理器具有数字信号处理的能力,因此特别适合应用于音频、 视 频的多媒体信息处理系统。d s p处理器的缺点是常规处理能力和 1 0功能不强, 寻址空间 有限, 对开发平台的 支持不够丰富,一种折中的解决方法是将 d s p处 理器内核以协处理器的形式与其他处理器的核集成在一起, 这样做可充分发挥二 者的优势,也符合嵌入式系统 “ 面向 应用、 量体裁 衣”的 特点。 a r m系列的产 品 中后缀带有 “ - e ” 选项的处理 器内部 就集成了d s p 核。 r i s c型处理器( r e d u c e d i n s tr u c t io n s e t c o m p u te r ) 在新型嵌入式系统中应用 非常广泛。r i s c型处理器指令简单、处理速度快、功耗低,因此非常适合应用 于那些对速度和功耗要求较高的便携式系统。 这种类型的处理器以a r m 公司的 a r m, mo t o r o l a 公司的 m- c o r e , h i t a c h i 公司的 s h, mi p s公司的mi p s等为代 表,其中尤以a r m公司的a r m 处理器使用量最为广泛。 a r m ( a d v a n c e d r i s c ma c h i n e )架构内核是英国 a r m 公司的产品,a r m 公司 本身并不是芯片制造商, 它向 半导体制造商提供自己 拥有知识产权的a r m 内 核,由 各半导 体芯片制造商结合自 身的 优势, 采用不同的工艺,根据需要在 a r m 内 核的 基础上嵌入各种外围 部件, 形成各种嵌入式微处理器或微控制器。 目前与 a r m 公司有此项合作关系的半导体芯片制造商有 a t me l , c i r r o s , h y u n d a i , i n te l , o k i , s a m s u n g , s h a r p 等 公司 , 我国 也 有 许多 集 成电 路 设 计 公 司得到 a r m公司的授权以开发基于 a r m的应用系统。 a r m 架构处理器己经在 高性能、低功耗、低成本的嵌入式应用领域占据领先地位。a r m 系列产品种类 繁多, 有a r m 7 , a r m8 , a r m9 , a r mi o 等多 个不同 版本, 其中在低端产品中 应用比 较广 泛的是a r m 7 和a r m9 版本, 前 者又以a r m7 t d mi 内核应 用最广。 那么在设计硬件系统时应当如何选择一款合适的处理器芯片呢?通常应该 从以下几个方面考虑: 墓于a r m和u c l i n u x 的嵌 入式字符识别系统研究 处理速度是否能够满足应用的需要; 处理器片上资源是否够用; 处理器的 寻址空间是否 足够大; 处理器开发调试工具是否方便; 功耗方面的考虑; 其他方面的考虑,如芯片成本, 芯片是否容易购买,开发资料是否容易 得到,开发人员有没有这方面的经验等。 目 前国内低端a r m应用中 使用最多的 是s a m s u n g 公司 和a t m e l 公司的a r m 芯片, a r m 7 系列处理器又以s a m s u n g 公司的s 3 c 4 4 b o x和 s 3 c 4 5 1 0 b两种具 有 a r m 7 t d m i 内 核的处理 器使 用最广。 s 3 c 4 4 b o x是针对 p d a手持设备的 应 用而设 计的a r m芯片, 最高处理速度达6 6 m ip s , 它内 部集成了音 频、串 行口 、 l c d控制器、 d m a , p wm 、 看门狗、 实时时钟等丰富的 片上资 源, 最大寻址空 间为2 5 6 m 字节、并且支持r o m, s r a m, d r a m 和 s d r a m 等不同类型的存 储器。 通过外接网络和 u s b接口芯片,系统能够非常方便地实现网络和 u s b通 讯。 s 3 c 4 5 1 0 b 是针对h u b 和低端 路由 器应用而设计的a r m芯片, 内 部集成了 一个 以太 网控制器,具有强大的网络功能,由于应用领域不同,它内部没有 s 3 c 4 4 b 0 x那样丰富的资源,这款 a r m芯片的最高运行速度达 5 0 mi p s o 综合多方面的考虑, 我们选用 s 3 c 4 4 b 0 x作为嵌入式字符识别系统硬件平台 的处理器。 1 .2 a r m芯片s 3 c 4 4 b o x简介 s 3 c 4 4 b o x是为手持设备和一般应用提供的一种低成本、 高性能的解决方案, 内 部采用a r m公司3 2 位r i s c 结构的a r m内 核, 同时为了降 低整个系统的 整 体成本,芯片内部还集成了以下资源: 外部存储器控制器,支持不同 类型的存储器芯片, 提供 8 个大小为3 2 m 字节的存储器空间; l c d控制器 ( 2 5 6色d s t n )和一路l c d专用 d ma; 带有外部请求输入/ 输出管脚的 2 通道 d ma ; 带有握手协议的2个u a r t串口; 一路支持多主机模式的i i c控制器; 基于a r m和u c l i u u x 的 嵌入式字符识别 系统研究 一路音频接口控制器; 5 路p wm 定时器、一个内部定时器和一个看门狗定时器; 7 1 个通用i o口 ,8 个外部中断输入管脚; 8 路精度为 1 0 位的模数转换器; 带日历功能的实时时钟; 带有锁相环的片内时钟发生器; 片内带有 i c e模块,支持 j t a g调试。 卜卜卜卜卜卜卜 图 1 - 2 s 3 c 4 4 b o x结构框图 图1 - 2 是s 3 c 4 4 b o x的结构 框图, 其中 每个功能模块都有一组 特殊功能寄 存 器与之相对应,这些寄存器按功能可分为控制/ 构造寄存器、数据寄存器和状态 寄 存器。 s 3 c 4 4 b o x有7 组通用1 0口( g p a -g p g ) , 每组 io口 ( 8 到1 1 位不等 ) 都有三个寄存器,即构造寄存器 ( 用来配置管脚 i o功能) 、 数据寄存器和上拉电 阻控制寄存器 ( 设置该引脚是否接内部上拉电阻) 。这些特殊功能寄存器与存储 基于a r m和u c l i n u a 的嵌入式字符识别系统研究 器统一编制 ,被安排在 o x o l c 0 0 0 0 0 - 0 02 0 0 0 0 0 0的地址空间。a r m 处理器 s 3 c 4 4 b o x的其他方面的功能和使 用方法 将在后续的相关章节做详细介绍。 另一种方式是c p u 先将f l a s h中的 程序代码复制到r a m 中, 然后再从 r a m中执行程序,由 于 r a m 的读取速度要比 f l a s h 存储器快,这样程序可以更快地执行。相比较而 言第二种方式需要较大的 r a m 开销,然而廉价的d r a m 和 s d r a m 的出现使 这一问题变得不太重要了。s 3 c 4 4 b o x内部 集成了d r a m和 s d r a m控制 器, b a n k 6 和b a n k 7 支持s d r a m和d r a m, 这两个地址空间 支持的 存储器 配置 方式如 表 1 - 3 - 2 - 1 所示。 考虑到操作系统和应用程序所占 空间的 大小并且确保存 储器预留了较大的余量,系统在 b a n k 6中选择 1 6 m 字节的 s d r a m h y 5 7 v 2 8 1 6 2 0作为内存,其数据总线宽度为 1 6 位,供电电压为 3 . 3 v . b a n k ? 地址段没有被使用。 表1 - 3 - 2 - 1 b a n k 6 和b a n k 7 的 存储器配置模式 地址段 支持的存储器配置 不支持的存储器配置 b a nk6sr om *s dr a ms rom *dr ams d凡 a mdram b an k7s dr ams r om *drams rom *d r a ms dram *注:表中 s r o m 指s r a m或 r o m类型的存储器 使用s d r a m之 前需要对s 3 c 4 4 b o x内 部的 一系列 特殊功能寄存器进行初始 化设置,这包括: 总线宽度寄存器 b s wc o n ,需要设置 b a n k 6 ib a n k 7的总线宽度, b s wc o n 2 9 .2 8 和b s w c o n 2 5 .2 4 都被设置为 “ o i l,,即设置数据总 线宽度为 1 6 位。 段控制寄 存器 b a n k c o n 6 和 b a n k c o n 7 , 设置本地址段所使用的 存 储器的类型、存储器访问时钟设置以及列地址线的数目。 d r a m/ s d r a m 刷新控制寄存器r e f r e s h. 存储器容量设置寄存器b a n k s iz e , 设置b a n k s iz e 2 :0 为“ 1 1 1 ” 设 置 s d r a m 的大小为 1 6 m字节) ,决定时钟 s c l k是否被使能。 d s d r a m 模式设置寄存器 mr s r . s d r a m 芯片 h y 5 7 v 2 8 1 6 2 0 与 s 3 c 4 4 b o x的连接方式见图 1 - 3 - 2 - 3 0 基于a r m和。 c l i n u x 的 嵌入式字符识别系统研究 厂leswel一11一一一一 图 1 - 3 - 2 - 3 h y 5 7 v 2 8 1 6 2 0与c p u接口原理图 数据总线宽度大于一个字节的时候存储器中数据的存放有两种方式, 一种是 同一个字中的高字节数据存放在地址较低的存储单元中, 低字节数据存放在地址 较高的单 元中, 这种方式叫做“ 大端” 存储: 另一种存储方式正好相反, 这种存 储方式叫 “ 小端”存储。s 3 c 4 4 b o x在复位信号有效时检测 “ e n d i a n”管脚的 电 平,当 该管脚输入为高 ( 低)电 平时, 存储器为 “ 大 ( 小)端” 模式。 硬件平 台的存储器以 “ 小端”模式存储。 盯 .3 .3 c f 卡 接口 电 路 及文 件 系 统的 设 计 随着嵌入式系统处理的任务的复杂程度的增加, 嵌入式软件的规模也越来越 大, 同 时有些嵌入式系统还需要保存大量的处理结果, 这样嵌入式系统 对f l a s h 存储器的容量有比较大的要求。比 较常见的一种做法是换用大容量的 n o r型 f l a s h存储程序代码,采用大容量的n a n d型 f l a s h存放数据。这种做法的 优点是存储器芯片直接焊接在印 刷电 路板上, 系统体积小, 机械性能好: 缺点是 n a n d型 f l a s h的读写操作需要额外的配套电路支持,并且 f l a s h芯片焊接 在电路板上以后, 系统的存储器容量就是固定的, 虽然嵌入式系统是一种专用系 统, 但随着技术的发展,它与通用平台的界线变得越来越模糊 了,很多嵌入式系 基于a r m和u c l i n u x 的嵌入式字符识别系统研究 1 .3 .6其他接口模块 目标板提供了一些其他的接口,如键盘、液晶显示屏接口、j t a g 接口以及 外扩总线接口。 键盘接口 支持4 x 4 矩阵键盘, 共包括4 根 行扫描线( s 3 c 4 4 b o x的g p g 7 :4 ) 和4 根按 键状态读回 线 ( s 3 c 4 4 b o x的g p f 8 :5 ) ,其中按键状态读回线都 接有 上拉电阻,这 4根信号线相 “ 与”后输出到处理器 s 3 c 4 4 b o x的外部中断管脚 e x i n t o ,当有键按下时会触发中断, c p u响应中断后执行键盘中断服务子程序。 s 3 c 4 4 b o x内部集成了l c d控制器, 并提供了一组 l c d控制信号:l c d所 需的交流信号 v m、象素时钟信号v c l k、帧同步信号v f r a me和行同步信号 v l in e ,以 及 8 位数据总线 v d 7 :0 。 本系统中 l c d设备处于 s 3 c 4 4 b o x的 b a n k s 地址空间中,目 标板上提供了一个 由上述信号组成的l c d接口。 在前些章节中 提到,s 3 c 4 4 b o x芯 片内 集成了i c e 在线仿真模块,可以使 用 s d t , a d s , i a r以及h i t o o l等a r m集成开发环境配合一条简易的j t a g调 试下载电缆对 s 3 c 4 4 b o x系统进行调试, 由于以上各种软件所支持的j t a g电缆 硬件上管脚不兼容, 因此 在进行系统设计时, 目 标板上仅留出 几根j t a g信号线, 而j t a g电缆的硬件电 路并没 有在目 标板上实现, 这 样做目 标板就可以 支持更多 的开发工具。 为了使系统能够扩充其他功能,目 标板上还引出 了外部总线引 脚, 主要包括 数据总线、地址总线、读/ 写信号线、n g c s 4 3 2 m地址空间段选线以及外部中断 输入。 外部设备比如字符扫描设备可以通过总线接口与目标板连接起来, 外设扩 展板可通过向目 标板c p u申 请中断实现 特定的中断服务。 夸 1 .4小结 本章主要从硬件角度介绍了基于 s 3 c 4 4 b o x的嵌入式平台的设计方法, 包括 硬件平台的模块划分, 每个模块的具体功能以及实现方法。 在设计嵌入式平台时 还必须考虑程序代码的装载, 嵌入式系统程序的编译是在主机上完成的, 程序代 码必须通过 通讯接口 下载到目 标系统中 去调 试运行: 同时在调试目 标系统时, 主 机通常还必须充当嵌入式系统的 “ 终端” ,因此设计与主机的通讯接口是嵌入式 硬件平台一个重要的设计环节。 另外, 嵌入式系统的程序代码是要固化在 f l a s h 基于a r m和u c l i u u x 的 嵌入式字符识别系统研究 存储设备中, 如何在裸机上固化程序代码也是嵌入式系统设计者必须考虑的问 题。总的说来,嵌入式系统设计有以下几个环节: 1 .系统所需实 现的功能的划分: 2 .各功能模块的 具体实 现; 3 .主机开发环境的建立; 4 .嵌入式操作系统的 选择: 5 .目 标板驻留引导程序 ( b i o s / b o o t l o a d e r )的设计; 6 .主机目 标程序的下载; 7 .调试工具与系统调试; 8 .目 标板程序的固化。 其中1 , 2 , 6 , 7 , 8 均在本章中作了 介绍或者提及, 嵌入式操作系统的 选择与移 植以 及b o o t l o a d e r 的设 计将分 别在第 二章 和第三章中做详细介绍。 基于a r m和u c h n u a 的 嵌入式字符识 别系统 研究 第二章u c l ln u % 操作系统 嵌入式系统的设计包括硬件设计和软件设计两部分, 硬件为软件运行提供平 台, 软 件则是嵌入式系统的 灵魂。 受计算机技术发展水平的限 制, 早期的 一些嵌 入式系统如单片机系统,所使用的处理器结构相对简单,硬件系统的 规模不大, 同 时受存储设备容量的限制,设计者通常直接面向 硬件编写程序实现特定的功 能, 所使用的编程语言也多是汇编语言, 软件的稳定性以 及执行效率依赖于程序 设计者的编程水平。 随着计算机技术的发展, 嵌 入式处 理器的结构变得日 趋复杂, 功能 变得 越来越强大, 在很多情况下系统还有多任务的要求, 传统的软件设计方 法己不再能够胜任。给嵌入式系统配备一个操作系统是一个不错的解决方法, 操 作系统将一些通用的软件功能如内 存管理、 任务调度等抽象出来, 为用户程序同 硬件打交道提供了一个友好的接口。 2 .1 嵌 入 式 操 作 系 统 嵌入式系统是专用系统, 系统设计不向 通用平台那样追求通用性, 无论是软 件或 硬件设计都遵循着“ 量体裁衣” 的原则, 力求以 最小的开 销实 现期望的功能。 面向嵌 入式 系统的操作系统具有以下 几个特点: 代码体积小: 适合在嵌入式系统的 有限的存储空间中运行。 可裁减、 可移植: 嵌入式操作系统 通常多 可裁减,以 缩小代码体 积, 并可移 植到不同的系统中去。 可靠性高: 嵌入式系统通常在运行时不需要人为干涉, 系统能够自 动处理各 类事 件以 及故障, 通常 不允许出 现系 统 “ 死机”的 情况。 实 时性: 有些嵌入式系 统不仅需要准 确无误地完成任务, 而且任务还必须在 规定的时间内 完成,对这些系统而言,未能按时完成任务后果同 样严重。 嵌入式操作系统按其应用对象的不同,有以下几类: 基于或与w i n d o w s 兼容:如w i n d o w s c e , 嵌入式l i n u x , e p o c 等。 2业与通信 ( 传统) 类: v x w o r k s , p s o s , q n x , n e c u l e u s , v r t x 等。 单片 机类: u c / o s . 面向 i n t e r n e l 类:p a l m o s , h o p e n 等。 上述各种嵌入式操作系统中 有些是比 较成熟的 商用操作系统,具有代表性的 基于a r m和u c l i n u x 的嵌入式字符识别系统 研究 是如微软公司的w i n d o w c e 和w i n d r i v e r 公司的v x w o r k s o w i n d o w s c e 的主要 优 点是它提供了w i n d o w s 程序员熟悉的各种开发环境, 有利于从其他 w i n d o w s 平台 上移植各种成功的应用程序, 但它不是一个实时操作系统; v x w o r k s 是一个非常 优秀的嵌入式实时 操作系统,人类探测火星使用的登陆车就曾使 用了v x w o r k s 然而这些商用操作系统的价格不菲, 应用于一般的系统时会失去竞争力。 选择嵌 入式操作系统还必须看嵌入式系统所用的处理器能否支持这种操作系统。向 s 3 c 4 4 b o x 之类的处理器,由 于c p u 没有m m u( 内 存管理单元) 模块, 就不能支持 l i n u x 或w i n d o w s c e 之类的操作系统。目 前适合a r m 7 处理器的嵌入式 操作系 统 应用最广的 有。 c l i n u x 和。 c / o s 两种, 它们的源代码公开, 并且都是免费的, 因 而得到了非常广泛的应用。 2 .2 u c l i n u x 与u c / o s 两 种 操 作系 统的 比 较 目前 a r m 7处理器上使用最多的是 u c / o s和 u c l i n u x两种操作系统,这两种 操作系统不仅源码公开并且完全免费。u c / o s 是一种源代码公开、结构小巧、具 有可剥夺实时内 核的实时操作系统, 适合小型控制系统, 具有执行效率高、 占用 空间小、 实时性能 优良 和可扩展性强等特点, 最小内核可编译至 2 k ,其内 核提 供 任务调度与管理、 时间 管理、 任务间同 步与通信、 内 存管理和中断 服务等功能。 u c l i n u x 是一种优秀的嵌入式 l i n u x 版本,是专为没有 m e 的处理器裁减设计的 l i n u x ,它继承标准 l i n u x操作系统的稳定性、强大网络功能和出色的文件系统 等主要优点,具有内嵌网 络协议、 支持多种文件系统, 开发者可利用标准 l i n u x 先验知识等优势。其编译后目 标文件可控制在几百 k数量级,但是由 于没有 m m u ( 内存管理单元) ,其多任务的实现需要一定技巧。 任务调 度是操作系统最重要的功能 之一, 主要是 协调任务对计算机系统内 资 源( 如内存、 工 / 0 设备、 c p u 等) 的争夺的使用。 任务调度按所使用的策略 可分为 ” 剥 夺型调 度 和” 非剥夺型调度” 两种基本方式。所谓“ 非剥夺型调度” 是指: 一旦 某个进程被调度执行, 则该进程一直执行下去直至该进程结束, 或由 于某种原因 自 行放弃c p u 进入等待状态, 才将c p u 重新分配给其他进程。 所谓” 剥 夺型调度” 是指: 一旦就绪状态中出现优先权更高的进程, 或者运行的进程己用满了规定的 时间片时, 便立即剥夺当前进程的运行( 将其放回就绪状态) , 把 c p u 分配给其他 进程 。 基于a r m和u c l i n u x 的嵌入式 字符识别系统研究 u c / o s 采用的是“ 剥夺型调度” 策略, 它最多可支持6 4 个任务, 每个任务都 预先安排了 优先级, 内 核在任意时间段内 运行的 总是最高优先级的 任务, 当 有更 高 优先级的 任务 请求服务时, 操 作系统 将立即 将当前 任务 挂起, 直到所有高优先 级的 任务 都执行完毕, 才会继 续执行原 来的 任务。 u c / o s 的每一个任务都有各自 独立的堆栈空间和任务控制块 ( t a s k c o n t r o l b l o c k ),任务调度模块通过查找 任务就绪表来发现最高优先级的那个任务,进而找到该任务的任务控制块的地 址, 然后调 用 o s - t a s k - s w i t c h () 实 现任务 切换。 u c l i n u 、 的任务调度方法同 标准 l i n u x 相同, 采用 “ 非剥夺型” 调度策略。 系统每隔一定时间挂起进程, 同时系 统产生快速和周期 性的时钟计时中断, 并通过调 度函数( 定时器处理函数) 决定进 程什么时候拥有它的时间片。 u c l i n u x 没有 m m u 管理存储器,它对内存的访问是 直接的, 所有的程序访问的地址都是实际的物理地址。 操作系统对内存空间没有 保护, 各 个进程实际上共享一 个运行空 间。 因此在实现多任务时需要对数据进行 保护, 避免用户程序占 用到系统内 核空间。 u c / o s 主要是面向中小规模的嵌入式系统, 它的最 大的 优点就是内 核体积非 常小, 操作系统只提供了 一个内 存管理和任务调度的内 核, 本身并不提供诸如文 件系统、 驱动程序、网 络支持等模块, 严格来说它并不完整, 但由 于。 c / o s 具有 良 好的可扩展性, 用户也 可以自 己添 加这些 功能 模块。u c l i n u x 是从标准 l i n u x 衍变过来的, 它继承了 标准 l i n u x 的 很多 优点, 比如支持多 种文件系统, 网络操 作系统等。总的说来, u c / o s 占 用空间 少, 执行效率高,实时性能优良, 适合应 用到比较简单的控制场合,u c l i n u x则更适合一些较为复杂的嵌入式应用。 2 .3 u c l i n u x 的 移 植 2 .3 .1 u c i i n u x 移植层次的分类 本系 统选择u c l i n u x 作为a r m 嵌入式平台 的操作系统。 虽 然u c 工 i n u x 内核 代 码的大部分是独立于处理器和其体系结构, 但其最底层的代码依赖于特定的硬件 体系结构, 这主要表现在不同体系结构的c p u 在中断处理、内存映射、任务上下 文和初始化过程等方面都是不同的。 要使 u ci n u x 操作系统能够成功地在特定的 硬件系统上运行, 必须根据硬件的结构 修改操 作系统中相 应部分的源代码, 即 需 要将 u c l i n u x 移植到所用的硬件平台上。 目前针对不同体系结构的处理器已有多 种版本的u c l i n u x 可供使用, 源代码可以从h t t p :/ / w w w . u c l i n u x . o r g 上 得到。 基于a r m和u c l i n u x 的嵌入式字符识别系统研究 按硬件体系结构的差异程度, u c l i n u x 的移 植大致可以分为3 个层次:结 构层次 的移植、平台层次的移植和板级移植。其中: 结构层次的 移植;在 u c l i n u x 源码包的 l i n u x / a r c h目 录下 存放着 u c l i n u x 目 前 所 支 持的 处理 器的 体 系 结 构 , 如a r m , a r m _ n o _ m m u , m 6 8 k , m 6 8 k _ n o _ m m u , m i p s , p o w e r p c 等, 如果u c l i n u x尚 未支持系统所用的 这款 c p u , 则需要 在 l i n u x / a r c h目 录下建立一个相关处理器结构的文件, 对一个新型的 处理器体 系结构,其例程可以模仿与其相似的处理器体系结构的例程编写。 平台层次的移植:如果处理器的体系结构己经被某种版本的 u c l i n u x 支持, 则需要在该体系结构对应的目 录下建立相关目 录并编写相应的代码。例如 s 3 c 4 4 b o x 是采用 a r m 7 t d m i 内 核而不带m m u 单元的处理器, 这种体系结构的 c p u都被归类到目录 l i n u x / a r c h / a r m n o m m u中,如果尚未有针对 s 3 c 4 4 b o x 的 。 c l i n u x版本,则需要在 这个目 录下建一 个子目 录, 编写跟踪程序( 实现 用户程序到内 核函数的 接口 等 功能) 、中 断控制 调度程序和向量初始 化程序 等。 板级移植:如果所用的处理器己被 u c l i n u x 支持的话,就只需进行板级移植 了。板级移植需要在 l i n u x / a r c h / 中建立一个相应的系统板的目录,再在其 中 建立相应的启动代码 c r t o _ r o m 一或 c r t o _ r a m . s 和链接描述文档 r o m . 1 d 或 r a m . 1 d就可以了。 板级移植还包括驱动程序的编写和环境变量设置等内 容。 2 .3 .2 u c l i n u x 源程序包结构简介 在移植之前需要了解以下 u c l i n u x程序包的结构。在 u c l i n u x 程序包的根目 录下有以下几个 目录,其中: l i n u x - 2 . 4 . x是操作系统内核程序包, 为叙述方便,以下目录中出现的 l i n u x 指的都是这个 目录。 u s e r 中 存放的是 用户程序。 u c l i b 中 存放的是为u c l i n u x 操作系统重新编写的库文件。 i m a g e s 中 存放的是编译生成的u c l i n u x 镜像可执行文件, u c l i n u x 有两种 镜 像文件:r o m镜像和 r a m镜像,前者是被压缩后的 u c l i n u x ,可直接烧录到 目 标板的f l a s h 中, 启动 后会自 动解压缩并将 代码复制到r a m 中 执行; 后者 基于ar m和 。 c l i n u x的嵌入式字符识别系统研究 未被 压缩,必须下载到系统的r a m 中 执行。 r o m f s 是 u c l i n u x 文件系统的 根目 录的 镜像, u c l i n u x 操作系统由内 核代码 和文件系统共同组成。r o m f s 是一种只读的文件系统。 v e n d o r s 中存放的 是不同 供应商为 各自 的 系统在u c l i n u x 程序包下添加的目 录,进行板级移植时,需要在此处为系统添加一个目录。 内 核目 录 1 i n u x - 2 . 4 . x 中有几个跟移植有关的几个目 录: a r c h : u c l i n u x 可以 支持不同 体系结 构的 处理器, a r c h 目 录中跟处理器体系 结构相关的代码按处理器的体系结构被存放在不同的子 目 录中,比如 / a r c h / a r m 八/ a r c h / a r m n o m m u 八/ a r c h / m 6 8 k /、/ a r c h / m 6 8 k n o m m u / 等 , s 3 c 4 4 b o x 属于不带m m l 单元的a r m 处理器,它被归 类到/ a r c h / a r m n o m m u / 目 录中。 d r i v e r s : 驱动程序源程序目 录, 其中 键盘、 串口、 l c d 设备被看作字符设备, 存放在/ d r i v e r s / c h a r目 录中,音频设备的驱动 程序存 放在/ d r i v e r s / s o u n d 目 录中,网终设备的驱动存放在/ d r i v e r s / n e t 目 录中, u s b 设备的驱动程序 存放在/ d r i v e r s / u s b目录中。 n e t : u c l i n u x 网 络 协 议 支持 包。 i n c l u d e :该目 录中 存放着u c l i n u x 内 核源程序所对应的 头文件。 程 序包中有一些编译时 会用到的文 件, 其中“ . d e p e n d ” 文件告诉编译器编译 时所需头文件的存放路径;m a k e f i l e 文件是 “ 目 标”( t a r g e t ) .“ 关联” (d e p e n d e n c i e s )和“ 动作” 三 者所组 成的一 连串 规则, m a k e 命令会根据m a k e f i l e 的 规则来决定如何编译(c o m p i l e )和连结( l i n k ) 程序;在配置u c l i n u x 内 核时 还 会 经常使 用到 “ . c o n f i g ” 文件, 里面定义了 哪些模块需要编译而哪些模块并不 需要,这在裁减和移植u c l i n u x 时是非常有用的。 2 .3 .3 u c l i n u x 板 级 移 植的 步 骤 u c l i n u x是一个源代码开放的操作系统,有很多人为其做了大量的工作,将 u c l i n u x移植到不同架构的处理器上,扩大了 u c l i n u x的应用范围,同时也为 u c l i n u x 提供了 丰富的 应用程序。 这里 所说的 移植实际

温馨提示

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

评论

0/150

提交评论