基于ARM-Linux与GPRS技术的家庭智能控制终端

发布者:喜从中来最新更新时间:2012-02-23 来源: eefocus关键字:ARM-Linux  GPRS  家庭智能 手机看文章 扫描二维码
随时随地手机看文章

本文中介绍的方案,结合了GPRS(General Packet Radio Service)技术永远在线,速度快,接入范围广,体积小,功耗低等优点,采用RS485工业总线,设计实现了一种基于嵌入式系统的家庭智能控制器。用户可以通过短信及互联网等方式现远程无线监控,在手机和互联网相当普及的今天,为用户提供了更简单、方便的选择。同时由于该控制器RS485接口的特殊设计,外挂节点可以由原来的32个扩展到64个,解决了家用设备的布线组网以及控制等问题。

1 系统设计

从结构上看主要分为用户,控制器,和RS485总线的家用设备控制三个部分。用户通过手机短信或网络方式向控制器的GPRS模块发送命令,而控制器也通过GPRS模块向用户反馈信息或发出报警通知。从而实现了用户和控制器无线互联,实现远程控制。

2 硬件设计

硬件部分的结构框图如图1所示,控制器是整个系统的核心部分,经过串口扩展与GPRS模块相连;通过电平转换芯片提供RS485总线接口与家用设备相连接;同时还提供LCD,键盘等交互接口。控制器的主控芯片采用三星S3C44B0,使用ARM7TDMI核,工作频率在66MHz[1]。处理器外接 4MFlash(用于存储控制器的启动代码和系统代码以及当天事件的文本日志)分配到存储器Bank0空间和4M×16的SDRAM,分配到存储器的 Bank6空间。

GPRS 模块外围电路:GPRS模块采用西门子公司的MC35模块,支持数据、语音、短消息和传真等多种通信方式可以通过AT命令对其实现控制。串行线通过 MAX3238电平转换后可直接和RS232串口相连。串口扩展:44B0通过外接双通道的通用异步收发器ST16C2550为GPRS modem拨号上网提供完整的9线串口。其主要特点是接收﹑发送各有16字节的FIFO(先入先出) 缓冲区,独立的波特率产生器可提供50bps到4Mbps的收发时钟。用户可方便地通过芯片的状态寄存器来进行错误定位和对操作状态进行判断。该芯片内存空间使用保留的存储空间bank4。采用总线方式控制。RS485接口设计:采用TI公司的RS485接口芯片75L BC184,可实现了44B0串行口的TTL电平与RS485电平之间的转换,该芯片的输入阻抗为RS485标准输入阻抗的2倍(≥24KΩ),故可以在总线上连接64个节点(相当于原来的两倍)。且它有一个独特的设计,当输入端开路时,其输出为高电平,这样可保证接收器输入端电缆有开路故障时,不影响系统的正常工作。

3 RS485总线协议设计

用RS-485总线进行系统通讯需要对其传输协议做规定,最重要的就是帧结构的设计。本系统数据帧的构造包括:起始,地址,类型,数据长度,数据,校验和及结束帧七个部分,除数据帧为N字节外(根据从机传送的数据而定),其余均占1个字节。类型字定义如表1所示,类型帧中的“SEN DDATA”帧为数据帧,用于存放从机设备的状态信息,其它4种为指令帧,用于存放主机发送给从机的命令字。

主机发查询请求 主机发读请求 从机准备好接收 从机处于忙碌 主/从机发送数据

本系统采用LRC帧校验的方法。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有传输错误。除了帧结构的定义以外,整个系统的通信还需要遵守下面的规则:(a)主机查询方式:由主机轮询各从机,并要求从机提交状态信息,从机不能主动发出请求。(b)当主机发出“ASK”命令后,若从机反馈“BUSY”帧,则主机启动计时和计数,超时3次,则任务执行失败。(c)主机接收到从机发回的“READY”信号后,向从机发送“GETDATA”指令,进入接收状态,同时开启超时控制。若在规定时间未接收到从机发回的数据,则计数器加1,并继续发出“GETDATA”信号。如果超时3次,则取消这次查询。(d)从机等待主机发送指令,并根据具体指令作相应操作。如果接受到的指令帧错误,则会直接丢弃该帧。

4 软件设计

软件部分的设计主要是基于ARM-Linux,因为该操作系统具有完整的 TCP/IP协议,同时还支持许多其他网络协议,可以为GPRS modem连接互联网提供完整的协议支持,并且该操作系统具有良好的稳定性和实时性可以满足家庭智能控制器对系统可靠性的要求,另外Linux的源代码开放,可移植性强,为系统开发中的问题提供了良好的技术支持。本系统的软件设计主要是应用程序的两个部分: GPRS的无线数传;RS485总线控制控制。[page]

4.1 RS485总线控制

基于上一部分RS485的总线协议,主从控制主要分为:轮询、查询、控制三部分。(1)轮询:主机定时对各从机进行查询,如果发现报警信息,保存后及时触发报警并反馈给用户。如果出现超时或帧错误等状态时主机放弃此次查询,并将该事件存储在主机中。(2)查询:查询的工作流程和轮询大致相同,但是只对指定的从机和指定状态进行查询。(3)控制:把控制指令发到指定从机,并要求从机反馈执行结果。

4.2 GPRS的无线数据传输

4.2.1接收和发送SMS短信

(1)编码转换:要发送中文短信就需要使用PDU模式的16-bit编码。在Linux系统中默认用GB2312保存中文字符。发送短信前,要先进行编码转换,要将GB2312转换为Unicode编码,再将Unicode编码转换为 PDU 的16-bit 编码。这里使用Linux中的iconv () 函数,该函数可以实现Linux支持的任意的两种编码之间的转换。实现的方法:首先用iconv_open(),打开一个转换句柄,指定两种转换前的编码和转换后的编码。然后用 icnov() 作转换。最后用 iconv_close()关闭句柄,释放资源。完成转换后,即可以正确的发送。(2)发送:向MC35模块发送一条AT指令,得到OK响应,则表示控制器与GPRS模块通讯正常,通过“AT+CSCA=“***”及AT+CSCA=0命令设置设置短信中心号码及短信格式(PDU)。然后发送 AT+CMGS = "电话号码",得到提示符号“>”,此时可以向MC35模块发送编辑好的PDU编码并以“CTRL+Z”结束。得到响应OK,则发送成功;如果收到 ERROR则表示发送失败,重新初始化MC35模块,发送信息[4]。(3)接收:当收到短信时,发送”“AT+CMGR=X”从SIM卡读取短消息并调用短信处理程序作相应转换。

4.2.2 GPRS联网在Linux下的实现

GPRS联网是Linux的PPP协议实现的。因此在编译内核时需要增加Linux内核的PPP支持[5]。然后根据程序中提供的配置信息,包括移动的APN*/为“CMNET”,通讯协议IP,拨号号码 “*99***1#”,串口设备号/dev/ttyS2,波特率9600,用户名,密码等信息配置PPP协议需要的5个脚本和配置文件:ppp-on、 ppp-off、options.gprs、dialer.gprs、pap-secrets。完成设置后,运行ppp-on,就可以进行GPRS拨号;运行ppp-off断开连接。

GPRS联网流程(控制器作为客户端):(a)当用户希望通过网络访问GPRS模块时可以通过短信方式向主机 GPRS模块发送联网命令,包括用户的IP地址和相关配置信息。(b)主机根据用户短信获得GPRS上网连接的配置信息,并生成对应的拨号脚本文和配置文件。调用ppp-on脚本进行PPP拨号。(c)判断PPPD是否拨号成功,标志是能否生成ppp0网络设备。(d)在数据传输过程中通过看门狗实时观测网络连接状态,网络掉线时,主机保存当前数据状态,重新启动GPRS模块并恢复连接。(e)结束本次任务时,用户在网上发送命令,让控制器调用ppp- off,断开连接。

