智能家居系统高清数字显示终端设计方案

2012-07-23 10:50:38来源: 互联网

摘要:阐述了基于M2M 技术的智能家居系统和数字显示终端的设计原理与方案,介绍了数字显示终端的硬件实现和软件实现,重点解决了数字显示模块的组网问题。

  无线传感器网络、嵌入式处理技术、无线网络技术和无线控制技术的发展, 给智能家居领域的发展带来了实际可行的应用成果。同时, M2M 技术的应用使智能家居系统的设计更加人性化。

  目前, 国内外很多公司的智能家居系统已经实现稳定可靠的室内电气设备的控制和各种计量设备(煤气、水和电) 的无线抄表, 但许多公司的智能家居系统还缺乏一种可以迅捷地进行室内电气设备工作状态检测和控制以及可供用户随时查询、记录抄表数据的手持智能显示终端。笔者设计的智能家居系统数字显示终端是一个基于ZigBee 技术和USB OTG 技术的用户和智能家居系统互动的媒介,可有效地帮助用户实现对智能家居系统的监测和抄表数据查询。

  1 数字显示终端

  数字显示终端是基于M2M 技术的智能家居系统唯一最终面向用户的部分。采用ZigBee 技术和USB OTG 技术完成对无线设备的监控和抄表数据的查询、记录。

  1.1 基于M2M 技术的智能家居系统

  基于M2M 技术的智能家居系统主要通过Zig-Bee 技术与相关的无线设备组建无线局域网, 采集无线传感器的数据和输出控制信号, 并由坞站将采集到得数据汇总封装后通过M2M网关和Internet传送到提供相关家居服务的公司的服务器上。它主要由5部分组成: 低功耗数据采集系统、数据汇总传输系统(又称坞站), 数字显示终端, M2M网关和服务器, 并主要使用在居家能源管理和居家自动化两个方面。

  1) 居家能源管理。坞站将管理安装在家庭中的几个低功耗无线传感器(煤气、水和电)。所有坞站从无线传感器采集到的信息在对接模式时被传送给数字显示终端。数字显示终端将使用文字、图形、图标和图片把这些信息显示出来。

  2) 居家自动化。这种情况类似于居家能源管理, 只是其使用的无线传感器可以管理输入输出信号以控制室内电气设备, 如门窗、室内照明等设备。

  本套智能家居系统主要将M2M 技术融合在网关, 而最终面向用户的只是数字显示终端(见图1)。

  基于M2M 技术的智能家居系统

1.2 数字显示终端的设计原理与方案

  数字显示终端是智能家居系统与用户互动的关键部分, 通过ZigBee 技术与安装在室内的低功耗无线设备建立无线局域网, 监控无线设备的工作状态, 并通过USB OTG 高速数据传输接口与坞站连接, 将坞站采集到的抄表数据以图、表或文字的形式显示出来, 同时将检测到的室内低功耗无线设备的工作状态发送到服务器, 供用户远程登录服务器监测和控制低功耗无线设备。数字显示终端工作在两种模式下, 一种是对接模式进行, 即通过USBOTG 高速数据传输接口和坞站连接进行数据交换;另一种是移动模式, 即不与坞站连接的工作状态,这时它只能检测和控制相关低功耗无线设备。USBOTG 接口不仅可以传输数据, 当数字显示终端与坞站对接时, 可以通过USB OTG 接口给数字显示终端的蓄电池充电。

  数字显示终端主要由无线模块、显示模块、数据存储模块、数据传输接口、电源部分和用户导航键6 部分组成(见图2)。

  图2 数字显示终端

  2 数字显示终端的实现

  数字显示终端处理器选用LPC1758.LPC1758是一款基于ARM Cortex-M3 内核的处理器, 集成了USB2.0 功能, 包括USB 主机、USB 从机和USBOTG, 拥有512 KB 的Flash 和64 KB 的SRAM.无线模块选用的是ZICM2410P0-1 模块。显示模块选用DMT32240T035_01WN 模块。数据存储模块选用4 GB 的FLASH 存储器, 也可升级为16 GB 的存储空间。因处理器已集成OTG 功能, 所以由处理器和USB 收发器芯片ISP1302 共同组成数据传输结论。

  导航键具有上下左右导航和选择键。电源部分选用可通过USB 接口充电的蓄电池(5 V~500 mA), 电池容量最小为600 mA/h, 全功能模式供电24 h,休眠模式供电240 h.数字显示终端的软件部分是由μCOS-II 实现。

  2.1 数字显示终端的硬件实现

  数字显示终端(见图2) 由6 部分组成, 其中主要是无线模块和数据传输接口的实现。

  1) 无线模块的实现。无线模块是基于ZiGBee技术的, 该技术是一种在900 MHz 及2.4 GHz 频段, 近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术。它由ZICM2410P0-1 芯片和外围电路组成(包括上电复位电路和工作指示电路)。

  ZICM2410 芯片包括多个通用I/O 引脚、定时器、UART 和SPI 等, 而且还有硬件语音编解码器,独有的IIS/SPI/UART 音频输入输出接口, 扩展出500 KB/s 或1 MB/s 的无线传输速率, 通过PCB 走线构成天线, 103 dB 的射频链路预算, 1.5 V 时RX灵敏度为-97 dB/m, 1.5 V 时射频TX 功率为+6 dB/m.在外围电路的设计中, 通过ZICM2410 的UART与LPC1758 处理器连接, 为了保证程序的稳定性和射频性能, 采用了复位芯片CAT809E, 无线模块采用F 型天线拓扑结构, 支持全向辐射模式。为了保证天线的性能发挥, 数字显示终端的主板上要有足够多的接地面, 并且不要在模块的天线下方布线,确保PCB 走线和其他元件远离天线。

  2) 数据传输接口的实现。数据传输接口的电路主要是由处理器芯片LPC1758 和USB 收发器芯片ISP1302 组成, 接口插头选用Mini-A 插头。处理器LPC1758 集成了USB2.0 功能, 支持OT 模式, 数据传输接口电路。

  LPC1758在设计USB OTG接口电路, 需要外接1个USB收发器ISP1302,LPC1758和ISP1302通过I2C总线连接通信,LPC1758内部的收发器负责控制USB信号切换, 而ISP1302 负责实现OTG 功能。此时,LPC1758内部的收发器在VP/VM模式下工作。

  3) 其他部分的硬件实现。数字显示终端其他部分还包括显示模块、数据存储模块、电源部分和用户导航键。DMT32240T035_01WN 显示模块集成的功能非常齐全, 它通过RS232 直接和处理器LPC1758 连接, 但在电源的处理上要确保最终接到显示模块上的电压不低于5 V.数据存储模块选用KFW4G16Q2M-DEB6 NAND FLASH.用户导航键采用普通薄膜式按键。电源部分选型比较重要, 作为数字显示终端的能量来源, 不仅要满足显示模块的电压5~6 V, 电流不低于130 mA, 而且能接受USB接口充电, 电池容量不低于600 mA/h.

