毕业论文-基于ARM9的智能家居远程监控系统(监控模块)的设计与实现(终稿)_第1页
毕业论文-基于ARM9的智能家居远程监控系统(监控模块)的设计与实现(终稿)_第2页
毕业论文-基于ARM9的智能家居远程监控系统(监控模块)的设计与实现(终稿)_第3页
毕业论文-基于ARM9的智能家居远程监控系统(监控模块)的设计与实现(终稿)_第4页
毕业论文-基于ARM9的智能家居远程监控系统(监控模块)的设计与实现(终稿)_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE5目录引言 1第一章嵌入式系统概述 21.1嵌入式系统的特点 21.1.1专用性强 21.1.2实时性好 21.1.3可裁剪性好 21.1.4可靠性高 21.1.5功耗低 31.2嵌入式系统的组成结构 31.2.1硬件基本结构 31.2.2软件的层次结构 4第二章智能家居概述 52.1研究背景 52.2国内外发展现状 52.2.1国外发展现状 52.2.2国内发展现状 6第三章嵌入式Linux 6第四章需求分析 74.1用户需求 74.2需求分析 74.2.1GSM信息接收处理 74.2.2处理信息及画面显示 74.2.3系统结构框图 8第五章智能家居基本模块及解决方案 85.1智能家居的基本功能模块 85.2家庭对外通信模块 95.3家庭网关模块 105.4家庭安全防范模块 105.5家庭设备自动控制模块 11第六章模拟实现硬件设计 116.1硬件选型 126.2硬件连接及测试 12第七章嵌入式系统平台的建立 147.1嵌入式系统交叉编译环境的建立 147.2嵌入式Linux移植 157.2.1Linux移植流程 157.2.2Bootloader移植 157.2.3Linux内核移植 167.2.4YAFFS2文件系统制作 19第八章模拟实现软件设计 208.1获取短信内容模块 208.1.1接收短信模块 20结论 25致谢 26参考文献 27基于ARM9的智能家居远程监控系统(监控模块)的设计与实现黄杰摘要:智能家居(SmartHome)是以家为平台,兼备建筑、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。自动化的智能家居不再是一幢被动的建筑,相反,成了帮助主人尽量利用时间的工具,使家庭更为舒适、安全、高效和节能。关键词:嵌入式智能家居远程监控系统引言:许多人的概念里,智能家居离我们的生活似乎异常遥远,只是存在于高科技展览会里的表演,或是富豪们向人们炫耀财富而展示的一种家居装饰。事实上,近年来智能家居已开始一步一步走进越来越多的普通家庭。随着科技的不断完善,智能家居也跟着不断完善发展。国外,智能家居在美国、德国、新加坡、日本等国都有广泛应用。目前在美国已有近4万户家庭安装了这一类的“家庭智能系统”。在国内,智能家居已经走过了“概念期”,正是基于对智能家居市场发展前景的展望,使得智能家居不断地纳入各研发单位、房产开发公司、网络公司下期的开发计划,也是竞相销售的卖点。随着家居智能化系统的不断完善,我们想象中的家中布满线网的情形不会再有了,家里一个小小的的角落就可解决全部问题。安装一套智能家居,已经不再是一个概念,而是生活中切切实实可以享受到的高科技带来的便利生活体验。智能家居与普通家居相比,它不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间,还由原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交换功能,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。智能家居是数字家庭的一部分,只有将智能控制和上网功能集成起来,才形成真正意义上的数字家庭。数字家庭涉及的领域将综合生活中的娱乐、工作、投资理财、学习、医疗、教育等,是实现家庭内部、家庭和社会的实时性沟通的综合系统。第一章嵌入式系统概述1.1嵌入式系统的特点从嵌入式系统的构成上看,嵌入式系统是集软硬件于一体的、可独立工作的计算机系统;从外观上看,嵌入式系统像是一个“可编程”的电子“器件”;从功能上看,它是对宿主对象进行控制,使其具有“智能”的控制器。从应用的角度看,嵌入式系统与通用计算机系统相比,有如下一些特点:1.1.1专用性强由于嵌入式系统通常是面向某个特定应用的,所以嵌入式系统的硬件和软件,尤其是软件,都是为特定用户群来设计的,它通常都具有某种专用性的特点。1.1.2实时性好目前,嵌入式系统广泛应用于生产过程控制、数据采集、传输通信等场合,主要用来对宿主对象进行控制,所以都对嵌入式系统有或多或少的实时性。例如,对嵌入在武器装各中的嵌入式系统、在火箭中的嵌入式系统、一些工业控制装置中的控制系统等应用中的实时性要求就极高。也正因为这种要求,在硬件上嵌人式系统极少使用存取速度慢的磁盘等存储器。存储器是用来存储程序和数据的部件,有了存储器,计算机才有记忆功能,才能保证正常工作。它根据控制器指定的位置存进和取出信息,在软件上更是加以精心设计,从而可使嵌入式系统快速地响应外部事件。当然,随着嵌入式系统应用的扩展,有些系统对实时性要求也并不是很高,例如近年来发展速度比较快的手持式计算机、掌上电脑等。但总体来说,实时性是对嵌入式系统的普遍要求,是设计者和用户重点考虑的一个重要指标。1.1.3可裁剪性好从嵌人式系统专用性的特点来看,作为嵌入式系统的供应者,理应提供各式各样的硬件和软件以各选用。但是,这样做势必会提高产品的成本。为了既不提高成本,又满足专用性的需要,嵌入式系统的供应者必须采取相应措施使产品在通用和专用之间进行某种平衡。目前的做法是,把嵌人式系统硬件和操作系统设计成可裁剪的,以便使嵌入式系统开发入员根据实际应用需要来量体裁衣,去除冗余,从而使系统在满足应用要求的前提下达到最精简的配置。1.1.4可靠性高由于有些嵌入式系统所承担的计算任务涉及产品质量、人身设各安全、国家机密等重大事务,加之有些嵌入式系统的宿主对象要工作在无人值守的场合,例如危险性高的工业环境中、内嵌有嵌入式系统的仪器仪表。中、在人际罕至的气象检测系统中以及为侦察敌方行动的小型智能装置中等。所以与普通系统相比较,对嵌入式系统可靠性的要求极高。1.1.5功耗低有很多嵌入式系统的宿主对象都是一些小型应用系统,例如移动电话、PDA、MP3、飞机、舰船、数码相机等,这些设各不可能配各容量较大的电源,因此低功耗一直是嵌入式系统最求的目标。嵌入式系统的硬件部分看起来与通用计算机系统没有什么区别,也由处理器、存储器、外部设各、I/O接口、图形控制器等部分组成。但根据嵌人式系统应用上的特点,致使嵌人式系统在硬件的选用方面还是与通用计算机系统有较大区别的。为满足嵌入式系统在速度、体积和功耗上的要求,像操作系统、应用软件、特殊数据等需要长期保存的数据,通常不使用磁盘这类具有大容量且速度较慢的存储介质,而大多使用EPROM、EEPROM或闪存(FlashMemory)。dsp是digitalsignalprocessor的简称,即数字信号处理器。它是用来完成实时信号处理的硬件平台,能够接受模拟信号将其转换成二进制的数字信号,并能进行一定形式的编辑,还具有可编程性。由于强大的数据处理能力和快捷的运行速度,dsp在信息科学领域发挥着越来越大的作用。除了一些通用外围芯片之外,为适应专用性的要求,嵌入式系统通常还要使用一些专用外围芯片。这些ASIC芯片一般是由具体设各生产商自行开发的具有高速或高性能的专用芯片,也正是这些芯片形成了设各生产商的知识产权。1.2嵌入式系统的组成结构嵌入式系统的硬件是嵌入式系统软件环境运行的基础,它提供了嵌入式系统软件运行的物理平台和通信接口;嵌入式操作系统和嵌入式应用软件则是整个系统的控制核心,控制整个系统运行、提供人机交互的信息等。由于嵌入式系统和实际应用对象密切相关,而实际应用非常繁杂,应用也日新月异,很难用一种构架或模型加以描述。1.2.1硬件基本结构嵌入式系统的硬件架构如图1-1下半部分所示,是以嵌入式处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口组成。应用程序应用程序实时操作系统(RTOS)输入输出接口处理器/ARM核MMU/CacheSOC/SOPCUSBGPIOIISLCDUART和IrDAADC/DACFPGA/CPLDDSP/浮点运算协处理器DMA电源管理人机交互接口LCD/触摸屏、键盘、鼠标设备驱动程序、HAL、BSP文件系统/图形用户应用程序接口驱动层OS层应用层软件硬件以太网看门狗及复位电路Timer/RTCCANFlashEEPROMSDRAMSRAM内存图1.1典型的嵌入式系统组成嵌入式系统是“量身定做”的“专用计算机应用系统”,又不同于普通计算机组成,在实际应用中的嵌入式系统硬件配置非常精简,除了微处理器和基本的外围电路以外,其余的电路都可以根据需要和成本进行“裁剪”、“定制化”(Customize),非常经济、可靠。嵌入式系统硬件核心是嵌入式微处理器,有时为了提高系统的信息处理能力,常常外接DSP和DSP协处理器(也可内部集成)完成高性能信号处理。在嵌入式系统设计中,要尽可能的选择能满足系统功能接口的SoC芯片,这些SoC集成了大量的外围USB、UART、以太网、AD/DA、IIS等功能模块。可编程片上系统SOPC(SystemOnProgrammableChip)结合了SoC和PLD、FPGA各自的技术优点,使得系统具有可编程的功能,是可编程逻辑器件在嵌入式应用中的完美体现,极大的提高了系统的在线升级、换代能力。因此现代嵌入式设计是以处理器/SoC/SOPC为核心,完成系统设计的,其外围接口包括存储设备、通信接口设备、扩展设备接口和辅助的机电设备(电源、连接器、传感器等)构成硬件系统。1.2.2软件的层次结构依据系统所提供的程序界面来编写应用程序,可以大大的减少应用程序员的负担。对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含四个层面:设备驱动层、实时操作系统(RTOS)、应用程序接口(API)层、实际应用程序层。对于PC机,其开机后的初始化处理器配置、硬件初始化等操作是由BIOS完成的,但对于嵌入式系统来说,出于经济性、价格方面考虑一般不配置BIOS,因此我们必须自行编写完成这些工作的程序。这就是所需要的开机程序,在嵌入式中称为BootLoader程序。系统加电复位后,几乎所有的CPU都从由复位地址上取指令。比如,基于ARM7TDMI核的CPU在复位时通常都从地址0x00000000取它的第一条指令。而以处理器为核心的嵌入式系统通常都有某种类型的固态存储设备被映射到这个预先设置好的地址上。因此在系统加电复位后,处理器将首先执行BootLoader程序。BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设定在一个合适的状态,以便为最终调用操作系统内核、运行用户应用程序准备好正确的环境系统的启动通常有两种方式:直接从Flash启动,将压缩的内存映像文件从Flash(为节省Flash资源、提高速度)中复制、解压到RAM,再从RAM启动。当电源打开时,一般的系统会去执行ROM(应用较多的是Flash)里面的启动代码。这些代码是用汇编语言编写的,其主要作用在于初始化CPU和板上的必备硬件如内存、中断控制器等。第二章智能家居概述2.1研究背景智能家居(SmartHome)是以家为平台,兼备建筑、自动化,智能化于一体的高效、舒适、安全、便利的家居环境。自动化的智能家居不再是一幢被动的建筑,相反,成了帮助主人尽量利用时间的工具,使家庭更为舒适、安全、高效和节能。与普通家居相比,智能家居不仅具有传统的居住功能,即提供舒适安全、高品位且宜人的家庭生活空间,还提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性。2.2国内外发展现状2.2.1国外发展现状自从世界上第一幢智能建筑1984年在美国出现后,美国、加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国家先后提出了各种智能家居的方案。智能家居在美国、德国、新加坡、日本等国都有广泛应用。

