zigbee 传输速度中两种相同类型的固件能否相互传输

OLED在显示行业的热度还没达到顶峰,Micro LED就出来&ld……
要说最近半导体行业的巨人战争,当属博通费尽心机收购高……
据counterpoint发布的数据,2017年全球前六大手机芯片企……
有人说LoRa是NB-IoT的竞争技术,其实我们认为它们是一种……
试想这样的一个情景,你将一枚鸡蛋、一个土豆、一块火腿……
演讲人:郝晓贝时间: 10:00:00
演讲人:王海莉时间: 10:00:00
演讲人:卢柱强时间: 10:00:00
预算:¥100000预算:¥10000
广东省广东省
基于ZigBee的单片机无线通信系统实现
[导读] 近距离的无线通信技术近几年有很大的发展,其中WiFi(IEEE
802.11)、蓝牙以及ZigBee是应用比较多的几种标准。这几种协议侧重点各有不同,相对于前面两者来讲,Zig
Bee由于其可靠性、低功耗及安全性等特性在无线传感
&近距离的无线通信技术近几年有很大的发展,其中WiFi(IEEE
802.11)、蓝牙以及ZigBee是应用比较多的几种标准。这几种协议侧重点各有不同,相对于前面两者来讲,Zig
Bee由于其可靠性、低功耗及安全性等特性在无线传感器网络(Wireless Sensor
Network)中得到了较为广泛的应用。特别是用于医疗健康监测的可穿戴传感器(Wearable
Sensor)领域发展的较为迅猛。国外对无线传感器技术研究较早,也已经有很多成熟的产品面世,如iMote2、TelosB、MicaZ以及WaspMote等。随着开源单片机系统开发平台Arduino的普及,基于ZigBee协议标准的XBee系列产品也日渐流行。本文主要针对XBee产品系列中的XBee
Pro ZB,探讨了使用ZigBee协议进行单片机之间无线通信的方法。本文引用地址:
ZigBee是一种基于IEEE802.15.4标准的低功耗个域网(PAN)协议,这是一种短距离、低功耗、低成本的通信技术。它由ZigBee联盟制定,主要适合于短距离无线数据传输,可以构成一个无线传感器网络。ZigBee基于802.15.4,它在802.15.4所规定的物理层和媒体访问控制层的上面添加了自己的网络层、应用层和安全服务规范。在ZigBee协议中,根据设备的通信能力,可分为全功能设备(FFD))和精简功能设备(RFD);根据设备的功能,可以分为协调器(coordinator)、路由器(router)和终端设备(end&device)3种逻辑设备。协调器是一种FFD设备,它是网络的中心节点,负责网络的启动和配置。一个网络中只允许有一个协调器,当整个网络启动和配置完成后,它的功能就相当于一个路由器。路由器也是一种FFD设备,它主要负责维护网络的路由信息,并转发消息到其他设备,扩展信号的传输范围。终端设备可以是FFD设备或RFD设备,它具有加入和退出网络的功能,并能接收和发送报文,一般连接传感器设备,作为监测点,可睡眠或唤醒,因此可以用电池供电。基于ZigBee协议的产品很多,其中较为流行的是Digi公司的XBee,因而我们使用的也是Xbee系列的产品。
2)XBee的配置
XBee的产品种类比较多,不仅有基于ZigBee协议的,也有支持802.15.4以及蓝牙的,我们选用的是基于ZigBee协议的XBee Pro
ZB。使用之前我们必须对XBee的相关参数进行设定,可以到Digi的官方网站下载最新版的配置软件X&CTU,其基本界面如下:
配置之前需将XBee通过USB口与电脑相连,运行X&CTU,在&PC Settings&中里选择XBee适配器映射出来的USB串口通信端口(USB
Port),设置好波特率等参数,XBee模块出厂里默认的设置为9600b/s,这个一般不需要更改。点击Test/Query按钮,如果正常连接的话会出现一个显示Modem类型、固件版本以及序列号等信息的对话窗口,其中的序列号是这个无线通信模块的64位唯一硬件编号。完成测试后到配置软件的&Modem
Configuration&选项修改&PANID&等参数并写入到XBee模块。PAN
ID指的是两个或多个无线通信模块所构成的PAN(个域网)的ID编号,因此对于属于同一个网络中的XBee模块来说这个参数一定要相同。
XBee本身只是一个无线的通信模块,虽然仅使用两个XBee本身也能够实现两个点之间的数据传输,但其只具有通信的功能,不具备什么控制能力,当需要扩展外部器件如传感器时几乎不太可能。为了增强整个系统的功能,最好把它连接到单片机上,我们选择开源单片机开发平台Arduino作为XBee模块的控制面板。用于Arduino扩展XBee的扩展板有很多种,也可以自己动手直接将XBee模块接到Arduino控制板上,不过存在一定的风险。我们采用的是XBee
V5扩展板,市场价格大概在三十元左右。
2 将XBee连接到Arduino
XBee模块与AMuino之间其实就是通过串行接口(即TX和RX引脚)进行通信。
对于简单的点对点通信来讲,只需要通过串行接口向XBee模块写数据就可以实现数据的发送;当XBee模块通过无线通道接收到数据时,通过读串行接口可以很方便地获得这些数据。用X&CTU软件配置好两个XBee模块的参数后,两个插上XBee模块的AMuino控制器就可以像有线RS232串口通信一样相互传送数据了。当然,如果要实现我们所期望的结果还需要给Arduino添加一个XBee适配器的驱动。对于我们使用的Arduino
UNO控制器,可以在Arduino官网下载一个Arduino
0018版编程软件,它里面的drivers目录里就可以找到这个驱动。先把写到的测试程序下载到Arduino控制板,再将配置好参数的XBee模块通过V5扩展板插到Arduino控制板。
我们把其中一个XBee模块设为主机,其主要代码如下:主机程序:
以上程序可以实现两个XBee模块间的简单通信。要实现成块数据的传输比如将采集到的各种传感器数据发送和接收,过程就变得比较复杂。XBee模块有两种数据传输模式:AT(Transparent/Command)
模式及API(Applieation Program
Interface)模式。AT模式主要用于配置XBee模块的参数以及简单的文本传输,使用比较简单,但其功能非常有限。相对而言API模式的功能要强大很多,不过使用起来也比较复杂,在此我们只简单讨论一下API模式。
在API模式下信息以数据帧的方式传输,其帧结构主要包括4个部分:
2)数据部分的长度(用2个字节的十六进制表示)
3)帧数据部分(包括附加控制数据)
如表1所示,起始符为0x7E表示一个数据帧的开始。可以用语句if(Serial.read()==0x7E)来检测是否接收到一个新的数据帧,不能确定一个帧的起始位置无法正确得到有效数据,因为无从判断当前收到数据字节代表的是什么。数据长度是以16进制表示的数据部分的长度。数据部分包括真正要传输的信息以及为了保证数据的可靠传输而附加的控制信息,包括帧的数据类型、帧的序号、64bit的物理目的地址、16bit网络目的地址及其它相关信息。帧的有效载荷即真正的数据信息首字节的偏移量可由帧结构的第一个字节&&帧类型计算得到,其长度可由数据长度字段减去首字节的偏移量得到。数据部分的获取帧结构最后一个部分为一个字节的校验和,需要注意的是校验和部分的计算不包括起帧的起始符及数据长度部分。
使用Arduino的一个好处是我们在网上可以找到大多数常见外围器件的第三方函数库,在很多情况下可以大大地减少编程工作量或降低编程的难度。对于XBee模块我们当然可以选择使用现成的函数库来简化通信的过程,用户可以根据自己的需要选择不同的编程语言如C/C++、Python、Java或Processing等。
基于ZigBee协议标准的XBee除了能构成一个点到点的通信控制系统外,还可以根据实际需要构建一个具有可伸缩特性的无线传感器网络。每一个XBee模块类似于MAC网卡,有自己唯一的64位物理地址,而加入网络后会由协调器分配一个16位的网络地址,这意味着一个传感器网络最多可以达到65
000个节点,因而有着很大的应用前景。
对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......关键字:
在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......关键字:
现在想起来,当时的情形还历历在目。当时工作非常艰辛,累得我是满地找牙。记得进厂的第一天,就加班通霄,以后天天晚上加班至12点,早上7点起床。......关键字:
我 要 评 论
热门关键词&>&ZigBee固件用户手册
ZigBee固件用户手册
上传大小:1.2MB
终端节点在连接网络之后会将网络参数信息存入Nvram,这样在下次启动的时候直接从Nvram中取出参数,然后直接连接协调器,如果节点的网络参数没有认为的配置成其他值,那么它会以存储的参数来加入网络,从而就会出现终端节点只能固定的去找他之前连上网络的协调器。解决办法是,将协调器和节点的网络参数重新设置一下(与原来不同),最简单的方法是修改网络ID。
综合评分:3
10积分/C币
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有1条
很实用,讲解的比较细致,感谢上穿
综合评分:
积分/C币:3
MrLiu_csdn
综合评分:
积分/C币:10
zhengyunqiang585
综合评分:
积分/C币:3
HaynesRuan
综合评分:
积分/C币:3
综合评分:
积分/C币:3
liguiyuan112
综合评分:
积分/C币:5
chenshaoqian
综合评分:
积分/C币:10
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:10
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
ZigBee固件用户手册
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
linc880306
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
ZigBee固件用户手册【图文】zigbee简介_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
zigbee简介
&&zigbee课件
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢ZigBee技术在矿灯监控中的应用研究
技术是一种新兴的,具有统一技术标准的短距离、低功耗无线通信技术,主要应用于低速传输场合,可以作为无线传感器网络的通信协议。
面向特定应用领域、功能强大、灵活可靠的嵌入式系统已经获得了迅速的发展。同时嵌入式设备为了适应网络化发展,需要各种网络通信接口。
本课题将二者有机结合起来,构建嵌入式无线通信网络,应用到矿灯灯房监控中。矿灯充电节点将采集的数据通过ZigBee
无线网络传送至灯房监控中心,实现对矿灯充电状态和使用情况的有效控制和管理。
本文首先介绍了课题相关背景,移植了 Linux 操作系统,完成了嵌入式系统平台的构建。详细介绍了Zig Bee
协议栈结构,研究了较新的 ZigBee2006 协议的基本功能实现,着重分析了网络层和应用层架构,实现了 Zig Bee 协议在
FFD 和RFD 节点的移植。
其次,本文利用高性能 ARM9 芯片 S3C2410 和无线通信模块构建一个具有Zig Bee 协调器功能的中心控制平台,给出了
S3C2410 及其接口电路的设计。分析了 Zig Bee 芯片 CC2430 无线收发模块原理及片上 MCU。
接着,本文分析了矿灯充电控制原理,对充电蓄电池端电压、电流、温度等数据进行采集,经 A/D 转换电路送至 CC2430 的
MCU,实现矿灯充电的监测和无线通信,进而提高了矿灯充电系统的可靠性和灯房管理的智能化。本文搭建的嵌入式 Zig Bee
无线网络平台可扩展多种传感器,从而为井下安全提供更多的监测功能。
最后,在研究 Zig Bee 拓扑结构的基础上,利用 IAR 交叉编译调试器、串口调试器和 Packet Sniffer
工具给出了矿灯蓄电池温度无线传输的测试,分析了捕捉到的数据包内容。
关键词:Zig Bee 技术;Linux;S3C2410;CC2430;矿灯充电
1.1&& 研究背景
1.1.1&& 灯房管理系统的发展状况
矿灯是煤矿工人必备的井下照明工具,矿灯的安全性能及使用管理与煤炭安全生产息息相关。近年来,因矿灯使用管理不善而引发的事故时有发生。目前安全性能高、体积小、重量轻的新型锂电池矿灯已逐渐淘汰了安全性能差的老式矿灯,但是矿灯的信息化管理还很薄弱。我国煤矿对矿灯的传统管理方法是由矿灯房工作人员对矿灯进行管理和登记,即灯房工作人员将下井人员的灯牌收齐之后,人工计数统计,填写报表,对矿灯逐一进行巡检。由于矿灯多,人员变动频繁,这种方式存在很多缺陷:
1.根据《煤矿安全规程》的规定,每次换班2小时内,灯房人员必须把未还灯人员的名单向矿调度室汇报。现行的矿灯考勤管理办法对不按时交灯人员难以及时发现。
2.人员变动频繁,管理难以跟上,造成矿灯排放无序、丢失、一人两灯或矿灯长期无人使用等问题发生。
3.为保证矿灯工作的可靠性,矿灯使用到一定程度后应及时更换。目前由于缺乏准确的统计手段,普遍采用定期更换的方法。然而,实际应用中各个矿灯的使用频率不尽相同,有的甚至相差很大。定期统一更换的方法显然存在着一定程度上的浪费。
4.传统的台帐管理不能对矿灯的充电状态进行实时检测,影响下井人员的正常使用。
5.对于煤矿的安全生产来说,了解井下矿工的人员身份和人员数量是非常重要的一个环节。通常对下井矿工的统计是以其矿灯取走为依据,由矿灯房工作人员进行登记。对于较大规模的煤矿来说,这种人工统计的方法,往往容易出错和遗漏,也无法实现信息化和网络化管理。
因此,为了适应煤矿现代化建设的需要,减少因矿灯管理不善而引发的事故,对矿灯(矿工)进行信息化管理,非常重要。
当前,有些煤矿已开始应用矿灯信息化管理手段对矿灯进行管理。一般采用计算机技术、有线通信技术如RS485和CAN总线等。这些系统将安装在充电架的采集装置所采集的数据通过RS485和CAN总线等送至有工控机或PC组成的控制中心。这些系统虽然可实现矿灯充电的检测和矿灯离架的管理。但仍存在以下缺点:
1.对现有的矿灯房安装、改造比较麻烦,布线工作量大;
2.矿灯充电必须固定位置,也就是说不是对矿灯进行检测,而是对矿灯充电所在的充电架进行检测。这些系统一旦矿灯离架后,就无法对矿灯进行管理。
鉴于以上情况,本课题将采用无线模块代替有线网络进行通信,对于矿灯节点的设计采用全新方式,应用基于Zig
Bee无线网络技术的CC2430模块(片上集成8051微处理器,A/D转换模块)和相应的传感器,组成具有收发功能的矿灯节点监控系统。
1.1.2&& 无线通讯技术 Zig Bee
的发展状况
对于嵌入式系统应用,往往需要相互间的通信,以交换测量数据和控制指令。目前不少应用多为有线连接,包括点对点或总线方式,如RS485、CAN、Modbus等。随着无线网络通信技术的发展,在一些不便于或需要消除有线连接的场合,无线通信技术便有了它的用武之地。
在各种无线通信技术的发展过程中,短距离无线通信技术已经成为通信技术中的一大热点。各种网络终端的出现、工业控制的自动化和家庭的智能化等都迫切需要一种具备低成本、低功耗、组网能力强等优点的无线互联标准,Zig
Bee就是在这样的背景下应运而生的。Zigbee联盟成立于2001年8月。2002年下半年,英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司和荷兰飞利浦半导体公司共同宣布,将加盟“Zigbee联盟”来研发下一代无线通信标准Zigbee。这一标准主要用于近距离无线连接。2004年底Zigbee联盟发布了1.0版本规范,尚未进入大规模的商业化生产和应用。
目前市场上已有多家公司推出应用于近距离通信的RF芯片产品,如工作在2.4 GHz 的 n RF24E1(Nordic) 、
CC(Chipcon) , 工 作 在 300-450& MHz
的MAX(Maxim)等。不少嵌入式应用也采用了这类技术,但它们大部分只提供解决无线通信的射频通道,没有标准规范(或采用自己的专用标准)来制定MAC层、链路层和网络层的通信协议,不具备兼容性;对通信的控制软件完全依赖目标系统设计,由用户自己完成,不仅额外增加了工作量,而且编制代码的可靠性、效率都较低,对组网应用更可能存在问题;不同厂家的产品不具备互操作能力,不具有通用性。而Zigbee是基于IEEE802.15.4无线标准研制开发的关于组网、安全和应用软件等方面的技术标准。Zig
Bee技术并不是完全独立、全新的标准,它的物理层、MAC层采用了IEEE802.15.4协议标准。Zig
Bee联盟在IEEE802.15.4物理层、MAC层的基础上,对其网络层协议和应用程序接口(API)进行了标准化,并对安全层进行了开发。完整的Zig
Bee协议套件由高层应用规范、应用会聚层、网络层、数据链路层和物理层组成。应用汇聚层是把不同的应用映射到Zig
Bee网络上,主要包括安全属性设置和多个业务数据流的汇聚等功能;网络层则可实现网络的自组织和自维护,从而降低了网络的维护成本。
技术的目标就是针对工业、家庭自动化、遥测遥控、汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田、电力、矿山和物流管理等应用领域。通常,符合如下条件之一的应用,就可以考虑采用
技术作无线传输:需要数据采集或监控的网点多;要求传输的数据量不大,而要求设备成本低;电池供电;地形复杂,监测点多,需要较大的网络覆盖;现有移动网络的覆盖盲区;使用现存移动网络进行低数据量传输的遥测遥控系统;使用
GPS 效果差或成本太高的局部区域移动目标的定位应用。作为灯房监控和矿区拓展功能使用的 Zig
Bee,能够满足灯房信息化管理的应用需求,从灯房的通讯范围和数据传输的需求看,采用 Zig Bee 无线网络技术很合适。
1.2&& 课题研究的意义
随着计算机和无线通信技术的发展,计算机、无线通信技术已经开始应用于矿井安全和监测,Zig
Bee作为一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,完整的协议栈只有32KB,可以嵌入到各种设备中,同时支持地理定位功能。这些特点决定Zig
Bee技术非常适合应用在无线传感器网络中。与现有的各种无线通信技术相比,Zig
Bee技术在功耗和成本上相对较低,有很大的优势。嵌入式与无线通信的结合将是以后的一个发展方向和应用亮点。
本课题研究的矿灯灯房监控系统就是基于Zig
Bee技术的嵌入式无线通信网络,它将用于实时监测灯房矿灯的充电情况和使用情况,判断和处理紧急情况并报警。矿工在佩带具有Zig
Bee芯片的矿灯下井之后,通过井下现有的通讯网络和今后在井下延伸布置的不同功能的Zig
Bee节点,与灯房控制中心实现通讯。同时还可以较方便的在本系统中增加湿度、瓦斯传感器等,实现矿井更多的监测功能。本系统的整体设计与传统的灯房管理相比功能强大,安装布线工作更加简单,安装调试更为方便,减少了工作量,便于今后的功能扩展,同时对灯房实现信息化和网络化的管理,从而给煤矿生产工作的顺利进行提供一定的保障,为矿井的防灾、减灾以及提高生产效率方面发挥一定的作用。
1.3&& 论文研究的主要内容及组织结构
本文的无线通信网络采用Zig Bee无线通讯技术,对Zig
Bee协议栈进行了介绍,分析了协议栈各层,并移植协议栈,实现协议栈不同节点的功能。
本课题构建了嵌入式Linux平台,研究在Linux下驱动程序的编写以便实现CC2430的驱动程序。通过Zig
Bee协议和驱动的编写实现了嵌入式微处理器与短距离通信Zig Bee技术的结合,组成了矿灯中心控制平台,该平台实现Zig
Bee协调器的功能;在节点芯片CC2430上移植Zig Bee路由协议或终端协议,研究了灯房监测所用的传感器,构成Zig
Bee网络中的矿灯检测节点。
当矿灯节点越来越多时,网络的复杂程度就增高,对中心控制平台的处理速度会是个考验。因而,协调器节点设计比一般的节点更复杂,需要的资源多,对处理器的运行速度也有很高的要求。因而本课题的选用了32位的ARM芯片S3C2410来做这个节点的CPU,这是因为ARM具有运行速度快、存储空间大、易于网络互联等优点,所以用它来作为协调器节点的控制器能提高整个系统的运行处理速度,并且能完成复杂的路由算法,也方便与现在的网络进行数据传递。同时对S3C2410芯片的基本电路和主要接口进行了设计。
本论文分为七章:
第1章绪论,主要介绍了矿灯管理系统和无线通信Zig Bee技术的发展状况,概述了论文的主要内容及组织结构。
第2章嵌入式与Zig
Bee技术,介绍了嵌入式系统开发的硬件环境,构建了嵌入式开发环境,研究Linux内核并实现在S3C2410芯片上的移植。同时阐述了IEEE802.15.4标准及Zig
Bee技术,对Zig Bee协议栈各层与网络拓扑进行了详细分析,为协议栈的开发奠定基础。
第3章矿灯监控系统中心控制平台硬件设计,阐述了系统的总体结构,设计了中心控制平台硬件的基本电路及外围接口电路,为S3C2410拓展了无线通信功能。
第4章矿灯充电节点硬件设计,介绍了CC2430无线通信芯片,研究了基于CC2430的矿灯节点硬件结构,为矿灯充电过程的监控增加了相关传感器电路。
第5章& 矿灯监控系统中心控制平台软件设计,移植了Linux操作系统,论述了基于Linux的Zig
Bee无线通信系统驱动开发,阐述了Zig Bee2006协议栈,软件实现协调器的协议栈。用Mini GUI开发人机界面。
第6章 矿灯充电节点软件设计,阐述了矿灯蓄电池的充电控制方法,给出了数据采集部分的软件设计,以及实现了矿灯节点的Zig
第7章Zig Bee无线通信温度传输测试及课题总结。
2&& 嵌入式技术与无线通讯技术
2.1&& 嵌入式系统简介
嵌入式系统是继 Internet
网络技术之后,又一个崭新的技术研究领域。嵌入式系统具有体积小、功能强、功耗低、可靠性高以及功能专业化等特点,目前己经广泛应用于军事、民用、工业控制等领域。随着网络技术、无线通信技术和计算机技术的融合,嵌入式系统的研究和应用将发挥越来越重要的作用。
嵌入式系统的主要特点有:
1.& 嵌入式系统通常是面向特定应用的。嵌入式 CPU 与通用型的最大不同就是嵌入式 CPU
大多工作在为特定用户群所设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用 CPU
中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计的小型化,移动能力大大增强,跟网络的耦合也更加紧密。
嵌入式系统的硬件和软件都必须高效率地设计,根据实际需要,去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
为了提高执行速度和系统可靠性,嵌入式系统中的系统程序(包括操作系统)和应用程序是浑然一体的,这些程序被编译连接成一个可以执行的二进制映像文件,然后被固化在系统存储空间中。
高可靠性和高实时性。即在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;同时对于特殊的信号、消息、中断有极高的响应。
嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的大部分程序功能进行修改的,所以嵌入式系统的开发系统和实际运行系统并不是同一个,需要交叉编译系统和适当的调试系统。
嵌入式系统主要由嵌入式处理器、外围设备、嵌入式操作系统和嵌入式应用软件等部分组成。
本文介绍的矿灯充电监控系统中心控制平台采用了嵌入式微处理器,并移植了嵌入式操作系统 Linux,下面就对 Linux
操作系统和移植过程进行分析。
2.2&& 嵌入式操作系统 Linux
嵌入式系统需要的是一套高简练、界面友好、质量可靠、应用广泛、易开发、多任务、价格低廉的操作系统,用来负责嵌入式系统的全部软、硬件资源的分配和调度工作。它必须体现所在系统的特征,能够通过装卸某些模块来达到系统所要的功能。而实时嵌入式
Linux 是目前自由软件的代表,Linux 操作系统在嵌入式和实时性方面的功能都很强大,因此 Linux
成为进行嵌入式开发的首选操作系统。
2.2.1&& 嵌入式 Linux 的特点
嵌入式 Linux(Embedded Linux)是指对 Linux 经过裁剪小型化后可固化在存储器中,应用于特定嵌入式场合的专用
Linux 操作系统。本系统采用 Liunx 作为嵌入式操作系统,它有如下特点:
系统是单一体系结构的且内核完全开放。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己应用的需要方便地对内核进行改造,低成本地设计和开发满足自己需要的嵌入式系统。
2.& 强大的网络支持功能。Linux 诞生于因特网时代并具有 Unix
的特性,保证了它支持所有标准因特网协议,并且可以利用 Linux 的网络协议栈将其开发成为嵌入式的 TCP/IP
网络协议栈。此外,Linux 还支持
ext2、ext3、fat16、fat32、romfs等文件系统,为嵌入式系统应用的开发提供了很好的环境。
具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux 也符合 IEEE
POSIX.1标准,使应用程序具有较好的可移植性。
4.& Linux 具有广泛的硬件支持特性。无论是 RISC 还是 CISC、32 位还是
64位等各种处理器,Linux 都能运行。嵌入式 Linux 不仅支持 x86 芯片,而且是一个垮平台的系统。很多 CPU
包括家电业的芯片,都开始做 Linux 的平台移植工作。Linux
支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。
内核的结构在网络方面也是非常完整的,提供了包括十兆,百兆和千兆的以太网以及无线网络。
此外,高可靠性是嵌入式 Linux
领先于其他嵌入式操作系统最明显的地方。随着硬件技术的发展,以及开发工具的不断成熟,在嵌入式系统中使用 Linux
会具有更加宽广的应用前景。
正是因为嵌入式 Linux 具有上述优点,本系统将其移植到控制平台的微处理器上。
2.2.2&& Linux 内核结构分析
Linux 是一个庞大、高效而复杂的操作系统,Linux 的内核不是孤立的,所以要从整体上把握 Linux 内核的体系结构,图2-1
显示了 Linux 内核在整个操作系统的位置。
Linux 内核的抽象结构:Linux 内核由 5
个主要的子系统组成,如图 2-2 所示。
进程调度(SCHED)控制着进程对 CPU 的访问,当选择下一个需要运行的进程时,根据调度程序选择最佳运行进程。可运行进程实际是指等待
CPU 资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。Linux
使用了比较简单的基于优先级的进程调度算法选择新的进程。
2.& 内存管理(MMU)允许多个进程安全地共享主内存区域。Linux
的内存管理支持虚拟内存,即在计算机中运行的代码,其代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只将当前使用的程序块保留在内存中,其余的程序块则保留在磁盘上。必要时,操作系统负责在磁盘和内存之间交换程序块。
内存管理从逻辑上可以分为硬件无关的部分和硬件相关的部分,硬件无关的部分提供了进程的映射和虚拟内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。
3.& 虚拟文件系统(Virtual File
System,VFS)隐藏了各种不同硬件的具体细节,为所有的设备提供了统一的接口,VFS 还支持多达数十种不同的文件系统,这也是
Linux 较有特色的一部分。
虚拟文件系统可分为逻辑文件系统和设备驱动程序。逻辑文件系统指 Linux所支持的文件系统,如 ext2,fat
等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
网络接口(NET)提供了对各种网络标准协议的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序两部分。网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备通信,每一种可能的硬件设备都有相应的设备驱动程序。
进程间的通信(IPC)支持进程间的各种通信机制。从上图可以看出,处于中心位置的是进程调度,所有其他的子系统都依赖于它,因为每个子系统都需要挂起和恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正被完成时,进程被恢复执行。
各个子系统之间的依赖关系如下:进程调度和内存管理之间的关系:这两个子系统互相依赖。在多道程序环境下,程序要执行必须要为之创建进程,而创建进程的第一件事情,就是将程序和数据装入内存。
进程间通信与内存管理的关系:进程间的通信子系统要依赖内存管理支持共享内存通信机制,这种机制允许两个进程除了拥有自己的私有内存,还可以存取共同的内存区域。
虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持 RAMDISK
设备。内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程(swapd)定期的由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。当一个进程存取的内存映射被换出时,内存管理向文件系统发出请求,同时,挂起当前正在运行的进程。
除了图 2-2
表现出的依赖关系以外,内核中的所有子系统还要依赖一些共同资源,但在图中没有显示出来。这些资源包括所有子系统都用到的过程,例如分配和释放内存空间的过程,打印警告或错误信息的过程,还有系统的调试例程等。
2.2.3&& Linux 设备驱动模型
系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能:
1.& 对设备初始化和释放;
2.& 把数据从内核传送到硬件和从硬件读取数据;
3.& 读取应用程序传送给设备文件的数据和回送应用程序请求的数据;
4.& 检测和处理设备出现的错误。
Linux 对设备支持分为三种标准设备:字符设备、块设备和网络设备。字符设备接口支持面向字符的 I/O
操作,只能在单个字节的基础上接收和发送数据,一般不能进行任意长度的 I/O 请求,如系统的串口设备/dev/cua0
和/dev/cua1。块设备接口支持面向块的 I/O 操作,改进了传送数据的速率,可以利用数据缓冲区对数据进行处理,因此所有 I/O
操作都能通过在内核地址空间中的 I/O 缓冲区进行,支持几乎任意长度和任意位置上的 I/O
请求,即提供随机存取的功能。块设备仅能以块为单位读写,典型的块大小为 512 或 1024 字节。它的存取是通过buffercache
来进行并且可以进行随机访问,即不管块位于设备中何处都可对其进行读写。网络设备在 Linux 里做了专门的处理。Linux
的网络系统主要是基于BSDUnix 的 Socket 机制,在系统和驱动程之间定义又专门的数据结构(sk_
buff)进行数据的传递。系统里支持发送数据和接收数据的缓存,提供流量控制,提供对多协议的支持。
本文将在第五章具体讲述 Linux 下的设备驱动程序开发,并编写 CC2430 的驱动程序。
2.3&& 新型无线通讯技术Zig Bee
2.3.1&& 几种无线通讯技术的比较
来越多地引起人们的关注。目前市场上应用广泛的近距离无线通信产品有蓝牙(Bluetooth),红外(Ir
DA)& 和无线局域网
802.11(Wi-Fi),同时还有一些具有发展潜力的近距离无线技术标准:Zig Bee、超宽频(Ultra Wide
Band)、短距离通信(NFC)、GPS 和专用无线系统等,它们都有各自的特点。
下面对几种种无线通讯技术进行比较,它们分别是红外技术(Ir
DA)、蓝牙(Bluetooth)、短距离通信(NFC)、超宽频(Ultra Wide Band)和 Zig
Bee& 技术。
是一种利用红外线进行点对点通信的技术,是第一个实现无线个人局域网(PAN)的技术。目前它的软硬件技术都很成熟,在小型移动设备,如
PDA、手机上广泛使用。Ir DA
的主要优点是无需申请频率的使用权,因而红外通信成本低廉。并且还具有移动通信所需的体积小、功耗低、连接方便、简单易用的特点。此外,红外线发射角度较小,传输上安全性高。Ir
DA 的不足在于它是一种视距传输,两个相互通信的设备之间必须对准,中间不能被其它物体阻隔,因而该技术只能用于
2台(非多台)设备之间的连接。
超宽带无线技术(UWB)是一种独特的、很有前景的无线通讯技术,该技术在时域中以窄脉冲信号为载波,因而在频域中具有扁平并且宽带的特点,目前建议标准的带宽为
SSMbps,可保证 Qo S,通过跳频避免与其它无线信号的冲突。由于频谱扁平,因此能够实现在一定发射功率下,在各个频点上都不超过
规定的无线电干扰标准,所以不必申请即可用于任何频段。同时由于它的收发电路结构简单且具有低成本特点。缺点是它可能成为潜在的干扰源,同时由于功率限制,传输距离短,只有
10M 左右的距离。由于通讯距离短,所以不适合在矿井下使用。
NFC(Near Field Communication 近距离传输)是由 Philips、NOKIA 和 Sony 主推的一种类似于
RFID(非接触式射频识别)的距离无线通信技术标准。NFC采用了双向的识别和连接。在 20cm 距离内工作与 13.56 MHz
频率范围。NFC&
适合应用于各种设备之间,且毋需使用者事先设定的一种直觉、简便与安全的通信方式。为了使两个设备进行通信,使用者必须让他们相互靠拢甚至接触,设备内的NFC&
接口会自动连接并形成一个点对点网络。NFC&
也可以藉由交换配置与"对话"(session)& 资料来启动其他协议如蓝牙或无线网络(Wi
蓝牙(Bluetooth)技术推出较早,用中低速无线互连标准(1
Mbps),目的是取代电脑、周边设备及移动设备之间的一切电缆连接。蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、家用电器采用无线方式联接起来。它的传输距离为
10cm~10m。它采用 2.4GHz& 频段和调频、跳频技术。但由于与 Wi-Fi
共用一个频段而相互冲突,普及情况不尽人意,目前只在无线鼠标和蓝牙耳机上有较多的应用。IEEE 正计划将蓝牙划分为高速的 UWB
和低速的 Zigbee两个标准。蓝牙本身也在进一步修改,企图解决与 Wi-Fi 的冲突问题。蓝牙技术较 Zig Bee
技术芯片价格昂贵,通讯距离较短。
是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术,它是一种介于无线标记技术和蓝牙之间的技术提案,相对于现有的各种无线通信技术,Zig
Bee 技术将是最低功耗和成本的技术之一。由于Zig Bee 技术的低数据速率和通信范围较小的特点,也决定了 Zig Bee
技术适合于承载数据流量较小,设备成本低,低功耗,监测点多的情况。ZigBee
联盟负责制作网络层以上协议。目前,标准制定工作已完成。Zig Bee 协议比蓝牙、高速率个人区域网络或 802.11
无线局域网使用更简单。
由上述比较可以看出,Zig Bee 技术更适合于矿灯灯房监控和矿井安全监控中的应用。下面将详细介绍 Zig
Bee& 技术。
2.3.2&& IEEE802.15.4 标准
IEEE& 802.15.4 是一个新兴的无线通讯协议,是 IEEE
确定的低速个人区域网络(Personal Area Network)标准。这个标准定义了“物理层”(Physical Layer
PHY)和“介质访问层”(Medium Access Layer
MAC)。物理层规范确定无线网络的工作频段以及该频段上传输数据的基准传输率。介质访问层规范定义了在同一区域工作的多个 802.15.4
无线信号如何共享空中频段。
但是,仅仅定义物理层和介质访问层并不能完全解决问题。因为没有统一的使用规范,不同厂家生产出的设备存在兼容性问题于是 Zigbee
联盟应运而生:众多设备生产厂家联合在一起,推出一套标准化平台 Zigbee。从 IEEE802.15.4
标准开始着手,定义了允许不同厂商制造的设备相互兼容的应用纲要。
Zig Bee 协议使用 IEEE 802.15.4 规范作为介质访问层(MAC)和物理层( PHY)。IEEE 802.15.4
总共定义了 3 个工作频带:2.4 GHz、915 MHz 和
868MHz。每个频带提供固定数量的信道。例如,2.4& GHz 频带共提供 16 个信道(信道
11-26)、915 MHz 频带提供 10 个信道(信道 1-10)而 868 MHz 频带提供 1 个信道(信道
0)。协议的比特率由所选择的工作频率决定。2.4 GHz 频带提供的数据速率为 250kbps。
IEEE& 802.15.4& MAC 数据包的最大长度为 127
字节,每个数据包都头字节和16 位 CRC 值组成,16 位 CRC 的值验证帧的完整性。此外,IEEE 802.15.4
还可以选择使用应答数据传输机制,使用这种方法,所有 ACK 标志位置 1
的帧均会被它们的接收应答。这就可以确定帧实际上已经被传递了。如果发送帧的时候置位了 ACK
标志位,但是在一定的超时期限内没有收到应答,发送器将重复进行固定次数的发送,如仍无应答就宣布发生错误。非常重要的一点是接收到应答仅仅表示帧被
MAC 层正确接收,而不是表示帧被正确处理。接收节点的 MAC
层可能正确地接收并应答了一个帧,但是由于缺乏处理资源,该帧可能被上层丢弃。因此,很多上层和应用程序要求其他的应答响应。
2.3.3&& Zig Bee 技术
Zig Bee 是短距离、低速率的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案。Zig Bee 的基础是 IEEE
802.15.4。IEEE 802.15.4 是 IEEE 无线个人区域网(Personal Area Network.
PAN)工作组的一项标准,被称作 IEEE802.15.4技术标准。但 IEEE 仅处理低级 MAC 层和物理层协议,因此 Zig
Bee 联盟扩展了IEEE,对其网络层协议和 API
进行了标准化,定义了一个灵活、安全的网络层,支持多种体系结构来提供高可靠性的无线交流在动态 RF 坏境中。Zig Bee
联盟还开发了安全层,保证便携设备不会意外泄漏其标识,而且这种利用网络的远距离传输也不会被其它节点获得。
1.&& Zig Bee 技术的特点
Zig Bee 作为无线传输领域中的新兴技术标准有其独特之处,其主要技术特点有:
·省电:由于工作周期很短、收发信息功耗较低、并且采用了休眠模式,zig Bee技术可以确保两节五号电池支持长达
6个月到2年左右的使用时间,当然对于不同的应用,功耗也是不同的;
·可靠:采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突。MAC
层采用了完全确认的数据传输机制,每个发送的数据包都必须等待接收方的确认信息;
·成本低:芯片目前在 1.5-3 美元之间。Zig Bee 设备成本的目标是要在 1 美元以下。因为 Zig Bee
数据传输速率低,协议免专利费且简单,所以大大降低了成本;
·时延短:针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短。设备搜索时延典型值为 30ms,休眠激活时延典型僧是
15ms,活动设备信道接入时延为 15ms;
·网络容量大:一个 Zig Bee 网络可以容纳最多 254 个从设备和一个主设备,利用Zig
Bee技术可由多到65535个无线微功率收发机组成一个庞大而有效的无线数传网络平台;
·有效范围小:有效覆盖范围 10~75m 之间,具体依据实际发射功率的大小和各种不同的应用模式而定。
·安全:Zig Bee 提供了数据完整性检查和鉴权功能,加密算法采用 AES-128,同时各个应用可以灵活确定其安全属性。
2.&& Zig Bee 技术的节能优势
由于 Zig Bee 应用的低带宽要求,Zig Bee
节点可以在大部分时间内睡眠,以节省电池能量,然后苏醒并迅速发送数据,然后再去睡眠。Zig Bee 可以在 15
毫秒或更短的时间内由睡眠模式进入活动模式,因此即使睡眠的节点也可以取得合适的低时延。
ZigBee 节省的大部分优势归功于IEEE802.15.4
技术,后者本身就是为低功率而设计的。例如,为了尽可能多地节省能量,IEEE802.15.4 采用 DSSS(直接序列扩谱)技术取代
FHSS(跳频扩谱),因为后者为保持同步跳频会消耗较多的功率。
采用一种“准备好才发送”的通信策略,它只在有数据要发送时才发送数据,然后再等待自动确认。“准备好才发送”是一种“面对面”&
(in-your-face)的方案,是一种能量效率非常高的方案。而且,这种“面对面”式策略导致 RF 干扰非常低,这主要是由于 Zig
Bee 节点具有非常低的占空因数,只偶尔发射信号且只发送小量的数据。
Zig Bee 通过减少对相关处理的需要来进一步节省能量。一个简单的8 位处理器就可以轻松地完成 Zig Bee 的任务,而Zig
Bee 协议栈占用很少的内存。例如,一个功能更强的全功能设备(Full&
Function& Device,& FFD)栈需要占用大约
32kb 内存,而一个精简功能设备(Reduced Function Device, RFD)栈只需要 4kb
内存。比它们复杂得多的蓝牙技术则需要占用约 250kb 内存。
Zig Bee 相对简单的实现也节省了费用。RFD 由于省掉了内存和其他电路,自然降低了Zig Bee 部件的成本,而简单的
8位处理器和小协议栈也有助于降低成本。
2.4&& Zig Bee 协议栈结构
无线通信系统的 Zig Bee 协议栈总体分析
在整个系统中系统设计的重点在于 Zig Bee 协调器与节点的设计,而节点与协调器之间的通信必须遵守 Zig Bee 协议,它是
Zig Bee 网络实现的协议基准。
Zig Bee 堆栈是在 IEEE& 802.15.4 标准基础上建立的,定义了协议的 MAC
和PHY 层。Zig Bee 设备应该包括 IEEE802.15.4(该标准定义了 RF 射频以及与相邻设备之间的通信)的 PHY 和
MAC 层,以及 Zig Bee 堆栈层:网络层(NWK)、应用层和安全服务提供层。图 2-3
给出了这些组件的概况。
每个 Zig Bee
设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。设备是由模板定义的,并以应用对象(Application&
Objects)的形式实现。每个应用对象通过一个端点连接到 Zig Bee 堆栈的余下部分,它们都是器件中可寻址的组件。
从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有两个特殊的端点,即端点
0和端点 255,端点 0 用于整个 Zig Bee 设备的配置和管理。
应用程序可以通过端点与 Zig Bee 堆栈的其它层通信,从而实现对这些层的初始化和配置,附属端点的对象被称为 Zig Bee
设备对象((ZDO)。端点 255 用于向所有端点的广播。端点 241 到 254 是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。APS
通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设各。APS
使用网络层(NWK)提供的服务。NWK 负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过
Zig Bee 设备对象(ZDO)对网络层参数进行配置和访问。
2.4.2&& IEEE802.15.4 PHY
IEEE802.15.4 物理层包括射频(RF)模块和物理层控制机制。IEEE 802.15.4 定义了两个物理层标准,分别是
2.4GHz 物理层和 868/915MHz
物理层。两个物理层都基于直接序列扩频(DSSS),适用相同的物理层数据包格式,它们的区别在于工作频率、调制技术、扩频码片长度和传输速率不同。2.4GHz
频段为全球统一的无须申请的 ISM 频段。868MHz 是欧洲的 ISM 频段,915MHz 是美国的 ISM
频段。标准定义的三个频段共分配了 27 个信道,其中 868MHz 分配了一个信道,915MHz分配了 10 个信道,2.4GHz
分配了 16 个信道。
物理层数据服务包括以下五方面的功能:激活和休眠射频收发器;信道能量检测(energy
detect);检测接收数据包的链路质量指示(link quality indication,LQI);空闲信道评估(clear
channel assessment,CCA);收发数据。
2.4.3&& IEEE802.15.4 MAC
MAC 子层提供两种服务:MAC 层数据服务和 MAC 层管理服务(MAC sublayer manage-ment entity,
MLME)。前者保证 MAC 协议数据单元在物理层数据服务中的正确收发,后者维护一个存储 MAC 子层协议状态相关信息的数据库。MAC
子层主要功能包括下面六个方面:
1.& 协调器产生并发送信标帧,普通设备根据协调器的信标帧与协议器同;
2.& 支持PAN
网络的关联(association)和取消关联(disassociation)操作;
3.& 支持无线信道通信安全;
4.& 使用CSMA-CA 机制访问信道;
5.& 支持时槽保障(guaranteed time slot, GTS)机制;
6.& 支持不同设备的 MAC 层间可靠传输。
2.4.4&& 网络层(NWK)分析
Zig Bee 的网络层被要求来提供功能以确保 IEEE802.15.4& MAC
子层的正确操作并为应用层提供一个合适的服务接口。为了给应用层提供合适的接口,网络层包括了两个服务实体来提供必需的功能,这两个服务实体就是数据服务和管理服务。网络层数据实体(NLDE)通过相关的服务接入点(SAP)来提供数据传输服务,即
NLDE-SAP。网络层管理实体(NLME)通过相关的服务接入点来提供管理服务,即NLME-SAP。NLME利用NLDE来完成一些管理任务和维护管理对象的数据库,通常称作网络信息库(network
information base, NIB )。
1.& 网络层数据实体(NLDE)
会提供数据服务以允许一个应用在两个或多个设备之间来传输应用协议数据(application&
protocol& data&
units,& APDU),这些设备必须在同一个网络中。NLDE 会提供以下服务类型:
1)& 通用的网络层协议数据单元
(NPDU)。NLDE 可以通过一个附加的适当的协议头从应用支持子层 PDU 中产生 NPDU。
2)& 特定的拓扑路由。
NLDE 能够传输 NPDU
给一个适当的设备。这个设备可以是最终的传输目的地,也可以是交流链中通往最终目的地的下一个设备。
2.& 网络层管理实体(NLME)
NLME 提供一个管理服务以便允许一个应用和栈相连接。NLME 提供以下服务:
1)& 配置一个新设备。NLME 可以完全的配置栈依据应用操作的要求。设备配置包括开始设备作为
Zig Bee 协调者或加入一个存在的网络。
2)& 开始一个网络。NLME 可以建立一个新的网络。
3)& 加入或离开一个网络。NLME 可以加入或离开一个网络,使 Zig Bee
的协调者和路由器能够让终端设备离开网络。
4)& 分配地址。使 Zig Bee 的协调者和路由器可以分配地址给加入网络的设备。
5)& 临近表(Neighbor)发现。去发现、记录和报告设备的一跳临近表的相关信息。
6)& 路由的发现。可以通过网络来发现及记录传输路径,而信息也可被有效的路由。
7)& 接收控制。当接收者活跃时,NLME 可以控制接收时间的长短并使能
MAC子层同步或直接接收。
3.& 网络层帧的结构
网络层帧的结构由网络头以及网络负载区所构成。网络头以固定的序列出,但地址和序列区不可能被包括在所有帧中。一般的网络层帧结构如表 2-1
2.4.5&& 应用层(APS 层)分析
Zig Bee 的应用层由应用子层(APS sub-layer)、设备对象(ZDO)(包括 ZDO
管理平台)以及制造商定义的应用设备对象组成。APS
子层的作用包括维护绑定表(绑定表作用是基于两个设备的服务和需要把它们绑定在一起);在绑定的设备之间来传输信息。ZDO
的作用包括在网络中定义一个设备的作用(如定义设备为协调者或为路由器或为终端设备);发现网络中的设备并确定它们能提供何种应用的服务:起始或回应绑定需求以及在网络设备中建立一个安全的连接。
1.& 应用支持子层(APS)
应用支持子层在网络层和应用层之间提供了一个接口。这接口的提供是通过ZDO
和制造商定义的应用设备共同使用的一套通用的服务机制,此服务机制是由两个实体提供:APS 数据实体(APSDE)通过 APS
数据实体接入点(& APSDE-SAP)和 APS 管理实(APSME)通过 APS
管理实体接入点(APSME-SAP)。APSDE 提供数据传输服务对于应用 PDUs
的传送在同一网络的两个或多个设备之间。APSME提供服务以发现和绑定设备并维护一个管理对象的数据库,通常称为 APS 信息库(AIB
2.& 应用层框架(Application Framework)
Zig Bee 应用层框架是应用设备和 Zig Bee 设备连接的环境。在应用层框架中,应用对象发送和接收数据通过
APSDE-SAP。而对应用对象的控制和管理则通过ZDO 公用接口来实现。APSDE-SAP
提供的数据服务包括请求、确认、响应、以及数据传输的指示信息。有 240 个不同的应用对象能够被定义,每个终端节点的接口标识从 1到
240。还有两个附加的终端节点为了 APSDE-SAP 的使用:标识 0被用于 ZDO 的数据接口,255
则用于所有应用对象的广播数据的数据接口。而241-254 保留以作将来的应用。使用 APSDE-SAP
提供的服务,应用层框架提供了应用对象的两种数据服务类型:主值对服务(key value pair service,
KVP)和通用信息服务(generic message service, MSG)。两者传输机制一样,不同的是 MSG
并不采用应用支持子层(APS)数据帧的内容,而是留给应用者自己去定义。
2.5&& Zig Bee 网络拓扑结构
Zig Bee 设备共分为两种类型:全功能设备 FFD(Full Function Device)和精简功能设备
RFD(Reduced Function Device)。FFD设备可以与任何 Zig Bee 设备进行通信,但 RFD 设备仅能与
FFD 设备通信,两个 RFD 设备之间如要进行通信需通过FFD 设备的中转传输。由于这两种设备的独特性质,因此在组建一个 Zig
Bee 网络的时候就出现了三种设备角色:网络协调器(由一个 FFD 组成)、路由器(由一个FFD 组成)和终端设备(由一个 FFD 或
RFD 组成)。一个 PAN(Personal Area&
Network)有且只有一个网络协调器(Coordinator),这个协调器负责启动网络,配置网络成员地址,维护网络,维护结点的绑定关系表,支持关联等,需要最多的存储空间和计算能力;网络路由器为全功能设备(FFD),一般不具备绑定表的功能,主要功能即拓展网络,接受更多的终端设备通过它接入网络,从自己的地址块中分配网络地址给加入的节点,负责路由网络中的信息,将消息转发到其它设备。Zig
Bee 网状或树状网络可以有多个 Zig Bee 路由器;Zig Bee 星状网络不支持Zig Bee 路由器。终端设备 RFD
具有低功耗及低复杂度的特性,相较于
FFD,其功能精简了很多,一般都做为网络边缘设备,负责与实际的监控对象相连,这种设备一般只与自己的双亲通信,不具有成为双亲或路由器的能力,它的存储器容量要求最少。
Zig Bee 网络层(NWK)支持星状,树状和网状拓扑结构,如图 2-4 所示。
图中协调器以“C”表示,路由器以“R”表示,终端设备以“E”表示,其中协调器和路由器均为全功能设备(FFD,支持标准定义的所有功能和特性,而终端设备一般选择精简功能设备(RFD)。
星状网络由一个 PAN 协调器和多个终端设备组成,只存在 RAN 协调器与终端设备的通讯,终端设备间的通讯都需通过 PAN
协调器的转发。
树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或孩子进行点对点直接通讯外,其他只能通过树状路由完成消息传输。网状网络是树状网络基础上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表配合实现消息的网状路由。该拓扑的优点是减少了消息延时,增强了可靠性,缺点是需要更多的存储空间开销。
2.6&& 本章小结
本章首先介绍了嵌入式系统的特点及嵌入式操作系统 Linux,分析了 Linux内核结构;接着对 Zigbee
技术和特点进行了介绍,分析了协议栈结构,和各层协议,给出了 Zig Bee 网络拓扑结构,为后续工作的开展提供技术基础。
3&& 矿灯监控系统中心控制平台硬件设计
矿灯监控系统中心控制平台选用基于 ARM9 的嵌入式微控制器 S3C2410A,基于
无线网络通信技术的芯片 CC2430
以及相应的接口电路组成。本章将对其硬件部分进行分析。
3.1&& 嵌入式微控制器 S3C2410A 介绍
3.1.1&& ARM 及 ARM9 处理器核简介ARM 即
Advanced& RISC& Machines
的缩写。既是一个公司的名字,也是一类微处理器的通称,还可以认为是一种技术的名字。由于 ARM 公司自成立以来,一直以 IP
(Intelligence
Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低、高性能高效率等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在
32位嵌入式应用领域获得了巨大的成功,目前己经占有 75%以上的 32 位 R1SC
嵌入式产品市场。在低功耗、低成木的嵌入式应用领域确立了市场领导地位。
ARM 处理器核己经有 6 个系列产品:ARM7、ARM9、ARM9E、ARM10E、 Secur Core 以及 ARM11
系列。现在,ARM
微处理器及技术的应用已经深入到工业控制、无线通讯、网络应用、消费类电子产品、成像和安全产品等各个领域,本系统的中心控制平台使用了基于
ARM9 核心的处理器,ARM9 系列微处理器在高性能和低功耗特性方面都提供了最佳的性能:
1.& 具有 5 级整数流水线,指令执行效率非常高。
2.& 提供 1.1MIPS/MHz 的哈佛结构,支持 32 位 ARM 指令集和 16 位
Thumb指令集。
3.& 支持 32 位的高速 AMBA 总线接口。
4.& 全性能 MMU,支持 Windows&
CE、Linux、Palm& OS 等多种主流嵌入式操作系统。
5.& 微处理器单元 MPU 支持实时操作系统。
6.& 支持数据 Cache 和指令 Cache,具有更高的指令和数据处理能力。
ARM9 系列微处理器包含 ARM920T, ARM922T 和 ARM940T
三种类型内核,主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。
本系统主要用于数据处理,响应及无线通信,所以采用 ARM920T 内核的S3C2410A 微处理器。
ARM920T 核由 ARM9TDMI、存储管理单元 MMU
和高速缓存三部分组成。该处理器采用哈佛结构,5级流水线(包括取指、分析、执行、访存、写存);分立的指令和数据 Cache 都是
16KB,8 个字段数据总线;采用增强的 ARM 体系V4 的 MMU,以提供对指令和数据地址的翻译和访问许可检查;支持 ARM
调试结构,包括了辅助软件和硬件调试的逻辑电路;支持协处理器。
其中 ARM9TDMI 内核支持 7 种操作模式:
· 用户模式(usr):正常的程序执行状态。
· FIQ (Fast Interrupt Request)模式:用于支持特殊的数据传送与通道处理。
· IRQ (Interrupt Request)模式:用于通用的中断处理。
· 管理模式(svc):一种用于操作系统的保护模式。
· 中止模式(abt):当数据或指令预取中止时进入该模式。
· 系统模式(sys):一种用于操作系统的特权用户模式。
· 未定义模式(and ):当执行了未定义指令时进入该模式。
可用软件控制操作模式的切换,同时外部的中断和异常处理也会导致操作模式的切换。绝大多数用户应用程序运行在用户模式。当系统响应中断或异常、或访问受保护的系统资源时,处理器会进入特权模式(除用户模式以外的所有模式)。
3.1.2&& S3C2410A 体系结构及片上资源
S3C2410A 是 Samsung 公司推出的 16/32 位 RISC 处理器,它的主频高达203MHz,是基于 ARM920T
内核的高性能微处理器,独立的 16KB 指令 Cache 和16KB 数据。MMU
虚拟内存管理单元,使得程序运行以及数据存储更加高效,它的低功耗、精简和出色的全静态设计特别适合于低成本和功耗敏感的应用。同样它还采用了一种叫做
Advanced Microcontroller Bus Architecture(AMBA)新型总线结构。
S3C2410A 集成了丰富的片上外设:LCD 控制器(支持 STN 和 TFT);
SDRAM控制器等系统管理单元;3个通道的 UART;通用 I/O 口;RTC(实时时钟);8 通道的 10 位 ADC
和触摸屏控接口;IIC 总线接口和 IIS 数字音频总线接口;USB主机/CJSB 设备;2 个 SPI
接口等。通过这一系列完整的系统外围设备,大大减少了整个系统的成本,消除了为系统配置额外器件的需要。
S3C2410A 将系统的存储空间分成 8 组(Bank),每组的大小是 128MB,共1GB,Bank0 到 Bank6
都采用固定的 Bank 起始寻址,用于 ROM 或 SRAM。Bank7具有可编程的 Bank 的起始地址和大小,用于 ROM,RAM
或 SDRAM。所有的存储器 Bank 都具有可编程的操作周期,支持外部等待信号延长总线周期。
S3C2410A 支持从NAND Flash 启动,可以将引导代码和操作系统镜像存放在外部的
NAND& Flash 中,并从 NAND& Flash
当 S3C2410A 在这种模式下上电复位时,内置的 NAND& Flash
控制器将访问控制接口,将 NAND& Flash 存储器里 4K 大小的引导代码自动加载到
S3C2410A 内部的 SRAM 缓冲器中运行,这个4K 的引导代码需将 NAND Flash 里的操作系统镜像加载到
SDRAM中,在引导代码执行完毕后跳转到 SDRAM 执行,这样操作系统就能够在 SDRAM 中运行了。
本系统设计的矿灯监控中心平台的功能开发是基于 S3C2410A 丰富的片上资源,这里将详细介绍。
1.& 内存控制器
S3C2410A 的内存控制器为外部内存访问提供了内存控制信号,包括总线宽度和等待控制寄存器、组控制寄存器、REFRESH
控制寄存器、BANKSIZE 寄存器、SDRAM 模式寄存器。
2. NAND FLASH 控制器
S3C2410A 处理器的启动代码可以在外部的 NAND& Flash
上执行。启动时,NAND& Flash 的前 4KB(地址为
0x,OM[1:0]=0)将被装载到 SDRAM 中被称作 Steppingstone
的地址中,然后开始执行这段代码。启动以后,这 4KB 的空间可用作其它用途。
自动启动模式如下:
·把 NAND Flash 的前 4KB 复制到 Steppingstone 处;
·Steppingstone 映射到 n GCSO; CPU 执行 Steppingstone 中的代码 NAND Flash
·通过 NFCONF 寄存器设置 NAND Flash 配置;
·把 NAND Flash 命令写入 NFCMD 寄存器;
·把 NAND Flash 地址写入 NFADDR 寄存器;
·通过 NFSTAT 寄存器检测 NAND Ftash 状态时读/写数据。读操作以前或者编程操作以后应该检查 R/n B
3.& 时钟和电源管理
S3C2410A 可以生成三种时钟信号,分别时 CPU 使用的 FCLK,AHB 总线使用的 HCLK 和 ABB 总线使用的
PCLK。同时,S3C2410A有两个锁相环,一个用于前面提到的 FCLK、HCLK 和 PCLK;另一个用于 USB
S3C2410A 有四种电源管理模式:NORMAL 模式、SLOW 模式、IDLE 模式和
POWER-OFF,通过这四种模式有效地控制了功耗。
4. DMA S3C2410A 支持 4 通道 DMA 控制器。使用 DMA 地最大好处是无须 CPU
地干预就可以进行数据传输。DMA 操作可以通过软件或者硬件进行初始化。每一个 DMA 通道有 9 个控制寄存器(4 个通道共计 36
个寄存器),6 个用来控制 DMA传输,其它 3个监视 DMA 控制器的状态。
5.& 输入/输出口
S3C2410A 有117 个通用I/O 口(PORT.A-PORT.H ),这些 I/O 口为系统编程提供了极大的方便。
6. PWM 计时器
PWM 计时器能生成 DMA 请求,计时器在收到 ACK 信号以前将保持 DMA请求信号(n DMA-REQ 处于低电平,收到ACK
信号后,计时器停止请求信号,并设置 DMA 模式位(TCFG1 寄存器)。
S3C2410A 的 UART 提供了三组独立的异步串行口,每个 DART 通道都包含16B 的 FIFO
用于数据发送和传输,并且都可以在中断或 DMA 方式下进行操作。
中断有三种类型:硬件中断、软件中断和异常中断。所有的处理器至少都有一个引脚被用做中断输入(S3C2410A 中对应的一个引脚是
EINTO),外设控制芯片也有一个引脚用做中断输出,把这些引脚连接起来,当外设上有事件发生,其控制器将通过产生一个硬件中断的方式来通知处理器。S3C2410A(下面称为S3C2410)的中断控制器能接受来自
56 个中断远的请求,这些中断源由内部的外围设备提供(如 DMA 控制器、UART 等)。
3.2&& Zig Bee 监控中心系统结构
灯房监控中心由嵌入式微处理器 S3C2410 及其接口电路以及基于 Zig Bee 的无线通信芯片 CC2430
组成,以实现对矿灯设备的监控管理,数据统计,数据处理,人机交互以及对节点网络的组建和维护等。这个监控中心还可根据具体应用的需求进行优化扩展,以实现井下安全检测、人员定位等多种功能,具有简单、可靠、低功耗和低成本等优势。
矿灯节点是由 CC2430 无线通讯芯片和外围传感器组成,完成对蓄电池的实时监控和数据发送功能。
矿灯监控系统的总体结构如图 3-1 所示。
Zig Bee 监控中心的硬件结构如图 3-2 所示。
CC2430 有增强型 8051 并具有 A/D
转换功能,所以功能节点部分直接通过CC2430 芯片内部的 A/D 和 I/O 接口连接传感器模块,节点硬件结构图如3-3
3.3&& 中心控制模块基本电路设计
中心控制模块的基本电路设计包括 CPU 电源、时钟、复位电路等。
3.3.1&& 电源电路
S3C2410 内核需要 1.8V 电源,所以需要使用 LDO(低压差电源芯片)将 3.3V电源转换得到 1.8V 电源。LDO
芯片使用的是 SPX.8,电路如图 3-4 所示。
LDO 芯片 SPX.8 输出可达 800m
A,输出电压精度在正负 1%内,还具有电流限制和热保护功能。
3.3.2&& 系统时钟电路
S3C2410 芯片可以使用外部晶振或外部时钟输入作为系统时钟,外部晶振频率范围是 10-20MHz。在此我们采用了 12MHz
外部晶振,将 S3C2410 的 OM2、OM3 引脚接为低电平(即设置 OM[3:2]=00b),将外部时钟输入引脚 EXTCLK
接为高电平(3.3V),电路原理图 3-5 所示。通过 S3C2410 内部的锁相环,可以将时钟倍频至
203MHz,作为处理器的主时钟(FCLK)。
S3C2410 具有一个独立时钟源、独立电源供电的 RTC(实时时钟),所以在XTOrtc、XTIrtc 引脚接上 32768Hz
石英晶振。
3.3.3&& 系统复位电路
芯片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控可靠性等诸多方面也提出了更高的要求。
为了提高整个系统的可靠性,矿灯监控中心系统的复位电路使用了带手动复位的电源监控复位芯片 CAT1025JI-30(复位门槛电压为
3.0-3.15V),芯片内置有256 字节的 E2PROM 存储器,I2C 总线接口,电路原理如图 3-6
3.4&& 矿灯监控中心接口设计
3.4.1&& 存储器扩展
为了保存矿灯节点的信息,完成对矿灯状态,使用情况,蓄电池状态等信息的存储与统计,中心控制模块扩展了存储速度快、体积小、功耗低且价格低廉,可在线电擦写,信息在掉电后不会丢失的
Flash 模块。
S3C2410 支持从 NAND Flash 启动,NAND Flash 具有容量大、比 NOR
Flash价格低等特点。所以本系统的存储器扩展采用性价高的 NAND Flash 与 SDRAM相组合的方式。
1. NAND Flash
存储器电路NAND 的写入速度比 NOR 快很多,用于存储 Bootloader,在 S3C2410 上移植的 Linux
操作系统,根文件系统和驱动程序。通过 Bootloader
可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态;常量表;以及一些在系统掉电后需要保存的用户数据等。
S3C2410 共有 8 个存储器 BANK,每组大小 128M,NAND Flash 具有容量大、价格低的特点。最多可扩充 8个
NAND Flash 存器,如果每个Flash 有 128M,可达 1G 大小。用于存储矿灯信息,报表等。
在此我们对 S3C2410 芯片扩展了 64MB 的 NAND&
Flash(芯片型号为K9F1208U0B),S3C2410 与 NAND& Flash 的连接如图
3-7 所示。K9F1208U0B 的I/O0-I/O7 引脚直接与 S3C2410 的数据总线 DATA0-DATA7
相连,通过数据总线发送地址、命令和数据。
2. SDRAM 电路
SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存取存储器。在 Linux
移植之后,将 Linux 内核文件、根文件系统文件、Linux启动参数文件的内容复制到 SDRAM
中运行,以加速系统运行速度。
在 S3C2410 上扩展 2 片 SDRAM(HY57V651620),使用芯片的 n GCS6 片选信号,电路如图 3-8
2 片 16 位总线宽度的存储芯片组成 32 位总线宽度,即 U4
与数据总线的低16 位相连,U5 与数据总线的高 16 位相连。2 片 SDRAM 组成了 32
位宽度的存储器,即每进行一次读操作可取得 4 字节数据,对于 S3C2410 来说相应于字对齐,操作地址最小的变化值为
0x。因此将 S3C2410 的 ADDR2 引脚与HY57V651620 的 A0 引脚连接,不使用 S3C2410
的 ADDR0、ADDR1 引脚,其他地址依次递增连接即可。为了能够正确访问 HY57V651620 高/低位字节数据,所以将
S3C2410 的 n WBEx 信号与HY57V651620 的 UDQM/LDQM 相连。
HY57V651620 的 BA0、BA1 引脚是 SDRAM 内部 BANK 选择地址线,也就代表了 SDRAM
内存地址的最高位。其他控制信号按照 HY57V651620 的引脚功能对应连接即可。
3.4.2&& 液晶屏及触摸屏驱动电路
为了使中心控制平台便于图形化界面开发,完成配置数据,增加节点,拓展服务等功能,提高人机交互的友好性,我们扩展了液晶触摸屏。
S3C2410 内置有液晶控制器,可以支持最大 256K 色 TFT 彩色液晶屏、最大4K 色 STN 彩色液晶屏。系统采用 8
英寸640*480TFT 液晶屏(LQ080V3DG01),它与 S3C2410 的电路连接如图 3-9 所示。直接使用
S3C2410 的控制口线与LQ080V3DG01 液晶屏相连,不需要加电平转换电路。LQ080V3DG01 液晶屏有18
根数据线(R、G、B 各 6 根),将 S3C2410 的 VD2~VD7 与晶屏的 B0~B5相连,VD10~VD15 与
G0~G5 相连,VD18~VD23 与 R0~R5 相连。
本系统所采用的彩色液晶屏上带有触摸屏,该触摸屏为四线电阻式,用于检测屏幕触摸输入信号。在使用触摸屏时,需要一套切换控制及 ADC
转换电路,用于切换触摸屏的 X、Y 轴输入,A/D 转换器的 AIN5、AIN7 与控制器脚 n YPON、YMON、n XPON
和XMON 配合,实现触摸屏输入功能。触摸屏驱动电路如图 3-10 所示,直接使用S3C2410 内置的触摸屏接口 ADC
进行采样。
3.4.3&& 以太网接口电路
S3C2410 本身不具备网络接口,所以采用微处理器加 DM9000E& 10/100M
以太网控制器的方式进行扩展。
矿灯监控系统中心控制平台收集的矿灯及蓄电池信息,可以通过以太网口传输到局域网中,供更多工作人员参考。以太网接口用以实现更广泛的信息交流和信息共享。
电路使用 16 位总线方式进行控制,数据总线 DATA0~DATA15 与芯片的SD0~SD15
链接,地址线也进行相应的链接,片选线nGCS3 与芯片的 AEN 项链。DM9000E&
10/100M 以太网控制器的工作基地址为 0x300,而 S3C2410 的地址线ADDR2 与芯片的命令/数据使能端CMD
相连,所以对其进行操作时的地址是0x300(地址端口),0x304(数据端口),而结合 S3C2410 的片选先得到的32 位地址为
0x(地址端口)或 0x(数据端口)。
其电路连接如图 3-11。
3.5&& CC2430 与微控制器接口
CC2430 芯片是 Chipcon 公司生产的首款符合 Zig Bee 技术的 2.4GHz 射频系统的芯片。适用于各种 Zig
Bee 或类似Zig Bee的无线网络节点。该芯片在第四章具体介绍,下面介绍 CC2430 芯片与中心控制微处理器 S3C2410
CC2430 无线收发模块的核心部分是一个 CC2420 射频收发器。CC2430 与微处理器的连接非常方便,使用 SPI
总线方式完成它们之间的通信。
SPI 总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以串行方式进行通信以交换信息。SPI
的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少 4根线,也是所有基于
SPI的设备共有的,它们是
SDI(数据输入)主设备数据输入,从设备数据出;SDO(数据输出)主设备数据输出,从设备数据输入;SCK(时钟)时钟信号,由主设备产生;CS(片选)从设备使能信号,由主设备控制。
CC2430 通过 4 线 SPI
总线(SI、SO、SCLK、CSN)设置芯片的工作模式,并实现读/写缓存数据、读/写状态寄存器等。
通过控制 FIFO 和 FIFOP 引脚接口的状态可设置发射/接受缓存器。S3C2410与 CC2430 通过 SPI 总线的连接如图
3-12& 所示:
图 3-12 中左边为基于 CC2420 射频收发器的 CC2430
芯片,其中一共有 9 个引脚与右边中 ARM 芯片连接。其中 FIFO,FIFOP,CCA,SFD 为芯片中断输出脚,分别连接 ARM
芯片的 GPG6,GPG11,GPB1 和 GPG7 四个引脚。无线收发模块的片选脚 CS 连接 GPG2,复位脚 RESET 连接
GPB0。由于该 ARM 芯片具有2 组 SPI,我们选用 SPI0 输出引脚与 CC2430 的 SCLK,SI,SO
其中 GPG6,GPG11,GPB1 和 GPG7 四个引脚通过寄存器配置为外部中断引脚,GPG2 和
GPB0配置为输出引脚。
CC2430 收到物理帧的 SFD 字段后,会在 SFD 引脚输出高电平,直到接收完该帧。如果启动了地址辨识,在地址辩识失败后,SFD
引脚立即转为输出低电平。FIFO 和 FIFOP 引脚标示接收 FIFO 的缓存区的状态。如果接收 FIFO 缓存区有数据,FIFO
引脚输出高电平;如果接收 FIFO 缓存区为空,FIFO 引脚输出低电平。FIFOP 引脚在接收 FIFO
缓存区的数据超过某个临界值时或者在 CC2430 接收到一个完整的帧以后输出高电平。临界值可以通过 CC2430
的寄存器设置。
CCA 引脚在信道有信号时输出高电平,它只在接收状态下有效。在 CC2430进入接受状态至少 8个符号(symbol)周期后,才会在
CCA 引脚上输出有效的信道状态信息。
与微处理器连接完成之后,系统的监控中心就具有了无线收发功能,该模块将移植协调器协议,具体移植过程在第五章中介绍。Zig Bee
协调器负责建立和维护网络,在每个网络中有且只有一个,协调器只能是全功能设备FFD(Full&
Funetional&
Device),全功能设备实现全部功能。本系统完成的无线传感器网络中的路由器也是 FFD 设备,终端是 RFD 设备。RFD
只是实现了部分功能。FFD 设备之间可以直接进行通信,RFD 设备只能和 FFD 设备进行通信,不能和其它 RFD
设备进行通信。
在进入正常操作状态之后,Zig Bee
协调器需要管理网络中的矿灯节点设备,包括处理它们的加入和离开;还要处理来自其它设备的绑定请求,为不同设备之间的数据转发建立相关绑定信息;它还能够处理各种设备和服务查询的请求;接收数据来自矿灯节点的信息,发送控制信息。
3.6&& 本章小结
本章对矿灯监控系统中心控制平台的硬件进行设计,主要介绍了 S3C2410 微处理器,给出了 Zig Bee
监控中心的总体结构,结合实际需要扩展了存储器、液晶触摸屏和以太网接口,最后介绍了 CC2430 与 S3C2410 的 SPI
总线连接,完成了中控平台的无线通信模块。
4&& 矿灯充电节点硬件电路设计
4.1&& 矿灯充电节点介绍
矿灯监控系统中中心控制平台的无线 Zig Bee 节点实现的是协调器功能,组织协调整个网络的数据传输,而矿灯节点设计是建立在对
CC2430 模块进行开发的基础之上,实现对矿灯充电的实时监控,完成路由器与终端节点通信功能。因此本章详细介绍一下高性能低功耗的
CC2430 芯片。
CC2430 是 TI 公司收购无线单片机公司 Chipcon 后推出的全新概念新一代Zig Bee 无线单片机系列芯片。CC2430
是一颗真正的系统芯片(So C)CMOS& 解决方案。这种解决方案能够提高性能并满足以 Zig
Bee& 为基础的 2.4GHz&
ISM& 波段应用对低成本,低功耗的要求。它结合一个高性能
2.4GHz& DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧增强性能的
8051& 控制器。
CC2430 芯片延用了以往 CC2420& 芯片的架构,在单个芯片上整合了 Zig Bee
射频(RF)前端、内存和微控制器。它使用 1& 个 8位MCU(8051),具有 32/64/128
KB& 可编程闪存和 8&
RAM,还包含模拟数字转换器(ADC)、几个定时器(Timer)、AES128&
协同处理器、看门狗定时器(Watchdog Timer)、32 k Hz&
晶振的休眠模式定时器、上电复位电路(Power& On&
Reset、掉电检测电路(Brown& Out Detection)以及 21 个可编程
I/O& 引脚。
CC2430 芯片采用在接收或发射模式下工作电流损耗分别低于 27m A 或25m A。CC2430
的休眠模式和转换到主动模式的超短时间特性特别适合要求电池寿命非常长的应用。
CC2430 芯片的主要特点如下:
1.& 高性能和低功耗的 8051 微控制器核。
2.& 集成符合 IEEE802.15.4 标准的 2.4GHz 的 RF 无线收发器。
3.& 优良的无线接收灵敏度和强大的抗干扰性。
4.& 在休眠模式时仅 0.9u A 的流耗.外部的中断 RTC 能唤醒系统:在待机模式时少于
0.6 u A 的流耗,外部的中断能唤醒系统。
5.& 硬件支持CSMA/CA 功能。
6.& 较宽的电压范围(2.0~3.6V)
7.& 数字化的 RSSI/LQI(接收信号强度指示/线路质量指标)支持和强大的DMA
8.& 具有电池监测和温度感测功能。
9.& 具有8 路模拟数字转换器(ADC)。
10.& 集成 AES 安全协处理器。
11.& 带有两个强大的支持几组协议的 USART(通用同步/异步接收发送)以及一个符合 IEEE
802.15.4 规范的 MAC 计时器,一个常规的 16 位计时器和两个 8位计时器。
只需要极少的外围元器件,其外围电路包括晶振时钟电路、射频输入/输出匹配电路两个部分。芯片本振信号既可由外部有源晶体提供也可由内部电路提供。由内部电路提供时需外加晶体振荡器和两个负载电容,电容的大小取决于晶体的频率及输入容抗等参数。射频输入/输出匹配电路主要用来匹配芯片的输入输出阻抗。其典型应用电路如图
4-1 所示。
该电路使用一个非平衡天线连接非平衡变压器可使天线性能更好。电路中的非平衡变压器由电容 C4 和电感 L1,L2,L3 以及一个 PCB
微波传输线组成整个结构满足 RF 输入/输出匹配电阻 50Ω 的要求。内部 T/R 交换电路完成 LNA 和 PA之间的交换。R3 和
R4 为偏置电阻,电阻 R4 主要用来为 32MHz 的晶振提供一个合适的工作电流。用一个 32MHz
的石英谐振器(XTAL1)和两个电容(C6 和 C7)构成一个 32MHz 的晶振电路。用一个 32.768k Hz
的石英谐振器(XTAL2 )和两个电容(C2 和 C1)构成一个 32.768k Hz 的晶振电路。电压调节器为所有要求 1.8V
电压的引脚和内部电源供电,C5 和 C3 电容是去耦合电容,用来实现电源滤波以提高芯片工作的稳定性。
CC2430 共有 48 个引脚。全部引脚可分为 I/O 端口线引脚、电源线引脚和控制线引脚三类。下面主要讲述 I/O
端口引脚。
CC2430 有 21 个可编程的 I/O 口引脚,P0、Pl 口是完全的 8 位口,P2 口只有5 个可使用的位。通过软件设定一组
SFR 寄存器的位和字节,可使这些引脚作为通常的 I/O 口或作为连接 ADC、计时器或 USART 部件的外围设备 I/O
CC2430 的 I/O 口有如下特征:
1.& 可设置为通常的 I/O 口,也可设置为外围 I/O 口使用。
2.& 在输入是有上拉和下拉能力。
3.& 全部 21 个数字 I/O 口引脚都具有响应外部的中断能力。如果需要外部设备,可对 I/O
口引脚产生中断,同时外部的中断事件也能被用来唤醒休眠模式。(Pl.2~Pl.7):具有 4m A
输出驱动能力;(Pl.0,P1.1):具有 20m A 的驱动能力;(P0.0~P0.7):具有 4m A
输出驱动能力;(P2.4,P2.3,P2.2,P2.1,P2.0):具有4m A 输出驱动能力。
4.2&& 矿灯充电节点结构
矿灯节点设计的主控和无线通讯芯片采用 CC2430,并添加相应的传感器电路,实现矿灯节点的监控和无线通信。
根据协议栈,网络和应用软件的执行对 MCU& 处理能力的要求,CC2430 包含一个增强型工业标准的
8位 8051& 微控制器内核,运行时钟
32MHz。矿灯充电控制回路的核心也是该微控制器。CC2430 的 8051& 内核使用标准
8051& 指令集,具有 8倍的标准 8051&
内核的性能。这是因为:每个时钟周期为一个机器周期而标准 8051& 中是
12& 个时钟周期为一个机器周期;除去被浪费掉的总线状态的方式。大部分单指令的执行时间为
1个系统时钟周期。除了速度的提高,CC2430增加内核还增加了两个部分:另一个数据指针以及扩展
18& 个中断源。
CC2430 的 8051
内核实际上是一个实时监测和控制系统,主要作为充电装置的监控中心,完成对蓄电池相关参数的采集、控制操作。包括对蓄电池端电压、充电电流和电池温度等参数的监控,对收集信息的分析和计算处理,对充电装置工作参数的设置等。数据采集部分通过芯片上的
转换模块,实时采集蓄电池的电压、电流和温度信息,通过对电压进行精确的采样来中断充电电流以保证充电的准确性,对充电过程进行智能控制,计算电池已充的电量和剩余的充电时间。
CC2430中的无线收发模块核心部分是CC2420射频(RF)收发器,通过该模块将矿灯信息发送至中心控制模块,中心控制平台记录矿灯充电的次数,得知整个矿灯房当前矿灯充电及使用情况,对每盏矿灯已使用的次数进行累计统计和规定使用次数相比,以此判断该矿灯的寿命状况,从而决定更换时间。
矿灯节点的硬件结构如图4-2所示:
该节点主要由主要包括无线传输模块、8051MCU、电流传感器、电压传感器、温度传感器等组成。
4.3&& 矿灯充电数据采集电路设计
数据采集系统的任务是对矿灯充电过程中的蓄电池电压、充电电流和蓄电池温度信号进行采集,经过 A/D 转换器送入存储器中储存。MCU
再对这些信号进行运算和处理并将这些数据无线发送至中心控制平台,由中控平台完成对数据的分析和统计。
4.3.1&& 模/数转换模块(ADC)
矿灯参数采样采用 CC2430 内部的 A/D 转换电路,该 A/D 转换器具有以下特点:它是 10 位精度逐次逼近型;0.5LSB
的积分非线性度; ± 2LSB 的绝对精度;15-260us 的转换时间;在最大精度下可达到每秒 15k Sps 的采样速率;8
个独立可配置输入通道;0-VCC 的 ADC 输入电压范围;通过软件设置连续转换或单次转换模式;ADC
转换结果可设置为左端对齐或者右端对齐;ADC
转换完成触发中断;温度传感输入;电池电压检测;基于休眠模式下的噪声抑制器。所以利用CC2430 内部的 A/D
转换器能满足系统测量的要求。
CC2430 的 ADC 支持 14 位的模/数转换,这与一般的单片机 8 位 ADC 有所不同,如图 4-3 所示。这个 ADC
包括一个参考电压发生器、8 个独立可配置通道、电压发生器和通过 DMA 模式把转换结果写入内存控制器。
当使用 ADC 时,P0 口必须配置成 ADC 输入,即把 P0 口作为
8 个 ADC 输入。把 P0 相应的引脚当作 ADC 输入使用时,寄存器 ADCCFG 相应的位设置为 1。ADC
可完成顺序模/数转换并把结果送至内存(使用 DMA 模式),而不需要 CPU的干涉。
4.3.2&& 电流、电压检测电路
矿灯充电中,电流检测采用美国美信公司生产的 MAX471,它是一种新型的、高精度的电流检测放大器,内置 35
mΩ精密采样电阻,实现以地为参考点的电流/电压的转换。用 MAX471
对电源电流进行采样从而对电流进行限制,可以显著降低电流取样引起的压降。MAX471
有一个电流输出端,只需外接一个电阻,将电流转换成对地电压,就可组成高精度的电流监测电路。它的工作电压和被测电路电流范围宽,因此得到广泛的应用。
MAX471 的引脚如图 4-4 所示。
其中,SHDN:为休眠端。接地时处于工作状态。接高电平时,休眠状态,耗电电流小于 18μA。RS+:内部取样电阻的电源端。“+”仅表示
SIGN 输出端的电流方向。GND:地或电池负端。SIGN:OC 门输出端。低电平表示被测电流由 RS-流向 RS+;当 SHDN
为高电平时,SIGN 端呈高阻抗。不使用 SIGN 时,可将该端悬空。RS-:内部取样电阻的负载端,“-”仅表示 SIGN
输出端的电流方向。OUT:电流输出端,它与经过 RSENSE 的电流大小成比例,该端对地接一个 2kΩ的电阻时,其转换因子为
1V/1A(被测电流)。
MAX471 的典型应用电路如图 4-5 所示。MAX471 也可由
RS-端供电。这时测量的总电流包括了其本身的电流消耗,RSENSE 上的小压降并不影响 MAX471的性能。
因为 OUT 端输出的是电流,因此,必须在该端对地外接一个电阻 ROUT
以取得 VOUT。RSENSE 是 MAX471 的内部取样电阻。RG1 和 RG2 是生产商确定的,它对应于
IOUT/ILOAD=500μA/A 电流转换比。由于生产的一致性,它们具有很高的温度稳定性。由于单个 MAX471 能够测量±3A
的负载电流,对本项目来说已满足要求。
电压采集直接采用分压电路实现,由于 CC2430 芯片的 A/D 转换电路对外加控制电压有一定要求,它只允许对 0~5V
的标准电压进行转换,因此需要设置输入信号预处理电路。采用精密电阻进行比例衰减,把输入电压量程范围转化至 AD转换器的量程范围(即
0~5V 的标准电压信号)。
从分压电阻取来的充电电压信号经滤波后,转化为 0~5V 的模拟电压量送给芯片的 A/D 转换,MCU
得到矿灯电池的电压,以便对矿灯充电进行控制。
4.3.3&& 温度采集电路设计
矿灯蓄电池表面温度也是充电控制中的一个重要指标,目前大多数温度测控系统在进行温度检测时,都是用温度传感器将温度转化为电量后,经信号放大电路放大到适当的范围,再由
A/D 转换器转换成数字量来完成的。本系统采用美国Dallas 半导体公司生产的可组网数字式温度传感器 DS1820。
该温度传感器体积小、适用电压宽、经济实用。DS1820 是世界上第一片支持
“一线总线”接口的温度传感器,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,其内部电路的核心是一个直接数字输出的温度传感器,在与微处理器连接时仅需要一条接口线即可实现微处理器与
DS1820 的双向通讯。9 位的温度分辨率,测量结果以 9 位数字量方式串行传送。可用数据线供电,电压范围从 3.0V 到
5.5V。可测量的温度范围从-55&#845

我要回帖

更多关于 zigbee传输 的文章

 

随机推荐