版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ZigBee无线传感器网络设计实战6PARTSIXZigBee无线网络串口应用CONTENT目录1实训6-1协议栈串口收发基础2实训6-2协议栈串口应用扩展3实训6-3协议栈无线温度检测串口是开发板和电脑交互的一种工具,使用串口的基本步骤如下:实训简介01初始化串口,包括设置波特率、中断等。02向发送缓存区发送数据或者接收缓存区的数据。ZigBee协议栈中提供的与串口操作相关的3个函数分别为:uint8HalUARTOpen(uint8port,halUARTCfg_t*config)uint16HalUARTRead(uint8port,uint8*buf,uint16len)uint16HalUARTWrite(uint8port,uint8*buf,uint16len)实训目的1
掌握与串口操作相关的3个函数的用法。2
理解这3个函数各个参数的具体含义。实训内容PC通过串口调试工具向节点发送字符串“”,节点收到字符串后用osal_memcmp()函数判断接收到的数据是否是字符串“”。如果是,就把接收到的字符串通过串口发送到PC,通过串口调试工具显示。实训原理图如右图所示。节点PCRS232实训原理图知识链接1串口初始化ZigBee协议栈中对串口的配置是使用一个结构体来实现的,该结构体为halUARTCfg_t,该结构体将串口初始化有关的参数集合在了一起,最后使用HalUARTOpen(uint8port,halUARTCfg_t*config)函数对串口进行初始化。注意,该函数将halUARTCfg_t类型的结构体变量作为参数。2串口读写数据调用HalUARTRead(uint8port,uint8*buf,uint16len)函数,从串口读取数据并将其存放在buf中。调用HalUARTWrite(uint8port,uint8*buf,uint16len)函数将接收到的数据输出到串口。3回调函数回调函数就是一个通过函数指针(地址)调用的函数。如果把函数的指针作为参数传递给另一个函数,当通过这个指针调用它所指向的函数时,称为函数的回调。回调函数不是由该函数的实现方直接调用的,而是在特定的事件或条件发生时,由另外的一方调用的,用于对该事件或条件进行响应。回调函数机制提供了系统对异步事件的处理能力。首先将异步事件发生时需要执行的代码编写成一个函数,并将该函数注册成回调函数,这样当该异步事件发生时,系统会自动调用事先注册好的回调函数。回调函数实现的机制是:定义一个回调函数。1提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者。2当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。3实施步骤实训源码及部分代码解析参照书中描述。成果检验将程序下载到CC2530开发板上,将串口调试工具设置为如右图所示。串口调试工具设置自我考核修改代码实现接收数据倒序发送到串口调试工具的接收栏。在输入栏输入字符串“”,然后发送,发现接收栏没有显示任何字符。修改配置文件如右图所示。修改配置文件CONTENT目录1实训6-1协议栈串口收发基础2实训6-2协议栈串口应用扩展3实训6-3协议栈无线温度检测本实训是对协议栈串口传输实训的扩展。结合“实训5-1无线数据发送和接收”,进一步熟悉ZigBee协议栈中串口的使用方法。实训简介实训目的进一步掌握ZigBee协议栈串口的使用。实训内容协调器建立ZigBee无线网络,终端节点自动加入该网络中,然后终端节点周期性地向协调器发送字符串“XXGC”,当协调器接收到数据时,对接收的数据进行判断,如果接收的字符串就是发送的字符串,则将其输出到PC端,通过串口调试工具显示出来。实训原理图如右图所示。终端节点协调器XXGCPCRS232实训原理图图1协调器流程图协议栈串口应用扩展实训协调器流程图如图1所示。协议栈串口应用扩展实训终端节点流程图如图2所示。初始化加入网络周期性发送数据开始N初始化建立网络收到数据?串口发送开始Y图2终端节点流程图知识链接1串口初始化串口初始化分为两部分:01(1)在路径main()/HalDriverInit()/HalUARTInit()/中,有两种初始化选择,使用DMA模式时的初始化函数HalUARTInitDMA()和使用中断模式的初始化函数HalUARTInitISR()。代码部分参照书中描述。02(2)在路径main()/osal_init_system()/osalInitTasks()/MT_TaskInit()/找到串口初始化函数,代码部分参照书中描述。2串口注册一个任务要使用串口,就要注册串口。使用“MT_UartRegisterTaskID(task_id);”对使用串口的任务ID进行注册登记,这样这个任务才会收到串口收到数据时发过来的消息。3串口接收数据在串口初始化时,定义了串口接收数据的回调函数MT_UartProcessZToolData,里面又调用HalUARTRead()去读取串口数据。所以,当系统接收到串口数据时,就会调用回调函数去做处理。当数据接收完后,就会往使用串口的任务发送串口消息,指示串口有收到数据。4串口发送数据使用HalUARTWrite()函数进行串口数据的发送。HalUARTWrite(uint8port,uint8*buf,uint16len)uint8port:串口号。uint8*buf:要发送的数据缓冲BUF。uint16len:要发送的数据长度。5串口工作流程串口工作流程图如右图所示。开始初始化完成并进入系统osal_start_system()数据接收后,调用串口的回调函数:MT_UartProcessZToolData()串口轮询函数:Hal_ProcessPoll()
HalUARTPollDMA()当数据接收完成后,串口回调函数将注册串口的任务发送消息事件:CMD_SERIAL_MSGSampleApp_ProcessEvent()接收到消息提取消息为CMD_SERIAL_MSG
事件调用函数SampleApp_SerialCMD()将收到的数据再通过串口发回去01协调器编程。Coordinator.c文件源代码部分参照书中描述。实施步骤本实训是在实训6-1的基础上完成的,Coordinator.h文件内容保持不变,Coordinator.c只需要简单修改即可。02终端节点编程。Enddevice.c文件源代码部分参照书中描述。成果检验将程序下载到CC2530开发板,打开串口调试工具,设置波特率为38400,打开协调器、终端节点电源,待协调器建网完成后,效果如右图所示。实训结果自我考核修改程序,实现终端节点发送数据后D8灯闪烁,协调器接收到数据后D9灯闪烁。CONTENT目录1实训6-1协议栈串口收发基础2实训6-2协议栈串口应用扩展3实训6-3协议栈无线温度检测下面通过协议栈无线温度检测实训向大家讲解传感器数据采集、传输和显示的基本方法。对于温度传感器,主要原理就是将温度转化成为模拟量,再通过ADC将模拟信号转换成数字信号。实训简介实训目的实训内容了解Z-Stack协议栈中ADC采集的使用及相关寄存器的配置。协议栈建立ZigBee无线网络,终端节点自动加入该网络中,然后终端节点周期性地采集温度数据并将其发送给协调器,协调器收到终端节点发送过来的数据后,通过串口将收到的数据输出到用户PC机。无线温度检测实训原理图如下图所示。无线温度检测实训原理图无线温度检测实训协调器流程图如下方左图所示。无线温度检测实训终端节点流程图如下方右图所示。N初始化建立网络收到数据?串口发送开始Y初始化加入网络周期性发送温度数据开始协调器流程图终端节点流程图知识链接
数据包的结构体定义本实训的目的是演示传感器数据的采集、传输。为了讲解问题方便,本实训中使用的数据包格式如下表所示。数据包格式数据头数据十位数据个位数据尾长度(字节)1111默认值&00C数据包格式使用数据包时,一般会使用结构体来将整个数据包所需要的数据包含起来。结构体是一系列相同类型或不同类型的数据构成的数据的集合,其主要作用是封装。联合体是几个不同的变量存放在同一块区域中,几个变量相互覆盖,联合体又叫共同体。本实训中使用的结构体定义如下。typedefunionh{uint8TEMP[4];structRFRXBUF{unsignedcharHead;unsignedcharvalue[2];unsignedcharTail;}BUF;}TEMP01协调器编程。Coordinator.c文件源代码部分参照书中描述。实施步骤02终端节点编程终端节点编程时,需要解决两个问题:一是温度检测函数放在什么地方;二是如何发送温度数据。定义一个温度测量模块,该模块直接放在协议栈的App目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职(畜牧兽医)饲料营养阶段测试试题及答案
- 2025年高职蒙医学(蒙药应用)试题及答案
- 2025年高职纸制品设计(设计实操)试题及答案
- 2025年高职第二学年(环境艺术设计)AI辅助设计阶段测试试题及答案
- 2025年大学第四学年(生物学)分子生物学综合测试试题及答案
- 2025年高职第一学年(市场营销)营销策划阶段测试试题及答案
- 2025年高职水产养殖管理应用管理(管理技术)试题及答案
- 2025年大学大二(广播电视编导)电视节目编导综合测试卷
- 2025年大学(房地产开发与管理)房地产估价案例分析阶段测试题及解析
- 2026年阿坝职业学院单招综合素质笔试参考题库带答案解析
- 肿瘤化疗导致的中性粒细胞减少诊治中国专家共识解读
- 2025年查对制度考核考试题库(答案+解析)
- 云南省2025年普通高中学业水平合格性考试历史试题
- 四川省2025年高职单招职业技能综合测试(中职类)汽车类试卷(含答案解析)
- 消化系统肿瘤多学科协作(MDT)诊疗方案
- 安泰科技招聘笔试题库2025
- 二级生物安全培训课件
- 2025广东省横琴粤澳开发投资有限公司第二批社会招聘21人笔试历年典型考点题库附带答案详解试卷2套
- 塔吊拆除安全操作培训
- 2025年及未来5年中国抓娃娃机行业市场全景监测及投资前景展望报告
- 电机与拖动基础期末试卷及答案
评论
0/150
提交评论