基于ARM-Linux平台及GPRS技术的家庭智能控制系统

发布者:快乐家庭最新更新时间:2012-10-18 来源: 21ic关键字:ARM  Linux  GPRS技术 手机看文章 扫描二维码
随时随地手机看文章

  随着生活节奏的不断加快,人们希望即使在工作或外出时也能及时了解家中的情况并控制家中的各种设备。各种无线通信技术的不断发展,使家庭智能系统的远程控制成为一种现实。本文结合ARM9 处理器功能强大、GPRS 技术永远在线,接入范围广,功耗低以及ZigBee 无线组网技术等优点,设计实现了一种基于嵌入式系统的无线家庭智能控制系统。

  1 系统体系结构及主要功能

  系统主要由家庭智能控制模块、图像处理单元、ARM 中央控制平台、ZigBee 无线传输、GPRS 无线通信和以太网通信等部分组成,其体系结构如图1 所示。

图1 系统体系结构

图1 系统体系结构

  其中家庭智能控制模块主要包括家电控制模块、窗帘控制模块、灯光控制模块及安防控制模块。各控制模块通过ZigBee 模块与ARM 中央控制平台实现无线连接,组成一个星型家庭无线智能控制网络。同时ARM 中央控制平台连接一个USB 摄像头,实现对家庭环境的实时监视。ARM 控制器通过GPRS 和以太网实现与外部远程连接。即使出门在外,也可以实现对家庭智能系统的远程控制。比如上班时,户主可以通过电脑或手机观察家中的情况;在回家的路上就可以通过手机打开空调和热水器,开启窗帘或灯具等。当探测到有非法人员入侵或发生火灾等紧急情况时,ARM 控制器就会通过短信向户主发出报警信息,同时控制摄像来捕捉视频图像,然后进行图像处理并将数据通过以太网传给PC 机,或通过GPRS 以彩信形式传到户主手机。

  2 系统硬件设计

  本系统硬件电路框图如图2 所示,主要由ARM9控制器,电源及复位模块,触摸屏显示模块,USB 摄像头,以太网接口模块,GPRS 模块,ZigBee 无线收发模块,各家庭控制模块等组成。

图2 系统硬件电路框图。

图2 系统硬件电路框图。[page]

2.1 ARM 中央控制模块

  ARM 中央控制模块由ARM9 控制器、FLASH、SDRAM、电源及复位模块、LCD 触摸屏及相关外围电路组成。系统选用SAMSUNG 的基于ARM920T 内核的16/32 位RISC 处理器S3C2440 作为控制器。

  S3C2440 处理器功能强大、性价比高、功耗低,除具有一般嵌入式芯片所具有的总线、SDRAM 控制器以外,还具有丰富的扩展功能接口,内部集成了TFT/STN LCD 和触摸屏控制器、SD & MMC 存储卡接口和摄像头接口等大量的功能模块,便于构建外围电路,视频处理能力非常强。系统采用64M 的NAND 型Flash K29F2808 来存放系统启动代码、内核代码及根文件系统;SDRAM 选用2 片HY57V561620CTP-H 构成容量为64MB 高速动态随机存储器。

  2.2 ZigBee 模块

  为了满足家庭智能系统简洁、方便的要求,系统采用ZigBee 无线通信技术组建家庭网络。ZigBee 是一种新兴的短距离、低功耗、低数据速率、低成本的双向无线通信技术。ZigBee 模块采用支持IEEE802.15.4 协议,技术成熟的CC2430 芯片。经测试,室内有效传输距离为30~40m,完全能够覆盖普通家庭环境。下面从抗干扰及功耗两方面阐述本设计的可行性。

  2.2.1 Zigbee 抗干扰性能分析

  ZigBee 技术的抗干扰特性主要是指抗同频干扰。

  IEEE802.15.4 标准中提供了很多抗干扰机制[2],比如:空闲信道评估,动态信道选择,信道算法等。实验证明,正确选择信道,增大频偏,ZigBee 与Wi-Fi可以近距离(小于2m)共存;蓝牙采用调频技术,对ZigBee 的干扰很小,两者能很好的共存;WirelessUSB可以根据干扰环境自动变换信道,因此完全可以同ZigBee 共存;此外,为了减小无绳电话(2.4GHz)对ZigBee 的干扰,设计中ZigBee 设备放置在离客厅中心较远的地方,使干扰源尽量远离ZigBee 网络,经测试可行;当微波炉与ZigBee 设备距离大于1m 时,干扰则可以忽略不计。因此ZigBee 在2.4GHz 频段能可靠地与Wi-Fi、蓝牙、WirelessUSB 以及家用无绳电话和微波炉共存。

  2.2.2 Zigbee 功耗分析

  ZigBee 模块支持多种工作模式,包括运行(发送与接收)、空闲和休眠等。通过监测传感器节点的正常工作,发现节点大部分时间处于空闲状态。而空闲模式的功率消耗与运行模式大体相同,收发模块长期处于空闲模式会消耗大量能量。因此,当节点空闲时应使其处于休眠状态。当需要节点工作时,通过外部中断或定时中断将其唤醒,进入运行状态。本设计经测试,系统运行一个月后,电池电压变化轻微,实际应用中两节普通5 号干电池使用寿命超过一年。

  2.3 GPRS 模块

  GPRS(General Packet Radio Service),即通用分组无线服务技术,是一种以GSM 为基础的数据传输技术。GPRS 采用分组交换技术,支持资源共享,频带利用率高,数据传输率高。GPRS 最高传输率可达171.2kbit/s,支持X.25 协议和IP 协议;用户永远在线且按流量、时间计费,通信成本低。因此,将GPRS技术应用于家庭智能控制系统的无线数据传输是最佳选择。

  GPRS 模块主要功能是通过GPRS 网络实现ARM控制器与户主手机之间的数据交换。经过性能与成本的综合考虑,系统选用西门子公司的MC55 GPRS 模块。

  MC55 集成了完整的射频电路和GPRS 基带处理器,提供了完整的GSM 和GPRS 无线接口;支持数据、语音、短消息和传真等多种通信方式,采用TCP/IP 网络协议进行通信,GPRS 数据包最高可达1.5K;GPRS 模块与ARM 控制器采用AT 指令集通过串口进行数据通信。

图3 ARM 控制器与GPRS 模块连接图。

图3 ARM 控制器与GPRS 模块连接图。

  如图3 所示,系统采用SP3238 芯片实现电平转换,S3C2440 通过UART1 控制MC55,通过GPRS网络采用短信或拨打电话的方式与用户手机进行通信来实现对家庭智能系统的远程控制。

[page]

3 系统软件设计

  软件部分的设计主要是基于ARM-Linux,与其他嵌入式操作系统相比,Linux 操作系统具有完整的TCP/IP 协议,良好的稳定性和实时性,很好的满足了家庭智能控制系统对系统可靠性的要求;此外,Linux易于移植裁减、内核小、效率高、源代码开放并有众多的开发者,为系统的开发提供了良好的技术支持。

  系统开发首先要建立交叉编译环境,然后引导bootloader,移植操作系统,装载文件系统,开发图形界面,最后编写应用程序。Bootloader 主要实现系统的快速引导,将Linux 内核加载到内存,并进行内核初始化。Linux2.6 内核具有强大的进程、中断、内存和设备管理,支持各种文件系统。

  系统主程序流程如图4 所示,主程序由一系列用来实现相应功能的子程序组成,主要包括ZigBee 无线通信程序、各智能模块控制程序、GPRS 无线通信程序、图像采集压缩程序、和以太网通讯程序等。限于篇幅,这里主要阐述GPRS 无线通信的实现。

图4 系统主程序流程

