(检测技术与自动化装置专业论文)基于arm和μclinux的嵌入式网关设计.pdf_第1页
(检测技术与自动化装置专业论文)基于arm和μclinux的嵌入式网关设计.pdf_第2页
(检测技术与自动化装置专业论文)基于arm和μclinux的嵌入式网关设计.pdf_第3页
(检测技术与自动化装置专业论文)基于arm和μclinux的嵌入式网关设计.pdf_第4页
(检测技术与自动化装置专业论文)基于arm和μclinux的嵌入式网关设计.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(检测技术与自动化装置专业论文)基于arm和μclinux的嵌入式网关设计.pdf.pdf 免费下载

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

文档简介

i 摘摘 要要 随着网络技术和微处理器技术的发展,网络和信息家电已越来越多地出现在人 们的生活之中,这一切使得家电的网络化的趋势已不可逆转。而为了使这一趋势得 以实现,连接家电总线网络和 internet 网络的嵌入式网关是其关键。本文介绍的基于 arm 和clinux 的嵌入式网关就是对这一趋势所做出的解决方案。 本系统分别以clinux 嵌入式操作系统和 arm 核 cpu s3c44b0x 为软、 硬件基 础。详细介绍了以 s3c44b0x 为核心的硬件系统设计方案,包括 s3c44b0x 微处理 器功能介绍、各个功能模块设计、芯片器件选型等。 分析了clinux 的特点和运行机制,实现了clinux 操作系统在系统硬件平台上 的移植。研究了clinux 系统下的文件系统,采用 romfs 作为本系统的根文件系统, 同时在其中加入 ramdisk 文件系统以便于程序暂存的需要。 并着重对clinux 设备驱 动程序进行了讨论,完成了clinux 下的 can 总线节点设备驱动程序的设计。为了 使得用户可以很方便地通过浏览器访问嵌入式网关,本系统在网关内嵌入了 web 服 务器功能,详细介绍了 boa web 服务器特点和实现过程以及 cgi 程序编写流程。 经过对嵌入式网关系统的调试,本系统完全能够满足家电网络的要求,达到了 预期的设计目标。 关键词关键词:嵌入式网关; clinux 操作系统; arm; 嵌入式 web 服务器; clinux 设备驱动程序 ii abstract with the development of the network and microprocessor technology, the network and information appliance have more and more entered into the peoples life. and these make the trend which includes household appliances networking become inrreversible. to accomplish the trend, the embedded gateway which connect the household appliances bus network and internet network is the key. and the embedded gateway base on arm and clinux which introduced in this thesis just is the solution we design. this system makes the clinux embedded operation system as the basis of the software and the microprocessor s3c44b0x as the basis of the hardware.the thesis detailed introduces the design of hardware system base on s3c44b0x, including the function of the s3c44b0x, each design of the function module and chip selection. after analyzing the characteristics and operating mechanism of the clinux, i implement the porting of the clinux to the system hardware platform.through studying the filesystems under the clinux, the thesis decide to adopt the romfs filesystem as the root filesystem in the clinux operation system and add the ramdisk filesystem in it for the requirement of the temporary storage.and the thesis also emphasizes the clinux device driver and accomplishs the design of can node device driver. meanwhile the thesis considers the embedded gateway should make the user easy to visit it, the system embeds the web server in it. and the thesis detailed introduces the characteristics and the implemented process of the boa web server and the cgi program flow. after the debug for the embedded gateway system, the system can fully satisfy the requirement of household appliances bus network and reach the intended purpose. keywords: embedded gateway; clinux operation system; arm; embedded web server; clinux device driver 独创性声明 独创性声明 本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工 作及取得的研究成果。近我所知,除文中已标明引用的内容外,本论文 不包含任何其他人或集体已经发表或撰写过的研究成果。对本文的研究 做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 学位论文作者签名:胡海鹏 日期:2006 年 5 月 9 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复 制手段保存和汇编本学位论文。 保密,在_年解密后适用本授权数。 本论文属于 不保密。 (请在以上方框内打“” ) 学位论文作者签名:胡海鹏 指导教师签名:魏丰 日期:2006 年 5 月 9 日 日期:2006 年 5 月 9 日 1 1 绪论绪论 本章主要介绍的是课题概述、国内外的发展现状及课题的基本任务。 1.1 课题概述 课题概述 科技的进步永远都来自于人性,用户的需求造就了科技的进步,当我们想要相 互联络更方便,随时随地掌握家电信息时,基于嵌入式系统的网络家电就顺应而生 了。随着信息技术的发展和网络应用的普及,家用电器在跨过了机电控制、电子控 制、程序控制和智能控制等技术台阶之后,正在发展成为能够通过网络获取知识、 接受服务和远程控制的新一代家用“网器” ,即网络家电,它向人们提供前所未有的 强大功能。 家电系统与 internet 相连,实现网络化有很多种方案,我们需要对每种方案进 行有针对性的分析,选择一种适合我们系统的嵌入式方案。 1直接在每个家电设备节点上设计嵌入式网关,给每个家电设备嵌入 tcp/ip 协议和以太网口,使每台设备可以独立地与 internet 网络通信。这种方案优点在于给 每台设备以充分的灵活性,结构也简单。但缺点也很明显,由于需要在每一个设备 中实现以太网和 tcp/ip 协议栈,这将导致器件成本的升高,在成本敏感的今天,这 种方案很难被用户接受。 2将各家电设备组成局部网络,利用 pc 机作为网关,pc 机连接家庭内部局域 网和 internet,家电信息通过 pc 机到达互联网。这种方式显然比第一种在成本上略 有优势。但是 pc 机拥有强大的各种功能,只将其设计为网关显然有些浪费,同时 pc 机长时间开启只为完成网关功能也浪费能源。 3将嵌入式系统代替第二种方案中的 pc,作为家电系统的嵌入式网关。这种 方案成本小、节约能源,设计比较灵活,有很强的扩展性。 由以上分析,我们选择将众多网络家电组成家庭网络,形成以嵌入式网关为中 心,具有共同外部接口,能够相互交换信息、共享资源、协同工作的、可以随时监 控的智能家电网络监控系统 1。其中嵌入式网关作为网络家电和外部网络通信的桥 梁,起着至关重要的作用。 如何建立这样一个嵌入式网关系统是本课题所要讨论的核心问题。 2 1.2 国内外发展概况国内外发展概况 国际上对智能嵌入式家庭网络的研究起于 20 世纪 70 年代,但是这些研究都是 在各国独立进行,主要集中在发达国家,如美国、日本及欧洲的德国、英国和法国, 并且具有不同的目标和市场战略机制,因而没有形成统一的标准。目前,嵌入式网 络常用 emit 技术实现,emit 采用桌面计算机或高性能的嵌入式处理器作为网关, 称为 emgateway,上面支持 tcp/ip 协议并运行 http 服务程序,形成一个用户可以 通过网络浏览器进行远程访问的服务器。 emgateway 通过 rs-232 等轻量级总线与多 个嵌入式设备相连。 然而不同的厂商对家庭网关有着不同的定义 2。residential gateway group (rg) 是一个在 1995 年建立的正式的工业论坛组织,它率先采用家庭网关来代表一个集中 式智能接口,将外部接入网络和家庭内网络联系起来。rg 的家庭网关定义为:一种 简单的、智能的、标准化的、灵活的、整个家庭网络的接口单元,它可以从不同的 外部网络接收通讯信号,通过家庭网络传递信号给家庭内部某个设备。rg 借助家庭 网关的概念,希望能够为集成不同的外部网络和丰富新的应用提供一个有效的途径。 在过去的几年当中,许多生产厂商的努力共同推动家庭网关走出了其概念阶段。 同时,家庭网关被用于代表不同类型的产品,因此也引起了一些混淆。其中已有的 部分产品包括:网络接口单元/设备(如电话接口盒) 、dsl 调制解调器、电缆调制 解调器、机顶盒、结构布线系统的 hub、增强的 pc 机、结合家庭网络解决方案的宽 带调制解调器,提供某些专门服务的特殊家庭设备。 cisco system 公司的家庭网关定义是: 一个在家庭内的网络化信息设备与智能宽 带接入网之间的智能化网关。2wire 公司的家庭网关定义是:一种将家庭网络无缝连 接到宽带网络,使所有家庭内连网设备同时享有高速连接的设备。上面这两种定义 都认为家庭网关是一种将外部宽带网络与家庭内部网络连接的设备。 parks associates 认为家庭网关应是:连接一个外部网络或多个接入网络,通过 某种类型的家庭网络分配服务给一个或多个设备的设备。即一个集中式整个家庭的 网关才能视为一个真正的网关。但由于现有一些产品已具备其中的某些功能,而且 目前存在许多不同的观点,因此家庭网关应有一个比较广义或普遍的意义上的定义。 国内对智能嵌入式网络在家电设备上应用的研究还刚刚起步但已取得明显进 展,并且正在掀起一个又一个热潮。中国计算机学会(china computer federation)于 3 1999 年 6 月举行了“嵌入式系统及产业化在中国的发展前景”研讨会,专家们探讨 了嵌入式系统在当今计算机工业中的地位及其网络化问题,认为下一代网络设备中 嵌入式设备将大大增加。 这将极大地促进嵌入式 internet 技术研究及相关行业的迅猛 发展。近年来,嵌入式 internet 技术的研究己引起学术界的高度重视,成为信息科学 界的热点研究课题。 由此我们和顺德美的科技有限公司合作,研制开发一种基于 arm 和clinux 的 嵌入式网关。 1.3 本课题的主要任务本课题的主要任务 本课题所要开发的嵌入式网关系统是为了实现针对家电的网络化管理, 使用户能 够随时随地地控制家庭内部的网络家电。要做到这一点,目前最佳方式是将家庭内 部网络与 internet 网络相连接,这样利用 internet 无所不在的网络接口,可以很方便 地控制网络家电。因此必须设计一个低成本、功能强大、易维护、方便升级的嵌入 式网关系统。其首先必须能够做到对两个网络实现无缝连接,其次还需要实现嵌入 式 web 服务器的功能。 本课题主要任务如下: 1完成嵌入式网关系统结构分析、构建。 2研究各种主流微处理器,选择一种作为嵌入式网关的硬件基础。 3研究现有的几种主流的嵌入式操作系统(vxworks、c/os-ii、clinux 等) , 比较其技术特点,在此基础上选取适合本项目的操作系统,完成嵌入式操作系统的 移植和开发调试平台的建设。 4研究基于clinux 的 web server(httpd、thttpd、boa) ,比较其特点,选择一 种作为本项目的网页服务器。 5完成嵌入式网关硬件、软件设计。 4 2 系统的总体方案设计系统的总体方案设计 2.1 系统预计达成的目标系统预计达成的目标 在嵌入式网关系统中,根据合作公司提出的性能要求,综合考虑现在电子技术的 发展情况,我们的工作应该满足以下的技术要求: 1能够实时的响应用户需求,读取家电状态信息。 2实现 internet 与内部网络无缝互连,实现 internet 网络与家庭内部网络的协议 转换。 3因为客户对于 web 浏览方式都十分熟悉,所以本系统提供给客户的控制操作 界面为常用的 web 方式,这样就需要在系统中嵌入 web server。 4智能家居控制和管理功能。 5性价比高,成本控制在可以大量实际生产应用的范围内。 6满足兼容性和扩展性,方便以后系统的升级。 2.2 嵌入式网关系统总体设计方案 嵌入式网关系统总体设计方案 将嵌入式系统与 internet 结合起来的想法其实很早以前就有了, 主要的困难在于 internet 上面的各种通信协议对于计算机存储器、运算速度等的要求比较高,而嵌入 式系统中除部分 32 位处理器以外,大量存在的是 8 位和 16 位 mcu,支持 tcp/ip 等 internet 协议将占用大量系统资源,要实现嵌入式设备上网具有一定的现实困难。 然而摩尔定律指出每 18 个月,微处理器的芯片密度增加一倍,而制造成本与售 价却减半。因此随着半导体技术的发展进步,使得嵌入式 internet 网关设备的梦想得 以实现。随着软硬件技术的发展,嵌入式系统现在已经开始进入人们生活的各个方 面,后 pc 时代已经到来,通过对微处理器的专项设计使其可以满足人们各方面的需 求 1。 一个典型的嵌入式系统如图 2-1 所示, 主要包括微处理器和嵌入式操作系统两部 分,一个作为硬件核心,一个作为整个系统的灵魂。因此在明确了嵌入式网关系统 的任务之后,在具体设计整个嵌入式网关之前,需要先选择好微处理器和嵌入式操 作系统。 5 微处理器微处理器 输入输出输入输出 内 存内 存 操作系统操作系统 应用程序应用程序 图 2-1 典型的嵌入式系统 2.2.1 嵌入式网关系统微处理器选择嵌入式网关系统微处理器选择 本系统原已采用 rabbit2000 处理器,它具有 8 位单片机的最佳性能,在实现以 太网通信的同时,具备了简单的 web 服务器功能。但是对于网络家居来讲,这种简 单的 web 服务是远远不够的, 家庭嵌入式网关需要提供更丰富的网络家电控制能力, 和更稳定、快速的网络通信。这就需要我们的嵌入式网关采用更优秀的处理器,更 大容量的存储器,和更先进的 web 服务方式。显然传统的 8 位 cpu、16 位 cpu 已 经不适合我们这个功能复杂的嵌入式网关系统,因此我们将目光投向目前最流行的 arm 系列 cpu 上。 arm(advanced risc machine) ,既可以认为是一个公司的名字,也可以认为 是对一类微处理器的通称,还可以认为是一种技术的名字。arm 公司的高性能、廉 价、 低功耗的 risc 处理器, 适用于多种领域, 例如嵌入式控制、 消费教育类多媒体、 dsp 和移动式应用、网络系统等。 arm 公司是专门从事基于 risc 技术芯片设计开发的公司,做为知识产权供应 商,本身并不从事芯片生产,主要出售芯片设计技术的授权,世界各大半导体厂商 arm 签订了硬件技术使用许可协议, 其中就有 intel、 ibm、 lg、 nec、 sony、 philips、 samsung这样的大公司, 每个公司都有自己基于arm核的微处理器芯片, 如samsung 的 s3c44b0x、atmel 公司的 at91x40 等34。 到目前为止,arm 微处理器及技术的应用几乎已经深入到各个领域5: 1工业控制领域:作为 32 位的 risc 架构,基于 arm 核的微处理器芯片不但 6 占据了高端微处理器市场的大部分市场份额,同时也逐渐开始向低端微处理器应用 领域扩展。arm 微处理器的低功耗、高性价比,向传统的 8 位/16 位微处理器提出 了挑战。 2无线通讯领域:目前已有超过 85%的无线通讯设备采用了 arm 技术,arm 以其高性能和低成本,在该领域的地位日益巩固。 3网络应用:随着宽带技术的推广,采用 arm 技术的 adsl 芯片正逐步获得 竞争优势。此外,arm 在语音及视频处理上行了优化,并获得广泛支持,也对 dsp 的应用领域提出了挑战。 4消费类电子产品:arm 技术在目前流行的数字音频播放器、数字机顶盒和 游戏机中得到广泛采用。 5成像和安全产品:现在流行的数码相机和打印机中绝大部分采用 arm 技术。 手机中的 32 位 sim 智能卡也采用了 arm 技术。 采用 risc 架构的 arm 微处理器一般具有如下特点6:体积小、低功耗、低成 本、高性能;支持 thumb(16 位)/arm(32 位)双指令集,能很好地兼容 8 位/16 位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高;指令长度固定。 arm 微处理器目前主要包括下面几个系列,以及其它厂商基于 arm 体系结构 的处理器,除了具有 arm 体系结构的共同特点以外,每一个系列的 arm 微处理器 都有各自的特点和应用领域。分别为6 7: 1arm7 系列微处理器为低功耗的 32 位 risc 处理器,最适合用于对价位和功 耗要求较高的消费类应用。arm7 微处理器系列具有嵌入式 icert 逻辑,调试开 发方便;极低的功耗,适合对功耗要求较高的应用,如便携式产品;能够提供 0.9mips/mhz 的三级流水线结构;代码密度高并兼容 16 位的 thumb 指令集;对操 作系统的支持广泛,包括 windows ce、linux、clinux 等;指令系统与 arm9 系 列、arm9e 系列和 arm10e 系列兼容,便于用户的产品升级换代;主频最高可达 130mhz,高速的运算处理能力能胜任绝大多数的复杂应用。 arm7 系列微处理器的主要应用领域为:工业控制、internet 设备、网络和调制 解调器设备、移动电话等多种多媒体和嵌入式应用。 其中 arm7tdmi 是 arm 公司目前授权用户最多的一项产品,其特点是将 arm7 指令集同 thumb 扩展组合在一起,以减少内存容量和系统成本。同时它还有 7 用嵌入式 ice 调试技术来简化系统设计, 并用一个 dsp 增强扩展来改进性能。 tdmi 的基本含义为: t: 支持 16 为压缩指令集 thumb d: 支持片上 debug m: 内嵌硬件乘法器(multiplier) i: 嵌入式 ice,支持片上断点和调试点 2arm9 系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有 5 级 整数流水线,指令执行效率更高;提供 1.1mips/mhz 的哈佛结构;支持 32 位 arm 指令集和 16 位 thumb 指令集; 支持 32 位的高速 amba 总线接口; 全性能的 mmu, 支持 windows ce、linux、clinux 等多种主流嵌入式操作系统;mpu 支持实时操 作系统;支持数据 cache 和指令 cache,具有更高的指令和数据处理能力。 arm9 系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高 端打印机、数字照相机和数字摄像机等。 3strongarm 微处理器系列。inter strongarm sa-1100 处理器是采用 arm 体 系结构高度集成的 32 位 risc 微处理器。 它融合了 inter 公司的设计和处理技术以及 arm 体系结构的电源效率, 采用在软件上兼容 armv4 体系结构、 同时采用具有 intel 技术优点的体系结构。intel strongarm 处理器是便携式通讯产品和消费类电子产品 的理想选择,已成功应用于多家公司的掌上电脑系列产品。 以 arm 内核为代表的一批高性能、低功耗的 32 位微处理器的出现,使得嵌入 式系统摆脱了只能做简单控制的小系统的概念。以 arm 为内核的 cpu 已不能将其 简单地看作一个 32 位单片机,而要用系统的眼光来看待它,一个 arm cpu 总是在 其内核上集成了各种外设,如 usb 口、iis 立体声接口、以太网控制器、lcd 显示 器、键盘等,即它就是一个小型的 pc 系统。 从我们嵌入式网关系统的角度出发, 选取一种 arm 核微处理器需要考虑以下问 题: 1cpu 主频:它决定了系统的运行速度。 2内存空间大小:因为本系统需要内嵌操作系统,所以需要足够大的内存空间 以存放操作系统内核、文件系统和运行程序。 3片上外围电路的选择:几乎所有的 arm 芯片均根据各自不同的应用领域, 扩展了相关功能模块,并集成在芯片之中,我们称之为片内外围电路,如 lcd 控制 8 器、键盘接口、rtc、adc 和 dac、dsp 协处理器等,设计者应分析系统的需求, 尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系 统的可靠性。 4成本考虑。 综合以上分析, 我们选择目前比较流行的三星公司 cpus3c44b0x, 这款芯片属 于 arm7tdmi 系列,主频最高可达 66mhz,存储空间可达 256m 字节,足以满足 嵌入式网关的需要,而且价格便宜,属于主流处理器。而 arm9 等高端系列价格要 贵上一倍左右,因此相对与 arm7 系列来说,arm9 用在嵌入式网关系统上性价比 不高。本文第三章将会详细介绍这款芯片的特点。 2.2.2 嵌入式网关操作系统选择嵌入式网关操作系统选择 硬件提供了嵌入式系统的物质基础,而它的灵魂就是各种操作系统。如 pc 机上 的 windows、linux 等,嵌入式系统也有它自己的操作系统,如 wince、clinux 等, 这些操作系统体积小,但是它配置了一个嵌入式系统所需的主要功能,如文件系统、 网络应用、显示驱动等。 在嵌入式系统早期,主要是利用 8 位单片机执行一些简单的控制和数据处理任 务,这时的嵌入式系统的功能比较简单,逻辑不复杂,因此系统并不需要嵌入式操 作系统的支持。随着技术的发展和用户需求的复杂化,到现在为止嵌入式系统功能 已经非常强大,此时嵌入式操作系统就无可争议地走向嵌入式系统开发的舞台。开 发者借助嵌入式操作系统的帮助在某种程度上已可以与 pc 相抗衡,比如网络处理、 存储器管理、进程/线程管理等皆可以在嵌入式系统上运行。同时由于嵌入式系统功 能的强大,一个项目经常需要几位甚至几十位开发人员同时参予,为了开发方便, 就需要建立一个开发平台,这就更加需要一个功能强大的嵌入式操作系统的支持。 嵌入式操作系统本质上与通用操作系统没有太大的区别,一般用于比较复杂的 嵌入式系统中。它需要对应于某种处理器做相应改变,同时对实时性要求比较高。 目前常见的嵌入式操作系统有:wind river systems 公司的 vxworks 和 psos、 microsoft 公司的 windows ce、 clinux、 c/os-ii 嵌入式系统等, 分别介绍如下38: 1c/os-ii 由 jean j.labrosse 所设计,具有执行效率高、占用空间小、源码开 放、实时性能优良和可扩展性强等特点,是一种具有可剥夺实时调度内核的实时操 作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和 9 中断服务等功能,内核最小可编译至 2k 字节。但是它主要是面向小型嵌入式系统, 不支持文件系统。最重要的是内核本身并不包含对于 tcp/ip 协议和相关的网络操作 的支持,因此本系统没有选用910。 2vxworks 是由 wind river systems 等公司开发的嵌入式实时操作系统。 vxworks 支持主流的 32 位 cpu, 包括 x86、 68k、 powerpc、 mips、 arm 等。 vxworks 实时操作系统基于微内核结构,由 400 多个相对独立的、短小精悍的目标模块组成, 用户可以根据需要选择适当的模块来裁减和配置系统。vxworks 的链接器可按应用 的需要动态链接目标模块。vxworks 基本构成模块包括文件系统、网络处理模块, 虚拟内存模块等。虽然 vxworks 功能很强大,但是 vxworks 不是开源软件,需要购 买相应的开发工具和系统软件,开发成本比较高。 3microsoft 公司的 windows ce 嵌入式操作系统是支持多线程的嵌入式操作系 统,主要用于 pda、smartphone 等个人手持终端上。为了方便用户使用,microsoft 公司同时提供了 embedded visual studio 开发工具。windows ce 嵌入式操作系统最 大的特点是能提供与 pc 机类似的图形界面和主要的应用程序。windows ce 嵌入式 操作系统的界面显示大多数在 windows 里出现的标准部件。包括桌面、任务栏、窗 口、图标和控件等。这样,只要是对 pc 机上的 windows 比较熟悉的用户,可以很 快地使用基于 windows ce 嵌入式操作系统的嵌入式设备。但和 vxworks 同样的原 因,windows ce 是商业软件,利用它进行嵌入式开发成本较高。 4在介绍clinux 嵌入式操作系统之前需要先熟悉 linux 操作系统。linux 是一 种类似于 unix 的操作系统,但它是免费、源代码开放的,符合 posix(posix 是 基于 unix 的,这一标准意在期望获得源代码级的软件可移植性。换句话说,为一 个 posix 兼容的操作系统编写的程序,应该可以在任何其它的 posix 操作系统,即 使是来自另一个厂商上编译执行。 )标准规范的操作系统。linux 拥有现代操作系统 所具有的内容,例如:抢占式多任务处理器、支持多用户、内存保护、虚拟内存、 支持 tcp/ip 协议、支持绝大多数的 32 位和 64 位 cpu。 linux 经过改造以后,可以在很多没有 mmu 的微处理器上运行。其中clinux 就是它的改造版本, 它是一种专为嵌入式系统设计的 linux, 这里的字母即为 micro (微小)的意思,字母 c 是 control 的缩写,可见clinux 是为微控制系统领域量身 定做的 linux 版本。clinux 最初是由几位软件工程师移植到 motorola 公司的 dragonball 微处理器上。随着其他微处理器的广泛应用和clinux 的发展,clinux 10 也已经被广泛应用到coldfire、 arm、 mips等没有mmu的微处理器上。 应用clinux 嵌入式操作系统最大的好处是可以使用 linux 下面无数免费的公开资源,如网络协 议栈等。同时在 linux 平台上,已经有了非常丰富的源代码公开的应用程序,一般 来说,用户只需要简单的修改就可以用在自己的系统中。linux 自身具备一整套工具 链,容易自行建立嵌入式系统的开发环境和交叉编译环境,并且可以跨越在嵌入式 开发中的仿真工具(ice)的障碍。更重要的在于clinux 内核源码是公开的,这无 疑会节省大量的开发费用。而且对于很多clinux 嵌入式操作系统中的应用程序调 试,程序中与硬件无关部分可以在 linux 系统中调试完成再移植到clinux 上1112。 clinux 的设计思想就是通过对标准 linux 内核的裁减,去除虚拟内存管理部分 代码,并且对内存分配进行优化,从而达到提高系统运行效率的目的。它经过各方 面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式 linux,虽然它的体积 很小,但是仍然保留了 linux 的大多数的优点:稳定、良好的移植性、优秀的网络 功能、完备的对各种文件系统的支持、以及标准丰富的 api。它的主要特征如下13: (1) 通用 linux api (2) 内核体积 512 kb (3) 内核 + 文件系统 900 kb (4) 完整的 tcp/ip 协议栈 (5) 定支持大量其它的网络协议 (6) 定支持各种文件系统,包括 ext2、romfs、jffs 等 由以上可知clinux 有功能强大、开发成本低、开发工具完备等优点,同时它能 够充分地吸收在 linux 系统中获得的大部分成果。而且很重要的是每个微处理器厂 商都对它做出了移植的支持,例如我们所选择的 s3c44b0x。因此我们选择clinux 作为我们嵌入式网关所用的操作系统11。 2.2.3 嵌入式网关系统结构嵌入式网关系统结构 整个嵌入式网关系统结构如图 2-2 所示: 11 cpu s3c44b0x 4mb flash(12m16位) 10m以太网卡 uart1i/o口 8mb sdram(14m16位) can总线接口can总线 智能节点智能节点 uart2 图 2-2 嵌入式网关系统结构图 嵌入式网关可以通过它的串口与相对应的 can 节点相互通信, 或将网关本身作 为 can 网络节点之一, 利用网关上的 can 接口直接连接到 can 网络中, 同时预留 了 rs-485、电力载波通信以及无线蓝牙的通信接口,为以后家庭内部网络的兼容和 扩展留下空间。 为了方便用户容易地控制网络家电,在网关设备上嵌入了 web 服务器,提供 web 站点服务。用户通过在远程计算机上登陆网页,可以随时随地读取家电状态和 控制家电运行。 我们设计实现的家电网络监控系统的嵌入式网关主要由 arm 核微处理器 s3c44b0x、电源模块、存储器模块、以太网接口模块、can 接口模块组成。 2.3 关键技术关键技术 如前所述,嵌入式网关具有双重的功能:既能在 can 总线内部通信实现网络家 电控制命令的传输,也具有以太网通信的能力;并作为 web 服务器提供基于以太网 的远程通信,以网页服务的形式将家庭总线网络中家电的参数、状态信息传递给远 程用户,将控制命令通过 can 总线传递给网络家电。所以嵌入式网关的设计应该同 时满足以上两个方面功能。 为了更好的实现以上两个方面的功能,本系统需要嵌入式硬件平台和软件平台 的支持。因此关键性技术有: 12 1首先需要选择一款能够很好的支持网络通信和总线控制及相关外设的高性能 cpu,以建立一个高效、实用的硬件平台。 2 其次目前的以太网通信广泛采用庞大的 tcp/ip 协议栈, 所以为了简化 tcp/ip 协议栈的移植以及嵌入式 web 服务器的实现,需要建立以嵌入式操作系统为支持的 软件开发平台。所移植操作系统需要对硬件平台有很好的支持、移植方便、开发工 具完善。由于嵌入式系统的资源是有限的,所以移植的嵌入式操作系统需要根据本 系统实际情况进行剪裁,以充分利用系统资源和嵌入式操作系统的优点。 因此嵌入式操作系统移植和相关应用程序开发,及嵌入式 web 服务器的实现是 本系统实现的另一关键性技术。 13 3 嵌入式网关硬件设计嵌入式网关硬件设计 上一章已经介绍了嵌入式网关系统整体设计框架,本章则详细介绍硬件电路中 各功能模块的原理和设计。如 arm 内核芯片 s3c44b0x 在嵌入式网关中的应用, 以及电源模块、系统复位模块、调试端口 jtag 模块、sdram 模块、flash 模块、 以太网模块等在系统中的具体设计。 3.1 arm 内核微处理器内核微处理器 s3c44b0x 本系统使用的是 samsung 公司推出的 16/32 位 risc 处理器 s3c44b0x。 s3c44b0x 采用的是 arm7tdmi 核,通过提供全面的、通用的片上外设,大大减少 了系统电路中除处理器以外的元器件配置,从而可以降低成本。它包括:8kb cache、 内部 sram、lcd 控制器、带自动握手的 2 通道 uart、4 通道 dma、系统管理器 (片选逻辑,sdram 控制器) 、5 通道定时器、i/o 端口、rtc、8 通道 10 位 adc、 iic-bus 接口、同步 sio 接口和 pll 倍频器等。 s3c44b0x 的低功耗精简和出色的全静态设计特别适用于对成本和功耗敏感的 应用,而且它还采用三星公司低功耗 sambaii(三星 arm 处理器嵌入式微控制器 总线体系结构)的新型总线结构1415。 s3c44b0x 体系结构如下所示1415: 1系统管理器 支持大/小端方式,由输入引脚 endian 逻辑电平值判断,0:小端,1:大端, 逻辑电平在复位期间由该管脚的上拉或下拉电阻确定。 寻址空间分 8 个存储器 bank, 每个 bank 各 32m 字节(共 256m 字节) ,支持每 bank 可编程的 8/16/32 位数据总线 宽度, 7 个 bank 具有固定的 bank 起始地址和可编程的 bank 大小, 所有的存储器 bank 具有可编程的操作周期。8bank 分别为:6 个 rom,sram 存储器 bank;2 个 rom/dram/sdram 存储器 bank。 2cache 存储器和内部 sram s3c44b0x 内有一体化的 8k 字节 cache,其采用 lru(近期最少使用)替换算 法,如果有未用的 cache 空间,可以被用来作为内部 sram 存储空间使用。 3时钟和电源管理 14 cpu 采用低功耗设计,通过对片上 pll 配置可以使微处理器工作时钟最大达到 66mhz。同时还可以通过软件单独设计片上各功能模块的输入时钟。电源可以配置 成四种模式,分别为:正常工作模式;慢速模式,这是指不加 pll 的低时钟频率模 式;空闲模式,只停止 cpu 的时钟;停止模式,停止所有的时钟,此时可以通过外 部中断或 rtc 报警中断从停止模式唤醒。 4中断控制器 s3c44b0x 有 30 个中断源(看门狗定时器,6 个定时器,6 个 uart,8 个外部 中断,4 个 dma,2 个 rtc,1 个 adc,1 个 iic,1 个 sio) 。采用向量化的 irq 中断模式以减少中断的延迟,可选的电平/边沿模式触发外部中断,支持 fiq 为紧急 的中断请求进行服务。 5定时器和 pwm(脉宽调制) 5通道16位具有pwm功能的定时器, 1通道16位内部定时器 (可进行基于dma 或中断的操作) 。可编程的 pwm 占空比周期、频率。 6rtc 实时时钟 rtc 拥有充分的时钟特性:毫秒、秒、分钟、小时、日、星期、月、年。rtc 采用 32.768khz 时钟,可以产生定时警报,可用于唤醒 cpu,可产生时钟节拍中断。 7通用 i/o 口和 uart s3c44b0x 有 8 个外部中断口和 71 个多功能输入/输出口。 拥有 2 通道的 uart, 可进行基于 dma 或中断的操作,支持 5 位、6 位、7 位或 8 位串行数据传输/接收, 支持在发送/接收期间的握手功能,支持最高 115.2kbps,而且每个通道具有 2 个内 部 32 字节的 fifo 分别用于输入和输出。 8dma(直接存储器操作)控制器 2 通道通用 dma 控制器,不需要 cpu 干预。支持 i/o 到存储器、存储器到 i/o、 i/o 到 i/o 的 6 种 dma 请求。在同时发生的多个 dma 之间具有可编程的优先级顺 序,支持在外部设备到存储器和存储器到外部设备之间采用 fly-by 模式。 9lcd 控制器 lcd 控制器特点如下: 支持彩色/黑白/灰度 lcd 屏; 支持单路扫描和双路扫描; 支持虚拟显示屏功能; 系统存储器用来作为显示缓存; 用专门的 dma 来从系统存储 器中获得图像数据;可编程的屏幕大小;16 级灰度和最多支持 256 种颜色。 10工作电压范围 15 内核 2.5v,i/o 口电压范围 3.0v 到 3.6v。 从上述介绍可以知道,应用 s3c44b0x 的嵌入式系统已经和传统的单片机嵌入 式系统有了很大的差别。它拥有各种丰富的资源,足以支持我们在其上运行小型的 嵌入式操作系统。在这种情况下我们应该将其视为一个小型的计算机系统,通过嵌 入式操作系统的支持,可以比较容易的在上面开发各种应用,对于我们完成嵌入式 网关设计很有帮助。 3.2 嵌入式网关硬件系统资源配置 嵌入式网关硬件系统资源配置 s3c44b0x 地址空间映射如图 3-1 所示: srom (ngcs0)(32m bytes srom (ngcs0)(32m bytes) srom/dram/sdram (ngcs6)(32m bytes srom/dram/sdram (ngcs6)(32m bytes) srom (ngcs5)(32m bytes srom (ngcs5)(32m bytes) srom (ngcs4)(32m bytes srom (ngcs4)(32m bytes) srom (ngcs3)(32m bytes srom (ngcs3)(32m bytes) srom (ngcs2)(32m bytes srom (ngcs2)(32m bytes) srom (ngcs1)(32m bytes srom (ngcs1)(32m bytes) special function register(4m bytes special function register(4m bytes) srom/dram/sdram (ngcs7)(32m bytes srom/dram/sdram (ngcs7)(32m bytes) 0 x0000_0000 0 x0400_0000 0 x0600_0000 0 x0200_0000 0 x0800_0000 0 x01c0_0000 0 x0a00_0000 0 x0c00_0000 0 x0e00_0000 0 x1000_0000 0 x0000_0000 0 x0400_0000 0 x0600_0000 0 x0200_0000 0 x0800_0000 0 x01c0_0000 0 x0a00_0000 0 x0c00_0000 0 x0e00_0000 0 x1000_0000 图 3-1 s3c44b0x 地址空间映射图 在硬件设计中,首要的步骤是为系统的各个部件进行合理的地址空间分配,只 有正确地进行了地址空间的分配,后期的硬件、软件驱动设计才具备了合理的前提。 如上节所述, s3c44b0x 拥有 8 个存储器 bank, 它们分别通过全局引脚 gcs0gcs7 确定高位地址空间,然后通过对低地址空间进行译码,对特定的外围器件生成合适 的片选信号。 嵌入式网关各硬件电路模块存储空间映射如表 3-1 所示: 16 表 3-1 硬件模块存储映射表 片 选 用 途 开始地址 结束地址 访问宽度 ngcs0 flash 0 x00000000 0 x00400000 16 bit ngcs2 网络芯片 0 x04000300 0 x0400030f 16 bit ngcs3 sja10000 0 x06000000 0 x06000100 8 bit ngcs6 sdram 0 x0c000000 0 x0c800000 16 bit 其中 sdram 地址范围从 0 x0c000000 到 0 x0c800000,共 8mbytes。在不同用途 时其空间范围被分配成不同的区域用于不同的用途,如下所示: 1bootloader 程序的 sdram 空间分配如表 3-2 所示: 表 3-2 bootloader 程序应用时 sdram 分配 开始地址 结束地址 用 途 0 x0c000000 0 x0c200000 未用 0 x0c200000 0 x0c700000 clinux 内核及文件系统 0 x0c700000 0 x0c710000 bootloader 程序 0 x0c710000 0 x0c7fff00 栈 2clinux 启动后 sdram 空间分配如表 3-3 所示: 表 3-3 clinux 应用时 sdram 分配 开始地址 结束地址 用 途 0 x0c000000 0 x0c008000 clinux 全局数据和参数 0 x0c008000 0 x0c7fffffff clinux 内核及文件系统、 应 用程序 flash 地址范围从 0 x00000000 到 0 x00400000,共 4mbytes,其空间范围被分 配成不同的区域用于不同的用途。flash 被定义到 bank0 区,是为了将 bootloader 程序放在微处理器的 bank0 区,因为 s3c44b0x 的数据线可以有 8 位、16 位和 32 位 3 种模式,其中除了 bank0 是由硬

温馨提示

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

最新文档

评论

0/150

提交评论