Microchip MiWi无线网络协议栈工作原理
MiWI无线网络协议栈的基本工作原理是通过一组简单的函数调用执行的。工作原理本身简述如下.
搜索网络
搜索要加入的可用网络,是每个设备要执行的第一个网络函数.DiscoverNetworks()函数会使设备搜索某网络的可用通道数组中指定的所有通道,并用该信息填充网络表。函数SearchingForNetworks()会在设备搜索网络时返回TRUE
加入网络
完成对网络的搜索后.设备必须遍历生成的网络表.以确定是否有可接受的网络去加入。如果发现了合适的网络.设备可尝试加入该网络函数JoinNetwork()接过对设备要加入的网络的句柄.Attempt ingToJoinNetworkU的数只要协议找仍在尝试加入网络.就会返回TRUE。一旦AttemptingToJoinNetwork一,叻效返hul目让SE.NemberOfNetworkU两数便会指出设备是否成功地加入了网络。
组成网络
能作为pAN协调器的设备可决定没有合适的网络可用,并组成它自己的网络.这是用FormNetwork ()的数实现的。FormNetwork()用指定的PANID 组成网络。如果输入PANID是FFFFh, FormNetwork()会随机选择PANID.
发送和接收消息
有几种不间的方法可在MiWi协议网络中发送数据包.对于在网络表中有对应项的节点,发送数据包的最简单方法就是调用 SendReportByHandle() 函数。如果知道设备的短地址.则可用SendReport即ShortAddress一)函数将数据包发送到该设备。如果知道设备的长地址,也可以用SendReportByLongAddress()函数将数据包发送到该设备.该两数只会将数据包发送到它知道可以直接与之通信的设备.如果设备不在网络表中,则SendReportByLongAddress()函数就失效了.需要发送DiscoverNodeByEUI(),以便查找该设备的位查。
用RFD请求数据
RFD终端设备和网络中的其他设备稍有不同.即它们能在空闲时关闭其收发器.这就要求其父节点会缓冲RFD终端设备的消息。直到它通过IEEE 802.15.4的数据请求协议请求数据。要处理协议栈的数据请求进程,需要两个两数:CheckForData ()和CheckForoataComplete() . CheckForData()会启动数据请求进程.CheckForDataComplete ()指示进程何时完成(即使协调路无该设备的数据时).
用节点的EUI发现网络上的节点
经常有这样的情况:某设备知道它要与之对话的设备的长地址(EUI ),但不知道该设备位于网络何处。M1Ni协议提供了“协议栈消息和服务,部分中所述的查找这些设备的功能.DiscoverNadeByEUI()将用其EUI协助在网络上查找节点。该晒数认为Ii标设备的长地址已装入tempLongAddress变量中。
创建套接字
在许多应用中。需要彼此对话的设备可能不知道它们要对话的设备,而希望在运行时动态形成链接。打开套接字需要儿个函数.要用到的第一个函数是OpenSocket (),它实际尝试打开套接字.发出打开套接字的请求后,需要枪查该请求的结果。其他必需的辅助函数用来确定套接宇请求是否完成。是否成功,以及如裂成功扰结果又是什么(OpenSocketCrnplete ().qpenSocketSucoessful()和Ope SocketHandle()。
阅读此文的人还喜欢: