嵌入式体系以其占用资源少、专用性强、功耗低的特色使其广泛运用在移动通讯、工业生产、安全监控等范畴。针对人们对高效、舒适、安全、便当、环保的寓居环境的要求,提出了以Arm–Linux为渠道的智能家居操控体系的规划。
1 智能家居操控器的整体规划
Arm-Linux嵌入式体系以其在功用、体积及功耗等方面的优势在智能家居范畴得到越来越广泛的运用。体系选用依据ARM的嵌入式linux计划,体系分为五层别离为硬件层,体系引导层,体系层,运用支撑层及运用层。如图1所示运用层在Qtopia图形体系、SQLite数据库等的支撑下完结了电话报警、照明操控、安防操控、门禁操控以及网络阅读等运用。
2 体系硬件的规划
CPU处理器选用Samsung S3C2440A,其主频为400 MHz,资源丰富功用强大。内存为64M SDRAM,数据总线32bit,时钟频率高达100MHz。存储器为128 M掉电非易失NANDFLASH。LCD显现部分为具有4线电阻式触摸屏接口的35英寸真彩色液晶屏。网卡芯片为DM9000可自适应10/100 M网络,经过RJ45衔接头可衔接操控器至路由器或许交换机。智能家居操控模块经过RS485总线与主操控器进行通讯。其硬件结构图如图2所示。
3 软件渠道的构建
开发环境选取的是虚拟机Vmware6.5+fedora9Linux体系+arm-linux-gcc 4.3.2编译器。体系与软件的编译采纳穿插编译的方法进行。表1是构建操控体系所需移植开发的一些首要软件。
4 运用程序的规划
经过一个运用程序为例阐明怎么把QT图形体系,嵌入式数据库SQLite,linux下的串口通讯程序结合到一同完结运用程序的规划。经过下列句子在C与C++程序中调用SQLite的API完结数据库的创立、刺进数据与查询数据。
在体系中还需求在数据库体系中存储许多其他信息,遵从上述进程别离树立相应的数据表存储报警电话号码tel,作业状况设定set,设备作业信息zt,报警信息bj等。图形界面、SQLite及串口通讯程序的开发的根本进程如图4所示。
Uboot是专门针对嵌入式Linux体系规划的开源bootloader,其使命是初始化处理器及外设硬件资源并引导操作体系。内核为linux2.6.3 2,这版供给了更多的驱动程序以及API,调用起来愈加的便利。在内核中要添加对帧缓存frambuffer的支撑,图形体系需求它的支撑。文件体系运用Yaffs2,以合作2 K每页的大页存储器。根文件体系选用Busvbox1.13.3,装备编译完之后会生成bin和sbin目录以及linuxrc文件,然后体系就具有了体系以及文件办理的相关指令。移植Boa服务器完结了嵌入式服务器的功用。
SOLite是面向嵌入式体系的数据库,编译完结后十分小只有几百k,支撑2T的数据记载。在嵌入式体系中能够有力的减小运用程序办理数据的开支。下列句子装备编译器与编译途径并进行装置。在装置目录下生成bin、include及lib 3个文件夹,别离为可执行文件、头文件与库文件。
Qtopia是专门针对嵌入式linux体系消费电子设备所研制的一套运用程序包和开发库。图3为qtopia的软件层次结构图。Qtopia的信号与插槽机制供给了方针间的通讯机制。窗口在事情发生后会激起信号,程序员经过树立一个函数(称作插槽),然后调用connect()函数把这个插槽和一个信号衔接起来,这样就完结了一个事情和呼应代码的衔接。能够一个信号对应多个插槽函数,也能够一个槽函数对应多个信号。
首先用Qt Desinger依据体系要求规划图形界面,树立槽函数开槽而且经过句子connect(PushButtonl,SIGNAL(clicked()),this,SLOT(set_userandphone()));树立信号与槽函数的衔接。槽函数需求依据规划的功用需求编写。用UIC与MOC东西生成文件user.h、user.cpp及完结信号与插槽功用的moc_user.cpp程序,由PROGEN与TMAKE生成工程文件user.pro与Makefile。user.cpp中有SQLite数据库代码,要把库途径加到Makefile库文件的查找途径中否则会由于找不到SQLite的库文件而编译失利。
要完结用户的用户名、暗码等信息存到前面创立的user.db数据库中,要把创立表与刺进数据的代码放到槽函数下。点击set按钮后就会发生一个信号来触发槽函数,完结数据库的创立与数据的存储。完结串口通讯的功用把设置的信息传递给智能家居的各个操控模块,需经过设置struct termios结构体的各成员值完结波特率、校验位、中止位等设置,完结之后对串口的操作就能够像一般文件相同进行读写操作。串口通讯程序代码也放到槽函数下边
完结X86环境下的编译之后需求修正Makefile文件把PC环境编译器gcc和g++修正为嵌入式环境下的arm-linux-gcc和arm-linux-g++,编译完结下载到文件体系的相应目录下并运转测验,体系的其他运用程序如体系作业形式设定、状况查询等也遵从相同的开发流程。
图5为第一个为体系的整体界面,里边包括12运用程序的图标。第二幅为示例运用程序的界面,在输入相应的信息后点击set按钮,用户名暗码以及报警电话别离保存到了namekey与tel表中并发送给电话报警模块。达到了设定用户信息的规划方针。
5 结束语
本文使用嵌入式数据库SQLite完结了对智能家居操控体系的数据办理,在办理功率上有了很大进步,节省了体系资源开支。运用Qtopia图形体系完结了操作界面的可视化界面愈加友爱,操作愈加简单明了。体系运转安稳,很好的满意了规划要求。