基于ARMcortexA8内核的嵌入式智能家毕业论文.docx

上传人:b****0 文档编号:18551568 上传时间:2023-08-19 格式:DOCX 页数:27 大小:189.12KB
下载 相关 举报
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第1页
第1页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第2页
第2页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第3页
第3页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第4页
第4页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第5页
第5页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第6页
第6页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第7页
第7页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第8页
第8页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第9页
第9页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第10页
第10页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第11页
第11页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第12页
第12页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第13页
第13页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第14页
第14页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第15页
第15页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第16页
第16页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第17页
第17页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第18页
第18页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第19页
第19页 / 共27页
基于ARMcortexA8内核的嵌入式智能家毕业论文.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于ARMcortexA8内核的嵌入式智能家毕业论文.docx

《基于ARMcortexA8内核的嵌入式智能家毕业论文.docx》由会员分享,可在线阅读,更多相关《基于ARMcortexA8内核的嵌入式智能家毕业论文.docx(27页珍藏版)》请在冰点文库上搜索。

基于ARMcortexA8内核的嵌入式智能家毕业论文.docx

基于ARMcortexA8内核的嵌入式智能家毕业论文

青岛农业大学

毕业论文(设计)

 

题目:

基于ARMcortex-A8内核的嵌入式智能家

居系统的设计与开发

姓名:

学院:

理学与信息科学学院

专业:

通信工程

班级:

2010级2班

指导教师:

刘金梅

2014年6月1日

毕业论文(设计)诚信声明

本人声明:

所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得青岛农业大学或其他教育机构的学位或证书使用过的材料。

与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

论文(设计)作者签名:

日期:

年月日

毕业论文(设计)版权使用授权书

本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。

本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计)。

本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署名为青岛农业大学。

论文(设计)作者签名:

日期:

年月日

指导教师签名:

日期:

年月日

基于ARMcortex-A8内核的嵌入式智能家居系统的设计与开发

摘要:

随着“物联网”的发展,智能家居近年来成为家电企业研究的热点。

本设计基于S5PV210芯片,采用嵌入式系统开发的方式,利用Zigbee组网技术,模拟了一套简单的智能家居系统。

本系统利用Zigebee组网技术,实现对水、声、火焰、震动的远程监控,并且通过协调器与开发板实现交互,同时可以通过PC机实现对开发板的登陆。

系统采用ARMcortex-A8内核,运算速度快,功耗低,体积小,能够兼容多种复杂的外设。

Zigbee模块适用小型系统,支持组网无限扩展的模式。

经测试,系统实现了预计功能。

关键词:

智能家居;嵌入式开发;Zigbee;传感器;S5PV210

TheDesignandDevelopmentofIntelligent HomeSystemBasedonARMcortex-A8Kernel

Abstract:

 Withthedevelopmentof"Internetofthings", intelligent home becomesahotresearchfieldfor householdelectricalappliance enterprises inrecentyears. ThisprojectisbasedonS5PV210 chip. Theembeddedsystemdevelopment methodisadoptedandZigbeenetworkingtechnologyisusedtosimulate asimplesetof intelligent homesystem.

Zigebeenetworktechnologyisusedtomonitorwater,sound,flame,shockremotely.UsercancommunicatewithdevelopmentboardbythecoordinatororlogindevelopmentboardbyPCmachine.TheARMcortex-A8isadoptedaskernelinthesystem.Thesystemhasadvantagessuchasfastoperation,lowpowerconsumption,smallsizeandcanbecompatiblewithavarietyofcomplexperipherals.TheZigbeeisaperfectchoiceforsmallsystem,whichsupportsunlimitedexpansionmodenetwork.Bytesting,thesystemhasrealizedexpectedfunctions.

Keywords:

 intelligent home; embeddeddevelopment; Zigbee; sensor; S5PV210

目录

前言1

1系统整体分析与方案论证2

1.1项目方案分析2

1.1.1项目需求分析2

1.1.2项目初步方案设计2

1.2方案论证及器件选型3

1.2.1最初方案论证及方案定型3

1.2.2项目器件选型3

2系统技术介绍5

2.1ZigBee技术介绍5

2.1.1ZigBee技术简介5

2.1.2ZigBee技术特点5

2.1.3ZigBee应用实例6

2.2嵌入式LINUX系统介绍7

2.2.1嵌入式技术介绍7

2.2.2嵌入式特点7

2.2.3嵌入式应用及发展前景8

3系统详细设计9

3.1Zigbee系统软硬件设计9

3.2linux嵌入式系统搭建13

3.2.1emilib数据通信模块介绍13

3.2.2环境部署以及eh_server15

3.2.1QT登录界面的制作和移植18

3.2.1QT登录界面的制作和移植21

4总结24

参考文献25

致谢26

前言

21世纪经济快速发展,计算机技术更是取得了惊人的发展速度,科学技术也越来越多地影响着人们的生活,人们对自己的衣、食、住、行,提出了更高的要求。

智能化无疑是出现频率最高的词汇,如智能手机、智能汽车、智能交通等等,无一不体现出人们对智能化生活的迫切向往。

于是,“智能家居”这样一个更加贴切人们生活的词汇被提及出来。

“智能家居”最早是在美国康捏狄克州被提出。

CityPlace-Building的建成拉开了人们对智能家居项目投入的序幕。

近年来随着“物联网”的发展,无论是物联网技术的成熟,还是智能移动终端的普及,都使得智能家居获得了长足的发展,智能家居行业也达到了以前从未有过的高度。

技术的成熟、成本的降低、功能的丰富人性化,都使智能家居从原来的高处不胜寒完成了到“飞入百姓家”的跨越。

同时因为芯片也朝着更小、更快、更低耗的方向发展,于是越来越多的智能芯片被嵌入到晓得电子商品中,并且添加更多、更好的外设变成了可能。

智能家居系统无疑变成了最大的受益者之一。

本次毕业设计应用了三星公司生产的S5PV210芯片,其内核cortex-A8是ARM家族中最高级系列中的芯片,开发板搭载了十分丰富的外设资源供开发者使用,并且接口资源丰富。

使用串口与Zigbee连接,实现了信息的交互和控制。

通过Zigbee组网技术,多个节点包括火焰节点、震动节点、湿度节点、烟雾节点也可以触发警报,发送到协调器,最后反映到开发板中,并在已经移植好的QT界面中得以体现。

同时用户可以通过PC的应用进程登陆系统,获取信息并控制继电器来实现远程对家电的控制,虽然离现实的成熟的智能家居系统无论是功能上,还是制作上都存在一定差距,但是初步体现出智能家居的思想,达到展示的效果,并且体现一定的实用价值。

1系统整体分析与方案论证

1.1项目方案分析

1.1.1项目需求分析

结合现实生活中的实际需要,以及现在人们对智能家居的理解,确定了一下该智能家居项目应该实现的功能,最终定下功能目标主要分为四大部分:

一、能过利用Zigbee组网对家庭内的震动、声音、火焰、烟雾进行监控。

二、在开发板中移植QT程序实现良好的人机交互界面。

三、能够实现Zigbee协调器与开发板之间的交互控制。

四、用户可以通过GPRS模块接受来自开发板汇集的信息,并且实现反向控制。

1.1.2项目初步方案设计

结合最初设定的四大基本功能,以及现在所掌握的知识能力,初步的构建一套设计方案如图1-1所示。

图1-1系统设计方案

1.2方案论证及器件选型

1.2.1最初方案论证及方案定型

由于GPRS模块后期需要交费,投入过大,所以舍弃了该方案。

更改了最后用户交互方式,改为PC机直接用网线连接,并且可以登录QT界面,实现交互。

同时为了演示智能家居项目的反控制效果,在Zigbee中加入了继电器控制白炽灯的小模块,协调器可以接受来自开发板串口的命令,将远处的Zigbee一个IO管教拉高,通过继电器控制白炽灯的开关,以此达到演示控制任意家用电器的功能。

最后设计方案更改如图1-2。

图1-2设计方案更改图

1.2.2项目器件选型

Zigbee组网方面采用了CC2530,采用这款Zigbee的考虑主要是看中了其体积小,重量轻,且引出了全部的IO引脚能够允许接入丰富的传感器资源。

CC2530使用的是频率达到2.4G的全方位天线,地面无阻碍稳定传输可以达到200多米,自动重连距离达到了110米,完全能够满足家庭内的组网。

嵌入式开发平台,是选用了S5PV210的板子,平台内核为ARMCortex-A8高性能处理器,A系列也是现在ARM家族中的最高系列,同时也是基于ARMV7的体系结构,使用精简指令集。

虽然嵌入式微处理器的体系架构如今已经非常丰富,包括MCS51—96、Intel80x86、MIPS、POWERPC、ARM,但是ARM以其运算速度快,体积小,功耗低的特点,已经在如今的嵌入式移动终端设备中大展拳脚,使它成为移动终端设备中的宠儿。

选用S5PV210的开发板,也主要看中了其稳定,以及外设资源丰富的特点,更有利于人们去认识了解,进而开发嵌入式项目。

开发板的温度传感器选用的是DS18B20,其体积小且精度高的特点是其常常被选用的原因。

接线方便,只需一条IO线即可与未处理前相连,实现双向通信。

且封装形式多样能够适应各种环境。

2系统技术介绍

2.1ZigBee技术介绍

2.1.1ZigBee技术简介

现在Zigbee技术以及成为应对近距离、低复杂度和低功耗、低成本的双向通信的佼佼者。

其应用领域广泛,特别是一些要求功耗低且对传输距离要求不长的设备通信,Zigbee技术备受青睐。

Zigbee这个名字其实是来源于蜜蜂一种用来传递信息的舞蹈,人们形象的将Zigbee的名字赋予了这项通信技术。

之前这项通信技术也被称作HomeRFLite、RF-EasyLink或fireFly无线电技术。

与CDMA和GSM技术一样,Zigbee也是一种无线的数据传输技术,虽然无法像前者一样发送视频数据,但是其稳定性高且成本低廉。

ZigBee数传模块可以看做我们生活中的那些移动公司建立的基站一样。

然后通过多个ZigBee实现传输距离的无限延长,达到理想的传输距离[1]。

2.1.2ZigBee技术特点

ZigBee说到底是一种可以工作在三个频段上的无线传输技术,分别是全球通用的2.4GHz、欧洲支持的868MHz和能在美国使用的915MHz3上,分别能够达到最高250kbit/s、20kbit/s和40kbit/s的传输速率。

作为一种无线通信技术,ZigBee具有如下优点[2]:

(1)低功耗:

Zigbee的技术特点就是传输速度低,因此其对发着功率的要求也很低仅为1mW。

并且Zigbee能够实现休眠模式,功耗再一次被降低,于是经过测试,仅一节5号电池就可以支持Zigbee工作长达半年之久,这是其他通信技术无法匹及的。

(2)低成本:

随着技术的成熟现在Zigbee的成本价大约是8-10元人民币,这也得益于Zigbee技术是没有专利费用的,低成本对于ZigBee也是一个重要的指标。

(3)时延短:

所谓时延短是指设备搜索设备到激活设备到最后信道接入的总时间,Zigbee的时延大约为45ms。

因此Zigbee技术非常适合被用在对时延要求苛刻的无线控制场合(如工业现场)。

(4)网络容量大:

Zigbee可以支持多种组网方式,容量最大的是星形结构最多可以容纳256个设备,一片区域内可以同时最多容纳100个ZigBee网络,而且组网灵活。

(5)可靠性强:

如果传输过程中出现问题同样具有重发机制。

(6)安全度高:

ZigBee提供了基于循环冗余校验(CRC)的数据包完整性检查功能,支持鉴权和认证,采用了AES-128的加密算法,每个应用可以确定其安全属性的高低[3]。

2.1.3ZigBee应用实例

ZigBee模块是一种多应用在物联网无线数据传输的终端,利用ZigBee网络来实现无线数据传输。

如今在物联网产业链中Zigbee技术已经被广泛应用,如智能电网、智能交通、智能家居、金融、移动POS终端、供应链自动化、工业自动化、智能建筑、消防、公共安全等领域[4]。

2.2嵌入式LINUX系统介绍

2.2.1嵌入式技术介绍

嵌入式系统的核心是嵌入式计算机系统,由硬件层、中间层、系统软件层和应用软件层组成。

执行装置又被叫做被控对象,可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。

