ALGORITHM DESCRIPTION:
在面对不定数量的测量模块并且物理地址随机的情况下,如何进行快速组网并进行标定归组?
我们都知道在集合排队时,当教官下达排队指令时,有的人反应较快,能够迅速做出回应,但是也有的人反应较慢,动作稍微有些迟缓。但是最终都能形成队列。
基于上述现象原理,现提出一种快速组网并且进行标定归组的算法。
DATA FORMAT:
说明 | 信号类型(1Byte) | 根地址(1Byte) | 一级地址(1Byte) | 二级地址(1Byte) | 器件地址(4Byte) | 当前信号频道(1Byte) | 信号强度(1Byte) | 跳频信号频道(1Byte) | 功能码(1Byte) | 数据(4Byte) | 预留位(3Byte) | 校验值(1Byte) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
广播信号 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 1Byte | 1Byte | 1Byte | 0x00 | 0x00 | 0x00 | 1Byte |
响应信号 | 0x88 | 0x00 | 0x01~0xFF | 0x00~0xFF | 4Byt | 1Byte | 1Byte | 1Byte | 0x00 | 0x00 | 0x00 | 1Byte |
确认信号 | 0xFF | 0x00 | 0x01~0xFF | 0x00~0xFF | 4Byt | 1Byte | 1Byte | 1Byte | 0x00 | 0x00 | 0x00 | 1Byte |
跳频信号 | 0x0A | 0x00 | 0x01~0xFF | 0x01~0xFF | 4Byt | 1Byte | 1Byte | 1Byte | 0xA1 | 0x00 | 0x00 | 1Byte |
查询信号 | 0xA0 | 0x00 | 0x01~0xFF | 0x01~0xFF | 4Byt | 1Byte | 1Byte | 1Byte | 0xA2 | 0x00 | 0x00 | 1Byte |
数据信号 | 0xAA | 0x00 | 0x01~0xFF | 0x01~0xFF | 4Byt | 1Byte | 1Byte | 1Byte | 0xA4 | 4Byte | 0x00 | 1Byte |
PROTOCOL DESCRIPTION:
广播信号:
1. 根节点主机在固定的间隔时间内发送的自组网信号;其中广播信号中包括信号类型、根地址、当前信号频道、实时信号强度、跳频信号、功能码(用于广播信号发送计数)和校验值。(其他为0x00)接收到的第一个从机信号后,立马将它归为根地址为0x00,一级地址为0x01,二级地址为0x02,其他的不变,并保存下来;对于其他的从机信号要求确立为一级节点的,根据一级节点的主机数量而定,超过额定数量的予以驳回或不予理会。
2. 节点从机在接受到广播信号后,对信号类型进行检查;当为广播信号时,检查自身的一级地址和二级地址是否为0,不为0时,忽略剩余广播信息,并发出已配置地址信号;为0时,则自身给自己分配一个一级地址和二级地址并附加随机延时,回传响应信号给根节点主机,并得到确认信号确认,并且保各自都要有保存备份。(地址分配由低到高)
响应信号:
1. 根节点主机接收到从机返回的信号;其中响应信号中包括信号类型、根地址、一级地址、二级地址、物理地址、当前信号频道、信号强度、跳频信号频道和校验值。(其他为0x00)
2. 节点从机在接收到广播信号后,自身给自己分配一、二级地址后,经过随机延时发送的的信号。
确认信号:
1. 根节点主机在一个广播信号周期内接收到响应信号后,对标定归组信息检查无误后,对相应的物理地址的从机发出确认信号;其中确认信号中包括信号类型、根地址、一级地址、二级地址、物理地址、当前信号频道、信号强度、调频信号频道和校验值。(其他为0x00)
2. 节点从机接收到确认信号后,检查自身是否符合确认信号中的物理地址并作出相应的动作,否则忽略该确认信号。得到确认信号的节点从机,发出已经组网完成信号,并自动忽略往后的组网、响应和确认信号。
调频信号:
1. 根节点主机完成对信号强度的检测,并决定是否进行调频操作,此模式只在组网完成后才能进行操作。
查询信号:
1. 根节点主机对相应一、二级地址的从机下发数据查询指令;
2. 节点从机接收到查询信号后,回传数据信号给根节点主机,此模式只在组网完成后才能进行操作。
数据信号:
1. 根节点主机接收到数据信号后,将有效数据存入缓存区;
2. 节点从机返回的采集数据信号,此模式只在组网完成后才能进行操作。
ADDITIONAL INFORMATIONS:
问题难点: 1. 由于根节点主机发送的所有信号,其他从机都能够接收到,为了避免通讯冲突,从机发送响应信号时引入了随机延时的机制,让响应信号有了先后之分,但是仍然有可能导致个别从机的延时时间是一样的。 2. 由于根节点主机和所有的节点从机通讯的频道相同,是否会因为节点从机的数量过多会引起通讯质量下降? 3. 在当前通讯频道的信号强度弱的情况下,主机如何控制所有从机切换频道,进行跳频操作? 4. 是否在根据一、二级地址和物理地址的基础上,进行频道的分组? 5. 如何确定从机地址的唯一性?