CN105721621A - 用于生成唯一设备id的系统和方法 - Google Patents

用于生成唯一设备id的系统和方法 Download PDF

Info

Publication number
CN105721621A
CN105721621A CN201510954089.XA CN201510954089A CN105721621A CN 105721621 A CN105721621 A CN 105721621A CN 201510954089 A CN201510954089 A CN 201510954089A CN 105721621 A CN105721621 A CN 105721621A
Authority
CN
China
Prior art keywords
equipment
device identifier
network
ram
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510954089.XA
Other languages
English (en)
Other versions
CN105721621B (zh
Inventor
詹姆斯·理查德·勒施
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Electric IT Corp
Original Assignee
American Power Conversion Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Power Conversion Corp filed Critical American Power Conversion Corp
Publication of CN105721621A publication Critical patent/CN105721621A/zh
Application granted granted Critical
Publication of CN105721621B publication Critical patent/CN105721621B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/627Controller area network [CAN] identifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40078Bus configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明涉及用于生成唯一设备ID的系统和方法。提供了包括网络接口、存储器和至少一个处理器的设备。存储器可包括随机存取存储器(RAM)和非易失性存储器。处理器可被耦合到存储器并被耦合到网络接口并且被配置为指定RAM的未初始化的区、使用来自RAM的未初始化的区的数据生成设备的网络设备标识符、将该网络设备标识符储存在非易失性存储器中并将该网络设备标识符分配给该设备。该至少一个处理器还可被配置为使用来自RAM的未初始化的区的数据作为伪随机数字生成器的种子来生成网络设备标识符。

Description

用于生成唯一设备ID的系统和方法
背景
技术领域
技术领域总体上涉及网络中的设备,并且更具体地,涉及网络中的设备的唯一设备标识信息的生成。
背景讨论
采用共享总线拓扑的联网标准在工业应用中具有广泛的安装基础。这些联网标准包括MODBUS、CAN、I2C和许多基于无线的网络(例如WLAN、Zigbee和蓝牙)。这些网络的成功有各种各样的原因,并且一些成功的原因包括易于实现、材料的低成本和在噪声、工业环境中的稳定的性能。
网络通常使用如本领域已知的总线来允许微控制器和设备彼此通信。网络可连接多个节点。网络中的节点的范围可从简单的I/O设备到具有接口、显示器和复杂的软件的嵌入式计算机。该节点还可以是允许标准计算机通过USB或以太网端口与网络上的设备进行通信的网关。
概述
根据各个方面和实施例,包括网络的设备和方法被提供。本发明对生成网络中的每个设备的唯一设备标识符的当前方法进行了改进。更具体地,本发明的至少一些实施例涉及使用静态随机存取存储器(SRAM)作为伪随机数字生成器(PANG)的种子(seed)来生成具有随机生成的数字的设备标识符。
根据一些方面,包括网络接口、存储器和至少一个处理器的设备被提供。存储器可包括随机存取存储器(RAM)和非易失性存储器。处理器可被耦合到存储器并被耦合到网络接口并被配置为指定RAM的未初始化的区、使用来自RAM的未初始化的区的数据生成设备的网络设备标识符、将该网络设备标识符存储在非易失性存储器中并将该网络设备标识符分配给该设备。
在设备中,至少一个处理器还可被配置为设置设备标识符标志以响应于将该网络设备标识符分配给该设备。该至少一个处理器还可被配置为使用来自RAM的未初始化的区的数据作为伪随机数字生成器的种子来生成网络设备标识符。该至少一个处理器还可被配置为使用真随机数字生成器来生成网络设备标识符。
在设备中,该至少一个处理器还被配置为自动地生成设备的设备地址、接收指示第二设备具有该设备地址的消息、将设备的设备标识符与第二设备的第二设备标识符进行比较以及将设备地址分配给该设备以响应于将该设备标识符与第二设备标识符进行比较。
根据一些实施例,网络接口可被配置为耦合到控制器区域网络。非易失性存储器可以是电可擦除可编程只读存储器。RAM可以是静态随机存取存储器。
根据各个实施例,用于生成设备标识符的方法被提供。方法可包括以下动作:指定未初始化的随机存取存储器(RAM)的区、使用来自未初始化的RAM的区的数据生成网络上的设备的设备标识符、将设备标识符储存在非易失性存储器中以及将设备标识符分配给设备。
方法还可包括设置设备标识符标志以响应于将设备标识符分配给设备的动作。另外,生成设备标识符可包括使用数据作为伪随机数字生成器的种子来生成设备标识符。另外,生成设备标识符还包括使用真随机数字生成器来生成设备标识符。非易失性存储器中的设备标识符可包括将设备标识符储存在电可擦除可编程只读存储器中。另外地,生成网络上的设备的设备标识符可包括生成控制器区域网上的设备的设备标识符。
在一些实施例中,方法包括以下动作:自动地生成设备的设备地址、接收指示第二设备具有该设备地址的消息、将设备的设备标识符与第二设备的第二设备标识符比较以及将设备地址分配给该设备以响应于将该设备标识符与第二设备标识符进行比较。另外,指定RAM的区可包括指定静态随机存取存储器的区。
根据一些方面,提供了非暂时性计算机可读介质,其上存储有用于生成设备标识符的指令序列。指令序列可包括将促使至少一个处理器指定未初始化的随机存取存储器(RAM)的区、生成网络上的设备的设备标识符(其中设备标识符使用来自未初始化的RAM的区的数据来生成)、将设备标识符储存在非易失性存储器中以及将设备标识符分配给设备的指令。
根据一些实施例,指令序列还包括将促使至少一个处理器自动地生成设备的设备地址、接收指示第二设备具有该设备地址的消息、将设备的设备标识符与第二设备的第二设备标识符比较以及将设备地址分配给该设备以响应于将该设备标识符与第二设备标识符进行比较的指令。
根据一些实施例,指令序列可包含另外的指令,其将促使至少一个处理器设置设备标识符标志以响应于将设备标识符分配给该设备。另外地,指令序列可包括另外的指令,其将促使至少一个处理器使用来自未初始化的RAM的区的数据作为伪随机数字生成器的种子。
还有其它方面、实施例及这些示例性的方面和实施例的优点在下面详细讨论。此外,需要理解的是,上述信息和下面的详细描述两者都仅仅是各个方面和各种实施例的说明性的示例,并且旨在提供用于理解所要求保护的各方面和各实施例的性质和特性的综述或者框架。本文公开的任何示例或实施例可与任何其他示例或实施例组合。对“示例(anexample)”、“实施例(anembodiment)”、“一些示例(someexamples)”、“一些实施例(someembodiments)”、“可选的示例(analternateexample)”、“各种实施例(variousembodiments)”、“一个示例(oneexample)”、“至少一个实施例(atleastoneembodiment)”、“这个和其它的示例(thisandotherexamples)”等等的引用不一定相互排斥并且旨在表示,结合示例或实施例描述的特定的特征、结构或特性可被包括在至少一个示例或实施例中。本文出现的这些术语不一定都提及相同的示例或实施例。而且,如果本文档和通过引用并入本文的的文档之间的术语的使用不一致,则在合并的参考文献中的术语的使用是对本文档的术语使用的补充;对于不可调和的不一致,以本文档中的术语使用为准。
在下文参照附图详细地描述了本发明的另外的特征和优点以及本发明的各种实施例的结构和操作。在附图中,相似的参考数字指示相似的或在功能上相似的要素。此外,参考数字的最左边的一个或两个数位标示参考数字第一次在其中出现的图。
附图说明
下文参考附图讨论了至少一个实施例的各个方面,该附图不旨在按比例绘制。各图被包含以提供各个方面和实施例的图示以及进一步的理解,并且被并入该说明书且构成该说明书的一部分,但是不旨在作为任何特定的实施例的限制的定义。各图连同该说明书的剩余部分一起用来解释所描述的和所要求保护的各方面和实施例的原理和操作。各图中,在各个图中示出的每个相同的或者几乎相同的组件用相似的数字来标示。出于清楚的目的,并非每个组件都可以被在每个图中标记。在附图中:
图1是根据一个实施例的示例网络的框图;
图2是在一个实施例中使用的示例计算机系统的框图;
图3是示出根据一个实施例使用真随机数字生成器生成设备的设备标识符的过程的流程图;
图4是示出根据一个实施例使用伪随机数字生成器生成设备的设备标识符的过程的流程图;以及
图5是根据至少一个实施例的用于设备地址验证和要求的示例状态机。
详细描述
根据一些示例,耦合到总线的设备使用协议栈用于内部设备通信,并且协议栈包括地址生成和设备标识功能。为了实现这两个特征,每个设备具有值或标识符(例如,七字节值)以唯一地识别网络上的设备。当前,根据一些示例,利用压缩算法使用设备的十二个字符序列号将设备的标识符生成为七字节值。然而,当厂商改变序列号格式时,压缩算法通常也将需要改变,且相同的算法可能不能用于不同的设备。另外,在许多设备中,输入产品序列号是人工过程,因此当技术人员替换设备中的控制器时,序列号不得不被人工正确地输入。如果设备被替换且技术人员输入了重复的序列号或不存在的序列号,则新设备可能不能如预期地操作。存在对容易地设置唯一设备标识符而没有错误的风险的方式的需求。
本文公开的至少一些方面和实施例提供了网络中的设备通过其可自动地生成和分配设备标识符的方法和装置。本发明的一个方面涉及使用存储器(例如,SRAM)和随机数字生成器以创建将作为诸如控制器区域网络(CAN)的网络中的设备的设备标识符使用的随机数字。在工业应用和数据中心中使用的网络设备(包括冷却和配电设备以及传感器)通常使用不配备有可用于生成标识符的真随机数字生成器(TRNG)的较低成本的控制器来实现。这些较低成本的控制器通常具有伪随机数字生成器(PRNG)。PRNG通常需要好的种子以阻止相同序列的值被在不同的设备中生成。
根据一个方面,在网络设备中,未初始化的SRAM的小的区被用作PRNG的种子以形成网络设备的唯一标识符。未初始化的SRAM的区还可被用作PRNG的输出的池(pool)以选择七字节设备标识符。以这种方式使用SRAM使在缺少TRNG的设备中生成唯一设备标识符变得可能。由于设备标识符是由网络设备(如,网络设备的控制器中)自动地创建,对其格式被在工厂中创建时设置的序列号没有依赖性,并且不需要用户干预。
在使用SRAM利用PRNG创建设备标识符的网络的实施例中,有两个设备被分配相同的设备标识符的很小的可能性。这种情况发生的概率p(m)依赖于网络中的设备的数量,其在方程1中被示出。
p ( m ) = 1 - ( n r - 1 n r ) m ( m - 1 ) 2
方程1
在方程1中,n是设备ID的每个字节中的值的数量,r是设备ID中的字节的数量,而m是网络中的设备的数量。作为示例,设备ID可占用256个值(0x00到0xFF)和7个字节。如果网络具有例如一百个设备,则方程2可被用于确定概率p(m)。
p ( m ) = 1 - ( 256 7 - 1 256 7 ) 100 ( 100 - 1 ) 2 = 6.8695 × 10 - 14
方程2
如在方程2中所示,100个设备的网络中的任何设备具有相同的数字的概率是非常低的。对于诸如只包括16个设备的网络的其它网络,该概率将更小(实际上微不足道)。
示例网络
图1示出联网设备104的系统100的示例配置。网络可使用诸如CAN网络的网络拓扑来实现,然而,其它类型的网络(无线和有线两者)可用于本发明的实施例中。根据一些方面,设备104可以是主设备或从设备,其可利用各种通信协议用于经由例如总线102的内部设备通信。在一些实施例中,设备104可包括冷却设备、配电设备、工业控制器或任何其它类型的设备。设备中的一个或多个可用作管理设备并通过总线102监测和控制的其它设备104中的一个或多个。设备104中的每个包括存储器106、处理器114和收发器116。
存储器106可包括设备地址110和非易失性存储器112。非易失性存储器112可包括设备标识符108和指示设备是否具有有效的设备标识符的标志118。根据一个实施例,非易失性存储器112可以是电可擦除可编程只读存储器(EEPROM)、闪存、铁电RAM(F-RAM)、磁阻RAM(MRAM)、标记ROM(MROM)或任何其它类型的非易失性存储器。如果设备标识符108无效,则依赖于设备是否具有TRNG,设备可创建新的设备标识符108。根据一些方面,存储器104是被用于创建设备标识符108的SRAM。根据一些示例,存储器106的至少一部分可以是可写的和易失性的。存储器106可被配置为在上电时包括部分地随机的存储器内容,其可被用于生成设备标识符108。
处理器114可被配置为运行PRNG并使用未初始化的存储器(如,SRAM)的区作为种子。处理器114还可经由收发器116与总线上的其它设备104进行通信。根据一些实现,收发器116可被配置为发送信息和接收来自总线102上的其它设备以及外部设备的信息。收发器包括配置为耦合到有线网络或用作无线网络中的无线收发器的网络接口。根据一个实施例,设备104可被包括在冷却系统、通用计算机系统或专用计算机系统中。
计算机系统
如上文关于图1所讨论的,本文所描述的包括网络中的设备的各个方面和各种功能可以被包括作为在一个或者多个计算机系统中执行的专用硬件或者软件组件。有很多当前处于使用中的计算机系统的示例。这些示例尤其包括网络应用、个人计算机、工作站、主机、联网的客户端、服务器、媒体服务器、应用服务器、数据库服务器和web服务器。计算机系统的其它示例可以包括移动计算设备(例如蜂窝电话和私人数字助理)以及网络设备(例如负载平衡器、路由器和交换机)。此外,各方面可以位于单个计算机系统上,或者可以分布在连接到一个或者多个通信网络的多个计算机系统中。
例如,各个方面和功能可以被分布在一个或多个计算机系统中,该一个或多个计算机系统被配置为提供服务给一个或多个客户端计算机,或作为分布式系统的一部分执行整体任务。此外,各个方面可以被在客户端-服务器或多层系统(包括分布在执行各种功能的一个或多个服务器系统中的组件)上执行。因此,示例不限于在任何特定的系统或者一组系统上执行。此外,可以以软件、硬件或者固件、或者它们的任何组合来实施各方面和各功能。因此,可以在方法、动作、系统、系统元件和使用各种各样的硬件和软件配置的组件内实施各方面和各功能,并且各示例不局限于任何特定的分布式架构、网络或者通信协议。
参考图2,其示出了分布式计算机系统200的框图,其中实践了各个方面和各种功能。如所示,分布式计算机系统200包括交换信息的一个或多个计算机系统。更具体地,分布式计算机系统200包括计算机系统/设备202、204和206。如所示,计算机系统/设备202、204和206通过通信网络208互连并可通过通信网络208交换数据。网络208可以包含计算机系统可以通过其交换数据的任何通信网络。为了使用网络208交换数据,计算机系统/设备202、204和206以及网络208可以使用各种方法、协议和标准,其尤其包括光纤通道、令牌环、以太网、无线以太网、蓝牙、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS7、JSON、SOAP、CORBA、REST和Web服务。为确保数据传送是安全的,计算机系统202、204以及206可以经由使用包含例如TLS、SSL或者VPN的各种各样的安全措施的网络208传输数据。虽然分布式计算机系统200示出了三个联网的计算机系统,但是分布式计算机系统200不受此限制并且可以包含使用任何介质和通信协议联网的任何数量的计算机系统和计算设备。
如图2中所示的,计算机系统202包括处理器210、存储器212、互连元件214、接口216以及数据储存元件218。为了实施本文所公开的各方面、各功能和各过程中的至少一些,处理器210执行导致被操作的数据的一系列指令。处理器210可以是任何类型的处理器、多处理器或者控制器。一些示例性处理器包括市场上可购买到的处理器,例如IntelXeon、Itanium、Core、Celeron、或Pentium处理器、AMDOpteron处理器、AppleA4或A5处理器、SunUltraSPARC、或IBMPower5+处理器和IBM主机芯片。处理器210通过互连元件214被连接到包括一个或多个存储器设备212的其他系统组件。
存储器212在计算机系统202的操作期间存储程序和数据。因此,存储器212可以是相对高性能的、易失性的随机存取存储器,诸如动态随机存取存储器(“DRAM”)或静态存储器(“SRAM”)。然而,存储器212可以包括用于存储数据的任何设备,诸如磁盘驱动器或其他非易失性存储设备。各个示例可以将存储器212组织成特定的(并且在某些情况下)独有的结构来执行本文所公开的功能。这些数据结构可以被定尺寸以及被组织以存储关于特定数据和数据的类型的值。
计算机系统202的组件通过互连元件(诸如互连元件214)进行耦合。互连元件214可以包括一个或多个物理总线(例如,在同一机器内集成的组件之间的总线),但是可以包括在包含专用或标准计算总线技术(例如IDE、SCSI、PCI和InfiniBand)的系统元件之间的任何通信耦合。互连元件214允许通信(例如数据和指令)在计算机系统202的系统组件之间进行交换。
计算机系统202还包含一个或者多个接口设备216(例如输入设备、输出设备、以及输入设备/输出设备的组合)。接口设备可以接收输入或提供输出。更特别地,输出设备可以呈现用于外部表现的信息。输入设备可以从外部源接受信息。接口设备的示例包括键盘、鼠标设备、轨迹球、麦克风、触摸屏、打印设备、显示屏、扬声器、网络接口卡等等。接口设备允许计算机系统202与例如用户以及其他系统的外部实体交换信息并且与其通信。
数据储存元件218包括计算机可读和可写非易失性或非暂时性的数据存储介质,其中存储有限定由处理器210执行的程序或其他对象的指令。数据储存元件218还可包括被记录在介质上的或记录在介质中的、并且由处理器210在程序执行期间处理的信息。更具体地,信息可以被储存在一个或多个数据结构中,其具体被配置为节约存储空间或提高数据交换性能。指令可以被永久存储为编码的信号,并且该指令可以引起处理器210执行本文所描述的功能中的任意一个。介质可以例如尤其是光盘、磁盘或闪存。在操作中,处理器210或一些其他的控制器使得将数据从非易失性记录介质读入到另一个存储器(诸如存储器212)中,相较于包括在数据储存元件218中的储存介质,所述另一个存储器允许处理器210更快访问信息。存储器可以位于数据储存元件218中或位于存储器212中,然而,处理器210操纵存储器中的数据,且然后在处理完成后,将数据拷贝到与数据储存元件218相关的储存介质。各种各样的组件可以管理在储存介质和其他存储器元件之间的数据移动,并且各示例不局限于特定的数据管理组件。此外,各示例不限于特定的存储器系统或者数据储存系统。
虽然计算机系统202通过示例的方式示出为在其上可以实践各个方面和各种功能的一种类型的计算机系统,但是各个方面和各种功能不限于在如图2中示出的计算机系统202上实施。各个方面和各种功能可以在具有不同于图2中所示的架构或者组件的架构或者组件的一个或者多个计算机上实践。例如,计算机系统202可包括专门编程的专用硬件,例如被定制为执行本文公开的特定操作的专用集成电路(“ASIC”)。然而另一个示例可以使用利用摩托罗拉PowerPC处理器运行MACOS系统X的几个通用计算设备以及运行专有硬件和操作系统的几个专用计算设备的网格来执行同样的功能。
计算机系统202可以是包含操作系统的计算机系统,该操作系统管理包含在计算机系统202中的硬件元件的至少一部分。在某些示例中,如处理器210的处理器或者控制器执行操作系统。可以被执行的特定的操作系统的示例包括:如从微软公司购买的WindowsNT、Windows2000(WindowsME)、WindowsXP、WindowsVista或者Windows7操作系统的基于Windows的操作系统、从苹果计算机公司购买的MACOS系统X操作系统或iOS操作系统、如从RedHat公司购买的企业Linux操作系统的众多基于Linux的操作系统的发行版中的一个、从Sun微系统购买的Solaris操作系统、或者从各种来源购买的UNIX操作系统。可以使用许多其他的操作系统,并且各示例不限于任何特定的操作系统。
处理器210和操作系统一起定义了计算机平台,为该计算机平台写入以高级编程语言形式的应用程序。这些组件应用可以是可执行的中间字节码或者解释代码,其通过例如使用例如TCP/IP的通信协议的因特网的通信网络进行传输。类似地,各方面可以使用面向对象的编程语言(例如.Net、SmallTalk、Java、C++、Ada、C#(C-Sharp)、Python或JavaScript)来实现。也可以使用其他的面向对象的编程语言。可选地,可以使用功能性、脚本或逻辑编程语言。
此外,可以在非编程环境中(例如以HTML、XML或者其它格式创建的文档,当在浏览器程序的窗口中查看时其能够渲染图形用户界面的各方面或执行其他的功能)实施各个方面和各种功能。此外,可以将各个示例实施为编程的或非编程的元件或它们的任何组合。例如,web页面可以使用HTML来实施而从web页面内调用的数据对象可以用C++或Python来编写。因此,示例不局限于特定的编程语言并且可以使用任何合适的编程语言。因此,本文所公开的功能组件可以包括多种多样的被配置成执行本文所描述的功能的元件(例如的专用硬件、可执行代码、数据结构或者对象)。
在某些示例中,本文所公开的组件可以读取影响被组件执行的功能的参数。这些参数可以被物理存储在任何形式的合适的、包含易失性存储器(例如RAM)或者非易失性存储器(例如磁硬盘驱动器)的存储器中。此外,参数可以被逻辑存储在适当的数据结构(例如由用户模式应用定义的数据库或者文件)中或者通常共享的数据结构(例如由操作系统定义的应用注册表)中。此外,某些示例提供了系统和用户接口两者,其允许外部实体修改参数并且从而配置组件的行为。
示例过程
图3根据本发明的实施例示出用于使用包括TRNG的设备或控制器生成和储存设备标识符的过程300的流程图。过程300开始于动作302。在动作304处,设备检查以查看当前的设备标识符是否有效。设备可检查非易失性存储器中的标志,当被设置为真时,该标志指示设备具有有效的设备标识符。如果标志指示有效的设备标识符,则设备已经被设置并且方法结束。如果设备标识符标志被设置为假,指示设备标识符没有被设置,则在动作306处,TRNG生成将被用作设备标识符的随机7个字节数字。在动作308处,设备标识符被设置为随机生成的7个字节数字。在动作310处,设备标识符被储存在非易失性存储器(例如,EEPROM)中。在动作312处,设备标识符标志被设置为真以指示有效的设备标识符已经被设置。
图4根据本发明的一个实施例示出用于使用不包括TRNG的设备或控制器生成和储存设备标识符的过程400。根据一些方面,设备使用未初始化的SRAM的小容量(如,64个字节)来创建随机数字以生成PRNG的种子。过程400开始于动作402。在动作404处,在设备的启动过程期间,使用来自SRAM的数据来初始化(如,使用“C”运行时间库中的srand函数)PRNG以给PRNG加载随机种子。根据一些方面,数据包括SRAM的未初始化阵列的第一字(例如,最前面的两个字节:字节[0]和字节[1])。根据一些示例,PRNG尽可能快地被初始化以便设备标识符的人工生成经由用户命令是可能的。根据一些方面,SRAM阵列可具有总共64个字节。
在动作406处,在非易失性存储器中的设备标识符标志被检查以查明有效的设备标识符是否已经被设置。如果设备已经包括有效的设备标识符,则过程400结束。如果有无效的设备标识符或没有设备标识符,则在动作408处,设备利用PRNG以生成在0和61之间的七个随机数字(如,使用“C”运行时间库的rand函数)。在动作410处,该七个随机数字被用作SRAM阵列的剩余62个字节的索引。使用七个随机数字来设置设备标识符,并且在动作412处,设备标识符被储存在非易失性存储器中。在动作414处,在非易失性存储器中的标识符标志被设置为真以指示已经为设备设置了有效的设备标识符。在动作416处,进程400结束。
如上面所描述的,在本发明的实施例中,依赖于设备是具有TRNG还是PRNG,不同的过程发生以创建设备的设备标识符。在一个实施例中,在过程300或400发生之前,设备可被配置为确定设备是包括TRNG还是PRNG,并接着基于该确定的结果进行过程300或400。
在上面所讨论的实施例中,在初始化时SRAM被与PRNG一起使用以生成设备标识符。在其它实施例中,SRAM状态可被用于直接创建设备标识符和/或地址。
本文公开的过程每个包含特别的示例中的一个特别的动作序列。可通过(或使用)根据本文所讨论的特别配置的一个或多个约束计算设备来执行被包括在过程中的动作。一些动作是可选的,且同样地,可以根据一个或多个实施例而被省略掉。此外,可以更改动作的顺序,或者可以增加其他动作,而不偏离本文所讨论的系统和方法的范围。此外,如上所述,在至少一个实施例中,所述动作被在特定的、特别配置的机器(即根据本文公开的示例配置的约束计算设备)上执行。
状态机图
图5示出可在上面描述的设备104中的一个中实现以与其它设备协商地址的状态机。每个设备可使用该状态机的实例来协商。在框502处,设备还未要求地址。在框504处,地址由设备请求。可由设备根据被实现的网络的类型使用协议栈来自动地生成地址。在一些示例中,使用设备标识符的字节来生成设备地址。在框506处,设备运行地址要求模块,该地址要求模块仲裁地址是否是唯一并且是否应被发布。在框508处,设备可尝试要求地址。如果设备在时间帧(如250ms)内从第二设备接收地址被要求的消息(AddressClaimedmessage),则设备将设备的标识符与第二设备的标识符进行比较。系统可将设备的标识符逐字节与第二设备的标识符进行比较。如果尝试要求该地址的设备的设备标识符小于其它设备的设备标识符,则地址被要求的消息变成“高优先级地址要求消息”。如果“高优先级地址要求”消息被接收,则该设备不能要求该地址且必须生成并尝试使用不同的地址。根据一些示例,如果设备的设备标识符高于第二设备的设备标识符,则地址被要求的消息变成“低优先级地址要求”消息。在接收到“低优先级地址要求”消息时,设备可发送“高优先级地址要求”消息到当前具有该地址的设备。当前具有该地址的设备将接收该消息、释放该地址到第一设备以及请求新的地址。
根据一些示例,如果设备没有在预定的时间帧内接收到来自另一个设备的任何消息,则系统假设没有其它设备使用该相同的地址,并且在框510处,系统成功地将地址分配给该设备。此外,如果两个或多于两个其它设备发送地址被要求的消息,则该地址将被给到具有最大的设备标识符的那个设备。根据一些示例,一旦网络地址被在设备上设置,则设备可在网络上通信。
上面的过程总体上描述可在仲裁过程中使用的网络标识符。在其它实施例中,网络标识符可以是网络地址或可以以另一种方式来使用以生成网络地址。
已经如此描述了至少一个实施例的几个方面,应当理解的是,本领域的技术人员将容易想到各种改变、修改和改进。这样的改变、修改和改进旨在成为本公开的一部分,并且旨在处于本文所讨论的示例的范围之内。因此,先前的描述和附图仅仅是通过示例的方式给出的。

Claims (20)

1.一种设备,包括:
网络接口;
存储器,其包括随机存取存储器(RAM)和非易失性存储器;以及
至少一个处理器,其耦合至所述存储器并耦合至所述网络接口,所述至少一个处理器被配置成:
指定RAM的未初始化的区;
使用来自所述RAM的未初始化的区的数据生成所述设备的网络设备标识符;
将所述网络设备标识符储存在非易失性存储器中;以及
将所述网络设备标识符分配给所述设备。
2.根据权利要求1所述的设备,其中,所述至少一个处理器还被配置为响应于将所述网络设备标识符分配给所述设备来设置设备标识符标志。
3.根据权利要求1所述的设备,其中,所述至少一个处理器还被配置为使用来自所述RAM的未初始化的区的所述数据作为伪随机数字生成器的种子来生成所述网络设备标识符。
4.根据权利要求1所述的设备,其中,所述至少一个处理器还被配置为使用真随机数字生成器来生成所述网络设备标识符。
5.根据权利要求1所述的设备,其中所述至少一个处理器还被配置为:
自动地生成所述设备的设备地址;
接收指示第二设备具有所述设备地址的消息;
将所述设备的设备标识符与所述第二设备的第二设备标识符进行比较;以及
响应于将所述设备标识符与所述第二设备标识符进行的比较来将所述设备地址分配给所述设备。
6.根据权利要求1所述的设备,其中,所述网络接口被配置为耦合到控制器区域网。
7.根据权利要求1所述的设备,其中,所述非易失性存储器是电可擦除可编程只读存储器。
8.根据权利要求1所述的设备,其中,所述RAM是静态随机存取存储器。
9.一种用于生成设备标识符的方法,所述方法包括:
指定未初始化的随机存取存储器(RAM)的区;
使用来自所述未初始化的RAM的区的数据生成网络上的设备的设备标识符;
将所述设备标识符储存在非易失性存储器中;以及
将所述设备标识符分配给所述设备。
10.根据权利要求9所述的方法,还包括响应于将所述设备标识符分配给所述设备来设置设备标识符标志。
11.根据权利要求9所述的方法,其中,生成所述设备标识符包括使用所述数据作为伪随机数字生成器的种子来生成所述设备标识符。
12.根据权利要求9所述的方法,其中,生成所述设备标识符包括使用真随机数字生成器来生成所述设备标识符。
13.根据权利要求9所述的方法,其中,将所述设备标识符储存在所述非易失性存储器中包括将所述设备标识符储存在电可擦除可编程只读存储器中。
14.根据权利要求9所述的方法,其中,生成所述网络上的所述设备的所述设备标识符包括生成控制器区域网上的所述设备的所述设备标识符。
15.根据权利要求9所述的方法,还包括以下动作:
自动地生成所述设备的设备地址;
接收指示第二设备具有所述设备地址的消息;
将所述设备的所述设备标识符与所述第二设备的第二设备标识符进行比较;以及
响应于将所述设备标识符与所述第二设备标识符进行的比较将所述设备地址分配给所述设备。
16.根据权利要求9所述的方法,其中,指定所述RAM的区包括指定静态随机存取存储器的区。
17.一种非暂时性计算机可读介质,其上存储有用于生成设备标识符的指令序列,所述指令序列包含将引起至少一个处理器执行以下动作的指令:
指定未初始化的随机存取存储器(RAM)的区;
生成网络上的设备的设备标识符,其中,所述设备标识符是使用来自所述未初始化的RAM的区的数据生成的;
将所述网络设备标识符储存在非易失性存储器中;以及
将所述设备标识符分配给所述设备。
18.根据权利要求17所述的非暂时性计算机可读介质,其中所述指令序列还包括将引起所述至少一个处理器执行以下动作的指令:
自动地生成所述设备的设备地址;
接收指示第二设备具有所述设备地址的消息;
将所述设备的所述设备标识符与所述第二设备的第二设备标识符进行比较;以及
响应于将所述设备标识符与所述第二设备标识符进行的比较来将所述设备地址分配给所述设备。
19.根据权利要求17所述的非暂时性计算机可读介质,其中,所述指令序列包含另外的指令,所述另外的指令将引起所述至少一个处理器响应于将所述设备标识符分配给所述设备来设置设备标识符标志。
20.根据权利要求17所述的非暂时性计算机可读介质,其中,所述指令序列包括另外的指令,所述另外的指令将引起所述至少一个处理器使用来自所述未初始化的RAM的区的所述数据作为伪随机数字生成器的种子。
CN201510954089.XA 2014-12-17 2015-12-17 用于生成唯一设备id的系统和方法 Active CN105721621B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/573,527 2014-12-17
US14/573,527 US9880929B2 (en) 2014-12-17 2014-12-17 Systems and methods for generating a unique device id

Publications (2)

Publication Number Publication Date
CN105721621A true CN105721621A (zh) 2016-06-29
CN105721621B CN105721621B (zh) 2020-01-10

Family

ID=55077341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510954089.XA Active CN105721621B (zh) 2014-12-17 2015-12-17 用于生成唯一设备id的系统和方法

Country Status (4)

Country Link
US (1) US9880929B2 (zh)
EP (1) EP3035649B1 (zh)
CN (1) CN105721621B (zh)
DK (1) DK3035649T3 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108781219A (zh) * 2016-03-14 2018-11-09 艾锐势有限责任公司 电缆调制解调器反克隆
CN110046503A (zh) * 2017-12-01 2019-07-23 意法半导体公司 安全固件提供和设备绑定机制
CN110908715A (zh) * 2018-09-18 2020-03-24 三星电子株式会社 多装置的配对系统及配对方法
CN112100580A (zh) * 2020-08-13 2020-12-18 宁波吉利汽车研究开发有限公司 一种小内存控制器的验签方法、装置及介质
CN112560118A (zh) * 2019-09-26 2021-03-26 杭州中天微系统有限公司 用于提供可重置的标识符的配置装置和配置方法
CN113157249A (zh) * 2021-04-22 2021-07-23 北京奇艺世纪科技有限公司 标识号生成方法、装置、电子设备及存储介质
CN115242506A (zh) * 2022-07-21 2022-10-25 深圳市汇顶科技股份有限公司 电子设备身份验证方法、装置、系统及设备、存储介质
CN115296954A (zh) * 2019-06-10 2022-11-04 邦纳工程公司 具有实际的和虚拟的从设备地址和从设备传感器的modbus系统
US11860672B2 (en) 2018-03-02 2024-01-02 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10735200B2 (en) * 2015-03-27 2020-08-04 Comcast Cable Communications, Llc Methods and systems for key generation
DE102015216886A1 (de) * 2015-09-03 2017-03-09 Robert Bosch Gmbh Verfahren, Vorrichtung und Computerprogramm zum Betreiben einer Datenverarbeitungsanlage
KR20180067756A (ko) * 2016-12-12 2018-06-21 에스케이하이닉스 주식회사 제어 장치, 그 제어 장치를 포함하는 반도체 시스템 및 그 반도체 시스템의 구동 방법
JP6717214B2 (ja) * 2017-01-18 2020-07-01 株式会社オートネットワーク技術研究所 通信装置、通信システム及びコンピュータプログラム
CN108647308A (zh) * 2018-05-09 2018-10-12 曙光信息产业(北京)有限公司 分布式系统的序列号生成方法及装置
US10942909B2 (en) * 2018-09-25 2021-03-09 Salesforce.Com, Inc. Efficient production and consumption for data changes in a database under high concurrency
DE102019128651A1 (de) * 2019-10-23 2021-04-29 Infineon Technologies Ag Vorrichtung für einen digitalen Eindraht-Bus, Master-Vorrichtung, Sensor und Verfahren zum Zuweisen von Adressen an mehrere Vorrichtungen auf einem digitalen Eindraht-Bus
CN114885032B (zh) * 2022-04-29 2023-07-14 苏州浪潮智能科技有限公司 一种设备信息生成并显示方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011018414A2 (en) * 2009-08-14 2011-02-17 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system
US20110300943A1 (en) * 2010-06-04 2011-12-08 Devine Graeme J Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
US20140040338A1 (en) * 2011-04-05 2014-02-06 Intrinsic Id B.V. Random number generating system based on memory start-up noise

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250375B2 (en) * 2008-04-25 2012-08-21 Microsoft Corporation Generating unique data from electronic devices
US20120254958A1 (en) * 2011-03-30 2012-10-04 Honeywell International Inc. Method to achieve coexistence of multiple wireless networks using unique network identifiers
KR101373283B1 (ko) * 2012-04-23 2014-03-11 한국전자통신연구원 비휘발성 메모리를 이용한 이중 트랙 방식의 난수 발생 방법 및 이를 위한 장치
US9953166B2 (en) * 2013-07-04 2018-04-24 Microsemi SoC Corporation Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor
US9219722B2 (en) * 2013-12-11 2015-12-22 Globalfoundries Inc. Unclonable ID based chip-to-chip communication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011018414A2 (en) * 2009-08-14 2011-02-17 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system
US20110300943A1 (en) * 2010-06-04 2011-12-08 Devine Graeme J Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
US20140040338A1 (en) * 2011-04-05 2014-02-06 Intrinsic Id B.V. Random number generating system based on memory start-up noise

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DANIEL E. HOLCOMB ET AL.: ""Power-Up SRAM State as an Identifying Fingerprint and Source of True Random Numbers"", 《IEEE TRANSACTIONS ON COMPUTERS》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108781219A (zh) * 2016-03-14 2018-11-09 艾锐势有限责任公司 电缆调制解调器反克隆
CN108781219B (zh) * 2016-03-14 2021-08-03 艾锐势有限责任公司 电缆调制解调器反克隆
CN110046503A (zh) * 2017-12-01 2019-07-23 意法半导体公司 安全固件提供和设备绑定机制
US11860672B2 (en) 2018-03-02 2024-01-02 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD
CN110908715A (zh) * 2018-09-18 2020-03-24 三星电子株式会社 多装置的配对系统及配对方法
CN110908715B (zh) * 2018-09-18 2022-03-22 三星电子株式会社 多装置的配对系统
CN115296954A (zh) * 2019-06-10 2022-11-04 邦纳工程公司 具有实际的和虚拟的从设备地址和从设备传感器的modbus系统
CN115296954B (zh) * 2019-06-10 2024-05-07 邦纳工程公司 具有实际的和虚拟的从设备地址和从设备传感器的modbus系统
CN112560118A (zh) * 2019-09-26 2021-03-26 杭州中天微系统有限公司 用于提供可重置的标识符的配置装置和配置方法
CN112100580A (zh) * 2020-08-13 2020-12-18 宁波吉利汽车研究开发有限公司 一种小内存控制器的验签方法、装置及介质
CN112100580B (zh) * 2020-08-13 2022-08-02 宁波吉利汽车研究开发有限公司 一种小内存控制器的验签方法、装置及介质
CN113157249B (zh) * 2021-04-22 2023-09-08 北京奇艺世纪科技有限公司 标识号生成方法、装置、电子设备及存储介质
CN113157249A (zh) * 2021-04-22 2021-07-23 北京奇艺世纪科技有限公司 标识号生成方法、装置、电子设备及存储介质
CN115242506A (zh) * 2022-07-21 2022-10-25 深圳市汇顶科技股份有限公司 电子设备身份验证方法、装置、系统及设备、存储介质
CN115242506B (zh) * 2022-07-21 2024-04-12 深圳市汇顶科技股份有限公司 电子设备身份验证方法、装置、系统及设备、存储介质

Also Published As

Publication number Publication date
CN105721621B (zh) 2020-01-10
DK3035649T3 (da) 2017-11-27
EP3035649A1 (en) 2016-06-22
US9880929B2 (en) 2018-01-30
US20160179663A1 (en) 2016-06-23
EP3035649B1 (en) 2017-09-13

Similar Documents

Publication Publication Date Title
CN105721621A (zh) 用于生成唯一设备id的系统和方法
US20190394113A1 (en) Systems and methods to automatically evaluate blockchain-based solution performance
CN103150514B (zh) 一种基于移动设备的可信模块及其可信服务方法
CN104635901A (zh) 用于保护虚拟化设施的系统和方法
CN110324399B (zh) 将集群意识纳入设施管理门户
CN103403732B (zh) 输入输出操作的处理方法和装置
CN111258725A (zh) 一种基于区块链的数据处理方法、装置、设备和介质
CN108509210A (zh) 自动更新基本输入输出系统的系统与方法
CN106462206B (zh) 用于监控具有不同冗余度等级的ups组的配置的系统和方法
US11070562B2 (en) Fine-grained IoT access control via device proxies and SDN-based micro-segmentation
CN106844213A (zh) 一种前端自动化测试方法及装置
JPWO2013128648A1 (ja) 情報処理装置及び電子制御ユニット及び情報処理方法及びプログラム
CN110995825B (zh) 一种智能合约的发布方法、智能节点设备及存储介质
CN105430118A (zh) 一种mac地址生成方法及装置
US20150370235A1 (en) Analyzing scada systems
CN103544121A (zh) 一种基于微服务系统管理槽位号的方法、设备及系统
CN113872951B (zh) 混合云安全策略下发方法、装置、电子设备和存储介质
CN105528365A (zh) 用于管理可执行文件的方法和装置
CN101460935A (zh) 支持分区平台中的快速访问
CN105144073A (zh) 可移除存储设备身份和配置信息
US11102091B2 (en) Analyzing SCADA systems
CN114422164B (zh) 五元组表项下发装置及方法
US11349926B1 (en) Protected smart contracts for managing internet of things devices
CN114553608A (zh) 用于接入云平台的方法和装置
CN113657914A (zh) 基于区块链的商品溯源方法、计算机装置及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant