[摘要] ZigBee是一种新兴的短距离无线通信技术,为实现对家庭安全的实时监控,提出了智能家居远程安全监控系统设计方案。系统基于ZigBee技术和GSM/GPRS网络进行设计,能够通过彩信和短信发出监控图像和报警信息,接收远程指令;同时引入了多种传感器,实现了对家用电器的远程控制,实现了智能家居远程监控。重点阐述了系统的硬件、软件设计以及系统的性能测试,实现了多个监控装置的无线联网。实验结果表明,所设计的系统能够实现安全、便捷的智能家居远程监控,并具有较高的可用性和可靠性,验证了ZigBee技术应用于低速个域网具有低功耗、可扩展性以及较高的实用性等特点。
[关键词]:智能家居; 无线网络; ZigBee;
【Abstract】ZigBee is a new kind of short distance wireless communication technology,To realize the real-time monitoring of family security, and put forward the intelligent household remote security monitoring system design scheme. System based on ZigBee technology and GSM/GPRS network design, can through the MMS and SMS send monitoring image and alarm information, receiving remote instruction; At the same time introduced a variety of sensors, realize the household appliances remote control, realize the intelligent household remote monitoring. Elaborated the system hardware, software design and system performance test, and realize multiple monitor wireless networking. The experimental results show that the designed system can realize the safe, convenient intelligent household remote monitoring, and has high availability and reliability.
【Keywords】: smart home; Wireless network; ZigBee;
目录
1. 错误!未找到引用源。绪论
1.1 引言
智能家居又称智能住宅,正朝着具备无线远程控制、多媒体控制、高速数据传输等功能的方向发展,其关键技术为兼容性强的家庭控制器和满足信息传输需要的家庭网络。目前,传输网络多采用综合布线技术,了系统的应用场所,而且费用较高。采用无线方式构建灵活便捷的智能家居安全监控系统,成为当前的研究热点。
目前,应用于智能家居的无线通信技术主要包括: Ir2DA红外线技术、蓝牙技术和ZigBee技术等。IrDA属于短距离、点对点的半双工通信方式,使用不便且失误率高,不适用于家庭的组网方式;蓝牙技术则因为网络容量有限,成本较高,不适于节点较多的家居网络应用。
本研究通过采用传输范围适中、安全可靠、网络容量较大的ZigBee技术,设计智能家居远程安全监控系统。
1.2 智能家居系统的国内外研究现状
1.2.1智能家居系统的国外研究现状
自从世界上第一幢智能建筑在美国出现后,国外的智能家居已经获得了长 足的发展。一些知名企业如IBM、CISCO、Siemens、Samsung、Microsoit、Sony、 Panasonic很早就投身到这一领域,最初他们的产品种类繁多,各自采用的技术 标准也不尽相同。发展至今,已经形成了比较统一的通信协议标准,这些协议 标准在国际智能家居和家庭网络中占据主导地位。国外目前比较流行的智能家 居品牌有:AMX、Crestron、ELAN、HAI(美国海益)【l】以及已经打入中国市场的Honeywell(霍尼韦尔)、LG。
国外这些智能家居品牌主要采用的通信协议标准有:
1)LonWorks协议
LonWorks协议是由美国Echelon公司与Motorola和东芝公司共同倡导的, 于1990年正式公布而形成的。它采用了ISO/OSI模型的全部七层通行协议,采 用了面向对象的设计方法,通过网络变量把网络通信设计简化为参数设置,其 通信速率从300b/s至1.5Mb/s不等,直接通信距离可达2700m,支持多种通信介质。其最大特点是在总线上挂接具有神经元(Neuron)芯片的控制节点,,而 这些芯片内已经固化有标准的网络通信协议、内嵌式网络操作系统和运作的时 间数据库。可以说LonWorks协议最大的应用领域就是在楼宇自动化方面,它包括建筑物监控系统的几乎所有领域,即能源管理、消防、救生、供暖通风、测量、安保等。LonWorks协议中的介质访问控制层,即ISO/OSI模型中的第1、2层, 已经被接纳为建筑自动化控制网络(BACnet)的标准,同时也被美国国家标准 协会(ANSI)制定的有关标准所采纳。 2)CEBus协议
CEBus(ConsumerElectroniCS Bus,消费电子总线)是美国于1984年4月开始组织开发的一种智能家庭网络系统的标准,经过多年研究,于1992年正式推出,并正式命名为CEBus。CEBus采用的传输介质可以是多种多样的:电力线、双绞线等。它在电力线载波模式工作时最具有优势。CEBus协议是一种开放式标准,在通信协议上遵循ISO/OSI七层协议框架。CEBUS省略了ISO/OSI七层协议中的传输层(TransportLayer)、会话层(Session Layer)和表达层
(PresentationLayer),仅保留物理层(PhysicalLayer)、链路层(LinkLayer)、 网络层(NetworkLayer)和应用层(ApplicationLayer)。CEBUS协议具有两个 典型特点:一是,在介质访问控制子层(MAC)采用总线结构的CSMA/CDCR (Carrier-sensingMultipleAccesswithCollisionDetectionandcollisionresolution,即载波侦听多路访问/冲突检测协调协议),即一个网络节点在需要通过总线来发送数据时,它首先要检测总线上是否有数据在传输,只有确认总线上没有数据在传输时,它才向总线发送数据,以确保任何两个节点不会同时占用总线而产生冲突;二是CEBus总线专门配置了专用的应用语言系统CAL(Common Application Language),利用CAL系统可方便地对网络上的各种家电设备进行
逻辑控制关系的设定,同时也可以以文件的模式来描述一个家电设备的功能。 3)X-lO协议
X.10协议是由美国RadioshareChain公司于1978年研制成功的,是国际通用的智能家居电力载波协议。目前己广泛应用于家庭安全监控、家用电器控制 和住宅仪表数字读取等方面。它是以50Hz或(60Hz)为载波,再以120KHz 的脉冲为调变波,发展出来的数位控制技术,并采用电力线为连接介质对电子 设备进行远程控制的通信协议。X.10的兼容产品可以通过电力线互相通讯,不 需要重新铺设控制线路,电力线在提供电流的同时又可以像网线一样传送控制 指令,从而实现网络化的控制。
国外厂家大多数都是专业生产家庭智能化设备的,历史悠久,产品的可靠 性以及性能都经历了验证。国外的智能家居产品比较注重家庭内部功能的实现, 不足之处在于其价格比较高和联网的能力方面比较差。
1.2.2智能家居系统的国内研究现状
我国在智能家居研究领域起步较晚。最初,国内较有实力的家电厂商涉足 了这一领域,比如,康佳、创维、厦华、美的、春兰等推出了系统改进的信息 家电,为智能家居的实施提供了功能终端设备;然后到了1999年3月10日, 微软的比尔·盖茨的深圳之行又推出了“维纳斯\"计划,使国内的IT厂家对智 能家居有了更加清晰的认识,他们将研究注意力主要集中在系统构成上,从而 从根本上解决了目前智能家居存在的弊端和问题;目前,智能家居在国内的发 展已全面展开,不论是技术还是市场方面都出现了可喜的局面。2008年12月4 日,由千家网、千家品牌实验室共同主办的第九届中国国际建筑智能化峰会上, 揭晓了“2008年中国智能家居十大品牌\",其中,中国国内的品牌有:上海索博、 广州安居宝、青岛海尔、天津瑞朗、深圳波创、深圳普力特、上海慧居、深圳 松本先天下、厦门振威安全。
就智能家居解决方案而言,主要的困难就是系统通信,而最核心的问题还是通信协议的选择。上述中国智能家居十大品牌以及其它一些厂商的解决方案 中,除了引进国外主流的一些通信协议外,还采取以下几种系统通信方案: 1)荷兰PLC.BUS技术
上海索博就采用的是PLC—BUS技术。PLC.BUS技术是一种高稳定性及较 高性价比的双向电力线通信总线技术,它主要利用已有的电力线来实现对灯光、 家用电器及办公设备的智能控制。PLC.BUS系统主要由三部分组成,即发射器、 接收器和系统配套设备。发射器主要作用是通过电力线发射PLC-BUS控制信号 给接收器,通过对接收器的控制,从而达到间接控制灯及电器设备的目的;接 收器主要作用是接收来自电力线的PLC.BUS控制信号,并执行相关控制命令, 从而达到灯及电器控制的目的;系统配套设备主要是为了配合发射器及接收器 设备,辅助实现控制目的,例如:三相耦合器、信号转换器、信号强度分析仪、 吸波器等。PLC.BUS技术的解决方案包括如下领域的应用:灯光控制,电器控制,HVAC控制以及网络与电器设备间的通信。 2)H.Bus总线协议
深圳普利特智能家居系统采用的就是H.Bus总线。H.Bus分布式总线是一 种适合于中国家庭自动化及小型工业控制环境的简单、可靠、易用而又低成本 的新型现场总线控制系统,可实现家庭电气设备及小型工业设备的现场互连与 控制;方便构建一个统一的底层网络。它采用双向数字通信,无冲撞通信协议 设计,系统容量大。同时采用了UTP5作为系统总线,布线简便。通讯速率为 9.6KB/S,总线电压为+12V,系统总线传输距离大于1000m。 3)ApBus总线(网络)技术
深圳汇创智能家居系统采用的就是ApBus总线技术。ApBus总线(网络) 技术是具有专利产权的总线技术。ApBus采用的是一种电源/信号混合传输的技 术,是一种家庭自动化网络总线技术。该总线技术主要用于网络化控制系统, 特别是智能家居网络、住宅小区网络方面。该总线系统主要由电源供应器、双
绞线和功能模块三个基本部分组成。每个功能模块都是串联在双绞线上,互相 的连接不分极性。:[41该总线技术采用+24V直流电源,信号传输速率为10KB/S,以双绞线作为传输媒体。
总的来说,ApBus是一种新型的智能控制总线,在欧洲标准EIB总线及 LonWorks总线技术上作了创造性的改进,其防通信冲撞协议设计很好的解决 了总线上各节点收发指令的冲撞问题,大大提高了系统的通信效率与稳定性。 国内的智能家居厂商的构成较为复杂,有科研院校,也有以前的家电厂商, 技术实力也相差悬殊。他们目前设计的系统中主要采用的是有线方案(总线), 也有部分系统中包含了无线接口的应用。
从目前的发展来看,在智能家居系统中,无线网络技术应用于家庭网络已 成为势不可挡的趋势,这不仅仅因为无线网络可以提供更大的灵活性、流动性, 省去了花在综合布线上的费用和精力,而且它更符合于家庭网络的通讯特点, 同时随着无线网络技术的进一步发展,也必将大大促进家庭智能化、网络化的 进程。
无线网络技术主要可分为射频(RF)技术、IrDA红外线技术、IEEE802.1la 和IEEE802.1lb协议技术、HomeRF协议、Zigbee技术,其各自的技术特点决 定了其应用的侧重点仍有很大的不同。本设计采用了无线传感网络来构成智能 居家系统,下一节中将要详细讨论其系统的构成和协议的选择。
1.3本文设计的主要内容
本系统采用模块化设计方案。以嵌入式系统主板为核心,通过CMOS摄像头对关键部位进行安全监测,通过手机传递安全信息和图像彩信,并对家用电器进行远程控制,利用ZigBee模块实现家用电器、系统主板和烟雾、温度、煤气等传感器的无线联网。
系统主板的核心控制器为S3C44B0X型32位微控制器,对数据进行处理和判别,并通过彩信模块和Zig2Bee模块发出信息和指令;扩展板用以接入烟雾、红外、煤气等家庭安防状态传感器;彩信模块将系统控制器所发出的家庭安防状态信息发送至用户手机,并接收用户发送的短信指令; ZigBee模块负责系统主板、扩展板和家用电器之间的数据交联。系统结构如图1所示。
图1 系统设计结构图
基于以上要求,本设计主要分为以下部分:
(1)无线传输模块:基于CC2430芯片(包括无线收发及传感器)设计无线 传感网络模块,并完成各节点模块的软件编写和节点间通信调试。 ‘
(2)数据处理模块:基于DSPTMS320F2812芯片设计数据处理模块,并完成 程序编写,同时在TMS320F2812上移植嵌入式实时操作系统rtc/os.II。 (3)以太网传输模块:利用网络接口芯片RTL8019AS设计以太网通信模块, 并完成通信测试程序编写。
(4)上位机显示界面设计:利用VC++6.0基于WindowsSockets编写上位机 界面程序,使经过数据处理模块处理后的数据通过以太网上传到上位机 (PC监控机)界面上,实现统一管理。
2. 短距离无线通信技术ZigBee
2.1 ZigBee技术概述
ZigBee一词源自蜜蜂群在发现花粉位置时,通过跳ZigZag型舞蹈来告知同 伴,达到交换信息的目的,是一种通过简捷方式实现“无线”沟通的方式。人 们借此称呼一种专注于低功耗、低成本、低复杂度、低速率的近距离无线网络 通信技术,也包含了这种寓意。
ZigBee联盟成立于2002年8月,由英国Ivemys公司、日本三菱电气公司、 美国摩托罗拉公司、荷兰飞利浦半导体等公司组成,迄今已吸引了上百家芯片 公司、无线设备公司及产品开发商。ZigBee联盟的主要工作在:①定义网络、 安全以及应用软件层的协议;②提供不同的协调性及互通性测试规格;③促进 ZigBee技术在全球的推广;④有效管理该技术的发展。
ZigBee技术主要应用在短距离范围内以及数据传输速率不高的各种电子设 备之间,所以非常适用于家电和小型电子设备的无线控制指令传输。其典型的 传输数据类型有周期性数据(如传感器)、间歇性数据(如照明控制)和重复低 反应时间数据(鼠标)。其目标功能是自动化控制。其主要特点包括以下几个方 面:
(1)省电。两节五号电池支持长达6个月到2年左右的使用时间。
(2)可靠。采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用 时隙,避免了发送数据时的竞争和冲突;节点模块之间具有自动动态组网的功 能,信息在整个ZigBee网络中通过自动路由的方式进行传输,从而保证了信息 传输的可靠性。
(3)时延短。针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时 延都非常短。
(4)网络容量大。可支持达65000个节点。
(5)安全。ZigB∞提供了数据完整性检查和鉴权功能,加密算法采用通用的 AES.128。
(6)高保密性。采用位出厂编号并支持AES.128加密。
2.2 ZigBee协议 2.2.1 ZigBee协议概述
ZigBee技术的基础就是IEEE802.15.4标准。1998年3月,IEEE标准化协会正式批准成立了IEEE802.15工作组,致力于WPAN网络的PHY层和MAC 层的标准化工作,目标是为在个人操作空间(Personaloperating.space,POS) 内相互通信的无线通信设备提供通信标准。POS一般是指用户附近10米左右的 空间范围,这个范围内用户可以是固定的,也可以是移动的。2000年12月IEEE 成立了802.15.4小组,负责制定物理层(PHY)与介质接入控制层(MAC)。但仅仅定义了物理层(PHⅥ与介质接入控制层(MAC)并不足以保证不同设备之间可以 对话,于是便有了ZigBee联盟,ZigBee联盟从IEEE802.i5.4标准开始着手, 目前正在定义允许不同厂商制造设备相互对话的应用纲要。例如,ZigBee联盟 “灯纲要\"会确定相关的所有协议,从而能够使A公司买的ZigBee灯开关与B 公司的正常工作。同时,ZigBee联盟对其网络层协议和API进行了标准化,还 开发了安全层,以保证这种便携设备不会意外泄露其标识,而且这种利用网络 的远距离传输不会被其他节点获得。
IEEE802.15.4标准是针对于低速无线个人区域网(10w-ratewireless personalareanetwork,LR-WPAN),把低能量消耗、低传输速率、低成本作为重点目标,旨在为个人或家庭范围内不同设备之间低速互联提供统一的标准。 IEEE802.15.4标准定义的LR-WPAN网络具有如下特点:
(1)在不同的载波频率下实现20kbps、40 kbps和250kbps三种不同的传 输速率。具体来说就是:2.4GHz上的传输速率为250kb/s;915MHz上的传输速
率为40kb/s;868MHz上的传输速率为20kb/s。
(2)支持星型(Star)和点对点两种网络拓扑结构。
(3)有16位和位两种地址格式。位地址是全球唯一的扩展地址,而 16位地址是网内通信短地址。
(4)支持冲突避免的载波多路侦听技术(carrier sense multiple access with collision avoidanee,CSMA.CA)。即当其中一个站点要发送信息时,首先侦听 系统信道空闲期间是否长于某一帧的间隔:若是,立即发送;否则暂不发送, 继续侦听。CSMA.CA通信方式将时间域的划分与帧格式紧密联系起来,保证 某一时刻只有一个站点发送,实现了网络系统的集中控制 (5)支持确认(ACK)机制,使用这种机制,所有特殊ACK标志位置1
的帧均会被它们的接收器应答。这就可以确定帧是否已经被传递。如果发送帧 的时候置位了ACK标志位,但在一定的超时期限内没有收到应答,发送器将重 复进行固定次数的发送,如仍无应答就宣布发生错误。ACK机制保证了传输的 可靠性。
2.2.2 ZigBee协议的优势和应用领域
ZigBee通信协议虽然是是面向低功耗和低成本的通信技术的,但ZigBee 协议是能够保证通信的可靠性的,而且ZigBee协议的另一大优势就是使网络的 自组织、自愈能力也很强。
1)ZigBee的自组织功能:无需人工干预,网络节点能够感知其他节点的存在, 并确定连接关系,组成结构化的网络。
2)ZigBee的自愈功能:增加或者删除一个节点,节点位置发生变动,节点发 生故障等等,网络都能够自我修复,并对网络拓扑结构进行相应地调整,无 需人工干预,保证整个系统仍然能正常工作。
ZigBee产品在发展初期是以工业或企业市场的感应式网络为主,’提供感应 辨识、灯光与安全控制等功能,最后才慢慢家庭应用中拓展的。目前只要符合 以下条件之一的应用,就可以考虑采用ZigBee技术: >需要数据采集或监控的网点多;
>要求传输的数据量不大,而且要求设备成本低; >要求数据传输可靠性高,安全性高;
>设备体积很小,不方便放置较大的充电电池或者电源模块; >地形复杂,监测点多,需要较大的网络覆盖;. >现有移动网络的覆盖盲区;
>使用GPS效果差,或成本太高的局部区域移动目标的定位应用。 ZigBee技术的应用前景非常被看好,未来它主要将被应用在: >工业控制网络(如:无线仓库管理系统) >汽车自动化(如轮胎压力监测系统)
>建筑智能化(如灯光控制、气体的感应和监测)
>智能家居(三表数据采集,窗帘、空调和其它家用电器控制) >医疗监护(对血液、体温和心跳速度等信息的监测)
3.ZigBee无线收发模块的硬件设计
3.1 芯片的选择
本系统采用CC2430芯片作为ZigBee无线通信模块。它使用一个8位MCU(8051),具有32、、128KB可编程闪存和8KB的RAM,还包含了模/数转换器(ADC)、4个定时器(Timer)、AES.128安全协处理器、看门狗定时器(WatchdogTimer)、32KHz晶振的休眠模式定时器、上电复位电(Poweronreset)、掉电检测电路(Brownout detection)以及21个可编程I/O引脚,CC2430的内部结构如图3.1所示。
图3.1 CC2430内部结构示意图
CC2430整合了ZigBee射频(RF)前端、内存和微控制器,集成了符合IEEE802. 15. 4 标准的2. 4GHz的RF无线电收发机,支持数字化的RSSI/LQ I,具有CSMA /CA功能和强大的DMA功能、电池监测和温度感测功能,同时具有强大和灵活的开发工具。
3.2 ZigBee无线收发模块的电路设计
CC2430的外围电路如图3.2所示。CC2430采用两种工作电压,外部数字 I/O接口使用+3.3V电压,内部使用+1.8V工作电压,这样的电压转化主要是因为CC2430在片上集成了一个直流稳压器,能够把+3.3V电压转化为+1.8V。 这种供电方式对与智能家居系统来说很合适,只要采用+3.3V的纽扣电池就可 以给ZigBee无线收发模块供
图3.2 CC2430无线模块电路图
3.3天线阻抗匹配电路设计
天线是任何一个无线电通信系统都不可缺少的重要组成部分,合理慎重地 选用天线,可以实现较远的通讯距离和良好的通讯效果。CC2430的天线可以采用两种设计方案:金属倒F型PCB引线天线和单极天线。PCB引线天线是印制在电路板上的导线,通过它来感应空气中的电波,接收信号。 单极天线是一种由直接垂直安装在反射平面(底板)上的直导体(通常其长度不大于波长的1/4)组成的天线,其根部接馈线。
本设计采用的是50Q的单极天线,且该天线的长度是电磁波波长的1/4。
3.4电源电路设计
给无线收发模块供电电路如图3.7所示,J4为外置+5V直流电源插座(方 便模块调试),J5为电池供电接口(通常为2节AA电池供电),适用于家用时 可移动更换。当本无线收发模块用于智能家居时,可以使用电池供电,这时只 需要将SW2置于关闭端即可。
TPS79533是一种超低噪声、高电源抑制比的线性稳压电源调节器,它特别 适用于蓝牙、无线传感网络、膝上型/掌上型电脑、PDA、手机等应用领域。一 般EN脚(1脚)为高电平时,将启动整个稳压调节器。而PASS脚(5脚)将 接一外部电容避免内部带隙产生的噪声,这样可以加强电源抑制和减小外部噪 声。
图3.4 电源电路原理图
3.5本章小结
本章重点阐述了ZigBee模块的设计原理和方案,并结合所选用的芯片 CC2430内部功能结构,分析了该收发模块的硬件电路设计。同时给出了天线匹 配电路和电源供电的具体设计方案。
4 数据处理模块的硬件设计
4.1数据处理模块的结构设计
本数据处理模块采用TMS320F2812作为主处理器,这是一种结构简单、功 能强大、经济实用的高速数据处理芯片,它具有数据采集和处理功能。数据处
理模块的结构如图4.1所示。 硬件设计主要包括:
>处理器DSP部分:TMS320F2812通过SPI接收来自ZigBee主无 线模块传输的数据,经过数据分类处理后通过以太网传输到PC机上。 >系统电源电路部分:TMS320F2812为+3.3V信号电平,核心电平为 +1.8V,而以太网控制器都是+5V的信号电平。因此需要设计三种不同 参考电压的电源电路。
>复位电路部分:SP708给TMS320F2812和SL811HS提供低电平复位信 号。
西华大学硕士学位论文
> 以太网通信接口部分:数据处理后通过RTL8019AS网络控制芯片与以 太网连接,且以太网与RTL8019AS之间要接隔离模块后方可以连接。 >RS-232串行通信部分:设计这一部分是为了方便调试。
此外,TMS320F2812支持JTAG口下载仿真,需要设计JTAG接口;为了 方便将来对程序的调试,也需要设计串行通信接口。考虑到协议转换需要大量 的数据存储空间,而TMS320F2812内部空间有限,因此需要外扩一块高速静态 RAM,本文采用的是ISSI公司生产的IS6lLV25616AL。
I/O口扩展引脚的分配如下:XD[0]-XD[7]分配给液晶显示屏作数据输入口, EVA、EVB事件管理器的口留出来已备后续开发(进行中断程序开发),其余口 被用于扩展外部RAM和FLASH。
图4.1数据处理模块结构
4.2数据处理模块的外围电路设计 4.2.1系统电源电路设计
本模块用到了+5V、+3.3V和+1.8V的器件。TMS320F2812采用+3.3V的外 设供电和+1.8V的内核供电,芯片采用这种分离式供电方式,可以大大降低DSP 芯片功耗。所以本模块采用NationalSemiconductor公司的芯片LM2596和LMlll7,将电路板外接的+9V转换成+3.3V和+1.8V。供电电路如图4.3所示。
图4.3电源电路
4.2.2复位电路设计
为了提高系统的可靠性,保证系统稳定地运行,使用了Sipex公司生产的 低功耗SP708R处理器监控芯片,可以提供高/低复位电平。如图4.4所示。SP708R 还可以监控电源和电池供给,它集成了很多器件在其中,包括:一个看门狗定 时器、一个uP的复位、一个掉电比较器和一个手动复位输入。MR脚就是手动 复位引脚,当该引脚输入电平被下拉至低于0.8V时,SP708R将输出一个复位 脉冲。而PFI脚是掉电输入引脚,当SP708R的输入电压低于1.25V时,肋将 为低,所以通常将PFI连接到地。脚RESET是低电平复位输出引脚,当Vcc电 压低于复位阈值时,这个引脚将输出低复位电平200ms。SP708R在这里主要是 为TMS320F2812芯片、USB控制芯片SL811HS提供低电平的复位信号。手动 复位的功能是当系统出现程序跑飞或者需要系统重新初始化并运行时,按下复 位键产生的复位信号,使DSP进入正常的程序入口。
图4.2.2复位电路
4.2.3以太网通信接口电路设计
为了把经过DSP处理模块的数据通过以太网动态的显示在监控机上,这就 需要设计以太网通信接口电路。这里选用Realtek公司生产的高性能工业以 太网控制器RTL8019AS,RTL8019AS的内部包含一块双端口的16K字节的RAM,
有两套总线连接到该RAM上,一套是本地DMA,另一套是远程DMA。本地DMA完成控制器与网线的数据交换,远程DMA负责DSP与RAM之间的数据传输,DSP收 发数据只对远程DMA操作。
芯片复位时,通过检测96引脚IOCSl6B(SLOTl6)的电平来确定是采用 了16位还是8位插槽(这时该引脚称为SLOTl6)。为了做到这点,如果33引 脚RSTDRV置高,则网络适配器被认为放入16位插槽,而IOCSl6B脚将会连 ~300W的上拉电阻;反之,则被认为放入8位插槽,而IOCSl6B脚将会连一 27KW的下拉电阻。同时,通过在RSTDRV引脚输出大于800ns的高电平可实 现RTL8019AS的硬件复位。如图4.2.3所示。
图4.2.3 以太网通信接口电路
4.2.4辅助串行通信电路
考虑到以后调试工作的需要,所以为数据处理模块设计了串行接口。 本设计使用MAX232芯片实现TTL电平和RS.232电平之间的转换,硬件电路如图4.2.4所示。
图4.2.4 串行通信电路
4.3本章小结
本章概述了数据处理模块的设计目的和原理,并以TMS320F2812为核心, 详细介绍了外围电路设计和辅助通信电路设计方案。
5嵌入式实时操作系统μc/os-II在TMS320F2812上
的移植
5.1 μc/os—II的概述及特点
考虑到在智能家居系统中,ZigBee收发模块(对应于安防传感器的部分) 是一个要求实时传输数据的模块,这也就要求整个系统必须是一个实时系统, 能够对各种传感器或命令做出及时反应,且智能家居系统软件必须能够对内存 管理、对消息反应能够实时。所以说移植一个实时操作系统是有必要的。同时,
还考虑到以后可以对智能家居系统进行升级改造(在嵌入式实时操作系统环境 下,开发新的应用程序)的需要,移植一个实时操作系统也是非常有用的。本设计在考虑到整个设计成本问题时,首选免费型实时操作系统,考虑到μC/OS比较适合家庭这种小型的控制系统,同时执行效率高、占用空间小、实时性能优良和可扩展性强等特点,对处理器的移植比较简单,所以最后选择了μC/os—II作为本设计将要移植的实时操作系统。
μC/OS.II是由JeanJ.Labrosse于1992年编写的一个嵌入式多任务实时操作系统。最早这个系统叫做μC/OS,后来经过近10年的应用和修改,在1999年JeanJ.Labrosse推出了μC/OS.II,并在2000年通过了美国联邦航空管理局的RTCADO:178B标准认证,从而证明μC/OS.II具有足够的稳定性和安全性。μC/OS一Ⅱ是用C语言和汇编语言来编写的。其中绝大部分代码都是用C语言编写的,只有极少数部分与处理器密切相关的代码是用汇编语言编写的,所以用户只要做很少的工作就可把它移植到各类8位、16位和32位嵌入式处理器上。Ps]I.μC/OS.II的体系结构如图5.1所示。μC/OS.H操作系统是一种性能优良、源码公开且被广泛应用的免费嵌入式操作系统,其主要特点有:
(1)μC/OS.II是一个可剥夺型的实时内核,其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。
(2)μC/OS.II非常适合小型控制系统,具有执行效率高,占用空间小、确定性、实时性能优良和扩展性强等特点。
(3)μC/OS.Ⅱ最多可以支持个任务,采用的是占先式的实时多任务内核, 保证任务优先级最高的任务能够即时完成。
(4)μC/OS.II的移植较为简单,只需要修改3个与硬件相关的文件和重写几个函数即可。
图5.1 μC/OS.II的体系结构
5.2 μC/0S—II的移植
在本设计中,所移植的系统建立了8个任务(参照见图1.2): O号任务,用来监测安防传感器(煤气泄露)。在执行该任务时通过ZigBee 网络协调器选择与安防传感器(煤气泄露)终端节点通信,采集传感器数据。 1号任务,用来监测安防传感器(温度)。在执行该任务时通过ZigBee网络 协调器选择与安防传感器(温度)终端节点通信,采集传感器数据。 2号任务,与0号任务对应,将安防传感器(煤气泄露)采集的数据最终通 西华大学硕士学位论文
过以太网上传到监控机(PC机)上。
3号任务,与1号任务对应,将安防传感器(温度)采集的数据最终通过以 太网上传到监控机(PC机)上。
4号任务,用来控箱、空调、电视、灯的电源开关,通常情况下,这些 开关型控制,只用一个任务就可以完成,只要在执行该任务时,同时通过ZigBec 网络协调器同时发送一个16位地址符就可以选择出所要执行开关任务的终端节 点。
5号任务,单独为窗帘建立一个任务。因为窗帘的控制是一个闭环控制。 6号任务,为电表、水表、燃气表的数据采集建立一个任务。因为水表、电 表、燃气表的数据对实时性要求没有那么高,可以分时采集,在执行该任务时, 同时通过ZigBcc网络协调器同时发送一个16位地址符就可以选择出所要执行 数据采集任务的终端节点,另外,还要为该任务调用一个延时函数,并设置延 时时钟周期数,从而最终实现在三表间轮流数据采集。
7号任务,用来对三表数据上传到监控机(PC机)建立任务。对应于任务 6,分别将从水、电、燃气表采集的数据立即上传。 从任务的代码上来看,任务是如下形式的一个C函数: void task(void) {
参数定义; for(; ;) {
执行任务代码;
调用OSTimeDly()延时函数,清除该任务就绪位,设置延时时钟周 期数,调用任务切换宏OSTASKswo进行任务调度; > )
它们具有各自的堆栈空间和不同的静态优先级,0号任务优先级最高, 7号任务优先级最低。对于0号任务~3号任务,由于它们是保证家居安全的是 不允许中断响应的,所以在这些任务开始执行时,一定要设置程序状态字PSW 为0x0002(关中断)。同时任务可以在系统和应用程序的控制下,根据具体情况改变自己的状态,这个改变叫做任务状态的转换。任务在不同状态之间的转换即有5种状态:
(1)睡眠状态(DORMANT):指任务驻留在程序空间中,还没有交给操作系 统管理。把任务交给内核是通过调用任务创建函数OSTaskCreateO或提供了一些 附加功能的OSTaskCreateExt0实现的。
(2)就绪状态(READY):当任务~旦建立,这个任务就处于就绪态准备运行。 就绪态的任务都被放在就绪列表中,在任务调度时,指针OSTCBHighRdy指向 优先级最高的那个任务控制块OSTCB,就立即运行该任务。
(3)运行状态(Rl烈NING):处于就绪状态的任务如果经调度器判断获得了处 理器的使用权,则任务就进入了运行状态。任何时候只能有~个任务处于运行 状态,就绪的任务只有当所有优先级高于本任务的任务都转为等待状态时,才 能进入运行状态。这时,控制块指针OSTCBCur指向正在运行的任务的任务控 制块。
(4)等待状态(WAITING):正在运行的任务由于调用延时函数OSTimeDlyO 或等待事件信号量的来临而将处理器的使用权让给其他任务而使任务处于等待 状态。
(5)中断服务状态(ISR):一个正在运行的任务一旦响应中断申请就会中止运 行而去执行中断服务程序,这时任务的状态叫做中断服务状态。 由此可知,在智能家居系统中的8个任务就是在这5种状态间转换的。 行I.μC/OS.II移植,主要进行以下部分的操作:
(1)在OSCPU.H文件中用#define语句定义与处理器相关的常数、宏和 类型;根据处理器堆栈结构在OSCPU.H中定义堆栈增长方向。 (2)在OS CPU.C文件中用C语言编写与处理器相关的C语言代码模块, 即编写6个简单的C语言函数。
(3)在OSCPUA.ASM文件中,集中了所有与处理器相关的汇编语言代 码模块,在OSCPUA.ASM中要编写4个汇编语言函数。
μC/OS.II移植到TMS320F2812采用的是CCS2.0编译软件,CCS2.0支持交叉编译(允许在C源代码中插入汇编语言),所以适合嵌入式实时操作系统
μC/OS.II的移植。
5.3本章小结
本章结合第4章对TMS320F2812的研究,简要介绍了μC/OS.II的特点和 结构,为pC/OS-II的移植做了原理性解释,同时介绍了移植μC/OS.II实时操作系统的方法及步骤。
6智能家居监控系统的软件设计
6.1 ZigBee无线传感网络的搭建
ZigBee支持三种网络拓扑结构:星型网、树型网和网状网。其中星型网络是最省电的,且造价最低,结构简单,适用于自动控制和远程控制领域。 首先设置ZigBee主无线模块为协调器,其它节点模块为终端器件。然后协 调器应用层发出NLME-NETWORK.FORMATION.request原语给协调器网络层 来启动新的网络建立。建网过程开始后,协调器网络层将首先请求MAC层对 物理层所定义的有效信道进行能量检测扫描,以排除可能占用的信道。为实现 能量检测扫描,协调器网络层通过发送扫描类型参数设置为能量检测扫描的 MLME.SCAN.request原语到MAC层进行信道能量检测扫描,扫描结果通过 MLME.SCAN.confirm原语返回给网络层。
网络层的管理实体收到能量检测扫描的结果后,将对那些在允许能量范围 内的信道进行进一步处理。协调器网络层管理实体将发送MLME—SCAN.request 原语执行主动扫描,该原语的ScanType参数设置为主动扫描,ChannelList参数设置为那些已经通过能量检测允许的信道列表,同时在这些信道内搜索其它终 端节点模块。为了决定建立网络的最佳信道,网络层管理实体还将检查PAN标 识符,并且将所查找到的第一个信道设为新网络的最小编号。当协调器网络层 管理实体查找不到与其它节点模块通信的合适信道,将终止建网过程,并且向 协调器应用层发出建网失败信息,即通过发送参数状态为STARTUP-FAILURE
的原语NLME-NETWORK-FORMATION.confirm给应用层知道。
如果协调器网络层的管理实体找到合适的信道,将为这个新网络选择一个 PAN标识符。为了选择一个PAN标识符,需要检查PANID参数是否在 NLME-NETWORK.FORMATION.request原语中已指定。如果选定PANID与已 存在的PANID不发生冲突,则这个m值就将成为新网络的伴ND;否则,将 为这个协调器模块选择一个随机的PANID,只要不使它为广播地址(0xFFFF) 同时小于0x3FFF,并且它在所选择的信道中所存在的网络是唯一的。网络层还 要通过发出MLME.SET.request原语给MAC层来设置macPANId(0x50)属性。 协调器网络层的管理实体一旦选择了一个PANID,将选择一个等于0x0000 的16位网络地址,同时设置MAC层的PIB属性为macShortAddress(0x53)。 然后协调器网络层的管理实体将向MAC层发出MLME.START.request原语启动 新的个域网。个域网的启动状态会通过MLME.START.confm原语返回到网络 层。整个流程如图6.1所示。
图6.1建立网络流程图
家居监控系统中的无线传感网络是由协调器管理整个ZigBee无线传感网络 的。协调器负责zigBee无线网络的建立、地址的分配和成员加入、节点设备数 据的更新、数据采集、设备关联表的维护并根据网路的状况自动更新。在星型 网络中,ZigBee无线传感网络只要求一个全功能节点做网络协调器。要建立一 个网络,第一个节点必须被配置成协调器,这样才能管理以后添加到网络的其 它RFD节点。需要注意的是,这里网络协调器与RFD节点(终端节点)在下 载程序时,要通过编译软件选择下载的节点设备。如图6_3所示。 本设计采用的是基于ZigBee/90215.4的CC2430的(精简版)协议栈,精 简版协议栈全面支持FFD、RFD、ROUTER和COORD。在组网通信过程中, 网络协调器模块的物理地址(Address)为:0xFFFFFFFFFFFFFFll,这是无法 改变的;该星型网络的默认网络号(DefaultPAN)为:0x00001347;该网络默
认的频道号(DcfaultChannel)为:Oxl4。 整个组网过程中协议栈的初始化代码如下: (1)物理层初始化 Void phyInit(void) {
Memlnit0;//初始化化内存
phyState=PHY_STATE_IDLE;//物理层状态是空闲 phyAfib.flagsval=0;//物理层的PIB属性的标志位值 )
(2)MAC层初始化 Void maclnit(void) {
macState=MAC_STATE_IDLE; macRxState=MAC_RXSTATE_IDLE; mac_pib.macCoordShortAddress=0: mac_pib.flags.val=0:
mac_pib.rxTail=0://接收数据帧尾 mac_pib.rxHead=0;//接收数据帧头
mac_pib.mac=PANID=LRWPAN_DEFAULT_PANID;//设各所在PAN的 自身的默认标识符
Mac_pib.macMaxAckRetries=aMaxFrameRetries;//发送失败后,确认帧的 最大重新发送次数
mInitAddressMapO;//init theaddress map #ifdef LRWPAN_COORDINATOR mac__pib.depth=O; #else
mac_pib.depth=1;//depth will be at beat one #endif
mac_pib.bcnDepth=OxFF;∥该节点的信标深度 mac__pib.macCaplnfo=O;//其它性能 #ifdefLRWPAN_AlJ_COORDINATOR
LRWPAN_SET_CAPINFO_ALTPAN(mac_pib.macCaplnfo); #endif
#ifdefLRWPAN_FFD
LRWPAN_SET_CAPINFO_DEVTYPE(mac_pib.macCaplnfo); #endif
#ifdefLRWPAN_ACMAIN_POWERED
LRWPAN_SET_CAPINFO_PWRSRC(mae__pib.macCaplnfo); #endif
#ifdefLRWPAN_RCVR_ON_WHEN_IDLE
LRWPAN_SET_CAPINFO_RONIDLE(mac_pib.macCapInfo); #endif
#ifdefLRWPAN—SECURITY_APABLE
LRWPAN_SET_CAPINFQSECURITY(mac_pib.macCapInfo); #endif
LRWPAN_SET_CAPINFO_ALLOCADDR(mac_pib.macCapIrrfo);//分配 }
(3)网络层的初始化 Void nwklnit(void) {
nwkDSN=O;//网络层的数据序列编号为O
短地址 nwk__pib.flags.val=O; nwkState=NWK_STATE-IDLE; nwkRxState=NWK_RXSTATE_IDLE; #ifdefLRWPAN_FFD nwk_pib.rxTail=O; nwk_pib.rxHead=O; #endif }
(4)应用层的初始化 Void apslnit(void) {
debug_level=0;
apsState=APS_STATE_IDLE; apsRxState=APS_RXSTATE_IDLE; #ifdefLRWPAN_COORDINATOR
aps_pib.rxCnt=0;//接收数据总数 aps_pib.rxTail=0; apS』ib.rxHead=O; #endif
aps_pib.apsTSN=0;//服务节点 aps.pib.flags.val=O;
aps_pib.apscAckWaitDuration=MSECS_TO MACTICKS(LRWPAN_APS _ACK_WAIT_DURATION);//convert to MAC Ticks aps.pib.apsAckWaitMultiplier=1;//defaultvalue aps_pib.apscMaxFrameRetries=LRWPAN_APS_MAX_FRAME_RETRIES ;//initialize the endpoints
aps_pib.activeEPs=O;//only tracks user endpoints. phylnitO; maclnitO; nwklnit0; }
由(4)可见,应用层是最高层,它初始化的同时,还要对它下面各层进行 初始化。网络协调器建立网络成功后,会从串13输出信息“Network formed, waiting for RX”信息.
网络建立成功后,需要添加终端设备(终端节点)进入这个网络。允许设 备同网络连接的流程图如图6.5所示。终端设备通过发送NLME—JOIN.request 原语来开始执行孤点方式同网络连接,其原语RejoinNetwork参数设置为TRUE。
图6.5终端节点加入网络流程图
首先,终端设备的网络层管理实体将请求MAC层对PHY层所规定的所有 有效通信信道进行孤点扫描。通过向MAC层发送MLME.SCAN.request原语开 始进行孤点扫描,其扫描的结果通过MLME.SCAN.confirm原语返回到网络层 管理实体。然后,如果该终端设备扫描到网络协调器设备,网络层管理实体将 通过发送NLME.JOIN.Confirm原语向其上层报告请求连接,其原语的状态参数
设置为SUCCESS,否则设置为NO二NETWORKS。 整个星型网络的组网的软件流程图如图6.6所示。
图6.6星型网络组网流程图
当网络协调器正常工作后,则建立网络成功。这时候再打开两个或更多终 端节点,就能让这些节点加入网络,从串口调试助手的窗口可以看到加入网络 成功的提示信息“Nodej6ined:”同时给出网络分配给该节点的物理地址。如图
6.7所示。实物调试图如图6.8所示。
图6.7星型网络组网示意图
图6.8实物调试图
6.2数据处理模块中的以太网通信实现 6.2.1 RTL8019驱动程序设计
RTL8019的驱动程序设计,就是对该芯片的工作寄存器进行设置,
RTL8019AS共有四页寄存器组,每页寄存器组有16个寄存器。各个寄存器的 用法可以参考芯片的数据手册【23l。RTL8019芯片的初始化函数的代码如下: Void lnit8019() {
Re900=0x21; //命令寄存器,使芯片处于停止模式,这时进行寄存器设 置
Delay_MS(10);∥延时lO毫秒,确保芯片进入停止模式 page(0);
Re90a=0x00; //远程DMA字节计数寄存器清0 Re90b=0x00; 臆程DMA字节计数寄存器清0
Re90c=0xee;鹏受收配置寄存器,监视模式,不接收数据包 Re90d=0xe2;//发送配置寄存器,loopback模式
Re901=0x4c;//接收页开始寄存器,设置接收缓冲器开始页的地址 Re902=0x80;//接收页结束寄存器,设置接收缓冲器终止页的地址 Re903=0x4c;//边界寄存器,为防止接收缓冲器溢出而设
Re904=0x40;//发送起始页寄存器,此寄存器表明数据包被发送的起始 页地址
Re907=0xff;脯除所有中断标志位,中断状态寄存器 Re90f=-0x00;//中断屏蔽寄存器清0,禁止中断
Re90e=0xC9;//数据配置寄存器,定义采用16位DMA接口方式 page(1);∥在第1页中设置
Re907=0x4d;//现在页寄存器,这个寄存器指向第一个接收缓冲器(用 来接收数据包)页的页地址 Re908=0x00;//广播地址寄存器 Re909=0x00;//广播地址寄存器 RegOa=Ox00;∥广播地址寄存器
Re90b=0x00;//广播地址寄存器 Re90c=0x00;//广播地址寄存器 Re90d=0x00;//广播地址寄存器 Re90e=0x00;//广播地址寄存器 Re90f=0x00;∥广播地址寄存器
Re900=0x22;//命令寄存器,这时让芯片开始工作
Re901=MAC_sel£addr2 1;//物理地址寄存器,包含了以太网节点地址. Re902=MA∞elf.addr2_l>>8; Re903=MAc_self.addr4_3; Re904=MA∞elf.addr4_3>>8; Re905=MACjelf.addr6_5; Re906=MAC_self.addr6_5>>8; page(0);//再次切换到第0页设置
Re90c=0xde;//将芯片设置成正常模式,跟外部网络连接 Re90d=0xe0;//发送配置寄存器
Re900=0x22;//命令寄存器启动芯片开始工作 Re907=0xff;//i青除所有中断标志位 6.2.2 ARP协议的实现
ARP地址解析协议是将口地址与网络物理地址一一对应的协议。 在DSP芯片中实现ARP协议,就是通过开一个固定大小的内存栈作为 CACHE,这个内存栈维护一个P地址到物理地址的映射表,这个栈能响应对 方ARP请求,即在远方主机探求自己的硬件地址时,能够发送一个ARP响应 分组,告诉对方自己的硬件地址,同时在内存栈中根据对方的IP地址查询物理 地址时,如果没有相应的映射,就记录下对方的口地址和硬件地址,为以后发 送口分组做准备。这个内存栈由一个时钟来控制,如果网络长时间没有活动, 就把这一条记录删掉,以便节省内存。
这个内存栈在不知道对方网络硬件地址时,一样可以发一个ARP请求,并 且能对ARP响应进行解析,记录下对方的IP地址和硬件地址。这样双方就可 以进行网络通信了。ARP协议实现的部分代码如下: Void ArpRequest(structipaddr*ip) //ARP请求 {
LoadEnetHrd(RequestArp,ARP); LoadArp(ip,RequestArp); SendFrame(TxNetBuf,30); }
Void ArpAnswer(structipaddr*ip)//ARP应答 {
LoadEnetHrd(AnswerArp,ARP); LoadArp(ip,AnswerArp); SendFrame(TxNetBuf,30); }
6.2.3 IP协议的实现
IP协议是TCP/IP协议栈中最核心的协议。IP数据报的格式分为报头区和 数据区两部分,数据区包括高层协议需要传输的数据,报头区是为了正确传输 数据而加的各种控制信息。
当监控机(PC机)收到一个以太网数据帧时,数据就开始从协议栈中由底 向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部 中的协议标识,以确定接收数据的上层协议,IP协议盒里要处理的有ARP、 ICMP,还有上层的UDP和TCP。IP协议实现的部分代码如下:
*(TxEthnetFrameBuffer+IP_HEADEIUTART+0)=SwapWord(Ip_Edition);//I P版本,SwapWord0交换高低字节,改为网络字节顺序
*(TxEthnetFrameBuffer+IP_HEADER_START+1)=SwapWord(RecdlpFrameLe
nth*2);//收到的IP帧长度
*(TxEthnetFrameBuffer+IP_HEADER_jTART+2)=SwapWord(0); 。
*(TxEtlmetFrameBuffer+IP_HEADER_START+3)2SwapWord(0); *(TxEthnetFrameBuffer+IP_HEADER_START+4)=SwapWord((DEFUALT_TT L<<8)IPROTOCOL二_ICMP);
*(TxEthnetFrameBuffer+IP_HEADER_START+5)=0;
memcpy((TxEthnetFrameBuffer+IP_HEADER_START+6),&MylP,2);//把数据 处理模块的m地址给源口地址
memepy((TxEthnetFrameBuffer+IP_HEADEIUTART+8),&ReedFrameIP,2);// 把收到帧的口地址给目的P地址
CalcCkSum=CalcCheckSum((TxEthnetFrameBuffer+IP_HEADER_START),IP _HEADER_SIZE,O,O); if(!CalcCkSum) CalcCkSum=OxFFFF;
*(TxEthnetFrameBuffer+IP ..HEADER START+5)=CalcCkSum;
6.2.4 ICMP协议的实现
IClVIP是TCP/IP协议集中的一个子协议,属于网络层协议。IP传递的数据报可能会由于通信线路阻塞、计时器超时、处理机故障等多种原因而无法送达。 为了让互联网能报告有关的情况信息,特别在TCP/IP协议系列中加入了一个专 门用于发送差错报文的协议——互联网控制报文协议(Intemet Control Message Protocol,ICMP)。
ICMP都以相同的二个字节开始:一个8位整数的报文类型字段用来识别报 文;一个8位代码字段提供有关报文类型的进一步信息,另外,还要加上一个 16位的校验和字段。ICMP协议实现的部分代码如下:
*(TxEthnetFrameBuffer+ICMP_HEADERSTART+0)=SwapWord(ICMP_ECH O_REPLY<<8);//回显回答
*(TxEthnetFrameBuffer+ICMP_HEADER,_START+1)=0;
memcpy((TxEthnetFrarneBuffer+ICMP_HEADER_START+2),(RxEthnetFram eBuffer+RTL8019_HEADER_SIZE+ICMP_HEADEILSTART+2),ICMPDataC ount);
CalcCkSum=CalcCheckSum((TxEthnetFrameBuffer+ICMP_HEADER_START ),(ICMPDataCount+ICMP_HEADER_SIZE),0,0); if(!CalcCkSum) CalcCkSum=0xFFFF;
*(TxEthnetFrameBuffer+ICMP_HEADEILSTART+1)=CalcCkSum; TxFrameSize=ETH—HEADER—SIZE+IP—HEADER。SIZE+ICMP—HEADER— SIZE+ICMPDataCount; .
在ICMP测试中,将监控机的D地址设置为:192.168.1.40(掩码地址默认),在运行上述程序后,在MS.DOS下查看数据处理模块与监控机连通情况,就可以得到如图6.15所示的测试结果。同时通过网络抓包软件CaptureNetV3.12可以看到ICMP请求和应答帧。
6.2.5 TCP协议的实现
TCP是面向连接的,提供可靠的字节流服务。面向连接意味着两个使用TCP 的应用在彼此交换数据之前必须先建立一个TCP连接。当TCP发出一个报文段 后,就启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到 一个确认,将重发这个报文段。TCP协议实现的部分代码如下:
*(TxEthnetFrameBuffer+TCP_HEADER_START+0)=SwapWord(MY_TCP_POPT); *(TxEthnetFrameBuffer+TCP_HEADER_START+I)=SwapWord(TCPRemoteP ort);
WriteDWord((TxEthnetFrameBuffer+TCP_HEADER_START+2),TCPSegNr); WriteDWord((TxEthnetFrameBuffer+TCP_HEADER_START+4),TCPAckNr);// 确认 .
*(TxEthnetFrameBuffer+TCPHEADER_START+6)=SwapWord(0x70001TCP_ CODE_svN);
*(TxEthnetFrameBuffer+TCP_HEADER_START+7)=SwapWord(1024);//端口 *(TxEthnetFrameBuffer+TCP_HEADER_START+8)=0; *(TxEthnetFrameBuffer+TCP_HEADER_START+9)=0;
*(TxEthnetFrameBuffer+TCP_HEADER_START+10)=SwapWord(0x0204); *(TxEthnetFrameBuffer+TCP_HEADER_START+11)=SwapWord(MY_MAX_ SEG_SIZE);
*(TxEthnetFrameBuffer+TCP_HEADER_START+12)=SwapWord(0x0101); *(TxEthnetFrameBuffer+TCP_HEADER_START+13)=SwapWord(0x0101); CalcCkSum=CalcCheckSum((TxEthnetFrameBuffer+TCP_HEADER_START), 14,1,O); if(!CalcCkSum) CalcCkSum=0xFFFF;
*(TxEthnetFrameBuffer+TCP_HEADEILSTART+8)2CalcCkSum; TxFrameSize2ETH—HEADER—SIZE+IP_HEADER_SIZE+14; SendFrame(TxEthnetFrameBuffe'r,TxFrameSize); TCPPStatus=TCP_STATE_SYN_SENT;
将数据处理模块作为主服务器,监控机作为客户端,这样方便客户搜集来 自各个家庭中数据处理模块的数据,TCP连接实现后,可以通过TCP/IP测试软 件测试连接状况,数据处理模块的Ⅲ地址为:192.168.111,端口为:1028。 经过了RTLS019AS网卡芯片驱动程序的设计和TCP/IP协议栈的实现,数
据处理模块就可以通过以太网控制器完成传输数据了。在数据发送前,就要对 待传输的数据进行协议封装:首先对原始数据添加TCP头,包括源端口、目的 端口、TCP数据长度和校验和四个字段,然后再添加IP头(包括源IP地址、 目的IP地址、IP数据长度、校验和等字段),最后封装以太网帧(包括目的MAC 地址、源MAC地址和帧总长度)。其中源MAC地址为本地物理地址。 数据包接收后,数据处理模块要对其进行拆解.将解包得到的IP地址与本 地IP地址相比较,同时进行校验和验证。如果IP一致,则接收该数据包,否 则丢弃它;如果校验和不『F确,则表示数据包传输过程中发生差错,也该丢弃 该数据包,但不产生差错报文,而是由应用层发现丢失的数据包并请求重传。
6.3本章小结
本章主要针对第3章、第4章的硬件完成了软件设计。包括ZigBee星型网 络组网过程中协议栈的初始化和从节点的添加,以及以太网网络控制芯片的驱 动程序编写和TCP/IP协议分层实现的程序编写。
7 总结
本文通过分析国内外智能家居研究的发展状况,结合国内智能家居未来发 展的广阔前景以及实际需求,提出了一种智能家居监控系统设计方案。分别从系统功能介绍、硬件设计、软件设计、实验数据分析等方面分析了ZigBee技术在该系统中的应用。将ZigBee技术应用于智能家居中,实现了快速率、低成本、低功耗的无线网络通信。通过将传统传感器报警系统和图像监控系统相结合,形成了新型的智能安防系统。用户可以通过手机或PC机接收MMS信息,根据需要进行远程手机设定,从而实现灵活、便捷的家庭安全监控。一方面,主要是利用ZigBee无线传感网络在家居监控中不受家居布局影响的独到的传输优势,设计了比较符合日常家用的ZigBee无线模块,负责数据采集和基本的电器电源开关,并由此搭建了星型无线传感网络。文章中从ZigBee技术中最核心的协议栈入手,然后基于芯片CC2430完成了无线模块的硬件设计,并IAREmbeddedWorkbenchIDE
编译软件环境下完成了网络协调器组网到从节点(终端节点)添加进网络的软件程序编写,最后实现了通信。另一方面,基于DSPTMS320F2812设计了数据处理模块,负责对ZigBee网络协调器采集的数据进行处理,并完成数据通过以太网控制器传输到以太网上,期间还为数据处理模块移植了I_tc/os.II实时操作系统,为后续应用程序开发做准备。这部分中,主要工作是硬件设计和在CCS2.0编译环境下完成RTL8019AS网卡驱动程序编写,并最终实现TCP/IP通信。 本文所作设计由于时间和本人水平有限,以及对于智能家居监控系统市场 的实际调查不够充分,因此可能在设计的细部上考虑的还不够周到,所以还有 很多后续的研究需要继续开展下去。
8
参 考 文 献
【1】中国智能家居信息网(www.ezhome.on).了解国外智能家居品牌叨.数字社区&智能家居,2007(4)
【2】宋倩.基于电力线通信技术的智能家居系统的设计与开发【D】.中国电力科学研究 院,2003
【3】http://dlib.cnki.net/kns50/中国知网
【4】Design and Realization of Smart Home System Based on ZigBee 作者: Wang, Jian-Ping; Feng, Hong-Yu; Li, Yan-Cui
【5】史宁.基于ZigBee技术的无线传感器网络平台的研究与实现【D】.吉林大学,2007 【6】6赵琳.透析智能家居市场叨.中防,2007(3):75~79
【7】李文仲,段朝玉等编著.短距离无线数据通信入门与实战tM].北京:北京航空航天大学出版社,2006
【8】Design and realization of smart home system based on ZigBee 基于zigbee技术的智能家居设计与识别系统
Wang, Jian-Ping (School of Information Engineer, Henan Institute of Science and Technology, Xinxiang, Henan 453003, China); Feng, Hong-Yu; Li, Yan-Cui 【9】http://g.wanfangdata.com.cn/万方数据
【10】张周.ZigBee技术研究及其在智能家居中的应用[D】.厦门大学,2008 【11】ZigBeeSpecification--ZigBeeDocument053474r06,Version1.0.pdf
【12】李文仲,段朝玉等编著.ZigBee无线网络技术Af-J与实战【M】.北京:北京航空航天大学出版社,2007
【13】电子技术应用, Application of Electronic Technique,2005年09期,周游; 方滨; 王 普;
致 谢
本设计(论文)主要是在前人的基础上学习后完成的,感谢所有为此做出研究的人员。最后,感谢父母朋友和老师的支持。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务