基于ZigBee技术的无线数据采集系统 - 图文(14)
江 苏 大 学 硕 士 学 位 论 文
这是通过函数aplJoinNetwork()来实现的。其中的具体设定如下:
//加入一个网络
a_nwk_service.cmd = LRWPAN_SVC_NWK_JOIN_NETWORK;
//扫描信道的选择,为32位数据。每位为1:扫描信道,0:不扫描
a_nwk_service.args.join_network.ScanChannels=RWPAN_DEFAULT_CHANNEL_MASK; //设置扫描每个信道的时间
a_nwk_service.args.join_network.ScanDuration=LRWPAN_DEFAULT_CHANNEL_SCAN_DUR
ATION;
//设置网络标识符
a_nwk_service.args.join_network.PANid = LRWPAN_DEFAULT_PANID; // 重新加入网络设置为假
a_nwk_service.args.join_network.RejoinNetwork = FALSE;
在具体加入网络中所需完成的工作包括:
nwkState = NWK_STATE_JOIN_NETWORK_START; //设定为加入网络状态 phyInit(); //初始化物理层 macInit(); //初始化MAC层 ntInitTable(); //初始化邻近表 a_nwk_service.status = macInitRadio(); //开启无线通信
4.2 终端节点软件设计
4.2.1 主程序设计
终端节点的主要功能:加入到现在的网络中去,读取采集终端数据,能够接收从ZigBee网络上传来的数据和命令。
终端节点首先初始化CC2430,包括与串行口通信的基本设置等,然后程序初始化协议栈并打开中断,之后发送加入网络信号,等待网络协调器响应,并给自己分配网络地址。如果网络加入成功,终端节点上的二极管被点亮。加入网络成功后,等待中断,响应相应得中断。终端节点软件流程图如图4.6所示。
36
江 苏 大 学 硕 士 学 位 论 文
发送加入网络信号加入网络是否成功?是否等待信息CC2430初始化否是否为数据信息?是初始化协议栈采集数据终端数据发送采集终端数据初始化串口中断使能信息应答完成
图4.6 终端节点流程图
Fig.4.6 Program flow chart of terminal nodes
4.2.2 初始化程序
在CC2430上电复位后,要先进行初始化工作,包括协议栈初始化、串口初始化,定时器初始化、频率信道初始化,变量初始化等。
halInit(); //硬件层的初始化 evbInit(); //CC2430初始化 aplInit(); //初始化协议栈
initUART(); //初始化串口,波特率2400,8位数据位,无奇偶校验,1位停止位 ENABLE_GLOBAL_INTERRUPT(); //使能中断
协议栈使用免费的精简版ZigBee协议栈,支持ZigBee协议的三种网络拓扑结构:星状网、树状网、网状网。主要包含的源程序如表4.1所示。
表4.1 精简版ZigBee协议栈的源程序 Tab.4.1 Source program of ZigBee protocol stack
37
江 苏 大 学 硕 士 学 位 论 文
函数名 具体函数及其功能
aps.c/aps.h应用子层程序
memalloc.c/memalloc.h内存申请释放
应用层程序
zep.c/zep.h设备对象相关操作程序 console.c/console.h输出控制相关程序 neighbor.c/neighbor.h邻近节点相关程序
网络层程序 MAC层程序 PHY物理层程序
nwk.c/nwk.h网络层相关程序 mac.c/mac.h MAC层相关程序 phy.c/phy.h物理层相关程序
halstack.h/evboard.h/ioCC2430.h 与CC2430相关的一些定义 ieee_lrwpan_defs.h
IEEE定义的一些相关头文件 lrwpan_common_types.h
lrwpan_config.h
4.2.3 无线数据的收发
如果需要把数据进行无线发送,需要建立一个良好的机制,首先要监测是否有数据要以无线射频的方式发送,如果没有,则继续保持一个Idle(闲置)状态,当有数据要发时,产生一个中断,来发送数据。
应用层定义一个发送程序,如下所示:
void aplFmtSendMSG (BYTE dstMode,
LADDR_UNION *dstADDR, BYTE dstEP, BYTE cluster, BYTE srcEP,
BYTE* pload, BYTE plen, BYTE tsn, BYTE reqack);
BYTE dstMode:数据发送的地址模式。当为1时,以16位的网络地址发送数据;当为2时,以64位的物理地址发送数据。
LADDR_UNION *dstADDR:发送数据的目的地址。可以为16位的网络地址,也可以是64位的物理地址。 BYTE dstEP:目的地终点。 BYTE cluster:串状态标示符。 BYTE srcEP:来源终点。
38
江 苏 大 学 硕 士 学 位 论 文
BYTE* pload:本帧发送的数据。 BYTE plen:发送数据的长度。 BYTE tsn:传输序列号。
BYTE reqack:是否需要应答。当为0时,需要应答。 4.2.4 定时中断子程序
CC2430含有一个MAC定时器、一个16位的定时器以及2个8位的定时器,本论文中我们选用一个8位的定时器。定时器3是一个典型的输入捕获/输出比较的8位定时器,具有以下特点:双通道操作、上升沿/下降沿/任何边沿的输入比较、置位/清除/触发输出比较、1/2/4/8/16/32/64/128的时钟分频、由捕获/比较和计数引起的中断请求、DMA触发。
所有定时/计数的实现都是基于定时器3中的一个8位计数器。时钟边沿的周期由特殊功能寄存器的位CLKCON.TICKSPD决定,而CLKCON.TICKSPD是由T3CTL.DIV的分频值决定。计数器的运作可分为free-running模式、down模式、modulo模式以及up/down模式。文中所选用的是module模式,这是一种计数值自装载模式。
定时器的开始与停止由位T3CTL.START决定,当为1时,启动定时器,当为0时,停止定时器。特殊功能寄存器TIMIF包含了定时器3所有的中断标志。只有在相应的中断标志位被置位时,才产生中断请求。如果存在悬而未决的中断,在CPU开始一个新的中断请求时,相应的中断标志需要清除。 …… 此处隐藏:1074字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