执行装置可以很简单,如MP3上的菜单键,可以切换歌曲;也可以很复杂,如谷歌眼镜,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息.

2.2.2嵌入式特点

(1)可裁剪性强。

可以根据功能要求,裁剪设备功能。

(2)实时性强。

EOS实时性一般较强,可用于各种设备控制中。

(3)接口统一。

提供统一的设备驱动接口。

(4)操作方便、简单、提供友好人机交互界面,追求易学易用。

提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。

(5)强稳定性,弱交互性。

嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。

嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

(6)固化代码。

在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。

(7)更好的硬件适应性,也就是良好的移植性[5]。

(8)嵌入式系统和具体应用有机地结合在一起,嵌入式的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

2.2.3嵌入式应用及发展前景

嵌入式控制期间基本上囊括了生活的方方面面,比如消费mp3、手机、电梯、汽车、数字电视、微波炉、数码相机、空调、交换机、路由器...卫星、航天飞机、月球探测仪、控制主机,智能监控[6]。

计算机系统是由硬件和软件系统组成的,并且软、硬件均可裁剪的但必须具备最小系统要求[7]。

现在特别是随着消费电子类产品的智能化,嵌入式的重要突显了出来[8]。

3系统详细设计

3.1Zigbee系统软硬件设计

由于资金有限,无法购置大量的Zigbee模块,这里采用两个Zigbee,并将四个传感器搭载到一个Zigbee模块上,模拟组网系统。

即一个Zigbee上分别搭载了火焰、震动、水滴、声音传感器。

一个Zigbee与开发板相连作为协调器。

然后将写好的程序分别下载到两个Zigbee中,这样实现了家庭内信息收集,以及对家庭内电器的控制。

Zigbee程序是独立编写和调试并且通过串口能够接受和发送相关命令。

以下是Zigbee模块部分代码的详解:

首先是发送函数appSwitch();

if(basicRfInit(&basicRfConfig)==FAILED){

HAL_ASSERT(FALSE);

}

InitSensor();

basicRfReceiveOff();

while(TRUE){

pTxData[0]=KeyScan();//键值扫描

if(pTxData[0]!

=0)

{basicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_LENGTH);

halIntOff();

halIntOn();

}

}

这段程序可以说,是发送模块的精华,或者说是核心。

Appswich()函数进来之后,首先是一个错误返回机制,如果两个Zigbee连接不成功,会返回fail。

连接成功后,Zigbee会打开发送函数,做好发送准备。

同时关闭接收功能,保证模块的运行速度和稳定性。

接下来程序会进入while()循环,只要Zigbee保持连接,发送模块就会一直处准备在发送模式或者正在发送模式。

由于使用的是四个开关量传感器,这里作为四个按键,不停地对连接了四个传感器的IO关键进行按键扫描,获取相应的键值,并赋值给Pxdata[]数组,并使用系统调用函数basicRfSendPacket()将信息发送出去。

basicRfSendPacket这个函数也是整段程序的核心,只有调用这个函数才能将IO口接收到的数据有序的发送出去,完成信息的远程传输[9]。

下面再来看一下接收模块的核心代码。

basicRfConfig.myAddr=LIGHT_ADDR;

if(basicRfInit(&basicRfConfig)==FAILED){

HAL_ASSERT(FALSE);

}

basicRfReceiveOn();

UartInitial();

while(TRUE){

while(!

basicRfPacketIsReady());

if(basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL)>0)

{

{

Delayms1(500);

halLedToggle

(1);

UartSend_String(Lcddata,5);

UartSend_String(pRxData,1);

UartSend_String(Reddata,2);

}

}

}

这段程序和发送程序的主体架构是一样的,不过是使用了调用函数basicRfReceive,来接受发送函数发送过来的数据,同时初始化了Zigbee模块的UART1,将来自发送模块的数据打包处理后通过串口发送出去,并可以通过超级终端看到所接收到的数据,通过接受到的具体数据查看到底是触发了什么节点,触动警报。

下图3-1为超级终端接受传感器信号的数据[10]。

图3-1超级终端截图

同时Zigbee也可以接受来自超级终端的数据(在这里超级终端作为开发板的一个替代品),如图3-2在超级终端发送ledon命令,Zigbee的一个IO管教被拉高,led灯亮发送ledoff,led灯灭如图3-2。

图3-2Zigbee控制效果图

Zigbee的接收终端数据程序其实也非常简单,是使用串口中断来做的,即只要串口检测收有数据接收,就会产生中断,注册标志位,然后拉高相应管脚,实现对led灯的控制。

代码如下:

#pragmavector=URX0_VECTOR

__interruptvoidUART0_ISR(void)

{

URX0IF=0;

if(U0DBUF>0)

{

P1_4=~P1_4;

temp=U0DBUF;

}}

整个Zigbee模块的程序架构,如图3-3。

图3-3Zigbee代码工程结构图

3.2linux嵌入式系统搭建

首先需要说明的是本次嵌入系统,是基于前人原有的开源代码消化吸收后,然后添加的驱动代码最终实现的,这里也是充分的发挥了linux嵌入式的开源性。

本嵌入式系统结构主要分为了三大块,分别是:

1、emilib:

抽象数据通信。

2、Hmanager:

基于QT的PC端图形控制程序。

3、Bdehmanager:

基于QT的开发板图形控制程序。

3.2.1emilib数据通信模块介绍

1、Emilib工作原理

消息接受者首先需要完成注册,所谓注册即通过socket连接本地emi_core进程,将本进程进程号以及要注册的消息发送给emi_core。

Emi_core收到消息后,需要在内部表记录了(消息号,进程号)之间的关系。

每一个注册消息的进程只要成功注册了,就会在表里新增一个项,记录该进程注册的消息号和进程号。

然后当发送端给emi_core发消息时,emi_core会把消息好在表里进行匹配,如果是正常情况,那么其会找到注册进程的进程号,此时emi_core会给该进程发送一个USER2信号,同时附加数据放到共享的内存中。

而接受进程接收到这个信号之后,就会触发信号处理函数,其实这个原理个人认为其实完全可以理解为一个中断向量表的工作原理,不过它可以同时处理多个进程。

最后在信号处理函数内部从emi_core提供的共享内存中读取发送端发来的信息。

如此就完成了一次数据通信。

2、Emilib的使用方法

首先来介绍下,刚才提到的emi_core。

emi_core相当于一个中介或者说就是一个电话接线员,主要完成了两部分的工作。

首先是接注册类的消息,并把消息和一个函数绑定。

然后是接收发送类型消息,查找到已经被绑定的消息函数对,匹配出相同的消息,最后运行对应的函数。

Emilib中包含了libemi.so库。

主要工作就是提供进程需要的函数,来实现具体功能,接收进程调用库中的函数进行消息好和函数的绑定注册,而发送进程调用库中的函数进行消息发送。

下面列出的是libmi.so中常用的函数

(1)初始化函数

Intemi_ini(void);

这绝对是最常用也是最重要的函数,因为它必须在注册消息之前运行,但是每个进程只需要运行一次。

(2)消息注册函数

Intemi_msg_register_exclusice(eu32msg,emi_funcfunc);

返回值为0时代表成功,负数代表失败,两个参数分别代表要注册的消息号,和一个指向结构体的结构体指针,当然要求其提前被写好。

(3)发送消息函数

Intemi_msg_send_highlevel_blockreturn(char*ipaddr,intmsgnum,intsend_size,void*send_data,intret_size,void*ret_data,eu32cmd)

返回值为0代表发送成功,负数代表失败。

参数ipaddr表示接受平台的ip。

参数msgnum表示要发送的消息号。

参数send_size以及send_data分别代表附加数据的长度和附加数据的首地址,如果没有那么就应该设置为0和NULL。

参数ret_size和ret_data表示返回数据的大小和首地址。

参数cmd,表示发送者要发送给接受者的命令。

3、Emilib的测试

首先需要进入emitest目录,先建两个emi测试源文件分别用于发送和接受,来模拟通信过程。

#cdemitest

#vimsender.c

#vimreceiver.c

以下是在实验中对于emilib所做测试的一部分核心代码。

添加到sender.c源文件的核心代码。

charhello[20]="hello";

charbuf[5]={0};printf("%s\n",buf);

添加到receiv.c源文件的核心代码:

inttest_func(structemi_msg*msg){

printf("

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2