1998年5月新加坡举办的“98亚洲家庭电器与电子消费品国际展览会”上,通过在场内模拟“未来之家”,推出了新加坡模式的家庭智能化系统。它的系统功能包括三表抄送功能、安防报警功能、可视对讲功能、监控中心功能、家电控制功能、有线电视接入、电话接入、住户信息留言功能、家庭智能控制面板、智能布线箱、宽带网接入和统软件配置等。这种“未来之家”家庭智能化系统,市场真正启动尚需时日。目前在新加坡也有近30个社区(住宅小区)近5000户的家庭采用了“家庭智能化系统”,美国已有近四万户家庭安装了这一类的“家庭智能化系统”,相信到了21世纪将会有更多的住宅安装上这一类高科技智能化系统产品。目前美国有一种占据市场主流的产品X-10,销售已超过1亿个,设计户型为单体别墅,应用多为旧房改造,仅在美国便有超过400万个家庭在使用。但这些产品技术限制较多,并不适合在我国原样照搬使用应用。三星从今年春节后,开始在中、韩两国同时推出其智能家居系统,通过机顶盒和网络,将家居自动化控制、信息家电、安防设备以及娱乐和信息中心这四部分集成一个全面的,面向宽带互联网的家居控制网络。2.2.2国内发展现状在我国,智能化住宅和智能化家居虽然起步比较晚,但发展速度很快。80年代,我国居住条件非常困难,根本谈不上智能化的问题。80年代初所建成的住宅,其电器设计内容仅在以下方面:楼房照明系统、高层供水泵控制系统和消防泵控制系统。用户电量的计量和收费,采用房管部门或住户轮流抄表收费的方式。生活用水的计量则主要是按户或按人口数收费。弱电系统也是从80年代开始才陆续设置电话配线和公用电视天线系统。80年代末90年代初,我国家庭基本实现电器化,住宅内的弱电系统有所增加,如对讲系统等。到了90年代末,电脑、有线电视、机顶盒、移动通信等数字化通信产品开始走进家庭。2000年9月7-8日,由信息产业部组织,在四川省绵阳市召开了国家经贸委2000年国家技术创新重点专项计划—“家庭信息化网络技术研究及产品开发”项目工作会议。2002年由建设部住宅产业化促进中心和中国建筑科学研究院主编的《居住区智能化系统配置与技术要求(审查稿)》己送审,等待批准。建设部住宅产业化促进中心正在牵头编制行业标准“居住区智能化产品应用技术要求”。2002年建设部科学技术委员会智能建筑技术开发推广中心组织编制了《建设行业智能建筑试点项目住宅小区智能化系统工程验收评估标准》作为建设行业智能建筑试点项目住宅小区智能化系统工程验收评估标准。第三章嵌入式Linux嵌入式linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_LinuxHardhatLinux等嵌入式Linux支持,实时性能稳定性好安全性好。嵌入式Linux的应用领域非常广泛,主要的应用领域有:信息家电、PDA、机顶盒、DigitalTelephone、AnsweringMachine、ScreenPhone、数据网络、Ethernet、SwitchesRouterBridge、Hub、Remoteaccessservers、ATM、Framerelay、远程通信、医疗电子、交通运输、计算机外设、工业控制、航空航天领域等。第四章需求分析4.1用户需求系统需要完成的任务有:接收和处理单片机发送过来的传感器信息;处理传感器信息并通过短信发送给手机;通过GSM接收和发送短信数据;分析处理接收到的短信,得出相应操作信息发送给单片机并将操作反馈给手机;在TFT-LCD上构建图形窗口,建立操作界面。4.2需求分析本课题主要解决接收和发送短信并在TFT-LCD上显示。由于监控程序运行在嵌入式Linux下,这就涉及到Linux下与GSM模块通信问题。需要构建定位图形窗口,涉及到窗体应用程序的编写。4.2.1GSM信息接收处理

基本功能为初始化Linux串口配置,接收串口发送过来的信息,进行字符串分析处理,分离出当前信息,以备图形窗体程序使用。4.2.2处理信息及画面显示基本功能包括实现直观的窗体界面,显示当前传感器状态值,显示接收到的短信。4.2.3系统结构框图根据上述分析,系统的硬件结构框图如图4.1所示:图4.1系统硬件结构框图第五章智能家居基本模块及解决方案5.1智能家居的基本功能模块目前的智能家居行业,首先,处于一个初始发展时期,国际社会暂时还没有形成一个公认的标准;其次,智能家居的应用场所一家庭住宅或住宅小区,不同的实际环境也对智能家居提出了不同的要求与解决办法;此外,居民都希望能够对智能家居进行个性化配置,满足自身的特殊需求。这样的形势,致使开发商在实施智能家居时的方式、范围及侧重点也不尽相同。有些用户比较注重家电的智能控制,而有些用户可能更加关心家庭安全防范,还有些用户则希望建立相对全面的智能家居系统,满足多方面的需求。功能模块见下图。图5.1功能模块图图5.1是根据课题充分分析现有的智能家居解决方案,结合自己的调查研究,从中提取出四个最为基本的功能模块:家庭对外通信模块、家庭网关模块、家庭安全防范模块、家庭设备自动控制模块,并在此基础上确定自己的智能家居解决方案。传统的智能家居系统是为了满足住户方便性的要求,一般是为了实现家用电器的远程控制的目的,所以只包括“家庭对外通信模块”、“家庭网关模块”、“家庭自动控制模块”,随着近年来盗窃等现象的愈演愈烈,用户又提出了家庭安防的要求,而近年来通信、计算机、自动化等技术的不断发展使这种要求能够成为现实。所以课题的解决方案中考虑到了用户对家庭安防的需要,在传统模块划分的基础上增加了“家庭安防模块”。下文结合国内外功能模块的实现方式,将对各模块做详细分析与评述,最终提出自己实现各个模块的技术路线。5.2家庭对外通信模块智能家居的最终目的都是为“满足人们对舒适、方便、高效和符合绿色环境保护的需求”,其中“方便”要求家庭内部系统能够通过家庭对外接口,实现家庭外部的远程控制。家庭对外通信模块的作用在于此,它在智能家居系统中扮演着非常重要的角色。具体来讲,该模块的功能是提供一个家庭内部与外部的通信链路,通信的内容是数据信息或指令信息,常用的通信媒介有电话、GSM短信、Internet等。随着新技术的发展,家庭对外通信模块从功能和方式上得到了丰富:功能上,过去只是完成简单指令信息的单方传输,现在更多的是提供数据信息的通信,包括通信交流、商务、娱乐、教育、医疗保险等;方式上,从电话通信到Internet通信,再到GSM手机短信通信,越来越体现出通信方法的多样化和简便化。本课题选择将GSM短信与Internet相结合的方式作为智能家居远程控制方式(这也正是本课题的特点之一),也就是将手机短信通过Internet发到能连网的家庭网关上,当然这需要用到一个中介:SP技术。这种设计主要基于以下几点考虑:(1)GSM短信不受环境限制,只要手机有信号的地方都可以随时随地发送,而且其成本低廉,所以应该充分利用;(2)GSM短信控制方式,大多数设计者都是利用在家庭网关上插GPRS模块来实现家庭网关与手机之间的通信,这样做有两大缺点:一是增加GPRS模块就增加了系统的成本,二是对GPRS的驱动开发增大了开发的难度。(3)近年来新出现的SP中介组织使短信在Internet上传输成为可能,而且它还提供方便的程序接口,帮助用户在能连网的PC机或嵌入式网关上获取短信内容,进而实现GSM短信的控制功能。同时,使用SP服务收费低、也免去了对硬件的驱动开发。5.3家庭网关模块家庭网络就是在家庭内部通过适当的组网技术把家庭网关(ResidentialGateway,RG)与其他设备组成可以进行信息交换的内部网络,并通过家庭网关与外部网络相连,形成面向家庭的业务提供平台。在智能家居的实现过程中,家庭网关占据至关重要的位置。家庭网关是连接外部公网和家庭私网的关口,既负责家庭内部对公网的访问和交互,又负责用户从公网上对家庭网络的访问和控制,另外还要负责家庭内部设备的互连、互控等操作,因此,家庭网关成为智能家居研究的重点。本课题是选择三星公司生产的S3C2410芯片作为嵌入式家庭网关,它的ARM内核是ARM920T。之所以选择该芯片是基于以下几点考虑;(1)它带有MMU,支持WindowsCE和大部分的Linux操作系统;(2)它主频达到202MHZ,能够满足一般家庭网关数据传输的需要;(3)它具有三通道的UART口,每个UART口都支持IrDAL0协议,为红外通信提供接口;(4)它大约有上百个GPIO口可供用户使用,使多个家用电器的接入网关成为可能;(5)它还有一个loom的以太网口,使家庭网关能够轻松接入Internet。5.4家庭安全防范模块安全防范就是保障人们在生产、生活和一切社会活动中人身生命、财产和生产、生活设施不受侵犯,防止侵害行为的总称。智能家居在满足人们舒适、方便生活的同时,也要求为家庭提供安全防范方面的保障。它包含的内容有防止入侵、盗窃、破坏、爆炸等,它的原则是“以防为主,打防并举”,安全防范工作贯彻“人防、技防、物防”相结合的方针政策。因此,智能家居将家庭安全防范模块定义为其四个基本要素之一。课题将安全防范的内容分为两部分,分别是家庭内部环境安全、家庭对外非法入侵预防,这两方面都体现了现代技术在智能家居中的应用。课题中,由于实验条件等的限制,并没有对安防模块进行实验。在此提出一套可行的安防方案,可供以后继续研究实践:(1)住宅内部采用被动红外探测器、可燃气体探测器、温/湿度传感器;(2)住宅外部可选择窗磁、门磁开关、红外探测器、玻璃破碎探测器、双鉴探测器等;(3)住宅内外部的探测装置与报警控制器通过无线方式相连;(4)报警控制器与中心控制器通过有线方式相连。5.5家庭设备自动控制模块智能家居的初衷是解决家庭设备的自动控制问题,将更多的设备通过某种方式连接,达到统一、集中控制,为家庭生活带来方便。因此,现代智能家居的最基本的功能需求体现在家庭设备的自动控制,家庭设备自动控制模块也就成为其最基本的模块。对不同的家庭设备,课题给出了不同的解决方案:(1)对于电饭锅、电灯一类的开关量家庭设备,建议采用以继电器为核心的控制电路控制。具体方案为首先将继电器、二极管、三极管、限流电阻等连接成一个控制电路,然后将继电器的一个电源脚接到开发板的S3C2410芯片的一个GPIO引脚上,继电器的另一个引脚接VCC,这样,可以通过烧写在S3C2410中的程序,来控制GPH1输出高低电平,进而控制继电器的吸合、断开,然后由继电器来控制家用电器的开关。(2)对于电视机、空调一类提供红外接口的家庭设备,通过统一的红外控制器控制;可行的方案是采用红外模块,红外模块可直接与S3C2410的UART口相连,这样由S3C2410中的程序来发送和接收红外数据。可能涉及到的程序有红外驱动程序、发送数据程序、接收数据程序等。(3)对于信息家电,首先通过网络接口接入家庭以太网,如果信息家电支持家电生产厂商的远程服务,智能家居系统便可以减少对它的操作,如果不支持,则需要借助于信息家电提供的以太网交互命令,通过智能家居系统执行相关操作。第六章模拟实现硬件设计本章主要介绍设计的智能家居系统方案中的硬件实现。硬件是该系统实现的基础,硬件测试是该方案是否可行的重要依据。本章是以典型的子模块为例阐述系统的整体硬件设计。首先对EmbestEdukeitⅢ开发平台进行说明,由于该开发板资源丰富,内容复杂,只对实验中用到的S3C2410的GPIO口和UART口进行阐述,其中重点阐述了GPIO口的专用寄存器GPnDAT,GPnCON,GPnUP和DART口的专用寄存器ULCONn,UCONn,UFCONn,UMCONn,UBRDIVn。然后阐述了系统硬件连接及测试的整个过程,由最基本的开发板连接、继电器模块、红外收发模块开始,直至将几个功能模块集合到一起,进行测试。6.1硬件选型硬件选型是模拟实现的基础。目前的市场上,智能家居解决方案中主控系统有三种选择:(1)购置一台PC机专门用做家庭网关;(2)购置单片机,自己动手连接电路,开发家庭网关;(3)购置一款适合自己要求的嵌入式开发板做家庭网关。基于单片机的家庭网关,虽然成本低,但其控制执行的效率往往不能够满足客户需求。而嵌入式开发板不仅价格适中,而且执行效率也能满足广大家庭用户的需求。因此课题从实际情况出发,选择嵌入式开发板作为系统的控制中枢。ARM开发板是近几年来备受关注的热点,也是报着尝试和学习的态度,购买了北京博创的EmbestEdukeitⅢ(ARM9)开发板,该开发板有着丰富的硬件资源和软件资源,同时有很多实验用例有利于二次开发者更好的理解、学习和应用。智能插座方面,核心是采用了一个5V的电压继电器,该继电器不仅连接电路简单、易控制,同时成本低廉,经多方使用证明,该继电器适用于智能家居系统的具体实现。红外控制方面,采用了一个USB口的红外适配器,出于成本考虑,并没有采用品牌的红外适配器,而是选用了市场上一个普通的红外适配器,这样更有利于开发通用的红外驱动,使开发成果更有广泛的应用空间。另外,为了实现对红外适配器的控制,还配置了一个电视遥控器,该遥控器原为长虹电视遥控器,经过改造可以发出红外适配器能够接收并处理的信号。以上硬件选型的共同原则是:稳定、操作方便、通用性强且成本低廉,前提都是能够满足模拟实现的基本要求。6.2硬件连接及测试EmbestEdukeitⅢ(ARM9)开发板与PC机连接及测试首先按照2410资料进行硬件连接。(1)将5V电源线连到UP-NETARM2410开发板的电源接口;(2)将串口线一端连接PC机的串口,另一端连接开发板的UARTO口;(3)将开发板的网口插上网线,同时PC机的网口也插上网线。其次在PC机上建立超级终端:(1)运行WindowsXP下的开始一程序一附件一通讯*超级终端(HyperTerminal);(2)初次建立超级终端,出现询问“是否将HyperTerminal作为默认telnet程序?”,选择“否”;(3)要求输入区号、电话号码等信息,随意输入字母或数字;(4)出现如图6.1所示对话框,为所建超级终端取名为arm,为其选择第一个图标,单击“确定”按钮。(5)在接下来的对话框中选择ARM开发平台实际莲接的PC机串口(COMl),按确定后出现如图6.2所示的属性对话框,设置通信的格式和协议。波特率设为115200,数据位为8,无奇偶校验,停止位1,无数据流控制,按确定完成设置。图6.1创建超级终端图6.2设置串行口然后将新建的超级终端保存在桌面上,以方便日后使用。现在在超级终端上可以看到开发板相关的输出信息了,这就说明PC机和开发板硬件连接正确,并且超级终端设置正确。最后启动开发板。打开超级终端,打开开发板的电源开关,超级终端显示启动信息如下图所示:图6.3连接超级终端第七章嵌入式系统平台的建立本章介绍了在进行嵌入式系统应用开发前必需的几个步骤:嵌入式系统交叉编译环境的建立、嵌入式Linux的移植。裁剪、交叉编译Linux2.6.14版本的内核,并或者做可读写的YAFFS2文件系统。7.1嵌入式系统交叉编译环境的建立嵌入式系统开发平台是开发应用程序的基础,在运行应用程序前,首先要建立交叉编译环境,然后才能进行嵌入式操作系统的移植和应用开发等工作。交叉编译是嵌入式开发过程中的一个重要步骤,主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成。采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到PC中进行。当前交叉编译器有多种版本,本设计中使用2.95.3和3.4.4,分别用编译Bootloader和Linux内核及应用程序,采用网上下载的交叉工具链,解压后安装即可。主机使用Fedora7Linux操作系统,为了可以方便的使用arm-linux交叉编译器系统,把arm-linux工具链目录加入到环境变量PATH中,如图3-1所示修改/etc/profile文件,增加部分为修改地方。#Pathmanipulationif["$EUID"="0"];thenpathmunge/sbinpathmunge/usr/sbinpathmunge/usr/local/sbinpathmunge/usr/loval/arm/3.4.4/bin//增加部分fi7.2嵌入式Linux移植7.2.1Linux移植流程Linux现在己经广泛应用于嵌入式平台,因此对Linux移植过程的研究已经较多,比较成熟。所以本文不对其中涉及的理论做过多描述,仅仅对其移植过程中的关键部分作描述。移植的过程分为Bootloader移植、Linux内核及设备驱动移植、文件系统制作。本系统采用2.6.14版内核。7.2.2Bootloader移植选用vivi作为本系统的Bootloader,vivi是韩国mizi公司开发的Bootloader,适用于ARM9处理器,支持S3C2410A为了使移植工作更加快捷,系统采用vivi-20030929版本。它不仅提供对ARM920T内核的支持,而且直接提供了对于S3C2410A作量相对减少,移植步骤如下:1)与硬件相关的修改具体与处理器平台相关的文件都存放在vivi/arch目录下,本系统使用S3C2410A处理器,对应的目录为S3C2410。其中文件head.s是vivi启动配置代码,加电复位运行的代码就是从这里开始的。由于该文件中对处理器的配置均通过调用外部定义常数或宏来实现,所以针对不同的平台,只要是S3C2)对NANDFlash启动的修改本设计中启动程序以及Linux内核及根文件系统,包括图形用户界面等都存放在64M的NANDFlash中。这样,作为启动程序vivi的还需要根据实际情况来修改存放这些代码的分区。分区指定的偏移地址就是代码应该存放并执行的地址。移植vivi的最后一步是实现Flash驱动,需要根据系统中具体的Flash芯片的型号及配置,修改驱动程序,使Flash设备能够在嵌入式系统中正常工作。修改Flash驱动的关键一步是对文件Flash.c的修改。Flash.c是读、写和删除设备的源代码文件。由于不同开发板中Flash存储器的种类各不相同,所以修改时需参考相应的芯片手册。当做好上述的移植工作后,就能对vivi进行编译了。在编译vivi之前,需要根据开发板进行适当的配置。保存并退出后,执行make命令开始编译,把编译好的vivi烧到NANDFlash中。进入vivi后,在串口终端输入命令:bonpart0192k1216k把整个Flash分为四个区,其中0-192k存放vivi及参数,192k-1216k存放Linux内核,1216k到最后是存放文件系统。7.2.3Linux内核移植(1)修改Makefile在内核根目录下找到ARCH和CROSS_OMPILE,修改以下内容:ARCH=armCROSS_COMPILE=arm-linux-(2)将分区信息加入内核修改/arch/arm/mach-S3C2410A添加头文件:#include<linux/mtd/partitions.h>#include<linux/mtd/nand.h>#include<asm/arch/nand.h>添加分区结构:staticstructmtd_partitionpartitioninfo[]={{name:"vivi",size:000020000,offset:0x00000000,},{name:"param",size:0x00010000,offset:0x00020000,},{name:"kernel",size:0x00100000,offset:0x00030000,),{name:"root",size:OX03eC0000,offset:0x00130000,}};其中,name:分区名字,任意;size:分区大小;offset:分区的起始地址,相对于0x0的偏移。加入NandFlash分区,structS3C2410A_nr_partitions:4,partitions:partitioninfo,};其中,nr_partitions:指明partition_info中定义的分区数目;partitions:分区信息表。3)建立NandFlash芯片支持在/arch/arm/mach-S3C2410AstructS3C2410A_tacls:0,twrph0:30,twrph1:0,sets:&nandset,nr_sets:l,};其中,tacls,twrph0,twrphl根据S3C2410Asets:支持的分区集;nr_set:分区集的个数。(4)修改s3c_device_nand结构体变量,添加对dev成员的赋值structplatforms_devices3c_device_name="S3C2410Aid=-1,num_resources=ARRAYeeSIZE(s3c_nand_resource),resource=s3c_nand_dev={platform_data=&superlpplatform},};其中,name:设备名称;id:有效设备编号,如果只有唯一的一个设备为-1,有多个设备从0开始计数;num_resource:有几个寄存器区;resource:寄存器区数组首地址;dev:支持的NandFlash设备。(5)指定启动时的设备初始化修改arch/arm/mach-S3C241OA/mach-smdk2410.c文件。staticstructplatform_device*smdk2410_devices[]_nitdata={&s3cdevicenand,/*添加此行信息*/};(6)禁止FlashECC校验内核通过vivi把数据写入NANDFlash,而vivi的ECC效验算法和内核的不同,内核的效验码是由NANDFlash控制器产生的,所以在此必须禁用NANDFlashECC。因此修改/drivers/mtd/nand/S3C2410A找到S3C2410Achip->eccmode=NAND_ECC_NONE;(7)支持yaffs2文件系统为了使我们的内核支持yaffs及yaffs2文件系统,需要给内核打补丁,从网上下载yaffs2.tar.gz,解压并进入解压目录,执行命令:shpatch-ker.shc/usr/src/linux-2.6.14其中/usr/src/linux-2.6.14为内核的解压目录。(8)配置内核及编译主要是在makemenuconfig中设置和CPU以及设备驱动相关的配置信息,可以参考smdk2410开发平台上的有关配置,除了自定义的文件系统以及命令行参数外,基本上有关S3C2410A其中下列配置项必须选中。Devicedrivers>Multimediadevices><*>VideoForLinuxVideoForLinux是为了支持音视频设备编程内核提供标准接口。MemoryTechnologyDevices(MTD)><*>MemoryTechnologyDevices(MTD)support[*]MTDpartitioningsupport支持MTD分区,这样我们在前面设置的分区才有意义。[*]Commandlinepartitiontableparsing支持从命令行设置flash分区信息,灵活。Filesystems><>Secondextendedfssupport去除对ext2的支持Miscellaneousfilesystems>[*]YAFFS2filesystemsupport512byte/pagedevices[*]LetsYaffsdoitsownECCNetworkFileSystems><*>NFSfilesystemsupport保存退出,产生.config文件,由于本系统中的CS8900网卡和OV511的摄像头驱动Linux内核中默认包含,不另行编写。执行make,makezImage操作,然后在Linux源码的目录下可获得能够正确运行的内核映像zImage。7.2.4YAFFS2文件系统制作YAFFS2(YetAnothernandFlashFileSytem2)是专门针对NAND设备的一种文件系统。YAFFS2类似于JFFS/JFFS2文件系统,与YAFFS2不同的是JFFS1/2文件系统最初是针对NORFlash的应用场合设计的。而YAFFS2针对NANDFlash的特点采用增强的碎片回收和均衡磨损技术,大大提高了读写速度,延长了存储设备的使用寿命,可以更好的支持大容量的NANDFlash芯片。建立目录树:mkdir-p/home/rootfs/my_rootfscd/home/rootfs/my_rootfsmkdirbindevetchomelibmntprocsbinsystmprootusrmkdirmnt/etcmkdirusr/binusr/libusr/sbin制作yaffs2文件系统:mkyaffsimagemy_rootfsmy_rootfs.yaffs完成以上步骤以后,即将刚才生成的目录树制作成了YAFFS2文件系统。第八章模拟实现软件设计目前嵌入式开发用的最多的是Linux操作系统和C语言。Linux操作系统具有原码开放的优点,而且可以在几乎所有嵌入式微处理器上运行。C语言编制的程序具有很好的可移植性,程序易读易修改,有丰富的库函数支持。8.1获取短信内容模块获取短信内容模块包括两个子模块:接收短信和提取短信内容模块。接收短信模块必须借助网络借助SP服务才能完成,单独在PC机上是不能实现的。以下对这两个模块进行详细描述。8.1.1接收短信模块传统方式的手机短信发送和接收的流程是这样的:手机编辑好短信后,按照协议规定把短信打包,包内包含短信内容,目的地号码,编码格式,类型等信息,然后发送给基站,基站收到数据包后,把它转发给短信中心(MSC),短信中心再根据短信的目的地号码派发给此号码所在的基站,基站再发给手机终端。手机终端收到短信后按照协议规定的格式解码,然后提示用户收到短信。下载的程序包里有一个很重要的“postmsg30.h”文件,该头文件中包含了很多用户可能用到的函数声明,其中有一个函数的声明为:intGetMoMessage(constchar*username,/*短信帐号*/constchar*password,/*密码*/

温馨提示

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

评论

0/150

提交评论