一种嵌入式ARM设备自动生成和设置MAC地址的方法与流程
未命名
10-09
阅读:164
评论:0
一种嵌入式arm设备自动生成和设置mac地址的方法
技术领域
1.本发明涉及计算机网络技术领域,特别涉及一种嵌入式arm设备自动生成和设置mac地址的方法。
背景技术:
2.在计算机网络技术领域,嵌入式设备进行以太网通信时,网口配置需要用到mac地址。mac地址是一组48位二进制数,是一种在计算机网络中用于识别各个网络设备的唯一标识符。mac地址不能重复,否则网络中的设备通信就会出现问题。
3.在现有的技术中,生成和设置mac地址包括固件生成、电子注册芯片生成、软件生成、串口或网口写入、等多种方法。其中,固件程序生成统一的mac地址,每台设备的网口mac地址都是重复的;软件随机生成mac地址,随机生成的结果依然有mac地址重复的可能性;购买mac地址或用电子注册芯片生成mac地址,虽然保证了唯一性,但是增加了额外软件或硬件成本;上位机指定mac地址,再由串口或网口设置mac地址的方法,每台设备需要运行软件进行手动设置,方法繁琐。
4.因此,设计一种能够保证mac地址唯一性,又能节省成本,操作简单,无需人工干预的自动生成和设置mac地址的方法是值得探讨的问题。
技术实现要素:
5.本发明提供一种嵌入式arm设备自动生成和设置mac地址的方法,旨在解决现有mac地址生成方法无法兼顾mac地址唯一性、操作简单方便、低成本的问题。
6.为实现上述目的,本发明提供一种嵌入式arm设备自动生成和设置mac地址的方法,包括:
7.基于嵌入式固件程序,在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分;
8.基于所述唯一序列号部分,通过预设处理生成唯一的mac地址,并自动设置为网口的mac地址。
9.在一些实施例中,所述在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分包括:
10.通过linux内核驱动程序,和目标芯片通信,读取目标芯片的rom id编码,提取唯一序列号。
11.在一些实施例中,基于所述唯一序列号部分,通过预设处理生成唯一的mac地址,包括:
12.将所述唯一序列号部分与设备类型信息,组合生成所述mac地址,组合方式不限定先后顺序;其中,
13.所述预设处理包括基于所述唯一序列号进行算法处理,以保证mac地址的唯一性。
14.在一些实施例中,将所述唯一序列号部分与设备类型信息,组合生成所述mac地址
的步骤,包括:
15.将所述设备类型信息作为第一个字节,将所述唯一序列号部分作为后续字节,组合生成所述mac地址。
16.在一些实施例中,所述目标芯片为内置rom id的温度传感芯片,所述id序列号为64位的rom id编码,所述唯一序列号部分为所述64位id序列号的第2至第5个字节部分。
17.在一些实施例中,所述目标芯片为qspi nor flash芯片,所述唯一序列号为芯片内部的64位unique id number。
18.在一些实施例中,所述在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分的步骤之前还包括:
19.基于嵌入式固件程序,通过设备树文件配置目标芯片和网口节点的硬件参数,完成mac地址初始化。
20.本发明技术方案提供一种嵌入式arm设备自动生成和设置mac地址的方法,包括基于嵌入式固件程序,在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分;基于所述唯一序列号部分,通过预设处理生成唯一的mac地址,并自动设置为网口的mac地址。其中,利用目标芯片的唯一序列号作为mac地址的生成依据,可以提高mac地址的安全性和唯一性,解决了mac地址重复的风险,也不需要额外购买mac地址,降低成本。利用嵌入式固件程序,自动生成和设置mac地址的方法,实现开机启动过程中自动运行,解决了设备开机后人工手动操作软件的流程繁琐问题。
附图说明
21.图1为本发明一实施例中嵌入式arm设备自动生成和设置mac地址的方法;
22.图2为本发明一实施例中嵌入式arm设备自动生成和设置mac地址的方法的软件流程示意图。
具体实施方式
23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.具体的,在现有技术中,采用固件生成mac地址,方法简单无需硬件成本,但一个固件只能对应一个mac地址,网络中多台设备具有相同固件时mac地址会重复。采用软件手动生成mac地址,可以由设备软件随机生成一组数据作为mac地址,或者向ieee组织购买mac地址,再手动运行软件将地址写入设备,增加了操作复杂度。随机生成的地址,在同一网络中具有较多设备情况下,仍然有mac地址重复的可能性,而购买mac地址,增加软件成本。串口或网口写入mac地址,可以通过人工写入一组特定的mac地址,可以保证不同设备有不同地址,但每台设备需要手动运行软件设置参数,方法繁琐。用电子注册芯片生成mac地址,通过购买专用的电子注册芯片如ds2411,或者带mac地址的eeproom芯片24aa02e48/24aa025e48,芯片厂家可以保证序列号不重复,进而生成的mac地址不会重复,但这种方法需要额外购买芯片和设计相应硬件电路,增加额外的硬件成本。
25.对于以上问题,参阅图1所示,本技术技术方案提供一种嵌入式arm设备的自动生成和设置mac地址的方法,旨在解决现有mac地址生成方法无法兼顾mac地址唯一性、操作简单方便、降低成本的问题。
26.为实现上述目的,本发明提出一种嵌入式arm设备的自动生成和设置mac地址的方法,包括:
27.步骤s110,基于嵌入式固件程序,在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分。
28.通常,在嵌入式设备中,一般都会配备温度传感芯片用来检测板卡温度,配备qspi flash芯片用来存放启动固件镜像文件。某些特殊型号的温度传感器芯片内置rom id,常用的qspi nor flash芯片型号都具备唯一序列号。因此可将设备中的温度传感芯片或者qspi nor flash作为设备的目标芯片。
29.以下技术方案以目标芯片为温度传感芯片为例进行说明,本发明的目标芯片不限于温度传感芯片或者qspi nor flash芯片,只需要芯片内部具备唯一序列号即可。
30.其中,温度传感芯片的id序列号为64位id序列号,并于温度传感芯片上设置有通信接口。示例性的,温度传感芯片为敏源传感公司的mts01w型号温度传感芯片,测温精度
±
0.1℃,精度区间+20℃~+70℃,通过单总线1-wire和i2c接口进行通信读取温度信息。此外,芯片具有64位唯一序列号(rom编码),嵌入式arm可以通过单总线1-wire和芯片通信读取rom id。
31.该温度传感芯片的64位id序列号如表1-1所示:
32.表1-1:温度传感芯片的64位rom id编码
[0033][0034]
可以看出,温度传感芯片的64位id序列号中共分为8个字节共计64位,从中提取5个字节(xx2~xx6)用于后续mac地址处理,其中第2字节至第5字节的4个字节(xx2、xx3、xx4、xx5)为唯一序列号部分。xx6为温度传感器芯片型号标记位,mts01w芯片为0xc1。
[0035]
目标芯片为qspi nor flash芯片时,采用qspi接口通信,芯片内部的unique id number共计64位都是唯一的,如表1-2的8个字节zz1~zz8,提取其中5个字节zz2~zz6用于后续生成mac地址。
[0036]
表1-2:qspi nor flash芯片的64位unique id number
[0037][0038]
步骤s120,基于所述唯一序列号部分,通过预设处理生成唯一的mac地址,并自动
设置为网口的mac地址。
[0039]
其中,mac地址基于目标芯片的唯一序列号生成,可以确保生成的mac地址足够唯一,进而与任何现有的mac地址不冲突。该预设处理可以采用任何适当的算法。
[0040]
在一些实施例中,步骤s120包括:
[0041]
将唯一序列号部分与设备类型信息,组合生成mac地址。
[0042]
其中,直接将温度传感芯片中的唯一序列号部分作为设备mac地址中的一部分,进而,基于温度传感芯片的唯一序列号生成的mac地址也是唯一的。同时,还包括将设备类型信息与温度传感芯片中的唯一序列号进行组合,共同组合成设备的mac地址。
[0043]
参阅表2-1,表2
ꢀ‑
1为基于唯一序列号部分生成的设备mac地址序列号。
[0044]
表2-1:温度传感芯片rom id生成48位mac地址字节顺序
[0045][0046]
其中,mac地址包括6个字节,将设备类型信息作为第一个字节,将唯一序列号部分作为中间字节,将芯片型号标记位作为最后一个字节,组合生成48位mac地址。
[0047]
根据表2-1所示,mac地址将48位序列号分割为第1字节至第6字节共6个字节。其中,第2字节~第5字节用于生成从温度传感芯片获取唯一序列号xx1~xx4,该序列号是保证mac地址唯一性的关键部分;在第1字节生成数值yy,用于作为设备类型信息,例如02;在第6字节生成数值xx5,为芯片型号标记位。
[0048]
如果目标芯片为qspi nor flash芯片,unique id number唯一序列号作为设备mac地址中的一部分,将设备类型信息与唯一序列号zz2~zz6进行组合,共同组合成设备的mac地址,如下表2-2所示。
[0049]
表2-2:qspi nor flash芯片unique id生成48位mac地址字节顺序
[0050][0051]
在一些实施例中,在步骤s120之前还包括:
[0052]
在arm的固件程序中,针对多种设备配置相应的设备类型信息。嵌入式arm设备烧录对应的固件,设备开机、程序启动后就可以对网口配置相应的mac地址,通过mac地址的第一个字节来区别设备类型。
[0053]
在一些实施例中,步骤s120还可以是包括:
[0054]
将唯一序列号部分经预设算法计算处理;之后将计算处理得到的数据与设备类型信息,组合生成所述mac地址。
[0055]
其中,预设算法计算处理即将id序列号中的唯一序列号部分进行计算变换。示例性的,从温度传感芯片获取唯一序列号xx2~xx6,该计算方法可以是,xx2+n、xx3+n、xx4+n、
xx5+n和xx6+n的计算方式。其中,n可以是一个常数值。经计算得到的数据也是唯一的。进而可得到如表2-2所示的mac地址字节顺序。
[0056]
表2-3:48位mac地址预设处理的字节顺序
[0057][0058]
参阅图2所示,在一些实施例中,实现以上方法的软件流程如下:
[0059]
步骤s210,修改设备树文件,配置目标芯片的硬件参数,配置网口的硬件参数,完成网口mac地址的初始化,设定一个初始值。
[0060]
其中,目标芯片可以是温度传感器mts01w,配置1-wire单总线通信接口。目标芯片也可以是qspi nor flash,配置qspi通信接口。
[0061]
步骤s220,修改linux内核驱动程序,适配mts01w的单总线通信协议,发送读取rom id的命令,获取rom id编码,提取唯一序列号,和设备类型信息组合,按照预设处理,生成mac地址。
[0062]
其中,目标芯片为qspi nor flash时,修改驱动程序适配qspi通信接口,发送读取unique id number的命令,获取唯一序列号,和设备类型信息组合,按照预设处理,生成mac地址。
[0063]
其中,将设备类型信息,预先写入驱动程序中生成mac地址程序部分的配置参数中。
[0064]
步骤s230,修改linux内核驱动程序,完成网口mac地址的更新,将mac地址更新为s220生成的mac地址。
[0065]
以上步骤,对于arm设备的固件程序,包括设备树和内核驱动程序等,在修改编译打包生成启动镜像文件后,只需要烧录到arm设备中,固件程序就可以自动完成自动读取唯一序列号,生成mac地址,设置mac地址的所有操作。设备开机启动后就可以给网口设置具有唯一序列号的mac地址,整个过程无需人工干预,也不需要设备启动后再手动运行软件修改mac地址。
[0066]
综上,本发明提供的一种嵌入式arm设备自动生成和设置mac地址的方法,使用目标芯片的唯一序列号作为mac地址的生成依据,可以提高mac地址的安全性和唯一性,解决了mac地址重复的风险,也不需要购买mac地址的成本,降低了成本,也让整个操作更加简单。对于原来就配备温度传感芯片的嵌入式arm设备,只需要选择合适的芯片型号,不需要额外购买硬件芯片。对于原来配备qspi nor flash芯片的嵌入式arm设备,不需要更改硬件,只需要修改固件即可实现以上功能。
[0067]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过arm固件程序来操作相关的硬件来完成,所述的arm固件程序存储于arm设备的存储介质中,该固件程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中可以是嵌入式设备的arm芯片,也可以是zynq芯片的arm部分,或者其他包含arm核心的芯片。
[0068]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0069]
以上所述的仅为本发明的部分或优选实施例,无论是文字还是附图都不能因此限制本发明保护的范围,凡是在与本发明一个整体的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明保护的范围内。
技术特征:
1.一种嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,包括:基于嵌入式固件程序,在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分;基于所述唯一序列号部分,通过预设处理生成唯一的mac地址,并自动设置为网口的mac地址。2.根据权利要求1所述的嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,所述在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分包括:通过linux内核驱动程序,和所述目标芯片通信,读取目标芯片的rom id编码,提取唯一序列号。3.根据权利要求1所述的嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,基于所述唯一序列号部分,通过预设处理生成唯一的mac地址,包括:将所述唯一序列号部分与设备类型信息,组合生成所述mac地址,组合方式不限定先后顺序;其中,所述预设处理包括基于所述唯一序列号进行算法处理,以保证mac地址的唯一性。4.根据权利要3所述的嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,将所述唯一序列号部分与设备类型信息,组合生成所述mac地址的步骤,包括:将所述设备类型信息作为第一个字节,将所述唯一序列号部分作为后续字节,组合生成所述mac地址。5.根据权利要求1所述的嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,所述目标芯片为内置rom id的温度传感芯片,所述id序列号为芯片内部64位的rom id编码,所述唯一序列号部分为所述64位id序列号的第2至第5个字节部分。6.根据权利要求1所述的嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,所述目标芯片为qspi nor flash芯片,所述唯一序列号为芯片内部的64位unique id number。7.根据权利要求1所述的嵌入式arm设备自动生成和设置mac地址的方法,其特征在于,所述在设备开机时自动读取目标芯片的rom id编码,提取其中的唯一序列号部分的步骤之前还包括:基于嵌入式固件程序,通过设备树文件配置目标芯片和网口节点的硬件参数,完成mac地址初始化。
技术总结
本发明公开一种嵌入式ARM设备自动生成和设置MAC地址的方法。该方法包括:基于嵌入式固件程序,在设备开机时自动读取目标芯片的ROM ID编码,提取其中的唯一序列号部分;基于唯一序列号部分,通过预设处理生成唯一的MAC地址,并自动设置为网口的MAC地址。本发明技术方案,在保证生成MAC地址唯一性的前提下,可以降低成本,且无需人工干预自动设置生成的MAC地址。且无需人工干预自动设置生成的MAC地址。且无需人工干预自动设置生成的MAC地址。
技术研发人员:罗苗 张凯斌 李文杰 张远明 余琪
受保护的技术使用者:湖南科洛德科技有限公司
技术研发日:2023.07.06
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种电池极片辊压机轧辊 下一篇:一种代码作者归属确定方法、装置、设备及介质