2.2 数字显示终端的软件实现

  数字显示终端的操作系统选用μCOS-II 实时操作系统。它是一种简单高效、源代码公开的实时嵌入式操作系统, 具有良好的扩展性和可移植性, 被广泛应用到各种嵌入式处理器上。

  μC/OSII 的核心源代码不用修改, 移植中需要修改的是涉及处理器的OS_CPU_C.C, OS_CPU_A.

  ASM, OS_CPU.H 三个文件。

  1) OS_CPU.H 文件包含μC/OSII 所需要的常量、宏和自定义类型等。

  OS_CPU.H 定义的数据类型。在这次移植中μC/OSII 重新定义了数据类型。

  typedef unsigned char BOOLEAN;

  typedef unsigned char INT8U;

  typedef signed char INT8S;

  typedef unsigned short INT16U;

  typedef signed short INT16S;

  typedef unsigned int INT32U;

  typedef signed int INT32S;

  typedef float FP32;

  typedef double FP64;

  typedef unsigned int OS_STK;

  typedef unsigned int OS_CPU_SR.

  不同处理器的堆栈增长方向是不一样的,LPC1758 的堆栈是从高地址往低地址增长的,OS_STK_GROWTH设为1, 程序为:

  #define OS_STK_GROWTH 1.

  2) OS_CPU_C.C文件。在OS_CPU_C.C定义的C函数中,OSTaskStkInit()函数与处理器相关,所以移植代码需要修改该函数。其程序为(初始化任务时调用此函数初始化任务使用的堆栈)。

  OS_STK * OSTaskStkInit (void (*task) (void

  *p_arg),void *p_arg,OS_STK *ptos,INT16U opt)

  {

  OS_STK *stk;

  (void) opt; //防止编译警告

  stk=ptos; //装载栈顶指针, 即堆栈数组最后的地址模拟中断发生的堆栈情况

  *(stk)=(INT32U)0x01000000L; //xPSR

  *(stk)=(INT32U)task; //PC, 任务入口

  *(stk)=(INT32U)0xFFFFFFFEL; //R14(LR)

  *(stk)=(INT32U)0x12121212L; //R12

  *(stk)=(INT32U)0x03030303L; //R3

  *(stk)=(INT32U)0x02020202L; //R2

  *(stk)=(INT32U)0x01010101L; //R1

  * (stk) =(INT32U)p_arg; //R0, 输入参数p_arg 模拟任务进程, 保存其他寄存器到堆栈

  *(stk)=(INT32U)0x11111111L; //R11

  *(stk)=(INT32U)0x10101010L; //R10

  *(stk)=(INT32U)0x09090909L; //R9

  *(stk)=(INT32U)0x08080808L; //R8

  *(stk)=(INT32U)0x07070707L; //R7

  *(stk)=(INT32U)0x06060606L; //R6

  *(stk)=(INT32U)0x05050505L; //R5

  *(stk)=(INT32U)0x04040404L; /R4

  return(stk);

  }

  3) OS_CPU_A.ASM 文件。μC/OSII 的移植需要编写5 个简单的汇编语言函数。

  OS_ENTER _CRITICAL (): 关闭中断源;

  OS_EXIT_CRITICAL (): 重开中断源;

  OSStartHighRdy (): 运行当前优先级最高的任务;

  OSCtxSw (): 一个任务放弃CPU 使用权时调用;

  OSIntCtxSw (): 在退出中断服务函数OSIntExit() 中被调用, 实现中断级任务切换。

  LPC1758使用OSPendSV()函数快捷地进行上下文切换。OSPendSV()的C语言表述程序为OSPendSV: 关中断;

  if (PSP ! =NULL)

  {

  //保存R4~R11 到任务堆栈SP_process;

  OSTCBCur》OSTCBStkPtr = SP_process;

  }

  OSTaskSwHook ();

  OSPrioCur = OSPrioHighRdy;

  OSTCBCur = OSTCBHighRdy;

PSP = OS

[1] [2]

关键字:家居系统  高清  数字显示  终端

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0723/article_16498.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
家居系统
高清
数字显示
终端

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved