一种节点标识设置方法和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种节点标识设置方法和装置。
背景技术
多机通信系统由一个主设备和多个节点设备组成,主设备是多机通信系统的管理者,节点设备是多机通信系统的被管理者,主设备和节点设备挂接在同一总线,通过总线进行通信。主设备可以向节点设备发送命令,节点设备在接收到主设备发送的命令后,可以执行该命令,并可以向主设备发送执行结果。
为了使主设备向节点设备发送命令,则主设备需要能够区分不同的节点设备,因此,不同的节点设备需要具有不同的节点标识,且主设备能够使用节点标识来区分节点设备。也就是说,需要为每个节点设备分配唯一的节点标识。
为了对节点设备分配唯一的节点标识,可以使用拨码开关(也可称为广永开关,DIP(ouble In-line Package,双列直插式)开关,拨动开关,超频开关等),即在每个节点设备设置拨码开关,并通过拨码开关来设置节点设备的节点标识。
但是,上述方式需要用户手工操作拨码开关,从而增加了用户工作量。而且,需要在节点设备增加额外的硬件电路(即拨码开关),导致硬件成本增加。
发明内容
本申请提供一种节点标识设置方法,主设备和每个节点设备均连接到第一串行总线,所述主设备的输出端通过所述第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过所述第一串行总线连接到后一个节点设备的输入端;所述方法应用于节点设备,所述方法包括:
通过所述第一串行总线接收节点标识数据;
从所述节点标识数据中获得主设备为本节点设备分配的节点标识;
将获得的节点标识设置为本节点设备的节点标识。
本申请提供一种节点标识设置方法,主设备和每个节点设备均连接到第一串行总线,所述主设备的输出端通过所述第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过所述第一串行总线连接到后一个节点设备的输入端;所述方法应用于所述主设备,所述方法包括:
为每个节点设备分配节点标识;
通过所述第一串行总线将为每个节点设备分配的节点标识发送给节点设备,以使所述节点设备获得所述主设备为本节点设备分配的节点标识。
本申请提供一种节点标识设置装置,主设备和每个节点设备均连接到第一串行总线,所述主设备的输出端通过所述第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过所述第一串行总线连接到后一个节点设备的输入端;所述装置应用于节点设备,所述装置包括:
接收模块,用于通过所述第一串行总线接收节点标识数据;
获得模块,用于从所述节点标识数据中获得所述主设备为本节点设备分配的节点标识;
设置模块,用于将获得的节点标识设置为本节点设备的节点标识。
本申请提供一种节点标识设置装置,主设备和每个节点设备均连接到第一串行总线,所述主设备的输出端通过所述第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过所述第一串行总线连接到后一个节点设备的输入端;所述装置应用于所述主设备,所述装置包括:
分配模块,用于为每个节点设备分配节点标识;
发送模块,用于通过第一串行总线将为每个节点设备分配的节点标识发送给节点设备,以使节点设备获得所述主设备为本节点设备分配的节点标识。
基于上述技术方案,本申请实施例中,主设备可以将节点标识下发给各节点设备,而不需要用户手工操作拨码开关,减轻了用户工作量。而且,不需要在节点设备增加额外的硬件电路,节约硬件成本,节省PCB的面积。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1A-图1C是本申请一种实施方式中的应用场景示意图;
图2A是本申请一种实施方式中的节点标识设置方法的流程图;
图2B是本申请另一种实施方式中的节点标识设置方法的流程图;
图2C是本申请一种实施方式中的上拉电阻的示意图;
图2D是本申请另一种实施方式中的节点标识设置方法的流程图;
图3A-图3E是本申请一种实施方式中的移位寄存器的示意图;
图4是本申请一种实施方式中的节点标识设置装置的结构图;
图5是本申请一种实施方式中的节点设备的硬件结构图;
图6是本申请另一种实施方式中的节点标识设置装置的结构图;
图7是本申请一种实施方式中的主设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种节点标识设置方法,该方法可以应用于包括主设备和多个节点设备的系统,如多机通信系统等,主设备和多个节点设备可以挂接在同一总线,并通过总线进行通信。例如,在PET(Positron Emission Computed Tomography,正电子发射型计算机断层显像)系统中,主设备可以是PC(Personal Computer,个人计算机),节点设备可以是DM(Data Management,数据管理)节点、MDB(模块数字板,Module Digital Board)节点等,对此主设备和节点设备的类型不做限制,只要主设备和各个节点设备均挂接在同一总线即可。
参见图1A所示,为多机通信系统的组网示意图,图1A中以4个节点设备为例进行说明,在实际应用中,节点设备的数量可以更多,对此节点设备的数量不做限制。在图1A中,可以通过第三串行总线121将主设备101和各节点设备连接起来,且主设备101通过第三串行总线121与各节点设备通信。如主设备101、节点设备111、节点设备112、节点设备113和节点设备114均可以连接到第三串行总线121,主设备101可以通过第三串行总线121向各节点设备发送命令,各节点设备在通过第三串行总线121接收到主设备101发送的命令后,可以执行接收到的命令,并通过第三串行总线121向主设备101发送执行结果。
其中,为了区别方便,可以将串行总线121称为第三串行总线121,其本质是一个串行总线,是采用串行方式,将数据的每位依次逐位发送或接收的总线。
在一个例子中,上述第三串行总线121可以包括但不限于如下类型:CAN(Controller Area Network,控制器局域网络)总线、485总线、SPI(Serial PeripheralInterface,串行外设接口)总线、RS232总线等,对此总线类型不做限制。
为了对各节点设备分配唯一的节点标识,以使主设备能够通过第三串行总线121与各节点设备通信,则在第三串行总线121的基础上部署第一串行总线,主设备和每个节点设备均连接到第一串行总线,且第一串行总线采用菊花链结构。其中,这个菊花链结构的第一串行总线是指:主设备的输出端通过第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过第一串行总线连接到后一个节点设备的输入端,例如,第一个节点设备的输出端通过第一串行总线连接到第二个节点设备的输入端,第二个节点设备的输出端通过第一串行总线连接到第三个节点设备的输入端,以此类推。
其中,为了对各节点设备分配唯一的节点标识,本申请实施例中,可以采用菊花链结构的串行总线来分配节点标识。由于上述第三串行总线121并不是菊花链结构的串行总线,无法使用第三串行总线121来分配节点标识,因此,可以在第三串行总线121的基础上,增加一个菊花链结构的第一串行总线,这个菊花链结构的第一串行总线只用于对各节点设备分配唯一的节点标识。
仍然以4个节点设备为例,参见图1B所示,在图1A的基础上,增加了第一串行总线122,第一串行总线122可以包括但不限于如下类型:CAN总线、485总线、SPI总线、RS232总线等,对此第一串行总线122的类型不做限制。
如图1B所示,为菊花链结构的第一串行总线122的示意图,菊花链结构的第一串行总线122指:主设备101、节点设备111、节点设备112、节点设备113和节点设备114均可以连接到第一串行总线122,而且,主设备101的输出端可以通过第一串行总线122连接到节点设备111的输入端,且节点设备111的输出端可以通过第一串行总线122连接到节点设备112的输入端,且节点设备112的输出端可以通过第一串行总线122连接到节点设备113的输入端,且节点设备113的输出端可以通过第一串行总线122连接到节点设备114的输入端。
为了对各节点设备分配唯一的节点标识,以使主设备能够通过第三串行总线121与各节点设备通信,则还可以部署能够传输时钟信号的串行总线,这个能够传输时钟信号的串行总线可以是上述第三串行总线121,也可以部署一个新的第二串行总线,而且,主设备和每个节点设备均可以连接到第二串行总线。
其中,由于第三串行总线121用于在主设备和各节点设备之间传输命令,为了避免对第三串行总线121本身的功能造成影响,导致第三串行总线121无法正常传输命令,则可以部署一个只用于传输时钟信号的第二串行总线,这个第二串行总线不会对现有业务造成影响。仍然以4个节点设备为例,参见图1C所示,在图1B的基础上,增加了第二串行总线123,假设主设备在第二串行总线123上发送一个时钟信号,由于各节点设备均连接第二串行总线123,因此,各节点设备均可以接收到这个时钟信号。其中,第二串行总线123可以包括但不限于如下类型:CAN总线、485总线、SPI总线、RS232总线等,对此第二串行总线123的类型不做限制。参见图1C所示,主设备101、节点设备111、节点设备112、节点设备113和节点设备114,均可以连接到第二串行总线123。
在上述应用场景下,参见图2A所示,为本申请实施例中提出的节点标识设置方法的流程图,所述节点标识设置方法可以包括以下步骤:
步骤211,主设备为每个节点设备分配节点标识。例如,主设备101可以根据经验为每个节点设备分配节点标识,对此分配策略不做限制,只要为不同节点设备分配的节点标识不同即可,即每个节点设备的节点标识具有唯一性。
例如,为每个节点设备分配节点标识的一个示例为:主设备101为节点设备111分配节点标识00000001,为节点设备112分配节点标识00000010,为节点设备113分配节点标识00000011,为节点设备114分配节点标识00000100。
步骤212,主设备通过第一串行总线将为每个节点设备分配的节点标识发送给各节点设备,以使各节点设备获得主设备为本节点设备分配的节点标识。
例如,主设备101可以通过第一串行总线122将为节点设备111分配的节点标识00000001发送给节点设备111,通过第一串行总线122将为节点设备112分配的节点标识00000010发送给节点设备112,通过第一串行总线122将为节点设备113分配的节点标识00000011发送给节点设备113,通过第一串行总线122将为节点设备114分配的节点标识00000100发送给节点设备114。
步骤213,节点设备通过第一串行总线接收节点标识数据,并从所述节点标识数据中获得主设备为本节点设备分配的节点标识。
例如,节点设备111通过第一串行总线122接收节点标识数据00000001,并将节点标识数据00000001确定为主设备101为本节点设备111分配的节点标识。此外,节点设备112通过第一串行总线122接收节点标识数据00000010,并将节点标识数据00000010确定为主设备101为本节点设备112分配的节点标识。节点设备113通过第一串行总线122接收节点标识数据00000011,并将节点标识数据00000011确定为主设备101为本节点设备113分配的节点标识。节点设备114通过第一串行总线122接收节点标识数据00000100,并将节点标识数据00000100确定为主设备101为本节点设备114分配的节点标识。
步骤214,节点设备将获得的节点标识设置为本节点设备的节点标识。例如,节点设备111将本节点设备的节点标识设置为00000001,节点设备112将本节点设备的节点标识设置为00000010,节点设备113将本节点设备的节点标识设置为00000011,节点设备114将本节点设备的节点标识设置为00000100。
基于上述技术方案,本申请实施例中,主设备可以通过菊花链结构的第一串行总线将节点标识下发给各节点设备,而不需要用户手工操作拨码开关,减轻了用户工作量。而且,不需要在节点设备增加额外的硬件电路(即拨码开关),节约硬件成本,节省PCB(Printed Circuit Board,印制电路板)的面积。
以下结合两个具体实现方式,对上述节点标识设置方法进行详细说明。
在图1B所示的应用场景下,参见图2B所示,为本申请实施例中提出的节点标识设置方法的流程图,所述节点标识设置方法可以包括以下步骤:
步骤221,主设备为每个节点设备分配节点标识。例如,主设备101可以根据经验为每个节点设备分配节点标识,对此分配策略不做限制,只要为不同节点设备分配的节点标识不同即可,即每个节点设备的节点标识具有唯一性。
例如,为每个节点设备分配节点标识的一个示例为:主设备101为节点设备111分配节点标识00000001,为节点设备112分配节点标识00000010,为节点设备113分配节点标识00000011,为节点设备114分配节点标识00000100。
步骤222,主设备通过第一串行总线依次发送起始位、为每个节点设备分配的节点标识、结束位;其中,起始位与结束位之间的节点标识是数据位。
通过串行总线传输的是串行数据,而串行数据的格式是起始位+数据位+停止位。通过发送起始位表示开始传输串行数据,提示串行数据传输的开始;通过发送停止位表示串行数据传输结束,提示串行数据已经完成传输;起始位与结束位之间是数据位,而数据位用于传输需要通过串行总线传输的串行数据。
基于串行数据的传输原理,则主设备通过第一串行总线依次发送起始位、数据位、结束位,而数据位用于传输主设备为每个节点设备分配的节点标识。
例如,假设起始位为0,结束位为11111111,主设备101通过第一串行总线122发送的是00000000100000010000000110000010011111111。即,主设备101通过第一串行总线122发送起始位0,然后通过第一串行总线122依次发送32个数据位,这32个数据位是00000001000000100000001100000100,是为节点设备111、节点设备112、节点设备113、节点设备114分配的节点标识,然后通过第一串行总线122依次发送8个结束位,这8个结束位是11111111。
在一个例子中,起始位与结束位之间的数据位数量,与节点设备数量、节点标识长度有关。如当节点设备数量为M,节点标识长度为N时,起始位与结束位之间的数据位数量是M*N,上述过程中,以节点设备数量为4,节点标识长度为8为例,实际应用中,对此节点设备数量、节点标识长度不做限制。
步骤223,节点设备在通过第一串行总线接收到起始位后,开始通过第一串行总线接收数据位,一直到通过所述第一串行总线接收到结束位,则停止接收数据位,并将起始位与结束位之间的所有数据位确定为节点标识数据。
例如,节点设备111在通过第一串行总线122接收到起始位0后,通过第一串行总线122接收数据位,即通过第一串行总线122依次接收每个数据位,直到通过第一串行总线122接收到结束位11111111,停止接收数据位。这样,起始位与结束位之间的所有数据位是00000001000000100000001100000100,也就是说,上述节点标识数据可以是00000001000000100000001100000100。
步骤224,节点设备从节点标识数据中获得主设备为本节点设备分配的节点标识,并将获得的该节点标识设置为本节点设备的节点标识。
在一个例子中,针对“节点设备从节点标识数据中获得主设备为本节点设备分配的节点标识”的过程,可以包括:节点设备可以将节点标识数据中的前N个数据位确定为主设备为本节点设备分配的节点标识。其中,N为大于等于1的正整数,且N的取值可以是节点标识长度,例如,N的取值可以为8。
例如,节点设备111将节点标识数据00000001000000100000001100000100中的前8个数据位00000001确定为主设备101为本节点设备111分配的节点标识,将本节点设备111的节点标识设置为00000001,以完成节点标识的设置。
步骤225,节点设备从节点标识数据中删除主设备为本节点设备分配的节点标识;若修改后的节点标识数据中还存在其它节点设备的节点标识,则通过第一串行总线依次发送起始位、修改后的节点标识数据、结束位;若修改后的节点标识数据中不存在其它节点设备的节点标识,结束节点标识的设置流程。
例如,节点设备111从节点标识数据00000001000000100000001100000100中删除本节点设备111的节点标识00000001后,修改后的节点标识数据可以为000000100000001100000100。由于修改后的节点标识数据中还存在其它节点设备的节点标识,因此,节点设备111通过第一串行总线122发送起始位0,然后通过第一串行总线122依次发送24个数据位,即000000100000001100000100,然后通过第一串行总线122依次发送8个结束位,这8个结束位是11111111。
节点设备112通过第一串行总线122接收到起始位0后,开始通过第一串行总线122接收数据位,即通过第一串行总线122依次接收每个数据位,直到通过第一串行总线122接收到结束位11111111,停止接收数据位。这样,起始位与结束位之间的所有数据位是000000100000001100000100,节点标识数据是000000100000001100000100。然后将节点标识数据000000100000001100000100中的前8个数据位00000010确定为主设备101为本节点设备112分配的节点标识,将本节点设备112的节点标识设置为00000010,以完成节点标识的设置。
节点设备112从节点标识数据000000100000001100000100中删除本节点设备112的节点标识00000010后,修改后的节点标识数据为0000001100000100。由于修改后的节点标识数据中还存在其它节点设备的节点标识,因此,节点设备112通过第一串行总线122发送起始位0,然后通过第一串行总线122依次发送16个数据位,即0000001100000100,然后通过第一串行总线122依次发送8个结束位,这8个结束位是11111111。以此类推,后续过程不再重复赘述。最终,节点设备111将本节点设备的节点标识设置为00000001,节点设备112将本节点设备的节点标识设置为00000010,节点设备113将本节点设备的节点标识设置为00000011,节点设备114将本节点设备的节点标识设置为00000100。
在上述实施例中,由于起始位为0,且节点设备需要获知自身通过第一串行总线122接收到起始位0,因此参见图2C所示,节点设备的输入端可以设置上拉电阻,该上拉电阻用于将节点设备钳位在高电平,也就是说,节点设备未收到起始位0时,始终处于高电平1,这样,一旦节点设备接收到起始位0,节点设备将不再处于高电平1,从而获知通过第一串行总线122接收到起始位0。
在图1C所示的应用场景下,参见图2D所示,为本申请实施例中提出的节点标识设置方法的流程图,所述节点标识设置方法可以包括以下步骤:
步骤231,主设备为每个节点设备分配节点标识。例如,主设备101可以根据经验为每个节点设备分配节点标识,对此分配策略不做限制,只要为不同节点设备分配的节点标识不同即可,即每个节点设备的节点标识具有唯一性。
例如,为每个节点设备分配节点标识的一个示例为:主设备101为节点设备111分配节点标识00000001,为节点设备112分配节点标识00000010,为节点设备113分配节点标识00000011,为节点设备114分配节点标识00000100。
步骤232,从为每个节点设备分配的节点标识的最后一位开始,主设备通过第一串行总线采用倒序方式发送为每个节点设备分配的节点标识;在每次通过第一串行总线发送一位节点标识时,均通过第二串行总线发送一次时钟信号,即第一串行总线和第二串行总线同时发送节点标识和时钟信号。
步骤233,节点设备在每次通过第二串行总线接收到时钟信号时,通过第一串行总线接收一位数据位(表示节点标识),将本节点设备的移位寄存器中的每个数据位向后平移一位,将接收到的数据位存储到移位寄存器的第一位。
在一个例子中,节点设备在将本节点设备的移位寄存器中的每个数据位向后平移一位之后,若最后一个数据位已经从移位寄存器中溢出,则节点设备还可以将最后一个数据位发送到与本节点设备连接的后一个节点设备,以使后一个节点设备将接收到的数据位存储到后一个节点设备的移位寄存器的第一位。
在一个例子中,节点设备的移位寄存器的位数与节点标识长度相同,如当节点标识长度为8位时,节点设备的移位寄存器为8位,参见图3A所示,为节点设备111、节点设备112、节点设备113、节点设备114的移位寄存器示例。
针对步骤222和步骤223,主设备101为每个节点设备分配节点标识后,假设为每个节点设备分配的节点标识是00000001000000100000001100000100,前8位表示为第1个节点设备分配的节点标识,第9-16位表示为第2个节点设备分配的节点标识,以此类推。在此基础上,主设备101从为每个节点设备分配的节点标识的最后一位开始,可以通过第一串行总线122采用倒序方式来发送00000001000000100000001100000100的每个标识,每个标识作为一个数据位。
主设备101在第1次发送时,通过第一串行总线122发送最后一位0,并通过第二串行总线123发送一次时钟信号。参见图3B所示,节点设备111通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,由于移位寄存器中没有数据位,因此将0存储到移位寄存器的第一位。节点设备112/节点设备113/节点设备114通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收数据位,由于当前没有传输的数据位,因此结束流程。
以此类推,主设备101在第8次发送时,通过第一串行总线122发送倒数第8位的0,并通过第二串行总线123发送一次时钟信号。参见图3C所示,节点设备111通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,并将移位寄存器中已经存储的每个数据位向后平移(即向右平移)一位,并将当前的数据位0存储到移位寄存器的第一位。节点设备112/节点设备113/节点设备114通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收数据位,由于当前没有传输的数据位,因此,结束流程。
主设备101在第9次发送时,通过第一串行总线122发送倒数第9位的1,并通过第二串行总线123发送一次时钟信号。参见图3D所示,节点设备111通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位1,并将移位寄存器中已经存储的每个数据位向后平移一位,并将当前的数据位1存储到移位寄存器的第一位。由于移位寄存器中已经存储的最后一位数据位0从移位寄存器中溢出,因此,节点设备111通过第一串行总线122将最后一位数据位0发送给节点设备112。节点设备112通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,由于移位寄存器中没有数据位,因此将数据位0存储到移位寄存器的第一位。节点设备113/节点设备114通过第一串行总线122接收数据位,由于当前没有传输的数据位,结束流程。
以此类推,主设备101在第36次发送时,通过第一串行总线122发送倒数第36位(即第一位)的0,并通过第二串行总线123发送一次时钟信号。
参见图3E所示,节点设备111在通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,并将移位寄存器中已经存储的每个数据位向后平移一位,并将当前的数据位0存储到移位寄存器的第一位。由于移位寄存器中已经存储的最后一位数据位0从移位寄存器中溢出,因此,节点设备111可以通过第一串行总线122将最后一位数据位0发送给节点设备112。
进一步的,节点设备112在通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,并将移位寄存器中已经存储的每个数据位向后平移一位,并将当前的数据位0存储到移位寄存器的第一位。由于移位寄存器中已经存储的最后一位数据位0从移位寄存器中溢出,因此,节点设备112可以通过第一串行总线122将最后一位数据位0发送给节点设备113。
进一步的,节点设备113在通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,并将移位寄存器中已经存储的每个数据位向后平移一位,并将当前的数据位0存储到移位寄存器的第一位。由于移位寄存器中已经存储的最后一位数据位0从移位寄存器中溢出,因此,节点设备113可以通过第一串行总线122将最后一位数据位0发送给节点设备114。
进一步的,节点设备114在通过第二串行总线123接收到时钟信号时,通过第一串行总线122接收到数据位0,并将移位寄存器中已经存储的每个数据位向后平移一位,并将当前的数据位0存储到移位寄存器的第一位。
主设备101在发送36次节点标识和时钟信号后,便可以将为每个节点设备分配的节点标识00000001000000100000001100000100发送给各节点设备。至此完成节点标识的传输,主设备101不再通过第二串行总线123发送时钟信号。
步骤234,节点设备在未通过第二串行总线接收到时钟信号(如预设时间未接收到时钟信号)后,将本节点设备的移位寄存器中的数据位确定为节点标识数据,并将所述节点标识数据确定为主设备为本节点设备分配的节点标识。
步骤235,节点设备将确定的该节点标识设置为本节点设备的节点标识。
参见图3E所示,节点设备111可以将移位寄存器中的00000001确定为主设备101为节点设备111分配的节点标识,将节点设备111的节点标识设置为00000001。节点设备112可以将移位寄存器中的00000010确定为主设备101为节点设备112分配的节点标识,将节点设备112的节点标识设置为00000010。节点设备113可以将移位寄存器中的00000011确定为主设备101为节点设备113分配的节点标识,并将节点设备113的节点标识设置为00000011。节点设备114可以将移位寄存器中的00000100确定为主设备101为节点设备114分配的节点标识,并将节点设备114的节点标识设置为00000100。
在图2A、图2B、图2D的流程中,节点设备在设置本节点设备的节点标识后,还可以将本节点设备的节点标识存储到指定存储区域;其中,指定存储区域包括:Flash存储区域;或者,与程序代码所在的第一扇区不同的第二扇区。
程序代码通常存储在节点设备的扇区,为了区分方便,将程序代码所在的扇区称为第一扇区。程序代码是节点设备运行时需要使用的代码,当程序代码被删除或者出现异常时,节点设备将无法正常工作,节点设备发生异常。
在实际应用中,由于节点标识可能被擦除,而在擦除节点标识时,会擦除节点标识所占用的区域,因此,若将节点标识存储到程序代码所在的第一扇区,则在擦除节点标识时,会将第一扇区的所有内容擦除,从而导致第一扇区中的程序代码也被擦除,而程序代码被擦除后,就会造成节点设备发生异常。
基于此,本申请实施例中,可以将节点标识存储到与程序代码所在的第一扇区不同的第二扇区,这样,在擦除节点标识时,只将第二扇区的内容擦除,而第一扇区中的程序代码不会被擦除,从而避免程序代码被擦除导致的问题。
此外,还可以将节点标识存储到与程序代码所在的第一扇区不同的Flash存储区域,这样,在擦除节点标识时,只会将Flash存储区域的内容擦除,而第一扇区中的程序代码不会被擦除,从而避免程序代码被擦除导致的问题。
其中,为了将节点标识存储到与程序代码所在的第一扇区不同的第二扇区或Flash存储区域,可采用特征字指定或发散文件指定等方式,给出第二扇区或Flash存储区域的首地址,从而将节点标识存储到第二扇区或Flash存储区域。
在一个例子中,可以使用节点设备的如下功能器件执行图2A、图2B、图2D所示的流程:串行移位芯片;或者,CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件);或者,FPGA(Field Programmable Gate Array,现场可编程门阵列);或者,CPU(Central Processing Unit,中央处理器)。
在一个例子中,主设备101可以通过总线121向各节点设备发送查询命令,该查询命令用于查询节点设备是否存在节点标识。若所有节点设备都存在节点标识,则主设备101可以通过总线121与各节点设备正常通信。若有节点设备不存在节点标识,主设备101先通过总线121擦除已经存在的节点标识,在所有节点设备都不存在节点标识后,执行图2A、图2B、图2D的流程,为各节点设备设置节点标识,使得主设备101通过总线121与节点设备正常通信。
基于与上述方法同样的申请构思,本申请实施例还提出一种节点标识设置装置,主设备和每个节点设备均连接到第一串行总线,所述主设备的输出端通过所述第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过所述第一串行总线连接到后一个节点设备的输入端;如图4所示,为节点标识设置装置的结构图,所述装置可以应用于节点设备,所述装置包括:
接收模块401,用于通过所述第一串行总线接收节点标识数据;获得模块402,用于从所述节点标识数据中获得所述主设备为本节点设备分配的节点标识;设置模块403,用于将获得的节点标识设置为本节点设备的节点标识。
所述接收模块401,具体用于在通过所述第一串行总线接收到起始位后,通过第一串行总线接收数据位,直到通过所述第一串行总线接收到结束位,停止接收数据位;将起始位与结束位之间的所有数据位确定为节点标识数据;
所述获得模块402,具体用于将所述节点标识数据中的前N个数据位确定为所述主设备为本节点设备分配的节点标识;所述N为大于等于1的正整数;
在一个例子中,所述节点标识设置装置还包括(在图中未视出):
发送模块,用于从所述节点标识数据中删除主设备为本节点设备分配的节点标识;若修改后的节点标识数据中还存在其它节点设备的节点标识,则通过所述第一串行总线依次发送起始位、修改后的节点标识数据、结束位。
所述主设备和每个节点设备均连接到第二串行总线;所述接收模块401,具体用于在每次通过所述第二串行总线接收到时钟信号时,通过所述第一串行总线接收数据位;将本节点设备的移位寄存器中的每个数据位向后平移一位,并将接收到的数据位存储到所述移位寄存器的第一位;在未通过所述第二串行总线接收到时钟信号后,将所述移位寄存器中的数据位确定为节点标识数据;
所述获得模块402,具体用于将所述节点标识数据确定为所述主设备为本节点设备分配的节点标识;
所述发送模块,用于在将本节点设备的移位寄存器中的每个数据位向后平移一位之后,若最后一个数据位已经从所述移位寄存器中溢出,则将最后一个数据位发送到与本节点设备连接的后一个节点设备,以使所述后一个节点设备将接收到的数据位存储到所述后一个节点设备的移位寄存器的第一位。
本申请实施例中提出的节点设备,从硬件层面而言,硬件架构示意图具体可以参见图5所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的节点标识设置操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
基于与上述方法同样的申请构思,本申请实施例还提出一种节点标识设置装置,主设备和每个节点设备均连接到第一串行总线,所述主设备的输出端通过所述第一串行总线连接到第一个节点设备的输入端,前一个节点设备的输出端通过所述第一串行总线连接到后一个节点设备的输入端;如图6所示,为节点标识设置装置的结构图,所述装置可以应用于主设备,所述装置包括:
分配模块601,用于为每个节点设备分配节点标识;发送模块602,用于通过所述第一串行总线将为每个节点设备分配的节点标识发送给节点设备,以使节点设备获得所述主设备为本节点设备分配的节点标识。
所述发送模块602,具体用于通过所述第一串行总线依次发送起始位、为每个节点设备分配的节点标识、结束位;所述起始位与所述结束位之间的节点标识是数据位;或者,当主设备和每个节点设备还连接到第二串行总线时,从为每个节点设备分配的节点标识的最后一位开始,通过所述第一串行总线采用倒序方式发送为每个节点设备分配的节点标识;在每次通过所述第一串行总线发送一位节点标识时,通过所述第二串行总线发送一次时钟信号。
本申请实施例中提出的主设备,从硬件层面而言,硬件架构示意图具体可以参见图7所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的节点标识设置操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。