1 引言
随着生活质量的提高,家居智能化已经成为当今时代的一种主流。如何更好的设计智能家居的整体性控制就显得越来越重要。由于ARM 和触摸屏的迅速发展,采用更好的GUI,实现友好的界面控制成为了可能;同时由于zigbee 无限传输技术的广泛应用,通过设计zigbee 的协议组网,使ARM 能轻易的通过的串口驱动程序实现智能家居的控制;同时,通过ARM 对万能遥控器的识别码的学习,实现了ARM 在智能家居上的多功能应用和智能家居的一体化控制。
2 系统设计概述
基于嵌入式智能家居的设计结构框图如图1 所示。主要包括以下几部分。Qt/E 及linux 系统、ARM9微处理器、zigbee 模块、语音模块、GSM 模块、串口和网络模块以及万能遥控器。
图1 智能家居设计结构框图
ARM9 微处理器采用Samsung S3C2440 CPU开发板,系统选择嵌入式linux 系统,其内核使用2.6.25.8 的内核,nandflash 采用256M 的内存。且由于arm 内核集成了多种外设控制模块的驱动程序,所以要对其进行必要的裁剪,串口用于连接zigbee模块。
Zigbee 采用TI 公司的CC24430 无线射频芯片,zigbee 有显著的低成本、低消耗、网络节点多等的无线传输功能,所以可以将一个zigbee 作为路由,通过一个zigbee 向多个zigbee 传输的功能,实现zigbee 的组网的,也有效的延长了zigbee 的传输距离。
网络模块采用CS8900A,通过连接路由器,实现远程登入。
3 系统软件设计实现
系统采用linux 作为 *** 作系统, 首先基于Qt/Embedded 进行图形界面的设计,再在宿主机上建立交叉编译环境,并制作yaffs *** 作系统,最后将嵌入式linux 系统移植到ARM9 开发板上。系统通过设计GUI 界面,实现通过触摸屏对智能家居的一体化控制[1]。文章软件部分包括嵌入式linux *** 作系统的移植、系统界面设计、串口驱动和zigbee 组网设计。
在ARM9 和zigbee 的传输过程中,有一个智能家居的单元端接口设置。为了区别于不同家庭之间的传输,首先ARM9 会有一个各自家庭的主机ID 号设置。在一个家庭的智能化控制上,给路由功能的zigbee 设计八个端口,每个端口有一个ID 号,然后其余的连接路由的zigbee 通过接受各自ID 号的分别传输信息,最后,这些zigbee 又分别设置各自的设备号,这样就去除了干扰,实现智能家居的单独控制。
3.1 触摸屏和Qt/Embedded 交叉编译环境的建立
在建立交叉编译环境之前先要进行linux 系统移植,Linux 系统的移植主要主要包括BootLoad 移植、内核移植与裁剪以及文件系统移植等部分[2]。文章选用u-boot 作为BooLload 引导程序。Linux 内核由于其公开性,很容易实现其移植和裁剪。文件系统这采用yaffs 根文件系统。
触摸屏和Qt/Embedded 的交叉编译环境的建立是linux 系统移植的关键部分。其步骤如下。
第一步是进行触摸屏校正,设计中采用TIslib-1.4作为触摸屏的校正。其分为两步:(1)编译TIslib,产生校正文件。(2)是下载校正文件和库文件到arm 板,实现五点校正。其编译过程如下。
第二步是Qt/E 的交叉编译。设计中Qt/E 采用qt-embedded-linux-opensource-src-4.5.0.同时为了方便程序开发,需要安装X86 版和ARM 版。
先在PC 上使用x86 版和qvfb 开发,完成以后再使用ARM 交叉编译放到开发版上运行。所以需要先解压一次,然后重命名为qt-embedded-linux-opensource-src-4.5.0-x86;再解压一次,并重命名为qt-embedded-linux-opensource-src-4.5.0-arm.Qt/E 的编译过程如下。
最后,设置交叉编译环境变量,进入系统控制平台vi /etc/profile.写入环境变量如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)