新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM-Linux平台及GPRS技术的家庭智能控制系统

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

作者: 时间:2012-10-18 来源:网络 收藏
3 系统软件设计

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

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

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

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

图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=Index>CR>指令来实现,然后处理器再根据收到的短信指令去控制各家庭智能模块。

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

  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 结语

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

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

关键词:ARMLinuxGPRS技术

评论


相关推荐

技术专区

关闭