当前位置:首页 > 嵌入式 > 嵌入式硬件


ZigBee 是一种新兴的短距离、低功率、低速率无线接入技术,工作于无须注册的2.4GHz ISM 频段,传输速率为10~250kb/s,传输距离为10~75m。

它看起来更接近于蓝牙,但比蓝牙更为简单,具有更低的传输速率和功率消耗,大多数时间处于睡眠模式,尤其适用于那些不需要实时传输或连续更新的场合,如工业控制领域和传感器网络。ZigBee联盟在制定ZigBee标准时,采用了IEEE802. 15. 4协议作为其物理层和媒体接入层规范。在其基础之上,ZigBee联盟制定了数据链路层(DLL)、网络层(NWK)和应用编程接口(API)规范,并负责高层应用、测试和市场推广等方面的工作。

ZigBee技术的主要特点

● 低功耗。

在低耗电待机模式下,2节5号干电池可支持1个节点工作6~24个月,甚至更长,这是ZigBee的突出优势。相比较,蓝牙能工作数周、WiFi可工作数小时。
● 低成本。

通过大幅简化协议(不到蓝牙的1/10) ,降低了对通信控制器的要求。按预测分析,以8051的8位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,而且ZigBee免协议专利费。每块芯片的价格大约为2美元。
● 低速率。

ZigBee工作在20~250kb/s的较低速率,分别提供250kb/s(2.4GHz)、40kb/s(915MHz)和20kb/s(868MHz) 的原始数据吞吐率,满足低速率传输数据的应用需求。
● 近距离。

传输范围一般介于10~100m之间,在增加RF发射功率后,亦可增加到1~3km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。
● 短时延。

ZigBee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比较,蓝牙需要3~10s、WiFi需要3s。
● 高容量。

ZigBee可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000个节点的大网。
● 高安全。

ZigBee提供了三级安全模式,包括无安全设定、使用接入控制清单(ACL)防止非法获取数据以及采用高级加密标准(AES128)的对称密码,以灵活确定其安全属性。
● 免执照频段。

采用直接序列扩频在工业科学医疗(ISM)频段,2.4GHz(全球)、915MHz(美国)和868MHz(欧洲) 。
  
PIC18F4620和CC2420简介

PIC18F4620和CC2420是本文设计中最为关键的两个部件。PIC18F4620微控制器具有丰富的片上存储功能,具有64 KB Flash和3968字节RAM的存储空间;而且该微控制器具有多种省电模式供选择。除了具有丰富的片上存储功能和多种省电模式以外,18F4620微控制器还具有13个10位A/D转换器、多个I/O数据线。可以很容易用软件对其进行编程和仿真,这些接口同时还可以用作与传感单元的接口。

CC2420射频收发器工作在2.4GHz ISM公用频道。它有33个16位配置寄存器、15个命令选通寄存器、1个128字节的RX RAM、1个128字节的TX RAM、1个112字节的安全信息存储器。一些主要特点:具有16个信道;典型的发射功率为0dBm,最大发射功率达到3.6dBm;采用DSSS扩频通信技术,最大速率为250 kbps;在分组错误率为1%的情况下,其接收灵敏度达到-95dBm(典型值)。  

ZigBee无线平台简介

整个系统按照运行流程可分成三部分:传感感器终端(多个)、路由节点(可选)、中心数据管理终端。

图2 系统示意图

我们可以在传感器终端加装不同的传感器来实现对所需数据的监控,从而发挥ZigBee平台的作用。中心数据管理终端由中心节点和PC机组成,二者之间可以通过RS232实现数据通信。

平台采用了Microchip公司提供的开放协议栈,通过设计修改其应用层代码来实现所需的功能。

通常,ZigBee节点的IEEE64位地址是由用户自己定义的, 它们被写在节点的EEPROM中。而每个终端节点入网后,中心节点会分配给它一个16位网络短地址。对于初次使用的终端节点,可以经过与中心节点绑定过程从而让终端节点的地址信息出现在中心节点的绑定表中,使数据的收发更加稳定。对于较小的网络,由于直接发送给中心节点,也可以直接使用0x00作为目标地址。
  
ZigBee在工业控制中的应用方案研究

1 ZigBee工厂消防监控方案

目前,大型工业综合厂房集生产车间、仓库于一体,其消防具有空间大、线路要求高等特点;而老厂房有线消防系统改造的成本较高,尤其在一些化工生产厂房和库房,工艺操作的要求给布线增加了困难。本方案为解决这类问题提供了一条途径。

①系统整体设计

整个系统分成两部分:无线烟感器终端(多个)和中心数据管理终端。无线烟感器终端是检测发送烟雾数据的集成设备,它在检测到一定浓度的烟雾后在本地报警,同时通过无线网络传输给管理终端;中心数据管理终端将无线烟感器终端中发送的数据接收后,通过软件在PC机上给管理人员报警并显示火警相应位置,还可以通过设置加入一些其他的处理功能。

图3 烟感终端结构图


●无线烟感器终端

在用户端无线烟感器加装通讯模块形成终端设备,实现数据的采集和无线传输。基于ZigBee的低功耗特点,该终端采用9V电池供电。

● 中心数据管理终端

其主要功能包括接收无线烟感器终端数据并报警及存储,对数据做出一定的处理以及根据客户需求打印各种报表。

②系统软硬件结构

系统核心部分为无线收发模块,烟雾传感器直接与单片机I/O口相连,出现火情时由烟感中的继电器电平变化引发单片机中断,从而通过射频芯片CC2420向中心报告。单片机与PC机通过MAX322实现串口通讯。

图4 中心数据管理终端


● 单片机程序设计

我们在程序中设定了每个不同的终端节点在遇到火情时发送各自特定的代码给中心节点,中心节点收到后再交给上位机进行识别。ZigBee规范中通信部分的消息帧有KVP和Message两种方式,由于发送的代码比较简单而且量很少,所以采用KVP格式进行发送。KVP帧格式定义如图5所示。

中心节点的单片机程序调用APLGet( )函数,在接收到终端节点发来的数据后,将其通过串口发送给上位机,串口的主要函数如下:
void ConsoleInit(void)
{ OpenUSART(USART_TX_INT_OFF&USART_RX_ INT_ON&USART_ASYNCH_MODE & USART_EIGHT_BIT & USART _CONT_RX & USART_BRGH _HIGH,SPBRG_VAL );
}
  void ConsolePut(BYTE c)
{ while( !ConsoleIsPutReady() );
   TXREG = c;
}
  void ConsolePutROMString(ROM char* str)
{
   BYTE c;
   while( c = *str++ )
   ConsolePut(c);
   while( !ConsoleIsPutReady() );
}

图5 KVP帧格式

● 上位机程序设计

上位机程序主要负责从串口接收中心节点模块发来的数据,并做出相应动作,如报警并识别出火情位置,并可进行一定的处理(如开启水阀等)。软件由VB编写。

它可以实现的功能有:1.设定通信端口。2.显示房间状态。3.显示历史记录。通过设定通信端口可以选择当前空闲的串口,显示房间状态可以显示哪个房间或哪个位置发生了火情,显示历史记录可以显示曾经发生过报警的房间号和时间。

软件安装后,用户可以根据实际情况选择楼层数和房间数,并和终端节点相对应。还可以存储起火原因,便于遇到突发事件时的相关人员做出处理。

2 ZigBee倾斜度测量应用方案

在现代工业生产,安装和建筑等许多领域,经常需要测量倾斜度,这就需要倾斜测量装置。我们可以利用ZigBee平台来方便的实现测试点的远程监控,同时也方便测试点的安装。

这里采用了飞思卡尔新推出的MMA7260 加速度传感器来测量倾斜。它是一种低功耗三轴电容式微机械传感器,有1.5g、2g、4g、6g四种量程可以选择。封装为QFN16脚,采用2.2~3.6V宽电压电源,而且支持休眠,符合ZigBee对低功耗的要求,很适合在ZigBee平台上使用。由于数据量相对较大,我采用了格式更为灵活的MSG格式,其帧格式定义如图6。

图6 MSG帧格式

MMA7260自带了温度补偿和滤波,只需简单处理即可将其输出的三路(XYZ轴)加速度模拟量接入到PIC18单片机自带的10位A/D转换模块中。

数据由RS-232由节点传入到PC机后,采用了NI公司的labview软件进行处理,它的G语言操作非常友好,可以方便的对数据进行转化和计算,然后显示在虚拟的仪器界面上。

如果有必要,可以在某个轴上加入报警,超过门限值时对操作员进行提示,甚至直接给设备发出指令。
  
结语

消防监控和倾斜测量只是ZigBee 技术在工控领域的两个简单应用,它具有很强的实际应用价值。该模块也可以很方便的移植到其他的无线应用中去。

本文来源:今日电子 作者:北京科技大学 霍峰

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