备的选择
双击一个工程的work space可以打开一个工程,打开工程后,从work space 下面的下拉列表中选择设备类型,可以选择设备类型为协调器,路由器或终端节点。当选择设备类型为协调器或路由节点时,编译连接命令文件应选择 TexasInstruments\ZStack-1.4.3-1.2.1 \Projects\zstack\Tools\CC2430DB 目录下的f8w2430.xcl文件,若选择设备类型为终端节点,编译连接命 令文件应选择f8w2430pm.xcl文件。
2.3.4 定位编译选项
对于一个特定的工程,编译选项存在于两个地方,一些很少需要改动的编译选项存在于连接控制文件中,每一种设备类型对应一种连接控制文件,当选择了相应的设备类型后,会自动选择相应的配置文件,如选择了设备类型为协调器,则工程会自动选择f8wCoord.cfg配置文件,选择了设备类型为路由器后f8wRouter.cfg配置文件被自动选择,选择了设备类型为终端节点后f8wEndev.cfg配置文件被自动选择。通常情况下,这些文件很少需要改动。用户定义的选项和一些用来使能/禁用某些功能的选项存在于IAR 的工程文件中。
2.3.5 IAR 工程文件中的编译选项
在IAR 工程中选择Project/Options/C/C++ Complier中的Processor 标签,如下图2.3所示:
图2.3 IAR 编译选项
若想在这个配置中增加一个编译选项,只需将相应的编译选项添加到列表框中,若禁用一个编译选项,只需在相应编译选项的前面增加一个x。很多编译选项都作为开关量使用,来选择源程序中的特定程序段,也可定义数字量,也可添加DEFAULT_CHANLIST,即相应数值来覆盖默认设置(DEFAULT_CHANLIST在 Tools目录下的f8wConfig.cfg 文件中配置,默认选择信道11。ZStack协议栈支持大量的编译选项。
2.3.6 ZStack 中的寻址
ZStack中定义了两种地址,64 位的扩展地址(IEEE 地址)和16 位网络短地址。扩展地址是全球唯一的,就像网卡地址,可由厂家设置或者用户写进芯片。网络短地址是加入Zigbee网时,由协调器分配,在特定的网络中是唯一的,但是不一定每次都是一样,只是和其他同网设备相区别。ZStack符合ZigBee 的分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配的地址是唯一的。这一点是必须的,因为这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性可保证设备只能与他的父辈设备通讯,并接受一个网络地址,不需要整个网络范围内通讯的地址分配。这有助于由三个参数MAX_DEPTH、MAX_ROUTERS和MAX_CHILDREN决定网络的地址分配,这也是profile的一部分。MAX_DEPTH代表网络最大深度,协调器为0 级深度,它决定了物理上网络的―长度;MAX_CHILDREN决定了一个协调器或路由器能拥有几个子节点;MAX_ROUTERS决定了一个协调器或路由器能拥有几个路由功能的节点,它是MAX_CHILDREN的子集。虽然不同的profile 有规定的参数值,但用户针对自己的应用可以修改这些参数,但要保证这些参数新的赋值要合法。即,整个地址空间不能超过216,这就限制了参数能够设置的最大值。当选择了合法的数据后,开发人员还要保证不再使用标准的栈配置,取而代之的是网络自定义栈配置。
2.3.7 ZStack 中的路由
路由对应用层是透明的,应用层只需要知道地址而不在乎路由的过程。Z-Stack 的路由实现了Zigbee网络的自愈机制,一条路由损坏了,可以自动寻找新的路由。
无线自组织网络(Ad-hoc)中有很多著名的路由技术,其中AODV是很常用的一种,AODV是按需路由协议。Z-Stack简化了AODV,使之适应于无线传感器网络的特点,能在有移动节点、链路失效和丢包的环境下工作。当路由器从应用层或其他设备收到单播的包时,网络层根据下列步骤转发:如果目的地是自己的邻居,就直接传送过去。否则,该路由器检查路由表寻找目的地,如果找到了就发给下一跳,没找到就开始启动路由发现过程,确定了路由之后才发过去。路由发现基本按照AODV的算法进行,请求地址的源设备向邻居广播路由请求包(RREQ),收到RREQ的节点更新链路花费域,继续广播路由请求。这样,直到目的节点收到RREQ,此时的链路花费域可能有几个值,对应不同的路由,选择一条最好的作为路由路径,然后目的设备发送路由应答包(RREP ),反向到源设备,路径上其他设备由此更新自己的路由表。这样一条新的路由就建成了。
2.3.8 ZStack 中的串口通信设置
串口通信的目的是协调器把整个网络的信息发给上位机进行可视化和数据存储等处理。同时在开发阶段非常需要有串口功能的支持,以了解调试信息。Z-Stack已经把串口部分的配置简单化了,设置的位置是mt_uart.c的MT_UartInit ()函数。配置方法是给uartConfig这一结构体赋值,它包括了波特率、缓冲区大小,回调函数等参数。需要注意的有几个参数:
波 特 率:赋值为宏MT_UART_DEFAULT_BAUDRATE,进一步跟踪查询可知就是38400 Baud;这决定了和上位机通信的速率。
流 控:默认是打开的,本项目没有使用,改为关闭。
回调函数:在主动控制模块中会用到。
2.3.9配置信道
每一个设备都必须有一个DEFAULT_CHANLIST来控制信道集合。对于一个ZigBee 协调起来说,这个
上一篇:
基于Android系统的网络课程系统的设计
下一篇:
记录文件6:基于IOS的易车新闻客户端