版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要随着科技的发展,以及嵌入式技术的应用,传统的家居生活已不能满足我们的生活,越来越多的厂家开始注重智能家居的推广和使用。智能家居以住宅为平台,由ZigBee星型家庭内网和嵌入式家庭网关两部分组成。用户访问可以通过web浏览器登录家庭网关,或本地用户直接通过家庭网关的图形用户界面,对家庭内网进行温湿度、烟雾浓度、光照强度等信息的采集和对灯光等进行控制。本课题是基于ARM9的智能家居监控模块设计与实现,采用ARM9内核的S3C2440处理器为控制芯片,将Linux系统移植到硬件平台上,最后将软件下载到硬件平台上。主要完成以下工作:(1) 进行网络的相关配置,在系统运行的时候,需要挂载根文件系统
2、,这时需要网络的连接。本次设计中网络连接用的是桥接。(2) 搭建环境,包括服务器的搭建、交叉编译器的安装、Bootloader移植、Linux内核移植、根文件系统制作,这些事系统运行阶段的基础。(3) 对嵌入式web进行研究,搭建boa服务器,了解摄像头图像采集的工作流程,搭建浏览器客户端网页,让摄像头采集的图像在网页上显示。关键词: 嵌入式;网关;web浏览器;ARM9Abstract With the development of technology, as well as the application of embedded technology, the traditional h
3、ome life can not meet our life, more and more manufacturers began to focus on the promotion and use of smart home. Smart home to residential as the platform, from the ZigBee star based home network and embedded home gateway two parts. Access to the user can through the web browser to log home gatewa
4、y, or local user directly through the graphical user interface of the home gateway, the family network for temperature and humidity, smoke concentration and light according to intensity information acquisition and lighting control.This paper is based on ARM9 intelligent home monitoring module design
5、 and implementation, using ARM9 S3C2440 processor as the control chip, the transplantation of Linux operating system to the hardware platform, at last, the software is downloaded to the hardware platform. Mainly the following several work needs to be done:(1) the network configuration, in the operat
6、ion of the system and need to mount the root , then need to network connection. The network connection in this design is bridged.(2) build environment, including the establishment of the server, the installation of cross compiler, Bootloader transplantation, Linux kernel transplantation, root produc
7、tion, these things system operation stage.(3) the embedded web research, build server boa, understand the work process of camera image acquisition, build the client browser page, let the camera to capture images displayed on a web page.Keywords: Embedded, Gateway, Web browser,ARM9目 录摘 要IAbstractII目
8、录IV第1章 绪论11.1本课题研究目的与意义11.2 国内外技术研究现状11.2.1国外研究现状11.2.2国内研究现状31.3视频监控系统的发展趋势41.4 论文的组织5第2章智能家居系统总体方案72.1需求分析72.2视频监控系统的总体设计方案9第3章 监控系统硬件环境113.1硬件平台总体结构11主控制芯片12Ov9650摄像头13硬件的连接14第4章 嵌入式环境的配置154.1 Linux操作系统简介154.2 t服务器配置194.2.1 tftp服务器的配置194.2.2 NFS服务器配置204.3 安装交叉编译器20第5章 监控系统的实现225.1 Bootloader的移植22
9、5.2 内核的移植255.3 根文件系统制作265.4 boa服务器的移植285.5基于v4l的视频采集295.6 MPEG-4编码305.7效果演示32第6章 总结和展望336.1 总结336.2展望与不足33致谢35参考文献36附件一37附件二44V山东科技大学毕业设计(论文)第1章 绪论1.1本课题研究目的与意义智能家居与普通家居相比,它不仅具有传统的居住功能,提供舒适安全、高品质的家庭生活空间。视频监控是智能家居中的一个重要模块,对家庭安全有着重要的作用,而且,视频监控在其他方面也得到了广泛应用,如:交通、银行和安全部门。视频监控系统从第一代基于模拟摄像机的模拟监控系统,到第二代基于计
10、算机的数字监控系统,再到第三代基于嵌入式的网络数字监控系统,视频监控已经经历了三个发展阶段。目前的第三代视频监控系统是具有集前端一体化、图像数字化、监控网络化、系统集成化等特性于一身的嵌入式web技术的远程网络视频监控系统。嵌入式视频web服务器的主要原理是视频服务器内置一个boa服务器,采用嵌入式操作系统。前端摄像机送来的视频图像通过内部总线送到服务器,将采集到的原始图像经过编码压缩、打包等过程变成基于网络协议的数据流,数据流通过网络进行传输,发送到终端用户。网络终端用户可以直接用浏览器观看web服务器上的摄像机图像,授权用户可以通过专用的客户端软件进行显示和各种操作。1.2 国内外技术研究
11、现状1.2.1国外研究现状1984年美国联合科技公司将建筑设备信息化、整合化概念应用于美国康乃迪克州哈特佛市的CityPlaceBuilding,标志着首栋“智能型建筑”的诞生,虽然当时只是对一栋破旧的大楼进行了改造,但是是采用先进的计算机技术对都市大厦内部的电梯照明、空调等设备进行监控,并且还可以提供情报资料、电邮、语音通信等信息的服务。自此以后美国、加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国家先后提出了各种智能家居的方案,而且都从国家战略的高度大力推广智能家居控制系统。智能家居在美国、德国、新加坡、日本等国家都有广泛的应用。20世纪80年代初,随着大量采用电子技术的家用电器面市,开始
12、出现了住宅电子化(HE,Home Electronics)的概念。80年代中期,将家用电器、通讯设备与安防设备的功能综合为一体,形成了家居自动化概念(HA,HomeAutomation)。80年代末,由于通信与信息技术的发展,出现了对住宅中各种通信、家电、安防设备通过总线技术进行连接、控制与管理的商用系统,这在美国称为智慧屋(WH,Wise Home),在欧洲称为时髦屋(SH,Smart Home)。当时日本正处于房产市场低迷时期,日本建设省在推进智能建筑概念时,抓住用于住宅总线技术的契机,提出了家庭总线系统概念(HBS,Home Bus Sy
13、stem)。而随着技术的继续发展和生物识别技术的实用化普及,智能家居的概念才真正体现了其本意,在好莱坞科幻电影中看到的那种高度智能化的家居系统正在走进我们的生活。 日本松下公司正在把“数码家庭”的概念应用到养老院,养老院的所有房间都装有多种测量仪器、触摸式显示屏、数码摄像机等,并与局域网相连,这样每个居住者的体温、血压等多项数据可以传送到护理中心,实现远程医疗护理。美国麻省理工学院的实验室正在研究“智能房间”,通过生物传感器探测人的行为来自动控制和调节居住系统。日本大型住宅公司MISAWA HOME为解决购房者对房屋防盗系统的不满意,新近推出“保全住宅”该住宅内部采用指纹辩
14、识门禁系统,另设有隐藏式防盗室,当遇到小偷闯入时屋主可躲进去紧急避难,防盗室设有两道厚重的门,其中内门只要从里面上锁后,外部无法靠人力打开。防盗室内装设电话专线,电话线埋在地下,另外还可在屋内放置一个机器人,亩以依歹徒恐吓的声音来反应,并出声求救,发挥报警求救功能。1.2.2国内研究现状伴随着国内房地产市场的繁荣,近年来智能家居从概念引进到研究开发经历了迅速的发展。调查发现,目前国内市场中常见的智能家居子系统基本上由原来的照明、安防和门禁对讲系统生产厂家提供的,这些系统大都没有脱离原有产品的形态,属于“嫁接智能”范畴。由于这些产品的技术路线多种多样,一些大公司在整合他们的时候标准也就很难规范统
15、一。在我国,智能化住宅和智能化家居虽然起步比较晚,但发展速度很快。80年代,我国居住条件非常困难,根本谈不上智能化的问题。80年代初所建成的住宅,其电器设计内容仅在以下方面:楼房照明系统、高层供水泵控制系统和消防泵控制系统。用户电量的计量和收费,采用房管部门或住户轮流抄表收费的方式。生活用水的计量则主要是按户或按人口数收费。弱电系统也是从80年代开始才陆续设置电话配线和公用电视天线系统。80年代末90年代初,我国家庭基本实现电器化,住宅内的弱电系统有所增加,如对讲系统等。到了90年代末,电脑、有线电视、机顶盒、移动通信等数字化通信产品开始走进家庭。 2000年9月7-8日
16、,由信息产业部组织,在四川省绵阳市召开了国家经贸委2000年国家技术创新重点专项计划“家庭信息化网络技术研究及产品开发”项目工作会议。2002年由建设部住宅产业化促进中心和中国建筑科学研究院主编的居住区智能化系统配置与技术要求(审查稿)己送审,等待批准。建设部住宅产业化促进中心正在牵头编制行业标准“居住区智能化产品应用技术要求”。 2002年建设部科学技术委员会智能建筑技术开发推广中心组织编制了建设行业智能建筑试点项目住宅小区智能化系统工程验收评估标准作为建设行业智能建筑试点项目住宅小区智能化系统工程验收评估标准。 西南交通大学科技公司开发了网络智能控制数据终端(Intel
17、ligent ControlNetwork Data Terminal,简称NDT)系统,是一个基于计算机网络的智能住宅控制系统,可以稳定运行在多种宽带网络平台上。它包括住宅楼宇防盗报警、贵重物品防盗报警、多重判断防误报功能、火灾报警、煤气泄露报警、紧急求助、防胁持秘密报警、小区电子公告、远程家用电器控制、电话自动报警功能、Internet电子短信、家用设备报警、水电气多表自动抄收等功能,通过计算机网络构成整个住宅小区的集中管理控制系统。1.3视频监控系统的发展趋势将嵌入式系统技术、无线通信技术和基于TCP/IP的Internet技术结合在一起的视频监控系统将成为
18、监控系统的未来发展方向。利用嵌入式技术采集并对现场信息进行相应处理,在通过无线通信方式传输到Internet上,用户通过Internet来管理和使用信息。当前,视频监控系统的发展趋势可以概括为:(1) 视频监控数字化视频监控发展经历了模拟视频监控、半数字监控、数字监控三个阶段。数字化是21世纪的时代特征,视频监控的数字化是监控技术的必然趋势。(2) 视频监控智能化智能化是视频监控技术发展比较高的层次。智能化监控能把视频监控从静态的、事后取证变成动态的、实时预防和告警对用户来说明显更加重要。实际上现有的大型监控系统都配置自动位移侦测、昼夜自适应切换存储、预警设置等一些基本的智能化功能。(3) 视
19、频监控IP化视频网络、IPTV等都是网络快速发展的重要应用。随着Internet技术的发展,基于IP的视频监控风能为人们所接受,网络摄像机吧压缩的视频信息通过TCP/IP协议。采用流媒体技术实现视频在网上的多路复用传输,拥有授权的用户可以随时访问互联网,实现对真个监控系统的指挥、调度、存储、授权控制等功能。(4) 视频监控无线化随着无线宽带网络的发展,基于3G的无线视频应用备受关注。当监控点分散且与监控中心距离较远,或被监控对象不固定时,利用传统有线网络的视频监控旺旺成本高且难以实现,为基于多种无线传输手段的移动视频监控具有不可替代的优势。1.4 论文的组织第一章:对监控系统的研究意义、国内外
20、的研究状况以及发展趋势做了简单概述。第二章:分析了监控系统的需求,以及需要何种网络结构,并简单介绍了硬件的组成。第三章:对硬件平台的总体结构、主控制芯片和摄像头做了简单介绍。第四章:对嵌入式系统做简单的介绍,并进行了服务器搭建和交叉编译器的安装等工作,为以后的工作做好基础。第五章:本章讲述了监控系统的实现,主要有Bootloader的移植、Linux内核的移植、根文件系统的制作、boa服务器的移植,及摄像头工作流程。第六章:对各个部分的工作做了总结,提出了整个工作的不足之处并对进一步的研究方向以及相关的问题做了叙述。第2章智能家居系统总体方案随着计算机网络技术和嵌入式系统的发展以及芯片成本的下
21、降,嵌入式视频服务器为核心的视频监控系统在市场上发展起来。通用的web服务器通常用于大量用户并发访问的普通网站,以强有力的数据库为用户提供商业服务,而嵌入式处理器能力和存储容量有限,通用大型服务器无法在嵌入式设备上运行。因此,采用功能相对简单、体积更小、消耗资源更少的嵌入式web服务器,是近年来出现的一种较为先进的方案。目前,嵌入式web服务器的实现方法可分成自助实现和修改移植。2.1需求分析分析国内智能家居市场可知消费者对家电控制、视频网络监控、家居环境监测等情有独钟,视频网络监控也成为了生活中不可或缺的智能产品。智能家居行业技术按照系统核心技术可分为PC架构、单片机架构及嵌入式架构三个层次
22、。三种技术方案代表着智能家居行业不同时期的技术特点。(1)PC架构的智能控制系统出现于中国智能家居的萌芽阶段,基本停留在向使用者展示智能家居的概念,实用性不强,属于第一代。(2)目前很多中国智能家居厂商研制的基于单片机架构的智能控制系统,在实用性、易用性和专业性方面有了很大程度上的提高属于第二代。(3)而基于嵌入式系统的家庭智能系统在国内才刚刚出现,随着嵌入式技术更加广泛的应用及成本的之间降低,中国的智能家居核心最终将走向嵌入式。目前人类已进入基于Internet的后PC时代,其主要特征为计算机作为组成部分紧密融于消费品和工业品中。后PC时代的到来依赖于嵌入式技术的诞生与发展。嵌入式系统在通信
23、产品、家用电器、医疗器械、汽车制造、航空航天等领域的应用,已成为促进信息产业发展、加速传统产业改造的最为实用的高新技术。随着嵌入式处理器的性能得到了显著的提高,嵌入式技术的应用在最近几年得到了广阔的发展。对于嵌入式系统,电器工程师协会的定义为:嵌入式系统是用来监控设备、机器、装置及工厂生产线等大规模系统的设备。通常嵌入式定义为:嵌入式系统是以应用为核心,以计算机技术为基础,并且软/硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗等有严格要求的专用卫星化计算机系统。嵌入式系统一般应用嵌入式系统的微处理器、外围硬件设备(可随意定制)、嵌入式操作系统(可裁剪)以及用户的应用程序四个部分组成
24、,用于实现对其他现场设备的控制、监视或管理等功能。嵌入式技术为智能家居客户端的实现和发展提供了强大的基础。使用嵌入式系统来完成智能家居系统的设计具有以下优势:(1) 嵌入式系统具有功耗低、体积小、专用性强等功能。(2) PC架构的智能控制系统出现于中国智能家居的萌芽阶段,基本 停留在向使用者展示智能家居的概念,实用性不强,属于第一代。(3) 根据系统定制的实时操作系统,不仅可以最大限度地利用硬件资源,并且避免了庞大系统的系统冗余。(4) 嵌入式技术伴随Internet而生,因此具有更加卓越的网络性能,可以增加更多的网络应用。(5) 软件采用分层设计,方便维护和升级,大大提高了代码利用率,缩短开
25、发周期。嵌入式网络监控系统3是以嵌入式设备作为web服务器接入Internet网络的。嵌入式设备连接到网络后,以何种网络结构构成系统,就涉及到了网络体系结构的选择问题。网络体系结构对整个网络监控系统来说是处于基础地位的,合理选择网络体系结构对系统运行效率、系统性用的广泛性和可维护性都有至关重要的作用。C/S和B/S结构是当今世界开发模式技术架构的两大主流技术。C/S结构即客户机和服务器结构。它是软件系统体系结构,C/S结构充分利用两端硬件环境的优势,将任务合理的分配到client和server端,降低了系统的通讯开销。目前大多数应用软件都是client/server形式两层结构,由于现在的软件
26、应用系统正在向分布式的web应用发展,web和client/server应用都可进行同样的业务处理,应用不同的模块共享逻辑组件。因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。B/S结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过www浏览器端实现,极少不烦事务逻辑在客户端实现,但是主要事务逻辑在服务器端实现,形成三层3-tier结构。这样可以大大简化客户端电脑载荷,减轻系统维护与升级的成本和工作量。2.2视频监控系统的总体设计方案智能家居监控系统主要由硬
27、件和软件两部分组成。硬件部分是有CMOS摄像头和ARM9开发板;软件部分由系统软件(包括Bootloader、嵌入式Linux操作系统和驱动程序)和应用软件(包括web服务器、CGI程序、视频采集等)。网线串口线本次设计有三个部分组成,前端是用于视频采集的CMOS摄像头,中间部分是移植了嵌入式Linux操作系统的ARM9开发板,它的作用是对采集来的图像进行处理,并内建嵌入式web服务器和视频流媒体服务器,从而将视频传递给远端用户。第三个部分是监控端,由带有浏览器的PC机组成,用来浏览远端的视频,同时也可以通过网络对系统平台进行控制。如图2.1所示。 监控端ARM9开发板CMOS摄像头嵌入式We
28、b服务器器是指将Web服务器引入到嵌入式系统中,在相应的硬件平台和软件系统的支持下,根据应用的需要实现通用的Web服务器的全部或者部分功能。嵌入式Web服务器仍然以TCP/IP协议为底层,在该Web中使用的应用层的通信协议是HTTP协议,通过HTTP协议实现客户端(一般为浏览器)和嵌入式Web服务器的信息交换4。 在嵌入式领域,常用的Web服务器有thttpd和boa,boa目前用的最多。boa是一个非常小巧的Web服务器,可执行代码只有约60 KB,占用系统资源少,而且速度快、安全性好5。目前使用的Linux2.6内核还没有包含boa代码,因此需要移植到本系统中。首先从下载boa源代码(目前
29、最新版本boa-0.94.13),解压到Linux系统目录下,用交叉编译器编译。这样在boa-0.94.13/src目录下生成boa应用程序,把生成的boa应用程序下载到开发板上Linux系统中的/bin目录下,让boa在系统启动时自动运行,这样在开发板上就移植了boa服务器。第3章 监控系统硬件环境智能家居监控系统采用TQ2440开发板,是一个有高性能、高集成度及强扩展功能的一体化开发板。TQ2440由底板和核心板组成。核心板采用的是S3C2440嵌入式处理器芯片1,是三星公司研制的一款处理器。摄像头采用的是ov9650图像传感器2。3.1硬件平台总体结构本系统的硬件平台总体结构如图3.1所
30、示。该设计将硬件系统分成两部分:核心板和外围电路。核心板主要由S3C2440A微处理器、64MB NAND Flash、64MB SDRAM、晶振、3.3V转1.33V电压转换芯片组成。外围电路则主要为图3.1核心板以外的相关模块。ov9650摄像头接口电路LCD显示模块电源模块移动控制模块ARM920T核心板存储模块DM9000网卡及网络接口USB从接口USB主接口图3.1 系统硬件平台结构图主控制芯片本次设计采用Samsung公司生产的S3C2440A微处理器作为主控制芯片。它是Samsung公司基于ARM920T核,采用0.13umCMOS工艺生产的16/32位RISC微处理器。是一款专
31、为手持设备及低功耗、小尺寸、高性能微控制器解决方案的微处理器。内部主要含以下模块:(1) 1.2V内核,1.8V/2.5V/3.3V存储器,3.3V扩展I/O16kB指令(2) cache(Ichche)/16kB数据cache(Dchche)(3) 外部存储控制器(SDRAM控制盒片选逻辑)(4) 集成LCD专用DMA的LCD控制器(支持最大4k色STN256KTFT)4路拥有外部请求引脚的DMA控制器(5) 3路URAT5)2路SPI(6) IIC总线接口(多主支持)(7) IIS音频编码接口(8) AC97编解码器接口 (9) 1.0版SD主接口,兼容2.11版MMC接口(10) 2路U
32、SB主机控制/1路USB期间控制(ver1.1)(11) 4路PWM定时器/1路内部定时器/看门狗定时器(12) 8路10位ADC和触摸屏接口(13) 具有日历功能的RTC(14) 摄像头接口(15) 130个通用I/O,24个外部中断源(16) 电源控制:正常,慢速,空闲,睡眠模式 带PLL片上时钟发生器Ov9650摄像头s3c2440仅仅提供了一个摄像接口,因此要实现其功能,还需要摄像头。在这里,我们使用OV9650。OV9650内部有大量的寄存器需要配置,这就需要另外的数据接口。OV9650的数据接口称为SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的SIO_C
33、,另一个是用于传输数据信号的SIO_D。SCCB的传输协议与IIC的极其相似,只不过IIC在每传输完一个字节后,接收数据的一方要发送一位的确认数据,而SCCB一次要传输9位数据,前8位为有用数据,而第9位数据在写周期中是Dont-Care位(即不必关心位),在读周期中是NA位。SCCB定义数据传输的基本单元为相(phase),即一个相传输一个字节数据。SCCB只包括三种传输周期,即3相写传输周期(三个相依次为设备从地址,内存地址,所写数据),2相写传输周期(两个相依次为设备从地址,内存地址)和2相读传输周期(两个相依次为设备从地址,所读数据)。当需要写操作时,应用3相写传输周期,当需要读操作时
34、,依次应用2相写传输周期和2相读传输周期。因此SCCB一次只能读或写一个字节。下面我们就用s3c2440的IIC总线接口分别与OV9650的SIO_C和SIO_D相连接来实现SCCB的功能。硬件的连接第4章 嵌入式环境的配置4.1 嵌入式操作系统简介4.1.1 嵌入式操作系统的概念嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统
35、不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包
36、含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。4.1.2 嵌入式操作系统的分类(1) VxWorks VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种实时操作系统。VxWorks拥有良好的持续发展能力、高性能的内核以及良好的用户开发环境,在实时操作系统领域内占据一席之地。它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如
37、x86,i960,Sun Sparc,Moto-rola MC68xxx,MIPS RX000,Power PC, ARM , StrongARM等。大多数的VxW-orksAPI是专有的。 (2) QNX QNX是一个实时的、可扩充的操作系统;它部分遵循POSIX相关标准,如POSIX.1b 实时扩展;它提供了一个很小的微内核以及一些可选的配合进程。 其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间中运行。所有其他操作系统服务都实现
38、为协作的用户进程,因此QNX内核非常小巧(QNX4x大约为12KB),而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级虚拟机操作系统。 (3) Palm OS 3Com公司的Palm OS在掌上电脑和PDA市场上占有很大的市场份额。它有开放的操作系统应用程序接口(API),开发商可以根据需要自行开发所需的应用程序。 (4) Windows CE Microsoft Windows CE是从整体
39、上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核至少需要200KB的ROM。 (5) LynxOS Lynx Real-time Systems的LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a,POSIX.1b和POSIX.1c标准。 LynxOS支持线程概念,提供256个全局用户线程优先级;提供一些传统的、非实时系统的服务特征,包括基于调用需求的
40、虚拟内存, 一个基于Motif的用户图形界面,与工业标准兼容的网络系统以及应用开发工具。 Motif 是开放软件基金(OSF)于1989年推出的一个图形用户界面系统。 (6) 嵌入式Linux 随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux)和一般的嵌入式Linux 版本(如uClinux和Pocket Linux等)。 其中,RT-Linux通过把通常的Linux任务优先级设为
41、最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的Linux任务又保证强实时性能的目的。 由于嵌入式系统越来越追求数字化、网络化和智能化,因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继,因为要达到上述要求,整个系统必须是开放的、提供标准的API,并且能够方便地与众多第三方的软硬件沟通。 (7) uC/OS uC/OS是源码公开的实时嵌入式操作系统。 4.1.3 嵌入式Linux的简介Linux是1991年由芬兰人Linus Torvalds发明的,一套免费使用和自由传播的类Unix操作系统,是个基于
42、POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 操作系统:Linux不仅支持x86芯片,它可以支持20-30中CPU;Linux是开放源代码的,不存在黑箱技术,遍布全球的众多爱好者都是Linux开发者的强大技术支持者,Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题;Linux在内核结构的设计中考虑适应系统的可裁剪性的要求。Linux主要特点如下: (1) Linux是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发的强大技术后盾。(2) Linux的内核小、功能强大、运行稳定、系统健壮、效率高。(3) Linux易于定制裁剪
43、,在价格上极具竞争力。(4) Linux不仅支持x86 CPU,还可以支持其他数十种CPU芯片。 (5) 有大量的且不断增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境。(6) Linux沿用了Unix的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持。 (7) Linux内核的结构在网络方面是非常完整的,它提供了对十兆/百兆/千兆以太网、无线网络、令牌网、光纤网、卫星网等多种联网方式的全面支持。(8) 在图像处理、文件管理及多任务支持等诸多方面,Linux的表现也都非常出色,不仅可以充当嵌入式系统的开发平台,本身也是嵌入式系统应用开
44、发的好工具。 综上所述,正是由于嵌入式Linux具有源码开放、移植简易、资源内容丰富、免费等优点,使它在嵌入式控制领域越来越流行。更重要的是,由于嵌入式Linux与PC机的Linux源于同一套内核代码。只是裁剪的程度不同,这使得很多为PC机的开发的软件经过了再次的编译后,也可以直接在嵌入式控制设备上工作,这使得它的软件资源极大的丰富。4.2 t服务器配置嵌入式系统开发多采用交叉开发模式,其中产生嵌入式软件的平台称为宿主机,通常为PC电脑,运行嵌入式软件的平台称为目标机。宿主机一般通过网络,USB,JTAG等方式将软件下载到目标机。4.2.1 tftp服务器的配置T Protocol,
45、简单文件传输协议)是TCP/IP协议族中的用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。 TFTP这种简单的基于UDP的文件传输协议,通常只能用于小文件的传输。并且它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,也不能进行认证。在嵌入式开发中,tftp服务常用于通过从PC机服务端的tftp目录中下载镜像文件到目标开发板中,以待烧写或运行。使用这种方式下载文件,操作方便、并且速度也挺快。4.2.2 NFS服务器配置NFS(网络文件系统)为两台Linux主机之间的通讯提供了类似于Windows上共享目录一样的服务,在嵌入式Li
46、nux开发中,Linux目标机经常通过NFS方式访问Linux宿主机上的文件,为了实现这种访问,首先需要在Linux搭建NFS服务器。配置NFS服务器:vi /etc/exports,在打开的文件中添加如下一行:/home/S5-driver/lesson8/rootfs *(rw,sync,no_root_squash)。此配置是为了让目标板在完成挂载,进行相关测试。下面是对这一行代码的解释。/home/S5-driver/lesson8/rootfs:共享的目录*:允许访问共享目录的主机IP(rw,sync,no_root_squash):访问权限4.3 安装交叉编译器交叉编译,简单地说,
47、就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。交叉编译出来的程序,所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接的本地编译最常见的情况是:在进行嵌入式开发时,目标平台,即嵌入式开发板,比如是最大主频200MHz的ARM的CPU,加上32M的RAM,加上1G的Nand
48、 Flash等等。在如此相对比较紧张的硬件资源的前提下,在已经运行了嵌入式Linux的前提下,是没法很方便的,直接在嵌入式Linux下,去本地编译,去在ARM的CPU下,编译出来,供ARM的CPU可以运行的程序的。因为编译,开发,都需要相对比较多的CPU,内存,硬盘等资源,而嵌入式开发上的那点资源,只够嵌入式(Linux)系统运行的,没太多剩余的资源,供你本地编译。本设计采用的S3C2440是ARM体系的架构,而Linux属于X86的架构,因此,需要用交叉编译器将程序进行编译,移植到ARM9上才能正常运行。第5章 监控系统的实现5.1 Bootloader的移植1. Bootloader简介B
49、ootloader是严重依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的Bootloader几乎是不可能的。尽管如此,我们仍可以对Bootloader归纳出一些通用的概念,以指导用户特定的Bootloader设计与实现。简单地说,Bootloader就是在操作系统内核运行之前的一段小程序,通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的家在启动任务就完全由Bootloader来完成。在专用的嵌入式板子运行GN
50、U/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:(1) Bootloader用来加载内核。(2) Kernel为特定嵌入式开发板的定制内核以及控制内核引导系统的参数。(3) rootfs包括根文件系统和建立于Flash内存设备上的文件系统。文件系统提供管理的各种配置文件以及系统执行用户应用程序的运算环境。(4) user特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。2. 常见Bootloader介绍Bootloader的编写依赖于硬件。每种不同体系结构的处理器都有不同的Bootloader。不过Boot
51、loader的发展也趋于支持多种体系结构,比如U-boot从最初的只支持PowerPC,到目前同时支持PowerPC、ARM、MIPS、X86等多种体系结构。除了依赖于处理器的体系结构外,Bootloader实际上也依赖于具体的嵌入式板级设备的配置,也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种处理器而构建的,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,通常也都需要对Bootloader进行移植工作。下面是对常见Bootloader的简介。(1) U-boot 这是现在使用最多的bootloader之一,是sourceforge上的一个开源项目
52、。支持ARM,MIPS,PowerPC,x86等处理器,同时支持linux,VxWorks,NetBSD, QNX等操作系统。(2) PPCBoot 这是德国DENX小组开发的用于多种嵌入式CPU的Bootloader引导程序。目前支持ARM,MIPS,PowerPC等处理器。(3) RedBoot Redhat公司随ECOS发布的一个开源项目。可以通过串口和以太网口与GDB进行通信和调试应用程序。(4) ARMBoot 这也是sourceforge上的一个开源项目,设计只针对ARM的处理器结构,所以在ARM内核的平台上移植比较方便。(5) Blob
53、160;Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot Loader。Blob支持SA1100的LART主板,但用户也可以自行修改移植。Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下任意键而将 Blob 切换到下载模式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux内核。(6) Vivi 韩国mizi公司开发的bootloader,适用于ARM9的处理器。3. U-boot分析u-bo
54、ot是一个开源项目,全称Universal Boot Loader,从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。U-boot除了支持PowerPC系列的处理器外,还能支持MIPS、X86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是u-boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。4. U-boot的目录结构u-boot源码目录、编译形式与Linux内核很相似。不少u-boot源码就是相应的Linux内核源程序的简化,特别是一些设备的驱动程序。下面是u-boot的目录结构:* board 目标板相关文件,主要包含SD
55、RAM、FLASH驱动;* common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;* cpu 与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;* driver 通用设备驱动,如CFI FLASH驱动(目前对INTEL FLASH支持较好)* doc U-Boot的说明文档;* examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;* include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;* lib_xxx 处理器体系相关的文件,如lib
56、_ppc, lib_arm目录分别包含与PowerPC、ARM体系结构相关的文件;* net 与网络功能相关的文件目录,如bootp,nfs,tftp;* post上电自检文件目录。尚有待于进一步完善;* rtc RTC驱动程序;* tools 用于创建U-Boot S-RECORD和BIN镜像文件的工具;5.2 内核的移植Linux是一个具有完整功能的Unix操作系统,并试图把Unix各版本的优势于一身。 Linux操作系统主要由进程调度、内存管理、虚拟文件系统、网络接口、进程间通信等几个部分组成。运行命令:make menuconfig,出现如下界面: 按照自己板子的具体情况进行相关配置。
57、配置完后运行make进行编译,编译完后生成zImage。5.3 根文件系统制作简单来说,根文件系统就是一种目录结构。根文件系统和普通的文件系统的区别在于:根文件系统要包括Linux启动时所必须的目录和关键性的文件。Linux支持多种文件系统类型,在嵌入式上常用的有:ROMFS、JFFS2、NFS、CRAMFS、YAFFS、UBIFS等。Linux引入了虚拟文件系统VFS(Virtual ),为各类文件系统提供一个统一的操作界面和应用编程接口在Linux系统中是通过mount命令来挂载不同的文件系统。使用NFS挂载根文件系统在开发板的串口控制台输入如下命令:setenv bootargs noi
58、nitrd console=ttySAC0,115200 init=/linuxrc root=/dev/nfs rw nfsroot=28:/home/S5-driver/lesson8/rootfs ip=:28:::eth0:off下面是对上面代码的解释。(1) initrd, noinitrd当你没有使用ramdisk启动系统的时候,你需要使用noinitrd这个参数,但是如果使用了的话,就需要指定initrd=r_addr,size, r_addr表示initrd在内存中
59、的位置,size表示initrd的大小。(2) console:console=tty 使用虚拟串口终端设备。console=ttyS,options 使用特定的串口,options可以是这样的形式bbbbpnx,这里bbbb是指串口的波特率,p是奇偶位(从来没有看过使用过),n是指的bits。根据当前的环境,有时用ttyS,有时用ttySAC,网上有人说,这是跟内核的版本有关,2.4用ttyS,2.6用ttySAC,但实际情况是官方文档中也是使用ttyS,所以应该是跟内核版本没有关联的。可以查看Documentation/serial-console.txt找到相关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- SMTP服务器租赁合同范本
- 教育设施爱心基金管理办法
- 能源企业隔音墙施工合同
- 人工智能项目投资担保人还款协议
- 教育咨询高级顾问聘用合同样本
- 旅游设施施工合同备案说明
- 园林绿化施工管理合同样本
- 教育公益捐赠管理办法
- 环保设施清洁施工合同建筑膜
- 体育馆化粪池建设协议
- 小区安防工作规范
- 北师大数学六年级下册第一单元《圆柱与圆锥》单元整体解读课件
- 2023年江苏专转本英语真题及解析(全)
- 幼儿园中班美术:《向日葵》 课件
- 自动化控制仪表安装工程定额
- 普希金《驿站长》阅读练习及答案
- 《生物多样性公约》及国际组织课件
- 个人信用报告异议申请表
- Unit 4 Lesson 1 Avatars 教案 高中英语新北师大版必修第二册(2022-2023学年)
- Q∕SY 05012.1-2016 城镇燃气安全生产检查规范 第1部分:天然气
- 部编人教版九年级历史下册教案(全册)
评论
0/150
提交评论