基于cc2530的无线传感网络系统研究毕业论文(编辑修改稿)内容摘要:
heck_timer(). do { if (tasksEvents[idx]) // Task is highest priority that is ready. { break。 } } while (++idx tasksCnt)。 if (idx tasksCnt) { uint16 events。 halIntState_t intState。 HAL_ENTER_CRITICAL_SECTION(intState)。 events = tasksEvents[idx]。 tasksEvents[idx] = 0。 // Clear the Events for this task. HAL_EXIT_CRITICAL_SECTION(intState)。 events = (tasksArr[idx])( idx, events )。 HAL_ENTER_CRITICAL_SECTION(intState)。 tasksEvents[idx] |= events。 // Add back unprocessed events to the current task. HAL_EXIT_CRITICAL_SECTION(intState)。 } 操作系统专门为所有事件创建了一个数组 tasksEvents[],每一个 项目 对应存放着每一个任务的所有事件。 在这个函数中,先通过一个循环来遍历数组 tasksEvents[],找到第一个具有事件的任务(即具有待处理事件的优先级最高的任务,因为序 列号越低,优先级越高),然后跳出循环,此时就得到了需要处理事件任务的序号 idx,然后执行 events=tasksEvents[idx]语句,把具有高优先级的高优先级的任务的事件取出,接着调用函数 (tasksArr[idx])(idx,events) 来执行具体的处理函数。 tasksArr[]是一个函数指针数组,根据不同的时间任务序号( idx)来执行不同的函数。 图 系统初始化流程图 osal_start_system():执行操作系统 开始 osal_int_disable(INTS_ALL):关闭所有终端 HAL_BOARD_INIT():初始化系统时钟 zmain_ram_init:初始化堆栈 zmain_add_check():检测芯片电压是否正常 InitBoard(OB_COLD):初始化 LED,配置系统定时器 HalDriverInit:初始化芯片各个硬件模块 zmain_ext_addr():形成节点 MAC 地址 osal_ext_init():初始化 FLASH 存储 zgInit():初始化一些非易失变量 ZMacInit():初始化 MAC 层 osal_init_system():初始化操作系统 afInit():初始化应用框架层 osal_int_enable(INTS_ALL):开全部中断 InitBoard(OB_READY):初始化按键 zmain_dev_info():在液晶上显示设备信息 SampleApp 中函数数组 tasksArr[]代码如下 : const pTaskEventHandlerFn tasksArr[]= { macEventLoop, // MAC 层任务处理函数 nwk_event_loop, //网络层任务处理函数 Hal_ProcessEvent, //板硬件抽象层任务处理函数 if defined(MT_TASK) MT_ProcessEvent, //调用任务处理函数 endif APS_event_loop, //应用层任务处理函数,用户不需要修改 ZDApp_event_loop, //ZigBee 设备应用层任务处理函数,用户可以根据需要更改 SampleApp_ProcessEvent //SerialApp 的用户任务处理函数 } 用户一般只需要修改协议栈的三个文件就可以完成一个项目,一个存放具体任务事件处理函数( SampleApp_ProcessEvent)的主文件,一个就是主文件的头文件,最后一个是 操作系统的接口文件( Osal开头),是用来存放任务处理函数数组 tasksArr[]的文件。 ZStack 开发的一些基本概念 1)设备类型:在 ZigBee 网络中有三种逻辑设备类型:协调器( coordinator) ,路由器( router),终端设备( enddevece)。 2)信道: 868MHz 的射频频段分的一个独立信道, 915MHz 的射频频段分的 10 个独立信道, 的射频频段被分为 16 个独立的信道。 设备通过扫描信道选择噪声最小的信道作为所见网络的信道。 3) PANID: PANID 是指网络编号,用于划分不同的 ZigBee 网络。 设备的 PANID 值与 ZDAPP_CONFIG_PAN_ID 值的设置有关。 当网络ZDAPP_CONFIG_PAN_ID 设置为 0xFFFF,则协调器将在 0x0000~0xfffff之间随机产生一个的 PANID,路由器和终端节点将会在自己的默认信道上随机选择一个网络加入,网络协调器的 PANID即为自己的 PANID。 如果协调器的 ZDAPP_CONFIG_PAN_ID 设置不是 0xFFFF 值,则协调器可以根据自己的网络长地址( IEEE 地址)或 ZDAPP_CONFIG_PAN_ID值随机产生 PANID;而路由器和终端节点的 ZDAPP_CONFIG_PAN_ID 值设置不是 0xFFFF 值,它们会以 ZDAPP_CONFIG_PAN_ID 值作为 PANID。 如果在默认的信道上已经有该 PANID 值相同的网络存在,则协调器会继续搜寻其他的 PANID,直到找到网络不冲突为止。 4)描述符: ZigBee 网络每一个设备都有一些描述符,来描述设备类型和应用方式。 描述符包含节点、简单和默认用户描述符等。 用户通过改变这些描述符可以定义自己的所要知道设备。 描述符的定义和创建配置项在文件 和 中。 描述符信息可以被网络中的其他设备获取。 5)绑定:绑定时一种两个或者多个应用层上建立的逻辑链路。 一个节点上可以建立多个绑定服务,绑定也可以由多个目标设备。 在最新的 ZStack 版本里,被称为资源绑定,网络中的每一个设备都必 须执行绑定机制。 绑定允许应用程序发送一个数据包并且、不需要知道目标地址。 APS 层从绑定表中确定目标地址,然后将数据向目标应用或者目标组发送。 绑定有三种方式:终端设备绑定、辅助绑定和解除绑定。 通常前两种使用较多。 终端设备绑定:通过协调器来实现,绑定的双方要同时向协调器发送绑定请求,通过协调器调用 ZDO_RegisterForZDOMsg()函数在应用层注册绑定请求,需绑定的设备调用绑定请求函数发送给协调器,协调器调用终端邦定处理函数处理绑定请求,然后协调器反馈信息给绑定设备。 绑定可以在终端与终端之间,也可以在路由器与路由器之间进行绑定服务。 辅助绑定:每一个设备和应用都可以通过信道向另一个设备发送ZDO 消息,帮助其它节点建立绑定。 首先,协调器在 ZDO 层注册辅助绑定消息事件,待绑定节点在 ZDO 层注册绑定请求,协调器调 用绑定请求处理函数,等待绑定节点接收到请求后,处理绑定请求,建立绑定表,并调用发送函数发送响应消息给协调器,最后协调器收到反馈信息调用发送状态函数处理绑定反馈信息。 解除绑定:只需要发送一个请求给协调器移除绑定,协调器通过解除绑定信息来响应移除请求。 6)配置文件:配置文件( Profile)是指应用程序框架。 它是由ZigBee 开发商提供,用户通过它进行基础 ZigBee 技术开发的。 配置文件定义不同设备对消息帧的处理,不同的设备之间可以通过发送命 令、数据请求来实现通信。 7)端点:端点( Endpoint)是一种网络通信中的数据通道,每一个设备都被看做一个节点,每个节点都有物理地址和网络地址,长地址和短地址可供其他设备发送数据的目的地址,每个设备都有 241个端点,而 0 端点保。 如果选择 “ 绑定 ” 方式来的通信,那么需要在网络层注册多个端点进行数据发送、接收和绑定表的建立。 且不需要绑定的两个节点的地址信息。 8 )簇 ZigBee 技术有两种通信方式:间接通信和直接通信。 间接通信:指各个节点通过端点绑定建立连接,这种方式不需要知道目的地址信息,这其中包括 IEEE 地址或网络短地址, ZStack底层会自动从栈的绑定表中查找目地设备的具体网络地址并将其发送出去。 直接通信:不需要绑定关系,它使用网络短地址作为参数调用适当地 API 来实现通信。 直接通信的关键就是网络地址的获得。 它可以通过目地节点的 IEEE 地址来查询短地址的方法。 通常, ZigBee 节点的 IEEE 地址是固定的,被写在节点的 EEPROM 中,这个作为 ZigBee节点的参数一般会被标示在节点上。 所以,有了 IEEE 地址以后,可以通过部分网络 API 的调用,得到相应的网络短地址。 而簇就是在建立 Profile 时所需要的一个概念,它是一簇 网络变量的集合,在同一个 Profile 中, ClusterID 是唯一的。 在间接寻址方式中,建立绑定表时用户需要弄清楚 Cluster 的含义和属性。 对于可以建立绑定关系的两个节点,它们的 Cluster 的属性必须一个是 “ 输入 ” ,一个是 “ 输出 ” ,而且 ClusteID 值相等,只有这样,它们才能建立绑定,在 直接寻址方式中,常用 ClusterID 作为参数,数据或命令发送到与之相应地址的 Cluster 上。 通信方式 Zigbee 的通讯方式主要有三种点播、组播、广播。 点播,思义点对点通。基于cc2530的无线传感网络系统研究毕业论文(编辑修改稿)
相关推荐
术 PHP 是简单易学的、免费使用的、跨平台的服务器端嵌入式脚本语言,其运行平台有多种,如 Unix, GUN/Linux 和 Windows 等;其显著的特点有两个:可在官方网站上免费自行下载,且所有源码是开放的。 它的大部分语法既采用了 C、 Java 和 Perl 的语言格式,又耦合自身的特性,形成了特有的风格,以帮助 Web 开发者快速、高效地开发出动态网页。 JSP技术 JSP 是由
D S P 等 )驱 动 保 护电 路驱 动 电 路( 逆 变 器 )无 刷 直流 电 机位 置 检 测 电 路外 围设 备 图 13 典型的无刷直流电机控制系统 DSP 等微处理器强大的计算能力使许多智能控制算法在无刷直流电机控制中得以实 现,近年来无刷直流电机的全 数 字化智能控制成为业界相关人员的研究热点 [8]。 相信更高效完善的控制方案将不断呈现。 无刷直流电机控制技术的发展趋势
)。 //2 keyinput[keyi]=2。 if(keyi9) keyi++。 break。 case 0x03: disp_word(10+keyi*7,3,39。 339。 )。 //3 keyinput[keyi]=3。 if(keyi9) keyi++。 break。 case 0x04: disp_word(10+keyi*7,3,39。 439。 )。 //4
要的作用。 控制温度对人类日常生活、工业生产、气象预报、物资仓储等都有重要影响,特别是在冶金、化工、建材、食品、机械、石油等工业中, 温度更是重中之重。 无论是在生活中还是在工业生产过程中,在某些环节中如果温度发生变化也许会带来不同程度的影响, 水温的高低可能直接影响到设备的安全和使用寿命 ,发生严重的安全事故或者给产品的质量和产量带来一系列问题。 锅炉在日常生活生产中的影响非常大。 在锅炉里面
技术的不断发展完善,网络进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,电子商务就是在这样一个背景下产生发展起来的。 伴随着电子商务技术的不断成熟,电子商务的功能也越来越强大,注册用户可以在网上搜索购买到自己想要的各种商品,初步让人们体会到了足不出户 , 便可随意购物的快感。 人们日常生活中越来越多地使用这项新的技术来为自己的工作和学习服务。 由于 WEB 页面能把文本、图像
过 CAN总线传输到主控制器。 主控制器接收智能节点的温度值并显示,并可通过 CAN 总线向智能节点发送温度。 温度检测的总体方案设计 根据应用场合的需要,本温度测控系统主要完成的功能有:对热电偶温度传感器Pt100 的信号进行检测;利用数字温度传感器 DS18B20 对温度的检测;现场 LED 显示数字温度信号以及键盘控制功能;主站通过 CAN 总线与下位机通信 ,实现对整个系统的监控。