图4 系统主程序流程。

  GPRS 模块程序设计主要用AT 指令编写,结合一些主要函数来实现GPRS 模块各项功能,包括GPRS模块初始化、GPRS 网络参数配置、AT 命令的收发、短信收发、拨打电话和发送彩信等。

  3.1 GPRS 模块的初始化

  系统启动之后,通过调用gprs_init()函数实现基本的初始化工作,包括串口初始化,MC55 的状态设置等。通过调用char gprs_getkey()函数获取键盘输入值。

  3.2 AT 命令的接受和发送

  GPRS 模块通过UART1 与S3C2440 进行通讯,S3C2440 通过串口发送AT 命令到GPRS 模块并读取GPRS 模块的输入。S3C2440 通过调用int send_gprs_cmd(int fd,char*send_buf)函数发送AT 命令到GPRS 模块中,并通过int read_gprs_datas(intfd,char*rcv_buf)函数读取GPRS 模块的数据。如果通信成功返回GPRS_OK,否则返回GPRS_ERR.

  3.3 短信的收发及彩信的发送

  GPRS 模块向户主手机发送的短信是设定好的,模块初始化时短信的内容、服务中心号码及目标手机号码都已设置完毕,出现紧急情况时,系统只需调用AT 指令即可完成短信的收发。AT+CMGS=n,发送长度为n的一条短信;命令发出后,GPRS 模块回送">",处理器收到提示符即将短信内容发给GPRS 模块,发送成功返回" OK ", 否则返回" ERR ".接收短信由AT+CMCR=指令来实现,然后处理器再根据收到的短信指令去控制各家庭智能模块。

  彩信的功能主要是当家庭出现紧急情况时,将摄像头的截图以彩信形式发送到用户手机。其功能函数如下:

  intmms_send(char*fro,char*to,char*subj,char*cont,char*img, long len)

  参数fro 为模块SIM 卡号码;to 为户主手机号码;subj 为彩信标题;cont 为彩信的文字信息;img 为图片的地址指针;len 为图片字节数。发送成功返回MMS_OK,否则返回MMS_ERR.

  4 结语

  本文介绍了一种基于ARM 与GPRS的家庭智能控制系统,给出了详细的系统架构方案,从软、硬件两方面阐述了设计思路和实现方法。系统采用GPRS 技术实现了家庭智能系统的远程控制;采用ZigBee 技术组建家庭无线网络,很好的解决了主控制器与各家庭控制模块之间的通信问题,避免了繁琐的布线;有很好的实际运用价值,是未来家庭智能系统发展的一个趋势。

关键字:ARM  Linux  GPRS技术 引用地址:基于ARM-Linux平台及GPRS技术的家庭智能控制系统

上一篇:STM32的USB键盘及鼠标的例程介绍
下一篇:基于ARM与μClinux的RTU设计

推荐阅读最新更新时间:2024-03-16 13:10

ARM调查显示机器人将带来协助而非取代人类
   ARM 日前宣布根据委托第三方针对全球近4,000名消费者进行的独立调查显示,仅少数受访者认为人工智能(AI)的发展将导致 机器人 大肆盛行,取代人类就业。下去吗就随工业控制小编一起来了解一下相关内容吧。   考虑到AI将在未来逐渐融入日常生活,30%的消费者认为这项发展最不利的因素是人类的工作变少或被迫转行。但多数受访者仍抱持正面态度,认为机器人不会取代人类,而是增进人类多数工作的效率,并协助执行更多繁冗且危险的任务。   ARM全球营销暨品牌传播副总裁JoyceKim表示,调查结果显示普遍对AI的乐观以及其对可能带来的商机非常振奋人心,但只触及了AI所具备潜力的冰山一角,仍有庞大的潜力尚待发掘。AI确实会颠覆就业生态,但
[嵌入式]
Arm2440——Nand flash启动模式详解(LED程序为例)
断断续续的研究arm也有2个月了,现在才感觉理解了arm在Nand flash模式下的启动过程,现在来这里记录下来以表达我无比喜悦的心情。闲话少说,趁着还没有忘记学习过程中的感受,直接进入正题。 大家都知道,arm在Nand flash启动模式下启动时系统会将Nand flash中的前4KB代码拷贝到SRAM(也就是Steppingstone中),由SRAM配置中断向量表和完成Nand flash访问的必要初始化,然后将Nand flash中的全部程序代码拷贝到SDRAM中,最后由SRAM跳转到SDRAM,然后程序就正常执行了,这一过程看上去很简单,但是真正理解这一过程还是不简单的,尽管这样,还是想告诉大家仔细理解还是比较容易理解这
[单片机]
ARM7的MVB_CAN网关设计方案
0 引言 随着网络技术和控制技术的发展,机车信息化控制技术向着更高的方向发展。为此,IEC制定出新的列车通信网路国际标准TCN(机车通信网络),以满足列车微机控制系统中对车载数据通信网提出的新要求。 按照TCN标准,列车通信网可分为两级:第一级是WTB绞线式列车总线(Wired Train Bus),可实现车辆间的数据通信;第二级是MVB(Mul-tifunction Vehicle bus)多功能车辆总线,主要实现同一个车辆内各个功能控制单元之间的数据通信。 多功能车辆总线(MVB)是主要用于有互操作性和互换性要求的互连设备之间进行串行数据通信的一种总线,MVB以其高实时性、高可靠性及可管理性等多方面的优势而广泛的应用在
[单片机]
<font color='red'>ARM</font>7的MVB_CAN网关设计方案
OK6410A 开发板 (八) 42 linux-5.11 OK6410A vmalloc 的 alloc 和 free
vmalloc的初始化过程 第五阶段建立的是 vmalloc vmalloc 的使用期限 vmalloc_init 完成后 - 没有终点 vmalloc 管理的内存大小 可以说是buddy 管理的所有内存 vmalloc 的使用方法 alloc vmalloc vmalloc __vmalloc_node __vmalloc_node_range struct vm_struct *area; // 在 找到符合大小的空闲vmalloc区域 // A.获取虚拟地址 area = __get_vm_area_node struct vmap_area *va; // 注意
[单片机]
ARM异常---一个Uart中断的触发处理过程
首先给出一些定义: //2440addr.inc INTOFFSET EQU 0x4a000014 ;Interruot request source offset //option.inc _ISR_STARTADDRESS EQU 0x33ffff00 //2440init.s MACRO $HandlerLabel HANDLER $HandleLabel $HandlerLabel sub sp,sp,#4 ;decrement sp(to store jump address) stmfd sp!,{r0} ;PUSH the work regi
[单片机]
基于S3C6410的ARM11学习(九) 点亮led
之前已经对S3C6410的核心初始化完成了,但是这个也只是完成了,但是程序到底对不对了,还需要验证。最简单的验证方法是什么了,就是点亮led。如果在核心初始化完成后,我们写程序去点亮了led,就说明初始化代码是没有问题。 下面就要来点亮led了。这个时候就和开发板的原理图有关系了。我用的是OK6410的开发板,打开对应原理图。 找到4个灯,是共阳接法的。所以要点亮对应的灯,就要使led的负端为低电平。在看看各个led负端端口对应的S3C6410的哪个IO。 从核心板的原理图可以看出,4个LED是接在GPM0-3这四个管脚上的。 有了这个信息,我们只要去控制这四个管脚输出不同的电平,就能实现led的亮灭
[单片机]
基于S3C6410的<font color='red'>ARM</font>11学习(九) 点亮led
基于ARM公司STM32的智能电机保护器设计
0 引言 电机是工业生产领域中最主要的驱动源,如何有效地监控电机的运行状态,保护电机回路,提高电机的运行时间,减少电机故障,对工厂整体电网的运行十分关键。 电动机保护装置有很多种,目前使用得比较普遍的还是基于金属片机械式的热继电器,它结构简单,在保护电动机过载方面具有反时限特性。但它的保护功能少,无断相保护,对电机发生通风不畅、扫膛、堵转、长期过载、频繁启动等故障也不能起保护作用。此外,热继电器还存在重复性能差、大电流过载或短路故障后不能再次使用、调整误差大、易受环境温度影响而误动或拒动、功耗大、耗材多、性能指标落后等缺陷。 为响应国家节能减排的要求,采用基于微控制器的电子式电机保护器替代现有热继电器,具有广大的
[单片机]
基于<font color='red'>ARM</font>公司STM32的智能电机保护器设计
用OpenSTLinux帮助决定合适的嵌入式Linux发行版
OpenSTLinux是用于STM32 微处理器的开源 Linux 发行版。该操作系统可帮助工程团队更快地进行原型设计并缩短产品上市时间。因此,它可以作为一种独特的支持工具,同时也为开源社区做出贡献。 很多时候,团队将 Tux 视为可以解决所有软件需求的灵丹妙药。然而,从概念到大众市场需要的不仅仅是内核,尤其是在嵌入式系统上。因此,选择正确的发行版和平台至关重要。为了帮助面临这一挑战的专业人士,我们列出了在开始项目之前需要回答的七个基本问题。这些询问还将帮助决策者评估他们的需求并决定哪种嵌入式 Linux 发行版适合他们。实际上,它们代表了旨在减少开发过程中重大摩擦的开发人员的指导方针。 正如我们在今年早些时候发布的使用 MP
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved