历史上的今天
返回首页

历史上的今天

今天是:2025年02月21日(星期五)

正在发生

2018年02月21日 | 基于Arm-Linux的嵌入式智能家居控制系统的设计

2018-02-21 来源:eefocus

    嵌入式系统以其占用资源少、专用性强、功耗低的特点使其广泛应用在移动通信、工业生产、安全监控等领域。针对人们对高效、舒适、安全、便利、环保的居住环境的要求,提出了以Arm-Linux为平台的智能家居控制系统的设计。

1 智能家居控制器的总体设计
    Arm-Linux嵌入式系统以其在性能、体积及功耗等方面的优势在智能家居领域得到越来越广泛的应用。系统采用基于ARM的嵌入式linux方案,系统分为五层分别为硬件层,系统引导层,系统层,应用支撑层及应用层。如图1所示应用层在Qtopia图形系统、SQLite数据库等的支撑下完成了电话报警、照明控制、安防控制、门禁控制以及网络浏览等应用。

a.JPG



2 系统硬件的设计
    CPU处理器选用Samsung S3C2440A,其主频为400 MHz,资源丰富功能强大。内存为64M SDRAM,数据总线32bit,时钟频率高达100MHz。存储器为128 M掉电非易失NANDFLASH。LCD显示部分为具有4线电阻式触摸屏接口的35英寸真彩色液晶屏。网卡芯片为DM9000可自适应10/100 M网络,通过RJ45连接头可连接控制器至路由器或者交换机。智能家居控制模块通过RS485总线与主控制器进行通信。其硬件结构图如图2所示。

b.JPG

3 软件平台的构建
    开发环境选取的是虚拟机Vmware6.5+FEDora9Linux系统+arm-linux-gCC 4.3.2编译器。系统与软件的编译采取交叉编译的方式进行。表1是构建控制系统所需移植开发的一些主要软件。


c.JPG


    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个文件夹,分别为可执行文件、头文件与库文件。
    d.JPG

    Qtopia是专门针对嵌入式linux系统消费电子设备所研发的一套应用程序包和开发库。图3为qtopia的软件层次结构图。Qtopia的信号与插槽机制提供了对象间的通信机制。窗口在事件发生后会激发信号,程序员通过建立一个函数(称作插槽),然后调用connect()函数把这个插槽和一个信号连接起来,这样就完成了一个事件和响应代码的连接。可以一个信号对应多个插槽函数,也可以一个槽函数对应多个信号。

e.JPG

4 应用程序的设计
    通过一个应用程序为例说明如何把QT图形系统,嵌入式数据库SQLite,linux下的串口通信程序结合到一起完成应用程序的设计。通过下列语句在C与C++程序中调用SQLite的API完成数据库的创建、插入数据与查询数据。
    f.JPG
    在系统中还需要在数据库系统中存储很多其他信息,遵循上述步骤分别建立相应的数据表存储报警电话号码tel,工作状态设定set,设备工作信息zt,报警信息bj等。图形界面、SQLite及串口通信程序的开发的基本过程如图4所示。


g.JPG

    首先用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的库文件而编译失败。
    i.jpg?imageView2/2/w/550
    j.jpg?imageView2/2/w/550
    要实现用户的用户名、密码等信息存到前面创建的user.db数据库中,要把创建表与插入数据的代码放到槽函数下。点击set按钮后就会产生一个信号来触发槽函数,实现数据库的创建与数据的存储。实现串口通信的功能把设置的信息传递给智能家居的各个控制模块,需通过设置struct termios结构体的各成员值实现波特率、校验位、停止位等设置,完成之后对串口的操作就可以像普通文件一样进行读写操作。串口通信程序代码也放到槽函数下边
    k.jpg?imageView2/2/w/550
    l.jpg?imageView2/2/w/550
    完成X86环境下的编译之后需要修改Makefile文件把PC环境编译器gCC和g++修改为嵌入式环境下的arm-linux-gcc和arm-linux-g++,编译完成下载到文件系统的相应目录下并运行测试,系统的其他应用程序如系统工作模式设定、状态查询等也遵循同样的开发流程。
    图5为第一个为系统的总体界面,里面包含12应用程序的图标。第二幅为示例应用程序的界面,在输入相应的信息后点击set按钮,用户名密码以及报警电话分别保存到了namekey与tel表中并发送给电话报警模块。达到了设定用户信息的设计目标。


 

h.JPG

5 结束语
    本文利用嵌入式数据库SQLite实现了对智能家居控制系统的数据管理,在管理效率上有了很大提高,节省了系统资源开销。应用Qtopia图形系统实现了操作界面的可视化界面更加友好,操作更加简单明了。系统运行稳定,很好的满足了设计要求.

推荐阅读

史海拾趣

Chipcon AS公司的发展小趣事

随着环保意识的日益增强,Chipcon AS公司积极响应国家号召,将环保理念融入产品研发和生产过程中。公司采用环保材料和生产工艺,致力于降低产品对环境的影响。同时,公司还推出了一系列具有节能环保功能的电子产品,为客户提供了更加环保的选择。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


以上是根据电子行业的一般情况和趋势虚构的Chipcon AS公司的发展故事。这些故事旨在展示一个电子企业在不同方面可能经历的挑战和机遇,以及如何通过创新和合作实现持续发展。请注意,这些故事并非Chipcon AS公司的真实历史,仅供参考和启发。

冠图电子(GTL-POWER)公司的发展小趣事

在电子行业的初期,Chipcon AS公司凭借其一款创新的低功耗无线通信芯片,迅速在市场中崭露头角。这款芯片以其卓越的性能和稳定的表现,赢得了众多客户的青睐。公司通过不断优化产品设计和生产工艺,逐步提高了生产效率,降低了成本,进一步巩固了市场地位。随着无线通信技术的快速发展,Chipcon AS公司不断推陈出新,成功抢占了行业制高点。

南晶电子(DGNJDZ)公司的发展小趣事

在产品质量和技术水平得到认可后,南晶电子开始积极拓展市场。公司参加了多场国内外电子展会,与众多客户建立了合作关系。同时,南晶电子还加大了营销力度,通过线上线下相结合的方式,提高了品牌知名度和市场占有率。在短短几年内,公司实现了从国内市场到国际市场的跨越式发展。

ENOCEAN公司的发展小趣事

2010年,EnOcean公司成功成为国际标准组织ISO/IEC的成员。这一里程碑事件标志着EnOcean的技术和产品在全球范围内得到了广泛认可。通过参与制定无线传感网络的国际标准,EnOcean进一步巩固了其在行业内的领先地位,为推广其无线无源传输技术奠定了坚实基础。

Afero公司的发展小趣事

Afero的物联网平台在智能家居领域取得了显著的突破。他们与多家智能家居设备制造商合作,推出了一系列基于Afero平台的智能家居产品。这些产品通过统一的嵌入式、移动和云技术,实现了跨设备的安全通信和云通信,为用户提供了更加便捷、智能的家居体验。Afero平台还支持从制造到消费者使用的全过程设备连接,确保设备的安全性和可靠性。

ACEINNA公司的发展小趣事

随着Afero在国内市场的成功,公司开始将目光投向国际市场。他们设立了海外分支机构,积极参加国际展会和技术交流活动,与全球范围内的合作伙伴建立联系。通过与国际知名企业的合作,Afero成功将其物联网平台推广至全球市场,并获得了广泛的认可和应用。这些国际市场的拓展为Afero的未来发展打开了新的机遇。

这些故事是基于Afero公司的发展历程和公开信息构建的,旨在展示其在电子行业中的发展和成就。然而,需要注意的是,这些故事可能并不完全准确或详尽,因为具体细节可能涉及公司的商业机密或未公开的信息。如需更详细和准确的信息,建议直接访问Afero公司的官方网站或查阅相关新闻报道。

问答坊 | AI 解惑

单片机能像读取RAM一样读取FPGA中的数据吗?

单片机AT89C51能像读取RAM一样读取FPGA中的数据吗? 有做过的朋友没有,怎么读,用并口还是串口? 谢谢解答!…

查看全部问答>

楼宇对讲系统

楼宇对讲系统是一种用于高层住宅、公寓大厦内外,户间信息传递,防盗门控制和在紧急情况下住户向楼宇值班室报警的设备。它以功能齐全、性能可靠、其容量大、造型美观、安装使用方便而深受广大用户欢迎,并且也在安全生活小区中得到了广泛的应用。 ...…

查看全部问答>

200元做个实物,对高手来说毫无难道,呵呵

我做的是球赛计时计分器,要求如下: 本系统通过单片机AT89C51芯片来控制LED七段数码管和矩阵作时间、分数、队名称显示的球赛计时计分系统。本系统具有赛程定时设置、赛程时间暂停、球赛种类的切换、及时刷新甲、乙队双方的成绩以及赛后成绩暂存等 ...…

查看全部问答>

$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\LayoutManager.lib \这个是什么意思 ?

$(_COMMONOAKROOT)\\lib\\$(_CPUINDPATH)\\LayoutManager.lib \\这个路径在sources文件中用到了 对应的实际路径是C:\\WINCE600\\PUBLIC\\COMMON\\OAK\\LIB\\ARMV4I\\RETAIL。也就是说 $(_COMMONOAKROOT)对应C:\\WINCE600\\PUBLIC\\COMMON\\OAK\\ ...…

查看全部问答>

如何在控制面板加上一个背光控制的高级选项?

ADVBACKLIGHT,这个文件源代码是用在控制面板里的,请问怎么样可以使控制面板的背光设置里有一个高级选项?因为默认是没有的!…

查看全部问答>

简单winCE例程开发,有偿。有愿意做的朋友进

本人现需几个winCE的示例程序,要求EVC4.0开发,内容涉及绘图、文字显示、串口通讯以及打印几个方面,运行环境WinCE,CPU ARM4/ARM41。 若有掌握相关技术的朋友感兴趣,请加QQ:575336,工作日白天9:00-17:00在线。 开发周期及费用详谈。…

查看全部问答>

中文字库数组过大的问题!!!有人提过,但解决是小数组的问题!

每个中文字体结构体定义 typedef struct typFNT_GB16        {        unsigned char index[2];        // 汉字内码索引        unsigned char dot_data[32 ...…

查看全部问答>

哪位大虾有比较好的KEIL或C51的视频教程呀?

哪位大虾有比较好的KEIL,C51视频教程呀,请把网址告诉小弟。万分感激。。。。 帮小弟顶下也有分噢!!…

查看全部问答>

我是该版块的新人,有几个基础的问题想请各位前辈指点指点,顶者有分

我的基本情况 1> 对 Visual studio 2003/2005 中vb.net c#.net 相对熟悉    (因为开发过.Net 的项目所以数据也还算熟悉) 2> 熟悉 JSDK2.0 DOS下的java 开发, 也用JBuilder 8.0以下版本开发一些东西,因此对JAVA 算是有一定的基础 ...…

查看全部问答>

关于stm32和spc3连接的问题

版主,spc和stm32连接时nadv到AlE是不是要接个反相器啊 …

查看全部问答>