4.3系统软件流程

软件流程如图2所示,系统上电启动后,首先对包括串口,LCD,键盘, GPRS模块以及网络配置文件等做相应的初始化。并检测GPRS模块和主机是否通讯正常。然后开始对从机进行轮询,发现警情时,读取并存储报警信息,启动报警器并将相应的报警信息通过拨号和短信的方式通知用户。当收到用户命令时,先判断用户的控制方式,再做出做出回应。

5 总结与展望

整套方案对家庭智能控制器系统实现中存在的主要问题提出详细的解决方案,并且在实践中证明了其可实施性。此外,由于该控制器具备GPRS控制器的基本功能,只需在应用程序部分做相应修改,可用作其它无线远程控制设备,具有通用性和可扩展性。

关键字:ARM-Linux  GPRS  家庭智能 引用地址:基于ARM-Linux与GPRS技术的家庭智能控制终端

上一篇:基于ARM和μC/OS-Ⅱ的在线磷酸根离子监测仪设计
下一篇:ARM单片机阵营再添新军,英飞凌推出Cortex M4单片机

推荐阅读最新更新时间:2024-03-16 12:53

valgrind arm-linux 交叉编译
Valgrind是用于构建动态分析工具的仪器框架。 它附带了一组工具,每个工具都执行某种调试,分析或类似任务,可帮助您改进程序。 Valgrind的架构采用模块化设计,因此可以轻松创建新工具,而不会干扰现有结构。 开始工作前,有两项信息不得不看,那就是平台和工具概述,虽然百度查了一些,但毕竟不如官方的准确: 平台支持,我的 ARM-v7 是支持的 http://valgrind.org/info/platforms.html 工具概述: http://valgrind.org/info/tools.html 标准配置提供了许多有用的工具。 Memcheck是一个内存错误检测器。 它可以帮助您使程序,尤其
[单片机]
valgrind <font color='red'>arm-linux</font> 交叉编译
基于GPRS的无线数据采集与传输终端
无线数据采集与传输的应用范围非常广,涉及行业有电力、水利、公安、交通、石油、安防和金融等。中国移动公司在2002年5月正式开通了通用分组无线业务GPRS网络。GPRS网络支持TCP/IP协议并且覆盖面广,比起使用短消息和超短波无线数传电台进行无线数据传输,GPRS无论在费用、可靠性和可实施性等方面都具有很大的优势。 终端的系统组成 无线数据采集与传输终端的设计可以有两套方案:第一套为“单片机+GPRS调制解调器”,此方案虽然硬件成本较低,但功能比较有限,在协议的开发和支持上都有一定难度;第二套方案为“嵌入式CPU+GPRS 模块”,此方案虽然硬件成本稍高,需要嵌入式CPU芯片来支持嵌入式操作系统,但可以实现丰富协议接口,便于移
[单片机]
基于<font color='red'>GPRS</font>的无线数据采集与传输终端
基于GPRS 的油田计量采集控制系统的设计
1 系统简介 随着无线数据通信系统的发展,GPRS 作为一种新的移动数据通信业务,在移动用户和数 据网络之间为用户提供一种高速无线IP 服务。 基于GPRS 的油田计量采集控制系统是针对采油厂的旧采油计量系统进行的整体升级改造。 新系统的通讯方式改成GPRS,现场终端采集到的数据定时通过GPRS 进入Internet,主机直接连 接Internet,接收由Internet 传送来数据;主机可根据生产需要制定每口油井的计量周期、计 量频率,定期下发给终端;终端按照主机发来的命令自动安排计量间内各油井的计量频率和计量 周期,自动采集油斗数、水量等参数,并将采集到的数据暂存,全部采集完成后定时向Internet 传输,由于终端自动安
[工业控制]
基于<font color='red'>GPRS</font> 的油田计量采集控制系统的设计
基于GPRS技术的POP3远程升级系统设计
引 言 随着科技的发展,低压电力载波抄表终端已广泛应用于电力的各个行业,为电力部门节省了人力物力资源并提高了效率。另一方面,电力载波抄表终端系统却需要大量的工程人员去现场维护。这是各相关企业和公司急需解决的问题,针对这一问题,提出了基于POP3的低压电力载波抄表终端的远程升级系统,该系统通过连接POP3升级服务器,下载新程序并进行Base 64解码,最后利用ARM7的IAP功能实现程序的实时更新,解决了终端系统程序现场维护的问题,真正意义上节省了人力物力资源。该系统已应用于低压电力载波抄表终端中,并取得了明显的成效。 1 系统工作原理 该系统主要有GPRS连接、POP3接收邮件、Base 64解码和IA P编程4部分组成。GP
[单片机]
基于<font color='red'>GPRS</font>技术的POP3远程升级系统设计
低压电力载波抄表终端远程升级系统开发
  引言   随着科技的发展,低压电力载波抄表终端已广泛应用于电力的各个行业,为电力部门节省了人力物力资源并提高了效率。另一方面,电力载波抄表终端系统却需要大量的工程人员去现场维护。这是各相关企业和公司急需解决的问题,针对这一问题,提出了基于POP3的低压电力载波抄表终端的远程升级系统,该系统通过连接POP3升级服务器,下载新程序并进行Base64解码,最后利用ARM7的IAP功能实现程序的实时更新,解决了终端系统程序现场维护的问题,真正意义上节省了人力物力资源。该系统已应用于低压电力载波抄表终端中,并取得了明显的成效。   1系统工作原理   该系统主要有GPRS连接、POP3接收邮件、Base64解码和IAP编程4
