已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘 要 随着嵌入式技术的进一步发展,嵌入式系统已经广泛应用于智能家电、通信、 工业控制、汽车等多个领域。好的嵌入式系统是能完成目标功能的最小系统。高性 能、高可靠性、低成本、低功耗都是嵌入式系统设计时力求达到的目标。 嵌入式系统的开发包括:系统需求分析、系统硬件选型、硬件设计、操作系统 选型、设备驱动程序开发、上层应用开发等。本文以中央储备粮武汉直属库远程监 控系统项目为背景,介绍了嵌入式远程监控终端的设计和实现。 uml(unified modeling language) 是一种定义良好、 易于表达、 功能强大的系统 建模语言,支持用统一的形式表现软件和硬件,可实现软硬件协同设计。本文结合 uml,将其实际运用到了嵌入式远程监控终端系统的开发过程中。 系统硬件平台选用 samsung 公司的 am7tdmi 系列处理器 s3c44b0, 扩展了 8m ram 和 16 m nand flash,同时扩展了外围通信设备接口包括通用串行口、网络 接口和人机交互接口等。 嵌入式 linux 以其稳定、高效、硬件支持广泛等特点,结合其所独具的免费、 开放源代码等特征,成为嵌入式操作系统的首选。系统软件设计基于 uclinux 操作系 统,采用了模块化程序设计方法,根据功能的不同进行模块的划分。 本系统在系统需求分析、硬件选型、标准工业通信协议应用、无线网络互连、 人机交互模式、仓储专家知识系统应用等方面均有创新之处。本系统基于 uml,实现 了系统的可视化开发;基于 minigui 和触摸屏,实现了人机交互;基于仓储专家知 识系统,实现了粮库温度的智能控制;基于 gprs 无线网络,实现了粮库的分散控 制与集中管理。本系统大大的提高了粮库的自动化水平,具有较高的市场推广价值。 关键词:关键词:嵌入式终端;uml; arm7; uclinux; 驱动; minigui; gprs. ii abstract with the development of embedded technology, embedded system has been widely used in intelligent household electrical appliances, telecommunication, industry control, and automobile area. an excellent embedded system is the minimum system which can meet the goal. high quality, high reliability, low cost and low power loss are the main goals which are needed to achieve in the greatest scope during the embedded system design. embedded system developing includes: system requirements analysis, system hardware choosing, hardware design, operating system choosing, device driver design, and user application developing. this paper introduces the design and implementation of the embedded remote monitoring terminal based on the remote control system project in the wuhan grain depot of the state grain reserves. uml is a system modeling language which can be easily defined and expressed and streamlines system programming. it supports unified format to express hardware and software, and implements hardware and software design simultaneous. the system used uml in the embedded remote monitoring terminal design. the hardware platform includes: the micro processor unit s3c44b0 which is an arm7tdmi series cpu produced by the samsung corporation, system memory device such as 8m ram and 16m nand flash, peripheral interface such as serial port interface, network interface and man-machine interactive interface. embedded linux operating system has many features such as stability, high performance, and wide hardware support. because of these features, embedded linux is the main choice in the embedded operation system field. module programming is used in the system software design which makes the system software design more structural. the system has many innovations including system requirements analysis, hardware choosing and integration, industry standard communication protocol application, wireless network and man-machine interactive interface design. the system used uml to accomplish requirements analysis, achieved man machine interchange based on minigui and touch pad, finished scattered control and concentration management in the grain depot based on the gprs wireless network. it enhanced the automatic level of the grain depot, and can be popularized in other homogeneous system. key words: embedded terminal; uml; arm7; uclinux; driver; minigui; gprs. 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承 担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和 借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 1 1 绪 论 1.1 监控系统简介 1.1.1 监控系统的发展历史 工业现场的监控管理系统的发展大致经历了以下三个阶段: 第一代监控系统是为不同的且相互独立的设备和电路分别配备各自独立的监控 装置。然而随着设备的分布越来越复杂,单一的各自独立的监控装置造成现场的维 护管理效率低下,往往由于同一原因产生的报警事件而引起的响应,但又无从分析 诸多报警现象的内在关系,难以尽快地排除故障和恢复业务。 第二代监控系统是将各类设备和电路的监控管理物理地综合为一个集中监控管 理系统,利用一套显示装置对全网进行集中监控。由于目前大多数分布式监测系统 只是在局域网上,由于各个系统的逻辑功能仍旧是相互分离的,难以具备较强的故 障管理和系统维护功能。 第三代监控系统是基于 internet 的远程监控, 它将工业现场的一切监控和管理的 功能综合于一个公共的智能平台上,全方位地检测整个网络的运行状态。能够提供 具有高级自动化水平的报警分析和故障定位功能,支持维护控制行动的决策,预测 网络异常情况对业务性能的冲击并做出相应的应急对策。 1.1.2 远程监控系统研究的意义 以往工业现场的监控系统每台设备都伴以测试仪器及仪表,不仅传统的仪器、 仪表系统布线复杂,而且需要大量的人力、物力来记录、维护、维修,当设备出现 预料不到的故障和报警事件都不能及时地反应给现场管理人员,致使损失的进一步 扩大。 随着计算机网络以及智能仪表技术的发展,使得远距离地进行监测和控制成为 可能。远程监控技术是故障监测与诊断技术和计算机通信技术相结合的高级诊断技 术,提供故障诊断服务的远程客户端和服务器端通过计算机通信网络连接起来。当 2 现场设备出现故障时,系统可以通过计算机通信网络将现场设备状态信息传输到远 程诊断专家中心,由专家对设备故障进行诊断。 1.2 嵌入式系统概述 嵌入式系统(embedded system)指的是以应用为中心,以计算机技术为基础,硬 件软件可裁减,适应系统对功能、可靠性、成本、体积、功耗严格要求的专用计算 机系统1。嵌入式系统广泛应用于过程控制、通讯、仪器、仪表、汽车、船舶、航空、 航天、智能家电等领域。嵌入式系统的广泛应用前景和发展潜力使其成为 21 世纪的 应用热点之一。 1.2.1 嵌入式系统的组成 嵌入式系统通常由嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式 应用软件等几大部分组成2。 (1) 嵌入式处理器 嵌入式处理器是嵌入式系统的核心部件。嵌入式处理器与通用处理器的最大不 同点在于嵌入式 cpu 大多工作在特定用户设计的系统中。它通常把通用 cpu 中许 多板卡完成的任务集成到芯片内部,从而有利于嵌入式系统设计趋于小型化,并且 具有高效率、高可靠性等特征。 嵌入式系统处理器可分为嵌入式微控制器(micro controller unit, mcu)、 嵌入式 微处理器(micro processor unit, mpu )、常用于计算机通信领域的嵌入式 dsp 处理器 (digital signal processor, dsp)和高度集成的嵌入式片上系统(system on chip, soc)。 (2) 嵌入式外围设备 嵌入式外围设备指在一个嵌入式硬件系统中,除了中心控制部件(mcu,dsp, mpu,soc)以外的完成存储、通信、调试、显示等辅助功能的其他部件。根据其功能 可以分为以下几类: 存储器类型: 静态易失型存储器(ram, sram)、动态存储(sdram)、非易 3 失型存储器(rom, eeprom, flash)。其中,flash(闪存)可多次擦写,存储速 度快,容量大、以及价格便宜等优点在嵌入式领域得到广泛的应用。 接口类型: rs-232 接口(串口)、spi(串行外围设备接口)、iic 接口、usb(通 用串行接口)、ethernet(以太网接口)和普通的并口等。 显示类型: lcd 和触摸屏等人机交互设备。 (3) 嵌入式操作系统 为了使嵌入式开发更方便、快捷,就需要具备相应的管理存储器分配、中断处 理、任务间通信和定时器响应,以及提供多任务调度等功能的稳定的、安全的软件 模块集合,即嵌入式操作系统。嵌入式操作系统大大提高了嵌入式系统的功能,方 便了嵌入式应用软件的设计。 当今流行的嵌入式操作系统有 vxworks, linux, wince,uc/os ii 等。每一种操 作系统都有自身的优越性,用户可以根据实际应用选择适当的操作系统。 (4) 嵌入式应用软件 嵌入式应用软件是针对特定的实际专业领域,基于相应的嵌入式硬件平台的, 并能完成用户预期任务的计算机软件。用户的任务可能有时间和精度的要求,有些 嵌入式应用软件需要嵌入式操作系统的支持,但在简单的应用场合下不需要专门的 操作系统。 1.2.2 嵌入式系统的特点 嵌入式系统同通用型计算机系统相比,具有以下特点3: (1) 嵌入式系统通常极其关注成本; (2) 嵌入式系统通常有实时性约束; (3) 嵌入式系统软件要求极高的稳定性和错误处理能力; (4) 嵌入式系统大多有严格的功耗约束; (5) 嵌入式系统的系统资源比通用计算机系统少的多; (6) 嵌入式系统通常在 rom 中存放所有的目标代码; (7) 嵌入式微处理器包含专用调试电路。 好的嵌入式系统是完成目标功能的最小系统。因而在嵌入式系统的设计中,需 4 要解决好以下几个方面的问题: (1) 硬件平台的选择; (2) 减少系统的功耗; (3) 系统功能可扩展; (4) 软件代码高质量和高可靠性。 嵌入式系统的软硬件设计必须紧密围绕具体应用和嵌入式系统自身的特点来进 行。由于嵌入式应用对成本十分敏感,因此为减少系统的成本,除了精简硬件单元 的成本之外,尽可能地减少嵌入式应用软件的资源消耗也是一个重要的环节。 嵌入式系统的硬件和软件都必须高效率的设计,在保证稳定、安全、可靠的基 础上量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能。这样,才能 最大限度的降低应用成本,提高产品的市场竞争力。 1.3 课题研究的背景、内容及意义 在粮食储藏过程中,粮库中的温度和湿度是影响粮食变化的重要参数,因此及 时的掌握粮库中粮食温湿度的变化情况在优化粮食储藏中是至关重要的。目前,国 内的很多粮库在分布上都很分散,一般采用有线方式进行数据的远程传输,实现粮 情数据的汇总和统计分析。这种通过有线方式实现的监控系统比较复杂,并且成本 也比较高,不便于实现对各个粮库的统一监控和集中管理。 本文以中央储备粮武汉直属库远程监控系统项目为背景,介绍了嵌入式远程监 控终端的设计和实现4。系统基于 uclinux 嵌入式远程监控终端,实现了温湿度数据 的实时采集和现场显示;基于 minigui 和触摸屏,实现了人机交互;基于 gprs 网 络,实现了粮库的分散控制与集中管理。系统自动根据粮食温湿度条件的变化启闭 窗户、启闭通风系统。根据不同的通风目的,自动分析,选择适当通风条件,提高 通风效率,降低能耗。对异常情况进行处理,节省人力资源和减轻劳动强度,提高 了粮库的监管水平。 5 1.4 论文章节安排 本文第一章介绍了监控系统、嵌入式系统概况,同时介绍了课题的研究背景、 内容及意义。 第二章结合统一建模语言 uml,提出一种嵌入式系统可视化开发方法,并进行 了系统的需求分析。 第三章介绍了系统硬件选型和硬件平台的搭建。 第四章介绍了嵌入式 uclinux 操作系统的特点以及系统开发平台的搭建。 第五章介绍了 uclinux 下基于 ads7843 控制芯片的触摸屏驱动设计。 第六章介绍了 minigui 监控界面程序的设计。重点介绍了 minigui 的特点及其 在 uclinux 下的移植,以及基于 gprs 网络模块、通信协议模块的 minigui 监控界 面程序的实现。 最后总结了系统的功能并作出了展望。 6 2 系统需求分析 uml(unified modeling language)是一种定义良好、易于表达、功能强大的系统 建模语言。 uml 详细描述了系统的内容和工作方法, 先进行系统建模后再编写代码, 在开始阶段就保证了系统结构的合理性。uml 用统一的形式表现软件和硬件,支持 循环迭代并可多次修改软硬件方案直到满足要求,可实现软硬件协同设计。本文结 合统一建模语言 uml,将其实际运用到了嵌入式远程监控终端系统的开发过程中, 不仅缩短了嵌入式系统开发的周期,并且提高了系统质量。 基于 uml 的嵌入式系统开发方法支持需求、分析、设计、实现、测试的循环迭 代,通过细化分析和设计阶段的步骤,使得整个过程更有条理、充实,更适合于多 任务的嵌入式系统开发5。包括以下几个步骤: (1) 需求阶段明确了系统所要实现的功能以及所要达到的性能; 功能性需求:明确系统应该提供什么功能; 非功能性需求:明确系统的特定特性或者约束。 (2) 分析阶段主要是简化和结构化需求,清楚地描述系统内部; 系统架构分析:运用面向对象技术描述系统的静态结构; 系统行为分析:从动态的角度描述系统的对象间相互作用的特性。 (3) 设计阶段是在对系统各方面有了解的基础上来确定特定的解决方案。 分层结构设计:确定了具体实现时软件和硬件的最佳分界; 详细设计:在软件方面,深入到了系统底层信息。 2.1 系统需求 2.1.1 功能性需求 功能性需求是对系统功能的陈述。在 uml 中通过用例图来描述系统功能。如图 2-1 所示,系统大致由下述几个角色和用例组成: 7 485总线控制器 查询温湿度 查询设备状态 窗户控制 鼓风机控制 登陆嵌入式终端 监控中心用户 现场用户 图 2-1 系统用例图 三个角色:485 总线控制器,监控中心用户,现场用户。 五个用例:查询温湿度、查询设备状态、窗户控制、鼓风机控制、登陆嵌入式 终端。 系统具体功能性需求如下所示: (1) 库房“三温三湿”显示: “三温”: 室外温度、室内温度、粮库各层平均温度; “三湿”: 室外湿度、室内湿度、粮食平均湿度。 (2) 温度变化曲线显示: 日温度变化曲线:显示一天之内库房内平均温度变化曲线。 (3) 粮温查询: 根据温度点号,查询其温度值。 (4) 通风设备控制: 鼓风机控制:按温度自行启动; 环流熏蒸机控制:自动实现,接好后,无人值守。 (5) 窗户的启闭控制: 全启闭:同时启/闭所有窗户; 选点启闭:选择启/闭某个窗户。 8 (6) 系统安全: 嵌入式终端设置了管理员密码,防止无关人员对嵌入式终端进行误操作。 (7) 异常报警: 如果系统检测到异常温度,会自动给粮库值守人员发送报警短信息。 2.1.2 非功能性需求 非功能性需求是系统的特定特性。本系统的非功能性需求如下6: (1) 实时性 系统对实时性指标具体要求如表 2-1 所示: 表 2-1 系统对实时性指标要求 性能选项 性能指标 状态采集周期 1 秒 模拟点采集周期 电量:1 秒;非电量:5 秒 数字量采集周期 2 秒 事件顺序分辨率 5ms 调用新画面的响应时间:90%全图显示 2 秒 在已显示画面上动态数据刷新时间 2 秒 操作员命令发出到系统响应的时间 1 秒 (2) 可靠性 系统对可靠性指标具体要求如表 2-2 所示: 表 2-2 系统对可靠性指标要求 性能选项 性能指标 系统无故障工作时间(mtbf) 17000 小时 现地控制单元 lcu (mtbf) 20000 小时 平均维修时间(mttr) 0.5 小时 (3) 系统安全性 通信安全性 9 监控系统应保证信息中的一个错误不会导致系统关键性的故障。当通信失败时, 考虑 25 次重复通信并发出报警信息。 硬件、软件及固件的安全性 1) 具有电源故障保护和自动重新启动的功能; 2) 初始状态可以预置并进行修改; 3) 系统中任何地方单个元件的故障都不会造成生产设备的误动作。 (4) 系统可扩展性 cpu 的负载留有适当的裕度,系统 cpu 平均负载率不大于 40%; 主计算机的内部存储器留有 40%的容量给用户使用; 大容量存储器留有 60%的备用容量; 系统具有开放能力,在功能、配置、通信接口等方面均可扩展。 2.2 系统分析 2.2.1 系统结构分析 系统结构分析是对系统元素静态的描述,它在系统需求的基础上确定系统的总 体架构。首先通过部署图来描述系统的架构,如图 2-2 所示: 嵌入式终端嵌入式终端 gprs 模块 internet 监控服务 器 监控服务 器 本地显 示器 本地显 示器 触摸屏触摸屏 485总线控 制器 总线控 制器 智能采 集器 智能采 集器 智能控 制器 智能控 制器 图 2-2 系统架构示意图 系统采用了目前远程监控系统中比较流行的客户机/服务器模式(c/s)。系统 的 5 个功能用例都将主要由嵌入式终端来实现。系统选用嵌入式终端作为现地工作 站,通过现场总线将库房测温系统(智能采集器)、库房窗户控制系统(智能控制 器),联成一个整体;基于 gprs 网络,实现了与后台监控服务器的无线连接。 10 2.2.2 系统行为分析系统行为分析 系统行为分析就是从多个角度来描述所研究系统的动态部分。本文用嵌入式终 端的状态图描述系统的状态行为(如图 2-3 所示),然后根据系统内部所具有的行 为来定义和简化其操作。 gprs网络模块网络模块 minigui监控界面程序监控界面程序 命令解析命令解析 485总线控制器总线控制器 控制命令温湿度数据设备状态 数据编码数据编码 温湿度数据 设备状态控制命令 网 络 连 接 网 络 连 接 tcp/ ip 监控服务器 图 2-3 嵌入式终端状态图 2.2.3 小结 本文基于 uml,实现了嵌入式远程监控系统可视化开发。此方法面向对象,步骤 清晰,并全部由 uml 的统一标准符号加以描述,有效的提高了系统的开发效率,也 有利于系统以后的维护和升级。 11 3 系统硬件设计 3.1 嵌入式微处理器选型 3.1.1 嵌入式微处理器简介 传统的 cisc(complex instruction set computer,复杂指令集计算机)结构有其固 有的缺点,即随着计算机技术的发展而不断引入新的指令集,为支持这些新增的指 令,计算机的体系结构会越来越复杂。然而,在 cisc 指令集的各种指令中,其使用 频率却相差悬殊,大约有 20%的指令会被反复使用,占整个程序代码的 80%。而其 余 80%的指令却不经常使用,在程序设计中只占 20%,显然这种结构是不合理的。 针对 cisc 体系以上的不合理性,1979 年美国加州大学伯克利分校提出了 risc (reduced instruction set computer,精简指令集计算机)的概念,risc 并非只是简单地 减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度 上。 risc 结构优先选取使用频率最高的简单指令,避免复杂指令,将指令长度固定, 指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达 到上述目的。 一般认为,risc 体系结构应具有以下特点7: (1) 采用固定长度的指令格式,指令归整、简单、基本寻址方式有 2-3 种; (2) 使用单指令周期,便于流水线操作执行; (3) 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令 可以访问存储器,以提高指令的执行效率。 目前,在嵌入式微处理器领域,获得广泛应用的主要是 arm(advanced risc machines)公司所推出的 arm 系列微处理器。arm 体系结构还采用了一些特别的技 术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗8 9: (1) 所有的指令都可以根据前面的执行结果决定是否被执行, 从而提高指令的执 行效率; (2) 可用加载/存储指令批量传输数据,以提高数据的传输效率; 12 (3) 可在一条数据处理指令中间同时完成逻辑处理和移位处理; (4) 在循环处理中使用地址的自动增减来提高运行的效率。 3.1.2 微处理器选型标准 系统开发时,在选择处理器时要考虑的主要因素有10: (1) 处理性能 微处理器的性能取决于多个方面的因素,如时钟频率,内部寄存器的大小等。 对于嵌入式系统设计来说,目标不是挑选速度最快的处理器,而是在于选取能够完 成目标功能的处理器和 i/o 子系统。 (2) 技术指标 微处理器一般都集成了外围设备的功能,减少了芯片的数量,降低了整个系统 的开发费用。其次是考虑该处理器的一些支持芯片,如 lcd 控制器,内存管理器, 中断控制器,串行设备和时钟等的配套。 (3) 功耗 在手持设备、电子记事本、手机、智能家电等电子产品的开发中,要求嵌入式 处理器高性能低功耗。 (4) 软件支持工具 选择合适的开发工具软件会大大加快系统开发进度。 (5) 是否内置调试工具 内置调试工具可以大大缩小调试周期,降低调试的难度。 3.1.3 arm 微处理器的特点 arm7 系列微处理器为低功耗的 32 位 risc 处理器,具有如下特点11 12: (1) 极低的功耗,适合对功耗要求较高的应用; (2) 提供 0.9mips/hz 的三级流水线结构; (3) 代码密度高并兼容 16 位的 thumb 指令集; (4) 主频最高可达 130mips,高速的运算处理能力能胜任绝大多数的复杂应用; (5) 广泛的操作系统的支持,包括 vxworks, windowsce, linux, palm os 等; (6) 具有嵌入式 ice-rt 逻辑,调试开发方便。 13 arm7 tdmi 是目前使用最广泛的 32 位嵌入式 risc 处理器, 属低端 arm 处理 器核。tdmi 的基本含义为: t:支持 16 位压缩指令集; d:支持片上 debug; m:内嵌硬件乘法器(multiplier); i: 嵌入式 ice,支持片上断点和调试点。 3.2 系统硬件平台搭建 arm7 系列嵌入式微处理器结构较 arm9, arm10 简单,配合外围电路及各种 类型的接口可以完成各种复杂的任务,适用范围符合嵌入式远程监控系统设计的要 求。s3c44b0 是 samsung 公司生产的高性价 arm7tdmi 系列比微处理器,其功能 配置如下13 14 : (1) 2.5v arm7 tdmi cpu 内核,带 8kb 缓存(最高可达 66mhz); (2) 外部存储控制器; (3) lcd 控制器(stn 最高达 256 色),1 个 lcd 专用 dma 通道; (4) 2 个通用 dma 通道,2 个外围 dma 通道连接外部请求引脚; (5) 2 个 uart 通道; (6) 1 个 iis 总线控制器通道; (7) 5 个 pmw 定时器通道,1 个内部定时器通道; (8) 看门狗定时器; (9) 8 个 10bit adc 通道; (10) 电源管理; (11) 片上 pll 时钟发生器。 s3c44b0 为用户提供了丰富的设备接口,用户只需要进行较少的扩展就可以构 建一个应用系统。基于上述考虑,我们选择了基于 s3c44b0 微处理器为核心来构建 系统硬件平台。 系统硬件平台构成示意图如图 3-1 所示。 14 s3c44b0 8m sdram 2m nor flash 16m nand flash 10m 网口网口 uart0 uart1 lcd(触摸屏触摸屏)接口接口 20针jtag口 图 3-1 系统硬件平台构成示意图 嵌入式远程监控终端开发板主要硬件资源如下: (1) 嵌入式微处理器 s3c44b0,arm7 tdmi 系列,主频可达 66mhz; (2) 2m nor flash,用于存放启动代码(bootloader); (3) 8m sdram; (4) 16m nand flash,用于存放 linux 内核和文件系统; (5) 10m 以太网接口,采用 rtl8019sas 芯片; (6) lcd 接口:最大支持 640 x480/256 色 stn 屏; (7) 两个标准三线 rs232 接口,分别连接 485 总线收发器和 gprs 模块; (8) 20 针 jtag 口,用于调试和烧写。 开发板片选及地址空间如下: ngcs0 【0 x0000_0000】:nor flash ngcs1 【0 x0200_0000】:nand flash ngcs2 【0 x0400_0000】:ide/ata ngcs3 【0 x0600_0000】:rtl8019as ngcs4 【0 x0800_0000】:pdiusbd12 (usb device) ngcs6 【0 x0c00_0000】:sdram 开发板中断分配如下: int0 int1 int2 int3 usb d12 rtl8019as ide/ata touchpad (lcd) 15 4 系统软件设计 本系统软件设计采用了模块化程序设计的方法。为了使程序易于编写与调试, 也为了便于检验和维护,总是设法把程序编写成一个个结构完整,相对独立的程序 段。这样一个程序段,可以看作一个可调用的子程序,即一个程序模块。把整个程 序按照“自顶向下”的设计来分块,一层层分下去,一直分到最下层的每一模块能 容易编写为止,即所谓模块化编程15 16。 模块化编程有利于程序设计任务的划分。例如,系统初始化,用户界面程序等 等,都是一个个独立的模块。采用模块化编程,有利于程序的搭建,也便于程序的 调试和修改。 程序设计采用了“自顶向下”的方法。这种方法在程序设计时的优点是明显的, 但在具体编程时最好采用“自底向上”17的方法,即从最低层的模块开始编程,然 后进行上层的模块编程,直至最后完成。实践证明,这种方法可大大减少系统调试 的难度,不易出现难以排除的故障或问题。 系统软件层次结构如图 4-1 所示。 底层硬件设备 uclinux操作系统 (设备驱动、协议栈) minigui api 监控界面程序 layer2 layer3 layer4 启动代码(bootloader) layer1 硬件 图 4-1 系统软件层次结构图 第一层(layer1):启动代码(bootloader)。芯片复位后进入操作系统之前执行的 一段代码,主要是为运行操作系统提供基本的运行环境,如初始化 cpu、初始化存 16 储器系统等,其功能有点类似于 pc 机的 bios。 第二层(layer2): uclinux 操作系统,为上层应用提供了丰富的支持,包括底层 设备驱动和通信协议栈等。嵌入式终端采用了 uclinux 操作系统,屏蔽了对底层硬件 的具体操作,开发者只需关注软件编程,这样大大的节省了开发时间。 第三层(layer3): minigui api(应用程序接口),为 minigui 应用程序提供图形 函数库支持。 第四层(layer4): 监控界面程序,基于 minigui api 可以很方便的实现图形用 户界面以及网络事件监控。 4.1 嵌入式 uclinux 4.1.1 嵌入式 linux 的优点嵌入式 linux 的优点 嵌入式 linux 具有如下优点18 19: (1) 功能强大,性能高效稳定; linux 原先用于网络服务器领域,具有较高的可靠性; (2) 强大的网络功能支持; linux 支持所有标准 internet 协议。 (3) 大量驱动程序支持,丰富的自由软件资源; linux 上的驱动程序非常丰富,支持各种主流硬件设备。而且 linux 上的软件资 源十分丰富,可以在这些应用程序的基础上进行二次开发和移植,降低了系统开发 难度,缩短了开发周期。 (4) 支持多种硬件体系结构; linux 支持 x86、arm、mips、alpha 等多种体系结构。目前,linux 己经被 移植到数十种硬件平台上,几乎支持所有流行的 cpu。 (5) 内核源码开放、可裁减; 用户完全可以根据不同的任务来选定特定操作内核模块,减少操作系统规模, 非常好地解决了操作系统规模和功能的矛盾。 (6) 良好的开发环境,不断发展的开发工具集。 17 嵌入式 linux 操作系统所具备的稳定、高效、易定制、易裁减、硬件支持广泛 等特点,结合上其所独具的免费、开放源代码等特征,因而被广泛应用于嵌入式系 统开发中。 4.1.2 uclinux 操作系统 uclinux 从 linux 2.0/2.4 内核派生而来,沿袭了主流 linux 的绝大部分特性。它 是专门针对没有 mmu(内存管理单元)的嵌入式 cpu。uclinux 在标准的 linux 基础 上进行了适当的裁剪和优化,形成了一个高度优化的、代码紧凑的嵌入式 linux。虽 然它的体积很小,uclinux 仍然保留了 linux 的大多数的优点:稳定、良好的移植性、 优秀的网络功能、对各种文件系统的支持、以及标准丰富的 api 等。由于系统硬件 平台所选用的微处理器 s3c44b0 没有内存管理单元,因而嵌入式终端选用 uclinux 作为操作系统20 21。嵌入式 uclinux 不同于标准 linux 之处体现在以下几个方面: (1) uclinux 的内存管理 对于 uclinux 来说,其设计针对没有 mmu 的处理器,但 uclinux 仍然采用存储 器的分页管理,系统在启动时把实际存储器器进行分页,在加载应用程序时程序分 页加载。 但是由于没有 mmu 管理, 所以实际上 uclinux 采用实存储器管理策略(real memory management) 22 23。 uclinux 系统对于内存的访问是直接的,即 uclinux 对地址的访问不需要经过 mmu,而是直接送到地址线上输出,所有程序中访问的地址都是实际的物理地址。 操作系统对内存空间没有保护(这实际上是很多嵌入式系统的特点), 各个进程实际上 共享一个运行空间。 uclinux 对内存的管理减少同时就给开发人员提出了更高的要求。从编译内核开 始,开发人员必须告诉系统这块开发板到底拥有多少内存,从而系统将在启动的初 始化阶段对内存进行分页,并且标记已使用的和未使用的内存。同时必须在开发应 用程序时必须考虑内存的分配情况并关注应用程序需要运行空间的大小。 由于采用实存储器管理策略,用户程序同内核以及其它用户程序在一个地址空 间,程序开发时要保证不侵犯其它程序的地址空间,以使程序不至于破坏系统的正 常工作,或导致其它程序的运行异常。但从内存的访问角度来看,开发人员的权利 18 增大了(开发人员在编程时可以访问任意的地址空间), 但与此同时系统的安全性也大 为下降。 (2) uclinux 的多进程管理 uclinux 没有 mmu 管理存储器,在实现多进程时(fork 调用生成子进程)需要实 现数据保护。uclinux 的 fork 等于 vfork。实际上 uclinux 的多进程管理通过 vfork 来 实现。这意味着 uclinux 系统 fork 调用完成后,要么子进程代替父进程执行(此时父 进程已经 sleep)直到子进程调用 exit 退出;要么调用 exec 执行一个新的进程,这个 时候将产生可执行文件的加载,即使这个进程只是父进程的拷贝,这个过程也不能 避免。当子进程执行 exit 或 exec 后,子进程使用 wakeup 把父进程唤醒,父进程继 续往下执行24 25。 (3) uclinux 小型化 uclinux 系统采用 romfs 文件系统。romfs 比标准 linux 默认的 ext2 文件系统简 单的多,内核仅需要很少的支持代码,且它的超级块占用很少的存储空间,从而节 省了宝贵的内存。romfs 的缺点是不支持动态擦写保存,uclinux 采用虚拟 ram 盘的 方法存储系统的动态数据(ram 盘采用 ext2 文件系统) 26。 uclinux 还重写了一些应用程序库,如将功能强大而体积庞大的 glibc 和 libm 库 精简成 uclibc 和 uclibm。uclinux 采用 flat 可执行文件格式,这种格式对文件头和一 些段信息作了简化,缩小了可执行文件的体积。 4.2 系统开发平台搭建 4.2.1 交叉编译环境的建立27 (1) 下载交叉编译工具。 从 http:/www.uc 网站上下载 arm-elf-tools-20030314.sh (2) 安装交叉编译工具。 sh ./arm-elf-tools-20030314.sh 执行后,/usr/local/bin/路径下有 gcc, g+, binutils, genromfs, flthdr 和 elf2flt 等各 种实用工具,至此交叉编译工具就安装好了。 19 4.2.2 内核环境的建立 uclinux 已被成功移植到 s3c44b0x 及其他多款 arm 芯片上,由于嵌入式操作 系统的运行与嵌入式系统的硬件密切相关, 因此在 uclinux 内核源代码中和硬件紧密 相关的部分就应该针对特定的硬件做出适当的修改。编译 uclinux 的步骤如下28: (1) 在 www.uc 下载源码包; (2) tar xzvf uclinux-xxxxxx.tar.bz2 解压源码包; (3) cd uclinux 进入到 uclinux 目录; (4) make menuconfig 进入到内核配置菜单界面; (5) make dep 建立依赖关系; (6) make clean; 清除以前编译内核时生成的目标文件和临时文件。 (7) make lib_only 编译 uclibc; (8) make user_only; 编译用户应用程序,包括初始化进程 init,bash,以及 busybox 等。 (9) make romfs; (10) make image; 生成文件系统和内核镜像文件。 (11) make。 当内核的编译工作完成之后,会在/uclinux/images 目录下看到三个映象文件: image.ram,image.rom 和 romfs.img,其中,可将 image.rom 和 romfs.img 烧写到相 应的 flash 存储器中,当系统复位或上电时,内核自解压到 sdram,并开始运行。 4.2.3 调试环境的建立 本嵌入式系统开发平台选用运行桌面 linux 操作系统的 pc 作为宿主机。 开发者 首先在宿主机上使用 arm-elf-gcc 等交叉编译工具编译应用程序;再通过网口 (或者 串口)将宿主机和目标板连接起来(如图 4-2 所示),运行目标板上 uclinux 操作系统, 通过宿主机上 ftp 服务器,把应用程序下载到开发板中。 20 hub 网 卡以 太 网 接 口 r232接 口 嵌 入 式 开 发 板 r232接 口 运 行 linux的 宿 主 机 网 线 网 线 串 口 线 图 4-2 宿主机和开发板连接示意图 由于开发板所使用的 uclinux 操作系统内核采用 romfs 作为其根文件系统, 当 目标系统的 uclinux 启动以后,其目录大多数是建在 flash 存储器中,因而是不可 写的,只有/var、/tmp 等少数几个目录是建立在 sdram,是可读写的。通过 ftp 服 务器下载应用程序时, 应下载到 var 或者 tmp 目录下, 然后就可以直接运行相应目录 下的应用程序。调试完成后,应把应用程序烧入 nand flash 中。 通过 ftp 下载应用程序,可以方便的实现应用程序的调试,避免了每次都要烧 写 nand flash,既节省了开发时间,又增加了 nand flash 的使用寿命。 21 5 设备驱动程序设计 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内 核和系统硬件之间的接口。设备驱动程序隐藏了设备的具体细节,对各种不同设备 提供了一致的接口。一般来说是把设备映射为一个特殊的设备文件,用户程序可以 象对其它文件一样对设备文件进行操作29。 设备驱动程序是系统内核的一部分,它完成以下的功能: (1) 对设备初始化和释放; (2) 把数据从内核传送到硬件和从硬件读取数据; (3) 读取应用程序传送给设备文件的数据和回送应用程序请求的数据; (4) 检测和处理设备出现的错误。 嵌入式系统通常有许多用于与用户交互的设备,像触摸屏、小键盘、lcd 等。 内核通过这些设备的驱动程序来控制他们,包括 gui 等用户应用程序也通过设备驱 动程序来访问这些设备。 5.1 驱动内核结构分析 设备驱动程序可分为 3 个主要组成部分: (1) 自动配置和初始化子程序, 负责检测所要驱动的硬件设备是否存在和能否正 常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件状态 进行初始化。这部分驱动程序仅在初始化时被调用一次。 (2) 服务于 i/o 请求的子程序,又称为驱动程序的上半部分。调用这部分程序是 由于系统调用的结果。这部分程序在执行时,系统仍认为是与进行调用的进程属于 同一个进程。只是由用户态变成了核心态, (3) 中断服务子程序,又称为驱动程序的下半部分。在 uclinux 系统中,并不是 直接从中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆明冶金高等专科学校《英语翻译理论与实践》2024-2025学年第一学期期末试卷
- 土的直接剪切试验记录(三)
- 高一数学上学期第一次月考(北师大版2019必修第一册第一章高效培优-提升卷)(考试版A4)
- 刺五加对改善睡眠功能研究
- 西藏地区马克思主义大众化现实问题
- 物资采购与供应链管理
- 学位论文参考文献及脚注部分格式示例-论文格式-
- 装备制造业工业汉语平行语料库的搭建与问题的探讨
- 农林经济管理本科毕业论文选题(1425个)
- 【工程建设项目成本管理研究国内外文献综述2400字】
- 小学高级数学教师评审答辩资料范本
- 2025广东广州市越秀区流花街招聘党建工作指导员1人笔试考试参考题库及答案解析
- 2025年抗菌药培训考试题及答案
- GB/T 21782.4-2025粉末涂料第4部分:爆炸下限的计算
- 冀教版(2024)数学一年级上册第三单元《认识11~20》综合计算练习卷(含解析)
- 2025年宏观经济学试题库及练习题及答案
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 高二(8)艺术班下学期家长会课件
- 脾胃风湿病科护理组卧床患者便秘的健康教育知晓率
- 腰骶疼痛精确诊断治疗课件
- 气相色谱质谱联用仪操作规程精
评论
0/150
提交评论