打印
[STM32F1]

请问:带网络的单片机批量生产时MAC地址如何处理?

[复制链接]
6412|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
946098169|  楼主 | 2015-9-30 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如STM32F107,有的单片机出厂时是没有提供MAC地址的,厂家也不会提供MAC地址,如果自己把唯一的MAC地址编进程序岂不是每颗芯片的代码都不同了,怎么解决批量生产的这个问题?
沙发
suxindg| | 2015-9-30 14:53 | 只看该作者
不要写在程序代码里,写在类似于EEPROM或flash等掉电不丢失的存储器中,在程序中去读取这个数据就行了!

使用特权

评论回复
板凳
946098169|  楼主 | 2015-9-30 15:04 | 只看该作者
suxindg 发表于 2015-9-30 14:53
不要写在程序代码里,写在类似于EEPROM或flash等掉电不丢失的存储器中,在程序中去读取这个数据就行了! ...

这个我知道,现在关键问题是批量生产,我是打算程序里是统一的,程序烧进单片机后再通过联网修改,但这样也是每颗芯片都要修改一次,就是每块板子都要插拔配置一下MAC,不知道有没有其他能统一批量修改的方法

使用特权

评论回复
地板
457344370| | 2015-9-30 21:52 | 只看该作者
用自带的96位ID做**可不可以?

使用特权

评论回复
5
```| | 2015-10-1 00:38 | 只看该作者
946098169 发表于 2015-9-30 15:04
这个我知道,现在关键问题是批量生产,我是打算程序里是统一的,程序烧进单片机后再通过联网修改,但这样 ...

正规大厂,MAC是要买的,跟那个IEEE(?)
其实买到的就是一个开始地址,再加数量。

量产时就要考虑MAC地址的烧录。

量产时,产线可架设单独的烧录站和测试站。
烧录站只负责烧录Image,测试站再做硬件检测之类。
假设烧录采用J-Flash,J-Flash里提供了SN功能,可以自动累加,而且可以设定累加值。可以设定SN烧录的位置。
这个SN可以是序列号,MAC等等。
如果自己编写量产工具,要支持config部分(比如MAC)的烧录的。

使用特权

评论回复
6
泰山特曲123| | 2015-10-1 13:05 | 只看该作者
5楼正解,用提供序列号自增的烧录器,那么每片芯片的mac就可以不同

使用特权

评论回复
7
yulunna| | 2015-10-1 17:48 | 只看该作者
可以将年月日时分秒作为MAC值直接写入,这样可以保重自己每烧录的一个程序都不会重复

使用特权

评论回复
8
runningwzf| | 2015-10-1 21:32 | 只看该作者
如果你的设备要接入公网,那就只能用IEEE认可的部分+自定义部分
不过一般我们都很难弄到IEEE的,所以你可以盗用一些非主流厂商的IEEE部分
自定义部分就容易,初始值就是用CPU或者Flash的ID经过一个算法生成,但是在应用程序中一定要提供一个改变MAC的命令

使用特权

评论回复
9
946098169|  楼主 | 2015-10-8 09:28 | 只看该作者
``` 发表于 2015-10-1 00:38
正规大厂,MAC是要买的,跟那个IEEE(?)
其实买到的就是一个开始地址,再加数量。

明白了,谢谢大家!

使用特权

评论回复
10
决狐疑| | 2015-10-8 09:51 | 只看该作者
5L正解

使用特权

评论回复
11
豆腐块| | 2015-10-8 10:53 | 只看该作者
假设烧录采用J-Flash,J-Flash里提供了SN功能,可以自动累加,而且可以设定累加值。可以设定SN烧录的位置。

5楼大神,学习了

使用特权

评论回复
12
qq280572| | 2015-10-8 11:04 | 只看该作者
如果不是内部使用,建议还是正规渠道获得MAC地址,跟网卡芯片厂家购买或者获取。

使用特权

评论回复
13
chen131474| | 2016-5-15 14:57 | 只看该作者
楼子有联系方式吗?关于mac合作

使用特权

评论回复
14
lcmkl2008| | 2019-2-25 17:08 | 只看该作者
假设烧录采用J-Flash,J-Flash里提供了SN功能,可以自动累加,而且可以设定累加值。可以设定SN烧录的位置。这个SN可以是序列号,MAC等等。
可以聊一下么,加个QQ673909979

使用特权

评论回复
15
lcmkl2008| | 2019-2-25 17:09 | 只看该作者

使用特权

评论回复
16
lcmkl2008| | 2019-2-25 17:10 | 只看该作者

使用特权

评论回复
17
lcmkl2008| | 2019-2-25 21:14 | 只看该作者
泰山特曲123 发表于 2015-10-1 13:05
5楼正解,用提供序列号自增的烧录器,那么每片芯片的mac就可以不同

第一种做法:通过cmdline的方式:因为在Linux起来的时候我们可以通过cat /proc/cmdline查看uboot传递给内核的一些参数,我们可以将mac地址的信息放入到cmdline中传递过来,到时候在内核里面直接解析,这个比较方便

第二种做法:将 mac地址以固定的格式比如:‘m’,'a','c',"xx:xx:xx:xx:xx:xx"这样的形式写入到比如nvram的固定的位置,然后内核初始化的时候每次都可以从nvram固定的地址去读mac地址的内容然后去设置。
方法一的好处就是,不需要占用nvram的空间,直接通过cmdline传递,缺点是:在内核中解析mac参数稍微麻烦一点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

102

帖子

1

粉丝