基于arm的智能家居核心控制器的设计_第1页
基于arm的智能家居核心控制器的设计_第2页
基于arm的智能家居核心控制器的设计_第3页
基于arm的智能家居核心控制器的设计_第4页
基于arm的智能家居核心控制器的设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第 1 页 共 46 页基于 ARM 的智能家居核心控制器摘 要随着人民物质生活水平的提高,人们对家居生活质量有着越来越高的要求。现如今网络通信技术、计算机与嵌入式技术的生活化,出现了可以在下班途中提前煮饭的厨房系统等智能家居产品。这些产品在方便人们的生活的同时,也提出了一个问题,如何对智能家居系统进行统一的管理和控制,使人们的生活更加舒适、幸福。本文通过室内网络控制智能家居为研究对象,介绍了目前国内外智能家居系统的发展。根据现今智能家居系统的优缺点比较,设计了自己的一套智能家居系统研究方案。系统以中央控制器为核心,Wi-Fi 无线网络为通信手段,以嵌入式系统为依托,实现了自己的系统。使得用户在室内可以方便的通过手机去控制家具设备。本课题用的总控制器为 S3C2440 ARM 微处理器为开发平台,外扩展需要的模块功能,采用 linux 操作系统为软件平台,建立了交叉开发环境,移植Bootloader 引导程序,选用了跨平台的 Qt 编程语言书写用户界面,利用现有的网络资源,组成了一套完整的系统。最后,经过对平台的搭建及对系统的测试,中央主控制器能够与手机控制端和智能家居系统控制终端的连通及控制信号的接收与发送,基本实现了既定的目标要求。本文设计的使用手机控制的智能家居系统具有低成本、用户使用网络灵活的优点,为今后的家庭信息化研究具有一定的参考价值。关键字:智能家居;ARM;嵌入式 Linux。第 2 页 共 46 页ABSTRACTWith the improvement of peoples material life level, people have higher and higher requirements to the quality of home life. Now network communication technology, the daily life of the computer and embedded technology , appeared in his way to work early cooking kitchen systems and other Smart Home products.While these appliances making convenience and improving people, s home-living quality,it also raises a question that how to control Smart Home System effectively,make peoples life more comfortable and happy.In this paper,treat intelligent network control as the study,and describes the current development of smart home system an home and abroad. According to current comparative davantages and disadvantages of smatr home system,designs our own intelligent network. In the system,central controller is the core,and Wi-Fi wireless network is the means of communication,then rely on emedded systems.through the system ,user could control the furniture equipment via mobile phone. The subjects total controller is S3C2440 ARM microprocessor,using linux operating system as the softwareplatform,then establish the environment of develop and port Bootloader boot procedures.We select Qt programm to write the user inteface.Finally ,we set up the smart home system.Finally, after the construction of the platform and the system test, the central controller can control side and mobile phones and Smart Home System equipment terminals connected and control signal sending and receiving, basically achieved the established goals and objectives. In this paper , the design of the mobile phone control the Smart Home system has a low-cost, the user flexible network , which has a certain reference value for the study of family information in the future.Keywords:Smart Home ;ARM;Embedded Linux.第 3 页 共 46 页目录1 绪论 .11.1 引言 .11.2 课题研究的目的及意义 .11.3 国内外研究状况 .21.4 本课题研究的内容和创新点 .32 系统的总体设计与实现技术 .42.1 系统的总体设计方案 .42.2 Wi-fi 网络技术 .42.2.1 Wi-Fi 性能指标 .52.2.2 Wi-FI 的组网模式 .52.2.3 Wi-Fi 的工作方式模式 .62.3 系统开发平台的选择 .73 系统硬件的设计与实现 .83.1 系统硬件电路的组成 .83.2 功能模块的实现 .93.2.1 ARM 微处理器概述 .93.2.2ARM 微处理器指令结构 .93.2.3 Wi-Fi 模块 .103.2.4 NRF24L01 无线模块 .113.2.5 分控制器模块 .114 操作系统的实现与移植 .134.1 嵌入式 linux 系统环境的建立 .134.1.1 建立交叉编译环境 .134.1.2 配置 TFTP 和 NFS 服务器 .154.1.3 配置 minicom .184.2 Bootloader 的移植 .194.2.1 Bootloader 的概念 .19第 4 页 共 46 页4.2.2 Bootloader 的移植 .194.3 linux 内核移植 .204.3.1 linux 内核介绍 .204.3.2 linux 内核的移植 .215 系统应用软件的设计与实现 .235.1 Wi-Fi 模块功能的实现 .235.2 用户交互界面的实现 .255.2.1 Qt 的移植 .255.3 主控制器 arm 中 NRF24L01 驱动的实现 .275.4 智能家居控制系统子控制终端的实现 .306 系统性能测试 .326.1 系统整体实物 .326.2 系统模块测试 .326.3 系统测试结果 .35总结与展望 .37参考文献 .38致谢 .41第 5 页 共 46 页1 绪论1.1 引言随着人类社会的逐渐进步,科技水平的不断提高,越来越多的更加人性化的科技产品开始出现,其中在 21 世纪,嵌入式技术异常火热,它开始深入人们生活的的各个方面,衣食住行都有嵌入式技术的影子 。智能家居控制系统是当今社会的一大热门,如何能让自己居住的环境变的更加的智能,更加的人性化是长期以来科学家们一直研究的一个问题。智能家居系统在丰富了人们的娱乐生活及减轻人们家务负担的同时,也带来了系统操作繁琐以及难以科学管理等问题 1。目前大多数智能家居系统都不具备远程控制接口,而且使用的通信网络单一,这样给智能化控制特别是远程控制带来了很大的障碍,例如保洁系统的清扫机器人,可以设定它每天定时定点的打扫房屋,但如果我们突然要出差很久而来不及回家,就无法远程重新设定它的清洁时间或关闭它。因此,把这些智能家居子系统连接成一个网络,设计一个能与外界联系的中央主控制器,把各个智能家居子系统通过在家庭中组建网络连接到中央主控制器上,从而方便、有效的统一控制和管理。经过许多年的努力,智能家居的研究已经取得了很多的突破。在山西举行的全国科技博览会中,太原的罗克佳华工业集团正是凭借其智能家居产品在博览会上大放异彩。新兴的智能住宅实现了服务、信息和系统资源的高度共享,为住户提供一种更加安全、舒适、方便的智能化、信息化生活空间,但是,未来智能家居系统不只是实现提前烧开水、煮饭等简单的控制开关操作的功能,还可能用户只需按手机上的几个按钮就可以实现厨房系统的点餐功能,回到家就可以吃到美味的饭菜。因此,智能家居系统仍然处于一个不断研究探索的过程,需要不断地完善其功能,才能更好的适应社会未来的发展要求 2。1.2 课题研究的目的及意义本课题来源于 2012 年太原市大学生科技立项,它目的就是建立一个能够覆盖家庭内绝大多数家用电器的家电网络控制系统,即构建中央控制器,基于嵌入式Linux 系统,借助现在特别火热的 wifi 控制技术,利用安卓系统手机,下载编制第 6 页 共 46 页的 apk 手机软件,实现用户在室内轻松的控制家居环境。目前智能家居系统系统性价比低,实用功能少,安装调试复杂,成本费用高,一般的老百姓根本承受不起这个高档的奢侈品,而我们的系统应用在智能家居系统中,不仅实用功能多,且性价比高,系统稳定,扩展功能容易,为用户带来了全方位、高质量的家居服务,这对于未来创造一个舒适、方便、功能齐全的数字化家庭、提高家庭生活质量具有划时代意义。1.3 国内外研究状况在 90 年代末期智能家居开始风靡欧美,而这一时期智能家居才刚刚进入中国市场。在 2000 年前后包括海尔、海信、科龙、联想、清华同方一批国内科研机构和企业也推出了智能家居概念的产品,如海尔推出的“家居集成”概念、科龙与中科院自动化所以及美国亚利桑那大学工程系研制开发的“现代家居信息服务及智能集散控制系统”并推出了命为 DreamHouse 的智能家居系统; 由海信提出的“SmartE 一 Home”,清华同方倡导的“数字家园 e 一 Home夕等。2003 到 2004的时间里,住宅网络化基础不断完善,国内智能家居研发能力逐步提高,网络家电也开始规模化,各种政策、标准、联盟也相继成立或出台,推动整个产业的理性化和规范化发展 3。2005 年后,更加完善、更具规模的智能家居案例开始出现,这时的智能家居设计不止满足于部分子系统,而是能够实现更多功能的集成化的系统,实现丰富的可视对讲、灯光场景控制、远程控制、家庭安防等功能,还采用了智能中央空调、中央洗尘系统、地坪加热系统等等 4。07 年 7 月,由深圳科宝博洛尼、深圳自动化学会共同打造的智能家居生活体验馆在深圳亮相,其主要功能包括:AMX 中央融合控制系统、全系列智能灯光控制系统、 “枫叶”安防报警及远程监控系统、别墅内部对讲及背景音乐系统、指纹锁、家庭影院、电器控制及环境控制如空调、电动窗帘等智能系统。07 年 8 月,海信数字家庭体验中心在青岛开幕,这是一座集节能、环保、智能于一身的绿色住宅建筑。08 年在深圳建成的中国移动信息生活馆里面还设有专门的智能家居体验区。中国移动也对智能家居业务凯觑已久,特别是在 3G 牌照终于发放之后, 3G 智能家居也成为炒作的新热点 5。早期智能家居主要集中在北京、上海、广州、深圳等地,目前,智能家居向二三线城市蔓延,在其它一些二三线城市也都逐步建立起完善的智能家第 7 页 共 46 页居销售、安装体系。智能家居的未来发展会是什么样?说简单一点,智能家居最终的目的是让主人更多的思考,让智能家居系统更多按照主人的生活方式来服务主人;创造一个更舒适,更健康,更环保,更节能,更智慧的科技居住环境。1.4 本课题研究的内容和创新点本课题着力研究室内的家电控制系统,如何能用更简洁,更安全,更方便,更人性化的进行控制,是课题研究的一个准则。依据这个准则,系统主要分为三个部分,智能家居核心控制器,子系统终端控制系统,手机移动终端控制系统。采用 wifi 无线技术和 24L01 无线系统进行通信,采用 arm 作为核心控制器,采用MSP430F149 单片机作为子系统终端控制系统。为了更加的容易让人们熟悉和操作控制系统,专门写了现在最为流行的安卓 apk 软件,从而让控制变的更加简单。本课题创新点在以下两点:(1) 利用 wifi 技术,利用手机 apk 软件和中央核心控制器进行通信,摆脱了以前只能家居的按键控制器,让一切变的更加简单,也更加容易进行系统升级。(2) 采用嵌入式处理器和 Linux 操作系统,实现系统软硬平台的搭建,用户可以根据自身的需求对相应的模块进行删减,避免了传统智能家居中对于 PC 机的依赖。第 8 页 共 46 页2 系统的总体设计与实现技术2.1 系统的总体设计方案本课题设计的新型的控制智能家居系统是一款以 ARM 嵌入式微处理器为核心,通过家庭内部接入互联网构建 WIFI 无线网络,实现智能家居系统的室内控制。系统的总体结构设计分为硬件和软件两大块:硬件部分包括以 ARM 微处理器作为智能家居系统的中央控制器处理模块及各种功能的实现模块;软件部分包括移植嵌入式 Linux 操作系统和编写数据传输程序的应用软件的设计。系统的总体设计方案框图如图 2.1 所示。USB手机WIFI 网络智能家居系统ARM 中央控制器WIFI 模块分控制器分控制器智能家居子系统智能家居子系统NRF24L01图 2.1 系统总体设计框图从总体结构图可以看出,系统的整体功能为:用户在室内时,利用手机连接由 ARM 控制器发出的无线 wifi 信号,打开手机 apk 软件和 ARM 控制器进行通信,ARM 接收到信号,与既定协议进行比对,然后通过无线 NRF24L01 向智能家居子控制系统发送控制命令,从而控制家居设备的工作状态。2.2 Wi-fi 网络技术Wi-Fi 技术是目前最主流的无线网络标准,虽然标准在很久以前就已经制定第 9 页 共 46 页了,但是由于技术不成熟所导致的传输速度慢(遗失数据严重),使得市场接受程度偏低 6。不过自从英特尔公司向市场推出名为迅驰(Centrino)的无线整合技术后,整个无线网络市场又被重新挖掘出来。Wi-Fi 正逐渐走向成熟,下面就来介绍下这种逐渐被社会认可的技术的系统原理 7。2.2.1 Wi-Fi 性能指标表 2-1 性能指标比较标准 IEEE802.11b IEEE802.11g IEEE802.11a工作频段GHz 2.4 2.4,5 5数据速率 1,2,5.5,11 1,2,5.5,11,6,12,24;9,18,36,48,546,12,24,9,18,36,48,54覆盖范围 150-300 50-150 30现在无线网通信协议主要采用的标准是 IEEE802.11b、IEEE802.11a 和IEEE802.11g。表 2-1 是它们三者的比较在无线局域网市场中,802.11a 产品在国外使用广泛,在国内 802.11b 是无线局域网的主流标准,802.11g 由于速率高及与 802.11a 和 802.1lb 的兼容性受到了青睐 8。从发展来看,今后应采用双频三模(802.11abg)的产品。双频三模无线产品不但可工作在与 802.1la 相同的 5GHz 频段,还可与工作在 2.4GHz 的802.11b 和 802.1g 产品全面兼容,支持整个 802.11a,b,g 标准、完整互通性单一平台,实现无线标准的互联与兼容。2.2.2 Wi-FI 的组网模式根据无线接入点(AP)的功用不同,Wi-Fi 可以实现不同的组网方式,目前主要有点对点和基础架构两种模式。(1)点对点模式 Ad-hoc(Peer-to-Peer )点对点模式由无线站点组成,用于一台无线站点和另一台或多台无线站点的直接通信,该网络无法接入到有线网络中,只能独立使用。无需 AP,安全由各个客户端自行维护。点对点模式中的一个节点必须能同时“看”到网络中的其他节点,否则就认为网络中断,因此对等网络只能用于少数用户的组网环境,比如 48 个用户。点对点模式的组网如图 2.2 所示。第 10 页 共 46 页图 2.2 点对点模式(2)基础架构模式(Infrastructure)基础架构模式由无线接入点(AP)、无线站点(STA)以及分布式系统(DS)构成,结构如图 2.3 所示。I n t e r n e t图 2.3 基础架构模式无线接入点也称无线 hub,用于在无线 STA 和有线网络之间接收、缓存和转发数据,所有的无线通信都经过 AP 完成。无线访问点通常能够覆盖几十至几百用户,覆盖半径达上百米。AP 可以连接到有线网络,实现无线网络和有线网络的互联 9。2.2.3 Wi-Fi 的工作方式模式(1)被动型串口设备联网:被动型串口设备联网指的是,在系统中所有设备一直处于被动的等待连接状态,仅由后台服务器主动发起与设备的连接,并进行请求或下传数据的方式 10。典型的应用,如某些无线传感器网络,每个传感器终端始终实时的在采集数据,但是采集到的数据并没有马上上传,而是暂时保存在设备中。而后台服务器第 11 页 共 46 页则周期性的每隔一段时间主动连接设备,并请求上传或下载数据 11。此时,后台服务器实际上作为 TCP Client 端,而设备则是作为 TCP Server 端主要特性 2.4GHz, IEEE 802.11b/g 内部 PCB 天线,可选外部天线支持基于 AP 的网络(Infrastructure)/对等网络 Ad-Hoc (IBSS)/ 虚拟 AP 模式 12 。IPHONE/IPAD/Android 设备也能不用 AP/路由器而直接连接支持 802.11i 加密方式:WEP-64/128,TKIP (WPA-PSK) and AES(WPA2-PSK)MCU 内置 TCP/IP 协议栈 3 路 UART 串行接口(其中 1 路支持 DMA 模式, 全功能串口,波特率最高支持921.6Kbps)SPI 接口、I2S/PCM 接口 Digital Video 端口高达 24 个 GPIO 口(部分GPIO 将会和上述接口复用)全功能 TCP/IP 协议栈, TCP/IP 传输带宽达到 10Mbps以上支持三种带有定时自动唤醒功能的 WiFi 节能模式单 3.3V 供电工作温度范围: 0C +70C 尺寸:25 mm x 45 mm(内部 PCB 天线 )/ 25 mm x 39 mm(外部天线)。(2) 主动型串口设备联网:主动型串口设备联网指的是由设备主动发起连接,并与后台服务器进行数据交互(上传或下载) 的方式。典型的主动型设备,如无线 POS 机,在每次刷卡交易完成后即开始连接后台服务器,并上传交易数据 13。2.3 系统开发平台的选择本课题控制系统的软硬件开发平台选择如下:(1)选择 Linux 作为嵌入式操作系统。Linux 实时操作系统是开源的,用户可以无偿的得到内核源码,而且可以任意地修改和补充它们,再加上丰富的驱动代码容易获取,降低了开发难度。(2)选择 S3C2440 作为嵌入式处理器。开发板选用广州友善之臂计算机科技有限公司的 Mini2440,CPU 处理器是 Samsung S3C2440,主频 400MHz,最高533Mhz。内部采用了 ARM 公司研制的 ARM920T 微处理器,扩展了一片 32 位、64M 的 SDRAM 内存和一片 32 位、64M 的 NADA FLASH 存储,还扩展了很多外围接口和设备 14。(3)选择用 Qt 来开发图形界面程序。Qt 是一个跨平台的 C+图形用户界面库,代码效率高,上手快,还有可以跨平台使用,扩展性好。第 12 页 共 46 页3 系统硬件的设计与实现3.1 系统硬件电路的组成本系统设计的手机控制的智能家居系统旨在为智能家居建立一个嵌入式开发平台。在此平台上,设计者可以根据自身的需要轻松且方便地进行功能的增加或删减。系统的总体硬件设计可以分为两大部分:智能家居系统主控制器和功能子模块。其中,作为智能家居系统主控制器的处理器模块是整个硬件电路功能实现的核心,本章将重点进行介绍。其它硬件资源主要有:通信接口模块(RS232、USB) 、大容量 NADA Flash 闪存和 SDRAM 内存存储器模块、WIFI 通信模块、无线模块、家电设备控制模块、电源管理模块、LCD 及触摸屏模块。系统的总体硬件模块电路如图 3.1 所示。S3C2440ARM 芯片NADA Flash控制器NADA Flash存储控制器SDRAMUSB Host WIFI 模块USB Slave PC 机电 源 模 块LCD控制器 LCDGPIOMSP430F149芯片 智能家居系统无线模块无线模块图 3.1 硬件电路结构图第 13 页 共 46 页从框图中可以看出,主控制器芯片为 ARM 芯片,其中分别用 GPIO 口连接NRF24L01 无线模块, USB 口连接 wifi 模块,串口模块接电脑模块, lcd 接口接lcd 模块。程序选择从 SDRAM 中运行,在运行过程中,ARM 会将 SDRAM 中的二进制可执行程序搬进 NADA FLASH 中运行。子控制系统的控制器选择MSP430F149 芯片,他接有 NRF24L01 无线模块,用来和主控制器通信,IO 口用来接被控制家电模块。3.2 功能模块的实现3.2.1 ARM 微处理器概述ARM 即 Advanced RISC Machines 的缩写,它有 3 个含义:一是从事嵌入式微处理器开发的高科技公司的名字;二是代表一种低功耗、高性能的 32 位RISC(精简指令系统)处理器的技术;三是代表一种微处理器产品 23。ARM 处理器以低功耗、低成本、实用性强为特点,并以优异的产品性能著称于世 15。目前,基于 ARM 技术的微处理器应用占据了 32 位 RISC 处理器 75%以上的市场份额,ARM 技术正在逐步渗入到我们生活的各个方面。本系统采用 ARM920T 系列的 S3C2440 芯片为主处理器,它的低功耗、高性能、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。它有以下特点:采用 1.1MIPS/MHz 的哈佛总线结构,分别由取指、解码、执行、存储和写操作等 5 级流水线组成,可以作为单独内核嵌入到其他复杂设备中;支持 16KB 的指令 Cache 和 16KB 数据 Cache, 指令和数据处理能力更高;支持 32 位的高性能ARM 指令集和 16 位高代码密度 Thumb 指令集;内部有 32 位的高速微控制总线(AMBA)接口;加强的 ARM 体系结构 MMU 用于支持 Linux、Windows CE 和EPOC32 等多种常用嵌入式操作系统 16。3.2.2 ARM 微处理器指令结构ARM 微处理器具有 ARM 和 Thumb 两种指令集。从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种工作状态之间进行切换。第一种为 ARM 指令状态,此时处理器执行 32 位的字对齐的 ARM 指令,该指令具有字节、半字、字带符号或不带符号的数据传送能力。第二种为 Thumb 指令状态,此时处理器执行 16 位的、半字对齐的 Thumb第 14 页 共 46 页指令。Thumb 指令集为 ARM 指令集的功能子集,但与等价的 ARM 代码相比较,可节省 30%40%以上的存储空间,同时具备 32 位代码的所有优点。图 3.2 ARM 处理器中寄存器示意图3.2.3 Wi-Fi 模块本系统 WIFI 模块选用的是深圳市卓力合电子技术有限公司的 WIFI 无线模组LH-1031N 芯片,它是专门为实现嵌入式系统的无线局域网通信应用而设计的一款USB 接口的 WIFI 模块 17。LH-1031N 模块的局域网通信功能是由 Ralink 的 RT3070WMAC/BB 部件实现,收发功能由 RT3070 实现,模块还内置高增益放大器,完全实现 IEEE802.11b/g 标准,为用户提供了 6 针连接器支持 USB2.0 信号。工作频率为 2.4002.4835GHz,最高通信速率可达 150Mbps,支持 UDP、TCP 等多种网络协议,支持点对点和基础架构两种组网模式。S3C2440 的 USB Host 接口第 15 页 共 46 页与之连接进行数据的传输。其结构框图如图 3.3 所示。U S B C o n n e c t o rV C C ( 5 V )D A T A +D A T A -G N DU S B I n t e r f a c eB a s e b a n dR FT r a n s m i t t e rM A C /P a c k e t B u f f e r /E n c r p t i o n E n g i n eR FR e c e i v e rU S B W i F i a d a p t e rT X C O N T R O LE X T E R N A L L E DR T 3 0 7 05 V / 3 . 3 V3 . 3 V / 1 . 8 VP AR FS WE x t e r n a l a n t e n n a2 . 4 1 2 2 . 4 8 3 5 G H zl - P E XR e c e p t a c l e图 3.3 WIFI 无线模组 LH-1031N 芯片结构框图但是,LH-1031N 芯片不能直接与无线局域网相连,还需要外接天线。天线选用美国 Airgain 公司的 N2420 型号的嵌入式天线,该天线提供了一种高效率,低增益的嵌入式解决方案,能适应大部分的 WLAN 接入点,路由器和网关等。3.2.4 NRF24L01 无线模块NRF24.L01 是一款新型单片射频收发器件,工作于 2.4 GHz2.5 GHz ISM 频段 18。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型 ShockBurst 技术,其中输出功率和通信频道可通过程序进行配置。NRF24L01 功耗低,在以-6 dBm 的功率发射时,工作电流也只有 9 mA;接收时,工作电流只有 12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。其中 NRF24L01 无线模块与单片机有两种接口方式,一种是 I/O 接口模式,一种是 SPI 接口模式,本课题采用的是 SPI 接口方式进行通信。第 16 页 共 46 页3.2.5 分控制器模块本课题的分控制器系统选用 MSP430 单片机,MSP430 系列单片机是美国德州仪器(TI) 1996 年开始推向市场的一种 16 位超低功耗,具有精简指令集(RISC )的混合信号处理器( Mixed Signal Processor) 。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案 19。该系列单片机多应用于需要电池供电的便携式仪器仪表中。中央主控制器和分控制器模块间采用 NFR24L01 无线通信模块进行通信。NFR2401 是单片射频收发芯片,工作于 2.42.5GHz ISM 频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。在 ARM 系统中,通过编写 NRF24L01 驱动,植入其中的嵌入式系统;MSP430F149 则直接通过配置寄存器编写 NRF24L01 驱动。SPINFR24L01Flash Memory电源通用 I/O智能家居系统图 3.4 分控制器硬件结构组成图第 17 页 共 46 页4 操作系统的实现与移植4.1 嵌入式 linux 系统环境的建立在进行嵌入式开发的时候,它与在 PC 机上开发应用程序时可以在上边编辑、编译和调试以后,程序直接上 PC 机的系统上运行不同,嵌入式的系统就是一个空白的系统,什么也没有。由于嵌入式系统硬件上的资源十分有限,一般不能安装发行版的 Linux 系统。例如,Flash 存储空间很小,没有足够的安装空间;或者处理器很特殊,也没有发行版的 Linux 系统可用。所以需要专门为特定的目标板定制 Linux 操作系统,这必然需要相应的开发环境。于是人们想到了交叉开发模式。交叉开发模型如图 4.1 所示。各种连接方式下载内核映像挂接 NFS 文件系统HOST TARGET内核映像根文件系统内核映像图 4.1 交叉开发模型图 4.1 所示中,TARGET 就是目标板,HOST 是开发主机,就是通常我们所说的 PC 机,它们之间通常使用串口、以太网接口、USB 接口以及 JTAG 接口等连接方式。在开发主机上,可以安装开发工具,编辑、编译目标板的 Linux 引导程序、内核和文件系统,然后在目标板上运行。通常这种在主机环境下开发,在目标板上运行的开发模式叫做交叉开发。本课题采用 linux 系统开发环境。4.1.1 建立交叉编译环境在前一节里介绍了交叉开发环境的概念,并已经建立了连接。而交叉编译是嵌入式开发过程中一项重要技术,简单的说,就是在一个平台上生成另一个平台第 18 页 共 46 页上的可执行代码。交叉编译的引入主要是由于不同架构的 CPU 的指令集不相同,由于开发主机是基于 X86 体系的 PC 机,要进行交叉编译,就需要一个叫交叉编译工具链(cross compilation tool chain)的工具编译出的代码能在 ARM 体系结构的目标板上运行。交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,主要由 binutils、gcc 、和 glibc 三部分组成。其中 binutils 主要用于生成一些辅助工具,如 objdump、as、ld 等;gcc 用来生成交叉编译器的,主要生成arm-linux-gcc 交叉编译工具;glibc 主要是提供用户程序所使用的一些基本的函数库。从网络上下载交叉编译工具链压缩包 arm-linux-gcc-4.4.3.tar.gz,将其放到Linux 系统下的主目录下,然后在主目录找到压缩包,并执行解压命令:# sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz C /命令完成后,arm-linux-gcc 会装入/home/songwei/opt/FriendlyARM/toolschain/4.4.3目录里,如图 4.2 所示。把/home/songwei/opt/FriendlyARM/toolschain/4.4.3/bin 这个路径添加到 PATH环境变量中,将以下添加到/.bashrc 启动脚本:export PATH=$PATH:/home/songwei/opt/FriendlyARM/toolschain/4.4.3/bin为使环境变量生效,执行以下命令:#sudo source /.bashrc确认交叉编译环境已经建立,执行指令:#arm-linux-gcc -v出现如图 4.3 所示的信息,就说明交叉编译环境已经安装成功。第 19 页 共 46 页图 4.2 arm-linux-gcc 安装路径图 4.3 交叉编译环境安装成功信息4.1.2 配置 TFTP 和 NFS 服务器1.配置 TFTP 服务器简单文件传输协议 TFTP(Trivial File Transfer Protocol)是基于 UDP 传输的,没有传输控制,所以对于大文件的传输是不可靠的。不过正好适合目标板的引导程序,因为协议简单,功能容易实现 20。当然,使用 TFTP 传输之前,需要驱动目标板以太网接口并且配置 IP 地址。配置 TFTP 步骤如下:(1)安装 TFTP 所需的软件。首先需要安装 tftp-hpa,tftpd-hpa ,前者是客户第 20 页 共 46 页端,后者是服务程序,在终端下输入:#sudo apt-get install tftp-hpa tftpd-hpa安装好 tftp-hpa 和 tftpd-hpa 后还需要安装 xinetd,在终端下输入:#sudo apt-get install xinetd(2)配置相关服务文件。进入根目录下的 etc 文件夹(cd /etc/) ,首先看目录中有没有一个 xinetd.conf 文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:# Simple configuration file for xinetd # Some defaults, and include /etc/xinetd.d/defaults# Please note that you need a log_type line to be able to use log_on_success ont-size: 12pt; # log_type = SYSLOG daemon info includedir /etc/xinetd.d(3)配置 TFTP 服务器。执行命令:sudo vi /etc/default/tftpd-hpa 。将内容改为:# /etc/default/tftpd-hpa TFTP_USERNAME=tftpTFTP_DIRECTORY=/tftpboot(4)进入 xinetd.d 文件夹(cd xinetd.d ) ,新建一个 TFTP 文件,内容如下:service tftpdisable = nosocket_type = dgramprotocol = udpwait = yesuser = root第 21 页 共 46 页server = /usr/sbin/in.tftpdserver_args = -s /tftpbootper_source = 11cps =100 2其中 server_args 一行是配置服务器的文件存放的位置,就是进行 TFTP 传输的时候,都是从该文件夹中搜索文件的。(5)修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹。以我配置的文件,创建一个文件夹(sudo mkdir /tftpboot) ,然后把它可以设置成访问权限最宽松的(sudo chmod 777 /tftpboot) ,也可以设置成合适的权限。(6)重启服务器。当配置好 TFTP 的配置文件后,需要重新启动一下xinetd,在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入 sudo /etc/init.d/xinetd restart,重启服务。这样 TFTP 服务器就建立好了。2.配置 NFS 服务器网络文件系统 NFS(Network File System)最早是 SUN 开发的一种文件系统。NFS 允许一个系统在网络上共享目录和文件 21。通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,这极大地简化了信息共享。Linux 系统支持 NFS,并且可以配置启动 NFS 网络服务。网络文件系统的优点正好适合嵌入式 Linux 系统开发。这样可以方便地运行和调试应用程序。配置 NFS 服务器步骤如下:(1)进行 NFS 服务器端和客户端的安装。执行以下命令:#sudo apt-get install nfs-kernel-server nfs-common portmap安装客户端的作用是可以在本机进行 NFS 服务的测试。(2)配置 portmap。输入命令:# sudo dpkg-reconfigure portmap 运行后选择“否” 。(3)配置挂载目录和权限。输入命令:#sudo vi /etc/exports第 22 页 共 46 页在最后加一行程序/nfsboot *(rw,sync) 。/nfsboot 是 NFS 的共享目录,*表示任何 IP 都可以共享这个目录,你可以改为受限的 IP,rw 表示的是权限。(4)在根目录下创建 nfsboot 目录。输入命令:#sudo mkdir nfsboot#sudo chomd 777 /nfsboot(5)重启 NFS 服务器。输入命令:#sudo /etc/init.d/nfs-kernel-server restart#sudo /etc/init.d/portmap restart(6)测试。尝试一下挂载本地磁盘,我的 Linux 系统 IP 地址为28,将/home/nfsboot 挂载到/mnt$sudo mount 28:/nfsboot /mnt运行$df 查看/mnt 目录下有本地磁盘所有的文件和目录,说明 mount 成功,NFS 配置成功。4.1.3 配置 minicomminicom 是 Linux 下串口通信的软件,它与 Windows 系统的超级终端主要功能是一样的 22。这里是为了进行嵌入式设备的通信和调试。minicom 的优点是对字符的显示支持比较好,没有乱码的出现。配置 minicom 的过程如下:(1)安装 minicom,输入命令:#sudo apt-get install minicom(2)minicom 的配置。由于 mini 不是图形窗口的工具,使用 minicom

温馨提示

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

评论

0/150

提交评论