1、中图分类号:TP319 密 级:公开 UDC: 本校编号: 硕 士 学 位 论 文论文题目:基于 ARM 远程家居智能控制系统设计 研究生姓名: 翟宁 学号: 0207466 学校指导教师姓名: 何涛 职称: 副教授 申请学位等级: 工学硕士 专业: 交通信息工程与控制 论文提交日期: 2010 年 6 月 17 日论文答辩日期:2010 年 6 月 5 日2独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含获得 兰州交通大学 或其他教育机构的学位或证书而使用过的材料。与我
2、一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文作者签名: 签字日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解 兰州交通大学 有关保留、使用学位论文的规定。特授权 兰州交通大学 可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。(保密的学位论文在解密后适用本授权说明)学位论文作者签名: 导师签名:签字日期: 年 月 日 签字日期: 年 月 日 硕 士 学 位 论 文基于 ARM 远程家居智能控制系统设计ARM-based Inte
3、lligent Control System For The Remote Home作 者 姓 名: 翟宁 学科、专业 :交通信息工程与控制 学 号 : 0207466 指 导 教 师: 何涛 完 成 日 期: 2010 年 4 月 兰 州 交 通 大 学Lanzhou Jiaotong University- -I摘要随着科学技术的告诉发展,人们生活信息化水平的不断提高,各种互联网新技术和电子信息技术推动了人类文明的巨大进步。随着电子信息技术的不断发展、创新,智能化程度的提高,我们无时无刻不在享受科学技术给我们的生活带来的方便。在人们生活节奏日益提高的今天,人们越来越在意家居智能化给我们日常
4、生活带来的便利,享受高科技成果。因此如何将信息技术应用到家居控制中,为人类提供高科技带来的简便而时尚的现代生活,成为了一个新的课题。本文提出以三星 S3C2410 嵌入式处理器为核心处理器,搭建了基于嵌入式 LINUX 操作系统的家庭智能管理平台。设计了一种智能家居控制系统,用户通过 INTERNET 网络或手机等无线接入技术来访问家庭的内部网络,从而实现了用户对家居环境的智能无线监控、远程查询、集中管理和远程控制。文中对智能家居控制平台的搭建,嵌入式控制器及其外围电路以及 GPRS 模块做了详细介绍。同时对系统短信接收和发送过程、GPRS 模块在 Linux 下的实现、监控中心软件的实现方法
5、做了详细的阐述。通过远程家居智能控制系统不仅能实时监控和查看用户房屋内各种电器的情况,还能通过 Internet 网络或手机根据需要随时、随地控制房屋内的各种电器设备。这样不仅消除了存在和潜在的安全隐患,还可以节省能源的消耗,与国家提倡的建设资源节约型社会相对应。关键词:电子信息技术;家居控制;嵌入式;linux;GPRS论文类型:应用研究IIAbstractWith the development of science and technology, told people living continuously improve the level of information, a var
6、iety of new Internet technologies and electronic information technology to promote the tremendous progress of human civilization. With development of the electronic information technology, innovation, intelligence increase, from time to time we enjoy the science and technology in their lives to our
7、convenience. In peoples ever-increasing pace of life today, there is a growing care home to us the convenience of smart, enjoy the high-tech achievements. Therefore, how to apply information technologies to the home control, to bring mankind to provide a simple and stylish high-tech modern life, has
8、 become a new topic. This paper proposes a Samsung S3C2410 processor, embedded processor core, embedded LINUX operating system built home based on intelligent management platform. Design of an intelligent home control system, users INTERNET network or wireless access technologies such as mobile phon
9、es to access the familys internal network, enabling the user to the home environment of intelligent wireless monitoring, remote query, centralized management and remote control. The article on the Intelligent Home Control Platform for the embedded controller and its peripheral circuits, as well as G
10、PRS module introduced in detail. Meanwhile, the process of the system to send and receive SMS, GPRS network in Linux, under implementation, monitoring center realization of software made in detail. Intelligent control system by remote home can not only view real-time monitoring and user housing situ
11、ation of various electrical appliances, but also through the Internet network or mobile phone anytime, anywhere under the control of the house needs a variety of electrical equipment. This not only eliminates the existing and potential security risks, but also reduce energy consumption, and the Stat
12、e to promote the construction of resource-saving society correspond.Keybords: Electronic information technology;home contro;embedded; linux;GPRS- -III目 录摘要 .IAbstract II1 绪论11.1 智能家居控制系统.11.1.1 智能家居控制系统研究现状11.1.2 智能家居控制系统的总体框架21.2 系统可行性分析31.2.1 系统目标31.2.2 硬件可行性分析41.2.2 软件可行性分析51.3 论文主要工作.62 智能家居软件系统
13、定制82.1 嵌入式软件开发的特点.82.1.1 嵌入式系统的软件要求82.1.2 Linux 操作系统的选定 .82.2 智能家居系统中 Bootloader 的移植 112.2.1 Bootloader 的基本概念 .112.2.2 系统 Bootloader 的执行过程 .132.2.3 Bootloader 的主要功能 .132.3 内核移植142.3.1 Linux 内核基础知识 .142.3.2 什么是标准内核.152.3.3 Linux 内核的选择 .152.3.4 编译嵌入式 Linux 内核 .152.4 文件系统的移植162.4.1 什么是文件系统.162.4.2 嵌入式系
14、统存储设备及其管理机制分析.182.4.3 在系统中移植 YAFFS2 文件系统 223 系统中各种设备驱动程序设计243.1 处理器与设备的数据交换方式.253.1.1 查询方式25IV3.1.2 中断方式263.1.3 直接访问内存方式263.2 嵌入式 Linux 中的设备驱动程序 .263.2.1 嵌入式系统中设备驱动程序的开发过程273.2.2 标准 Linux 字符设备驱动程序实现 .283.2.3 模块化驱动程序.283.2.4 设备驱动程序加载和卸载293.3 模数转换器驱动程序的设计303.3.1 硬件描述303.3.2 AD 模块驱动程序的编写 .324 智能家居系统 GP
15、RS 模块的实现 .364.1 什么是短信息.364.2 短信息的协议和体系结构.364.3 GPRS 简介 .374.4 GPRS 模块和普通计算机的通信 .384.4.1 建立超级终端在普通计算机上384.4.2 短信息的发送,接收流程394.5.3 超级终端和 GPRS 模块的连接及 AT 命令测试 414.5 智能家居控制系统中 SMS 短信息的收发 .454.5.1 GPRS 驱动程序的设计 454.5.2 GPRS 模块串口硬件设计 464.5.3 基于 Linux 平台的 SMS 收发实现 465 嵌入式 WEB 服务器的实现 .495.1 嵌入式 WEB 服务器 .495.2
16、嵌入式 WEB 服务器 Boa 的特点 495.3 BOA 服务器模块的设计 .505.3.1 Boa 的功能实现 505.2.2 在智能家居控制系统中移植 BOA 服务器 515.3 动态网页在智能家居控制系统实现535.3.1 嵌入式系统中 CGI 程序的工作原理 535.3.2 嵌入式系统中 CGI 的实现方式 535.3.3 嵌入式系统中 CGI 外部扩展程序 545.3.4 智能家居控制系统中 WEB 服务器的实现 .54- -V6 结束语566.1 总结.566.2 展望.56致谢.58参考文献.59攻读研究生期间的研究成果.62兰 州 交 通 大 学 硕 士 学 位 论 文1 绪
17、论1.1 智能家居控制系统1.1.1 智能家居控制系统研究现状从 90 年代末开始,随着多媒体技术、网络通讯技术、视频压缩编码技术、数字视频监控系统的快速发展,现在市场上的数字视频监控系统的类型基本存在两种类型。一种是基于数字录像设备为核心的视频监控系统,另外一种是基于嵌入式视频 web 服务器的视频监控系统。基于数字录像设备的视频监控系统通常采用 PC 机作为视频监控的主机,其中集成了录像机、视频矩阵、图像分割器等众多的功能,这使视频监控系统的结构大大的简化,采用数字多媒体技术、计算机网络技术的远程网络监控没有距离上的限制,系统采用光盘存储器或者大容量磁盘阵列的硬盘,这样不仅可以节省大量的磁
18、盘存储介质,同时还有利于实现系统的多媒体信息查询。但是随着基于 PC 机的视频监控系统的发展,在实际应用的过程中,也暴露出了一些系统方面的不足,主要是系统工作的不稳定性等。基于嵌入式视频 web 服务器的网络视频监控系统,系统采用嵌入式实时多任务操作系统 3。系统将网络摄像头收集到的图片信息通过图片信息压缩,通过内部总线送到系统内置的 Web 服务器,用户可以直接通过网络用浏览器查看 Web 服务器上存储的由摄像头采集的图像信息。系统将图像的采集和 web 服务功能集成到一个储存很小的空间内,用户通过系统的网络功能可以直接访问局域网,因此用户不需要再安装任何的硬件设备,仅仅用浏览器即可查看服务
19、器上的图片信息。该系统同时还具有以下优点:系统布控的区域广阔,基于嵌入式 Web 服务器的视频监控系统是通过把 Web 服务器直接连接网络,没有信号衰减和布线长度的限制,同时因为网络是没有距离限制概念的,因此抛弃了地域不同的概念,扩大了布控的区域,使系统具备了可以几乎无缝的无限扩展的能力。因此,网络中的设备都是以 IP 的地址来进行标识,网络中设备的增加意味着 IP 地址的增加。不需要专人来进行管理,系统性能可靠稳定。嵌入式视频 web 服务器是基于嵌入式的微处理器技术,系统使用嵌入式实时多任务操作系统。对于使用用户来说,通过网络登陆系统,便可以对家中的各种情况进行方便的监控。随着视频监控系统
20、的不断发展,前端一体化、视频十字化、监控网络化、系统集成化已经成为公认的视频监控系统的发展方向 5。它依托于网络,将数字化视频的压缩、基 于 ARM 远 程 家 居 智 能 控 制 系 统 设 计- 2 -传输、存放和播放做为视频监控系统的核心技术,通过实用智能的图形图像分析技术,并且将门禁系统、报警系统整合到一个应用平台上,从而引发了视频控制领域的一次技术变革。1.1.2 智能家居控制系统的总体框架智能家居控制系统工作原理是通过大量的外部检测设备来收集和检测外部的数据,然后通过系统总线将采集的数据信息传送给以 S3C2410 为核心处理器的嵌入式系统,通过处理器进行运算和处理。然后,通过嵌入
21、式系统的系统总线管理和控制系统中的各个可控终端设备,并且进行数据处理、调节和设备自动控制。智能家居控制系统通过其核心处理器将对数据进行运算和处理,然后将处理后的数据通过 RS232 串口及时的传递给 GPRS 通信模块。通过 GPRS 模块发射和接收无线信号来为外部网络提供网络接口,用来连接家庭内部局域网络和外部 Internet 网络,通过 Internet 网络或手机等方式用户可以方便的来访问家庭的内部网络,从而实现用户对室内各种状况的远程监视和各种家用设备的远程控制。此外,该智能家居控制系统带有键盘和 LCD,提供了良好的人机界面,用户可以方便的实现本地控制,还可以对系统进行各种设定。该
22、智能家居控制系统保留了丰富的功能扩展接口,通过对这些扩展接口的扩展,将来我们还可以实现安家电控制、安防和智能抄表等的实际应用。远程智能家居控制系统的具体功能包括:(1)家庭中各种电气化设备的数据采集:主要包括通过温度传感器测量室内温度,热水器温度等。系统通过系统中的 A/D 转换模块将采集到的温度传感器的模拟量转换成数字量通过系统总线传送给系统处理器,经处理器处理后根据系统预先设定数据值比较来控制各个设备。将各个灯具,家电等设备的开关状态数据,经控制器处理后反馈给用户。(2)本地控制:用户可以通过系统中的触摸屏和键盘,来设定家庭中的各种设备的参数,达到对家中各种设备本地监控的目的。(3)远程控
23、制:用户通过发送手机短信或者通过互联网访问智能家居系统对家中各个设备进行远程控制和查询。(4)红外家电控制:通过红外发射电路控制电视、空调等红外可控的家电设备,接收用户指令。(5)家用电器等的开关量的控制:系统接收用户指令经处理器处理后以控制家用电器等开关量设备的状态。远程家居智能控制系统总体框图如图 1.1 所示。兰 州 交 通 大 学 硕 士 学 位 论 文图 1.1 远程家居智能控制系统总体框图1.2 系统可行性分析1.2.1 系统目标(1) 工作模式:新的智能家居控制系统采用触发式的监控模式。这种模式改变了以往不间断监控模式的方法,可以智能感知异常,并且可以记录现场状况在异常发生的时候
24、,并通过下发短信告知用户。(2) 可操作性:采用嵌入式 WEB 浏览器作为用户接口,系统真正实现随时随地监控,不限定特定的硬件设备和软件环境。(3) 便捷的用户监控:用户可以方便进行远程监控操作无论是在工作还是其他场所,用户只需要一部手机或者一台接入网络的普通计算机,便可以实现对系统中各个设备进行远程监控的操作。(4) 系统的可扩充性:开发的智能家居控制系统采用分布式动态管理,可以灵活的通过扩充系统物理资源来扩展用户的实际需要。(5) 系统界面简洁,友好、美观,直观易操作、富于人性化。在成本核算方面使得主控系统(S3C2410)GPRS手机摄像头SD 卡温度传感器 红外传感器INTERNET个
25、人 PC基 于 ARM 远 程 家 居 智 能 控 制 系 统 设 计- 4 -设备本身以及维护的成本大幅度的降低,在智能家居控制中更加实用,有利于在普通家庭中广泛推广。1.2.2 硬件可行性分析此远程家居智能控制系统中硬件上选用以 S3C2410A 为核心处理器的 TQ2410 开发板。TQ2410 开发板组成如图 1.2 所示:图 1.2:TQ2410 开发板总体结构S3C2410A 处理器的标准工作频率为:203MHz ,最高工作频率:266MHz 。开发板的外部存储器,内存为 64M,NOR Flash:2M,NAND Flash:128M 。10M 的以太网网口 CS8900,带有联
26、接和传输指示灯。两个 RS232 串口。有两个 USB1.1 HOST接口,其中一个 HOST 与 Device 复用,通过短路块进行选择,系统支持 USB 摄像头。一 50 芯 LCD 接口引出了 LCD 控制器和触摸屏的全部信号。一个 IRDA 红外线数据通讯口,一个 SD 卡接口。时钟源采用 CPU 内部的实时时钟,带有后备的锂电池。一个20 芯 Multi ICE 标准 JTAG 调试接口,支持 SDT2.51,ADS1.2 等调试。电源接口,开关电源直接供电,允许输入直流电压范围是 720V ,推荐使用 12V,带有电源开关兰 州 交 通 大 学 硕 士 学 位 论 文和指示灯。 一
27、个 50 芯 2 毫米间距双排标准连接器用作扩展口,引出了地址线、数据线、读写、片选、中断、IO 口、ADC、5V 和 3.3V 电源、地等用户扩展时可能用到的信号。TQ2410 开发板支持 linux2.6.8 内核。通过对智能家居系统功能的分析 TQ2410开发板在硬件上完全支持该系统的开发,因此在硬件上是可行的。1.2.2 软件可行性分析Linux 是一个相似于 Unix 操作系统。它是一个名为 LinusTorvalds 的芬兰业余爱好编写的,当前已经成为一款最为流行的基于开源的操做系统 19。Linux 从 1991 年问世到现在,己经发展成为一个功能强大、设几完善的操作系统,Lin
28、ux 操作系统已经成为Microsoft 公司的 Windows 操作系统的强有力的竞争者。 Linux 操作系统不仅可以在普通计算机上运行,而且还在嵌入式系统方面有着很强的优势。在当前各种嵌入式操作系统迅速发展的情况下,Linux 操作系统逐渐形成了可以与 windwosCE 等嵌入式操作系统进行相抗衡竞争的嵌入式操作系统。据统计正在开发设计的嵌入式系统当中,有一半左右的项目选择 Linux 作为嵌入式系统的操作系统,己成为作为嵌入式产品的嵌入式操作系统的最佳理想选择。Linux 操做系统的优点主要有:(1)免费获取,源代码公开用户不但可以通过网络,Linux 开源网站免费下载 Linux
29、操作系统源代码使用,而且都能从许多开源的网站,Linux 社区免费得到基于 Linux 操作系的多数应用程序。Linux 开放源代码的这一重要特点,使 Linux 操作系统的源代码可以在原有的基础上进行修改,剪裁,设计出适合用户使用的操作系统。(2) 高可靠性和适应性的特点高可靠性和稳定性是 Linux 操作系统重要的特性,因为 Unix 的优点被 Linux 所继承,其适应性和可靠性程度也更为加强 6。Linux 操作系统可以在多种硬件平台上运行,因为它是一个可以跨平台的操作系统,可以再各种平台上实现,移植起来非常方便。现在有很多家电业的芯片制造的厂家,都开始做基于 Linux 系统移植的工
30、作,使自己的芯片可以很好支持 Linux 操作系统。嵌入式 Linux 内核再网络方面支持也逐渐得到完善,所以基于通信系统的设备非常适合菜用 Linux 操作系统进行开发。高可靠性事嵌入式 Linux 操作系统不同与其它嵌入式操作系统最为重要的特点。虽然在开发嵌入式系统的时候我们根据需要对嵌入式 Linux 的内核进行了必要的裁减,但是嵌入式 Linux操作系统仍然保持了原来 Linux 操作系统高可靠性的特点,因此很少会出现系统崩溃的现象在使用 Linux 操作系统开发的产品中。 (3) 实时性的要求在嵌入式系统中重要的特性是要求操作系统要具有实时性。系统中内核任务调度、基 于 ARM 远
31、程 家 居 智 能 控 制 系 统 设 计- 6 -内核中的驱动程序操作决定我们所开发的系统是否具备实时性的要求,还与系统响应延迟时间受中断程序的优先级和其他的进程暂时关闭中断响应相关,因此驱动程序中断的机制和内核的任务管理要可以有效保证实时性的要求。大多数的嵌入式操做系统并不是具有严格的实时性特性,有些甚至根本没有实时性,而基与嵌入式 Linux 内核操作系统能够很好地满足嵌入式系统的实时性要求,此外还提其他任务间的调用接口以及实时任务。(4) 具备成熟的开发工具一套良好的开发和调试工具是开发嵌入式系统的关键。Linux 有着一套免费的完整开发和调试工具,通过 GUN 的 C 编译器来对源程
32、序进行编译,程序调试通过使用GDB 调试器来进行调试。用户可以够方便地开发出应用程序基于嵌入式 Linux 操作系统 22。在程序开发时应用程序可以在普通计算机上交叉编译,调试时可通过串口登陆硬件平台,同时还可以利用 NFS 网络文件系统来调试所编写的程序文件。 (5) 灵活地配置内核根据用户需要通常来说,嵌入式设备中给嵌入式操作系统分配的存储容量都十分有限的,因此嵌入式设备系统应当尽可能减少体积,所以嵌入式设备系统通常采用固化软件的方法,将程序和操作系统嵌入到整个设备里面 3。基于嵌入式 Linux 操作系统出了本身体积较小特点以外,同时继承了 Linux 操作系统一个重要的特性:采用模块化
33、的内核,用户可以选择特定的内核模块根据不同的任务,用户可以根据自己需要裁减内核,可以将不需要的部分去掉,减少内核体积,从而从根本上解决了体积和功能的矛盾。根据系统的需求,以及对嵌入式 linux 操作系统的分析,可以发现采用基于linux2.6.14 为内核的嵌入式操作系统完全能过满足系统的需求。因此,本系统选用linux2.6.14 作为智能家居控制系统的操作系统。1.3 论文主要工作(1) 远程智能家居控制系统开发平台的搭建,系统软硬件平台的建立。智能家居控制系统 BootLoader 的移植,基于嵌入式的 linux2.6.14 内核裁剪、移植。YAFFS2 文件系统的移植。(2) 远程
34、家居智能控制系统中各种设备驱动程序的编写,主要包括: A/D 模块驱动程序的设计,红外模块驱动程序设计,lcd,键盘,摄像头等模块驱动程序的设计。(3) GPRS 通信模块详细设计,系统中采用 GPRS 通信模块,通过串口与 TQ2410开发板的串口相连接。其驱动使用串口的驱动程序,主要工作就是编写串口的应用程序,来实现短信息的接受和发送并存储短信息等功能。兰 州 交 通 大 学 硕 士 学 位 论 文(4) BOA 嵌入式 WEB 服务器模块的设计,在基于嵌入式 Linux 系统的远程家居智能控制系统中移植 BOA 服务器,提供 web 访问服务。使用户可以通过网络随时、随地方便的访问系统,
35、查询家里各种设备的各种情况,从而达到对家居中各种设备的预警、控制、调节,达到家居智能化的目的。基 于 ARM 远 程 家 居 智 能 控 制 系 统 设 计- 8 -2 智能家居软件系统定制2.1 嵌入式软件开发的特点在一个基于嵌入式应用系统的开发过程中,系统软件设占据了总工作量的百分之七十以上的工作量,因此熟悉嵌入式软件开发的特点对系统开发非常重要。通常在具有相当丰富的人机接口在通用的计算机上所运行的一般操作系,因此在上面可以方便的开发应用程序,甚至包括对计算机系统本身与计算机上操作系统的开发。由于受到系统硬件的限制,使得在嵌入式系统中一般不具被有自我开发的能力。其中的程序用户通常也不能对其
36、进行修改,即便是在嵌入式系统开发完成以后,也都是在专用的开发环境和开发工具下对程序进行进行开发的。2.1.1 嵌入式系统的软件要求(1) 嵌入式设备的系统一般要求软件体积小由于是硬件的限制。为了高程序的执行速度和系统的稳定性,嵌入式设备的操作系统一般固化于系统的存储芯片中如 Nand Flash 或 Nor Flash 中等。(2)嵌入式设备的系统通常采用实时操作系统作为系统的操作系统,并且可以根据个人的需求对内核进行裁减 23。嵌入式系统将操作系统和所有应用软件进行整体设计并且一次性的安装。因此,嵌入式操做系统的要求实时性较之于普通计算机的操做系统的作用更为突出和重要。(3)嵌入式设备的系统
37、要求系统开发具有高质量、稳定性等特点的程序代码。嵌入式设备中系统的存储空间是有限的,同时系统还要求系统的实时性,这就要求程序代码的质量和程序编译工具的效率要高,尽量的降低程序编译后二进制代码的冗余度,从而提高程序执行的执行速度。(4)嵌入式设备的系统要求简单的系统软件。嵌入式设备的系统可以看做是一个专用的计算机系统,是一个最小的计算机应用系统,因此要求嵌入式系统上运行的软件不需要具备复杂的功能。这样一方面不仅保证了系统安全运行,同时也控制了系统的成本。2.1.2 Linux 操作系统的选定随着嵌入式硬件平台的性能越来越高,嵌入式系统提供功能越来越丰富,在实际应用中嵌入式系统的重要性也逐渐占据人
38、们生活方方面面显。典型的嵌入式操作系统有 windowsCE, PowerPc、PalmOS,Vxworks,uClinux 还有 UC/OS-等等 12。兰 州 交 通 大 学 硕 士 学 位 论 文怎样选择一款合适的嵌入式操作系统根据自己的需求作为嵌入式系统的核心操作系统?对于一种嵌入式操作系统选择有着这样的一些评估标准:对于处理器 MCU 的硬件支持。对网络功能的支持。系统需要消耗的资源数:主要包括 Flash 存储器,内存等等。系统中应用软件的可靠性以及其执行效率性能等等。当前嵌入式操作系统领域内嵌入式 Linux 的开发和研究是热点。下面我们将详细分析嵌入式 Linux 操作系统的特
39、性,并阐述在智能家居控制中选择嵌入式 Linux 作为操作系统的原因。(1)嵌入式 Linux 的内核如果说计算机硬件系统的核心是 CPU 的话,那内核则是整个计算机软件系统的核心。Linux 操作系统的内核主要包含五大部分内容:进程调度、进程间通信、内存管理、虚拟文件系统和网络接口,我们也称之为 Linux 操作系统的五个子系统 6。并不能独立分析 Linux 内核在操作系统中的位置,必须将内核放大到整个系统中去看与分析,如图 2.1 为 Linux 内核在操作系统中位置。Linux 内核系统调用接口用户进程系统硬件设备图 2.1 Linux 内核在操作系统中的位置。从图 2.1 中可以很明
40、显的看出,Linux 操做系统是分为四个层次结构组成,由上到下分别为:用户的进程、系统调用的接口、Linux 的内核和系统设备的硬件。我们之所以将用户进程也那入操作系统的范围是因为操作系统于用户进程的运行状态有着密切的联系。而系统调用接口则作为 Linux 操作系统内核的基本扩充,提供了丰富的接口为操作系统 14。操作系统内核赖以生存的物质条件为系统的硬件设备。这 4 个层次的之间的关系表现为:上层依赖下层。(2) Linux 内核由 5 个功能相互联系的主要的子模块构成,如图 2.2 所示为 Linux 内核功能结构:进程调度:控制着各个进程对 CPU 的访问,由进程调度程序选择优先级高的进
41、基 于 ARM 远 程 家 居 智 能 控 制 系 统 设 计- 10 -程根据系统设置的进程调度算法。在 Linux 中采用基于时间片轮转的调度算法进行进程调度。图 2.2 Linux 内核功能结构内存管理:可以允许多个进程同时安全地共享内存中的数据。内存管理可以从逻辑上可以划分为与硬件相关关的部分和与硬件无关的部分。硬件无关部分主要提供了进程间的映射和虚拟内存技术,硬件相关部分主要为系统管理硬件设备提供虚拟接口,可以简化系统对硬件的操作。虚拟文件系统:虚拟文件系统隐藏了硬件的各种具体细节。提供了一个统一的系统接口为硬件设备,虚拟文件系统还支持多种不同的文件系统,这也是 Linux 操作系统
42、一个比较独特的特性。虚拟文件系统可以分为设备驱动程序和逻辑文件系统。设备驱动程序是指特定编写的设备驱动程序模块为某一硬件的支持。逻辑文件系统是指Linux 可以支持的文件系统,比如 EXT2,EXT3 , FAT 等等。网络接口:网络接口提供了对各种网络硬件设备的支持和对各种网络标准协议的存取。网络接口可以分为网络驱动程序与网络协议两个部分。负责系统与具体的硬件设备进行相互的通信是网络设备驱动程序,每一种硬件设备都存在与之相互对应的内存管理(软件相关,硬件相关)进程调度网络(网络协议,硬件驱动)虚拟文件系统 进程间通信兰 州 交 通 大 学 硕 士 学 位 论 文网络设备驱动程序。负责在系统中
43、实现每一种可能的网络传输协议是网络协议部分的功能。进程间通信:Linux 内核提供了多种通信机制。多个进程相互协调工作为同一任务,各个进程之间能实现相互通信。Linux 操作系统,可以支持多种不通的进程值间的通信机制。其中主要包括:信号、管道、Sockets 等等 5。(3) 选用 Linux 作为嵌入式系统的操作系统的优势。Linux 具有以下一些独特的优势与其他的嵌入式操作系统相比:源码开放,软件资源丰富。Linux 上的有十分丰富的软件资源,并且软件每天都在更新。Linux 操做系统在消费类嵌入式电子设备中的应用已经非常广泛。为了进一步促进这方面的应用,在 Linux2.6 内核中,引入
44、了很多非常有利于嵌入式应用的功能。这些新功能包括实时性能的增强、更方便的移植性、对大容量内存的支持、支持微控制器和 I/O 系统的改进等。Linux 有功能强大的内核,而且内核的性能稳定、高效、多任务。Linux 操作系统的内核高效而且稳定,已经广泛应用于网络服务器领域。同时 Linux 内核易于裁剪,嵌入式设备适合采用 Linux 作为所开发系统的操作系统。多种体系下都支持 Linux 结构。Linux 无论是在 CISC 还是 SISC 体系结构下,32 位或者 64 位的处理器上 Linux 都可以运行 17。无论处理器带不带 MMU 都可以,没有 MMU 的处理器只有 uClinux
45、支持,Linux2.6 内核支持绝大数带 MMU 的处理器。这意味着 Linux 操作系统在不同平台间具有良好的可移植性。Linux 有着完善的网络通信、图形和文件管理的支持。Linux 继承了 UNIX 操作系统的特点,所以这确保了它所支持的所有标准的网络协议并且可以开发成为基于嵌入式的 TCP/IP 网络协议栈利用 Linux 的网络协议栈。在图形系统方面 Linux 上不仅有成熟的 xwindows,也有 MiniGUI,Embedded QT 等多种 GUI,还有可以适合于各种不同的用途的优秀开发工具。Linux 驱动丰富支持大量的周边硬件设备。在 Linux 上有丰富驱动程序其支持先
46、在各种主流硬件社备和最新的硬件技术,并且许多硬件厂商也以经开始提供 Linux 上的硬见驱动程序随着 Linux 的广泛应用,这将不断促进 Linux 发展并在不同的硬件平台上的应用。2.2 智能家居系统中 Bootloader 的移植2.2.1 Bootloader 的基本概念开发一个基与嵌入式 Linux 操作系统的系统从软件看通常可以将系统分成为四个基 于 ARM 远 程 家 居 智 能 控 制 系 统 设 计- 12 -步骤:引导加载程序、Linux 内核、文件系统、用户应用程序 32。Linux 系统构成图如图 2.3 所示用户应用程序文件系统Linux 内核引导加载程序图 2.3
47、linux 系统构成图操作系统加电后运行的第一段程序代码是 Linux 的引导程序。我们所熟知的普通计算机中的引导程序一般都是由 BIOS 程序来引导。然而在嵌入式系统当中没有象BIOS 这样的固件程序,不过也可能有一些生产嵌入式的 CPU 的厂商会在芯片的内部嵌入一小段程序,用来引导系统的启动。一般的是将 BootLoader 程序装进 RAM 中,然后在 RAM 中执行程序,这有点类似于 BIOS,但是功能方面比 BIOS 要弱的很多 28。在一般的嵌入试系统中,整个操作系统的加载和起动任务是全部由 BootLoader 来完成,由此可见 BootLoader 在嵌入式系统的重要性。在以
48、ARM 体系为结构的系统中,当系统上电或着系统复位的时侯,0x00000000 处为程序开始执行的地址,在这个位置存放的通常就是嵌入式系统的引导程序 BootLoader。图 2.3 中最底层的引导、加载程序即可认为是系统的 BootLoader。换而言之,通过执行系统中 Bootloader 这段小程序,我们可以将系统中的硬件设备进行初始化、建立内存空间的映射表,从而建立适当的系统软硬件环境将系统的软硬件环境设置到一个适合的状态,并为最终调用操作系统内核做好准备,起到真正达到引导和加载内核的目的。对于嵌入式系统,BootLoader 是基于特定硬件平台来实现的。因此,在嵌入式系统几乎不可能建
49、立一个通用的 Bootloader,不同的处理器架构都需要使用不同的Bootloader 来引导。除了基于不同的硬件体系架构外,BootLoader 还依赖于嵌入式板级设备的配置。对于两块不同的嵌入式的板来说,即使使用统一种处理器,要想使一块板上的 Bootloader 能够在另一块板上运行,一般也都需要修改 Bootloader 的源代码。系统调用接口设备驱动操作系统核心机制(进程调度,内存管理,中断管理,文件系统等)兰 州 交 通 大 学 硕 士 学 位 论 文2.2.2 系统 Bootloader 的执行过程 基于不同的处理器的系统上电或复位后执行的第一条指令地址并不相同,对于ARM 处理器来说,该地址为 0x00000000。对于一般的嵌入式系统,通常把 Flash 等非易失性存储器映射到这个地址处,而 BootLoader 就位于该存储器的最前端,所以系统在上电或者复位后执行的第一段程序便是 BootLoader1。然而因为存储