[嵌入式]
ARM-Linux模块编译与加载
在linux下加载一个简单的模块方法以及步骤: 运行环境:linux-2.6.12 编译环境:arm-linux-gcc(3.4.1) 运行平台:S3C2440 1.编写模块程序Module.c #include linux/init.h #include linux/kernel.h #include linux/module.h static int hello_init(void) { printk( Hello, SmallBox! This is the first test module!\n ); return 0; } static void hello_exit(void) {
[单片机]
国美零售与科大讯飞签署深度合作协议:智能家庭生态系统
近日,国美零售与科大讯飞签署深度合作协议,双方宣布将携手深化国美的智能家庭一体化整体解决方案的全面落地,共同打造开放式的智能家庭生态系统,布局智能家庭生态链上的多款新品开发项目。 据了解,国美智能将把科大讯飞的技术应用到国美智能语音空调、智能语音电热水器、万能遥控器、智能语音耳机在内的多个智能新品的联合研发,进一步丰富国美智能家庭生态系统产品链条。以搭载科大讯飞技术的国美智能语音空调新品为例,通过搭载科大讯飞智能语音方案,实现唤醒、离线识别、合成播报一系列完整语音交互功能,支持家居场景下3-5m距离内的高唤醒率和识别率。用户只需呼叫“小美空调”即可唤醒空调,继而实现语音操作,例如下达升降温指令、询问天气等,该产品有望在下一季度
[嵌入式]
国美零售与科大讯飞签署深度合作协议:<font color='red'>智能</font><font color='red'>家庭</font>生态系统
微控制器的GPRS无线上网
摘要:介绍一种在微控制器上实现PPP协议,并使其控制GPRS模块通过GPRS连入Internet的方法;介绍GPRS技术和GPRS模块的使用方法;重点介绍微控制器软件的层次结构和PPP协议的实现方法。 关键词:微控制器 点对点协议 GPRS 互联网 引 言   微控制器以其体积小、功耗低、使用方便等特点,广泛应用于各种工业、民用的嵌入式系统中;而随着互联网(Internet)的兴起与普及,使微控制器通过互联网传送数据就变得非常有意义。目前使微控制器上网的解决方案一般有两种:一种是采用微控制器驱动网卡,通过以太网连接Internet;另一种是使微控制器直接驱动调制解调器(MODEM)通过电话线向ISP拨号上网。这两种方案的缺点
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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