当前位置:文档之家› 无线网络通信协议

无线网络通信协议

无线监控网络通信协议

本网络通信数据量较小,故将采取比较简单的通信协议,通信模块将采用比较成熟的nRF24L01。

由于模块本身具有硬件地址和CRC校验,所以简化了我们的通信协议的编写。我们设定本网络最多容纳100个节点。每个节点具有一个唯一通道的硬件地址和一个公共通道的硬件地址(前者称为通道0,后者称为通道1)。通道0用于一般通信,即正常工作通信,而通道1用于特殊通信,即在与单个节点通信,索求通道一地址时用,用下图所示:

通信数据

由于本网络所容纳的节点为

100,

所以可以设定终端的通信地址为

0x00,节点的通道0地址为

0x01~0x64,节点的通道1地址为0xff

通信数据采用帧格式:

地址段为整条通信线路的路由。比如图一终端要发数据到节点3。节点1,

图一:通道0工作方式

图二:通道1工作方式

地址段命令段数据段

节点2,节点3的地址分别为0x01,0x02,0x03;则地址段书写如下0x03.0x02.0x01.0x00。地址段和命令段则用3个0xf0隔开。

命令段则为一个字节的数据。可选数据为0x01~0x2f。其与数据段仍用3个0xf0隔开。

数据段则为一段数据,具体含义则根据具体命令来定。

上例通信方式从节点到终端同样适用。

终端如何搜索节点?

终端将挨个搜索,比如搜索节点1时,发送0x01 0x00 0xf0 0xf0 0xf0 0x01 0xf0 0xf0 0xf0;如果节点1收到信号,立即保存上述地址段的逆序,作为自己下次联系终端的路径表,并发送0x00 0x01 0xf0 0xf0 0xf0 0x01 0xf0 0xf0 0xf0作为回应。

终端以此类推,依次搜索节点2、节点3……

当然,终端有可能直接搜索不到节点2、节点3……终端不会一直等待,等待一定时间后,终端会自动放弃搜索下个节点,一次顺序搜索完毕后,终端将从头开始,进行转发型搜索,开始节点1搜索到了,其它都为搜索到,则这下,终端就发送0x02 0x01 0x00 0xf0 0xf0 0xf0 0x01 0xf0 0xf0 0xf0;节点1收到数据后,判断不是发给自己的(地址段首地址不是自己),则立即进行转发,如节点2到了,立即保存上述地址段的逆序,作为自己下次联系终端的路径表,并发送0x00 0x01 0x02 0xf0 0xf0 0xf0 0x01 0xf0 0xf0 0xf0作为回应。

终端以此类推,依次搜索节点3……

注:终端在搜索节点时,会自动根据链路的长短,来调节等待时间。终端在第二次搜索节点时,会根据沿用上次的路由信息,若失效,则放弃,进行下面的搜索,一次结束后,再重新搜索那些放弃的节点。

在正真使用时,若节点不多的情况,可根据节点数在终端上进行设置,以提高,网络的工作效率。

通道1的使用方式:

网络中的每一个节点的通道0的地址必须是唯一的。故在布置网络之前,必须对每个节点的通道0地址进行设定,此时单个节点和终端的通信于通道1,因为通道1地址都是相同0xff,而且这个地址不能被用户重设定。

相关主题