打印
[以太网/USB/其他总线]

如何在linux多个 EVB-LAN8670-USB中设置 NodeID

[复制链接]
1746|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elearn123|  楼主 | 2024-12-20 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当在一个系统中使用多个 EVB-LAN8670-USB 板时,当前的 Linux 驱动程序 1v0 将每个板中的 NodeID 设置为相同的值。当有多个 USB 设备时,默认情况下,它们都具有相同的节点 ID。
使用 EVB-LAN8670-USB 时,可以通过 MDIO 访问 LAN8670 寄存器。
在 Linux 系统上,可以用mdio-tool实现 MDIO 读/写, 链接地址:
https://microchiptechnology.sharepoint.com/:f:/s/FileSection/EsRAtu8aemJGv4LvKfLn1OQBxC4hWzwQsJ8WOzBgZJEvZQ?e=JVdfNr
如果有 2 个 10BASE-T1S USB 设备,则可以按如下方式设置 NodeID:
示例:
$ sudo ./mdio-tool w eth1 0x1FCA02 0x0801
将 eth1 的 NodeID 设置为 1。
$ sudo ./mdio-tool w eth1 0x1FCA01 0x8000
使能eth1 PLCA。
$ sudo ./mdio-tool w eth2 0x1FCA02 0x0802
将 eth1 的 NodeID 设置为 2。
$ sudo ./mdio-tool w eth2 0x1FCA01 0x8000
使能 eth2  PLCA。

使用特权

评论回复
沙发
734774645| | 2024-12-21 17:17 | 只看该作者
通过指令写到地址里数据。

使用特权

评论回复
板凳
小灵通2018| | 2024-12-25 14:40 | 只看该作者
不同的应该是有不同的地址吧。

使用特权

评论回复
地板
t1ngus4| | 2025-2-18 13:23 | 只看该作者
在Linux系统中为多个EVB-LAN8670-USB 设备设置NodeID,通常需要结合硬件配置和软件操作。

使用特权

评论回复
5
su1yirg| | 2025-2-18 14:39 | 只看该作者
EVB-LAN8670-USB是基于10BASE-T1S以太网标准的评估板,支持单对以太网(SPE)通信。

使用特权

评论回复
6
p0gon9y| | 2025-2-18 15:40 | 只看该作者
NodeID是设备在网络中的唯一标识符,用于区分不同的设备。

使用特权

评论回复
7
q1d0mnx| | 2025-2-18 16:48 | 只看该作者
确保所有EVB-LAN8670-USB设备已正确连接到 Linux 主机。

使用特权

评论回复
8
y1n9an| | 2025-2-18 19:10 | 只看该作者
一般要安装 EVB-LAN8670-USB 的驱动程序和必要的工具。

使用特权

评论回复
9
lamanius| | 2025-2-18 20:25 | 只看该作者
如果驱动未安装,可以参考官方文档或使用以下命令安装

使用特权

评论回复
10
l1uyn9b| | 2025-2-18 22:06 | 只看该作者
EVB-LAN8670-USB 的 NodeID 通常通过以下方式设置:使用官方工具,微芯(Microchip)通常会提供专用的配置工具或脚本,用于设置 NodeID。下载并运行官方工具,按照提示为每个设备分配唯一的 NodeID

使用特权

评论回复
11
g0d5xs| | 2025-2-19 10:11 | 只看该作者
如果没有官方工具,可以通过以下步骤手动配置:识别设备,使用lsusb或dmesg命令找到每个设备的 USB 地址。

使用特权

评论回复
12
d1ng2x| | 2025-2-19 11:53 | 只看该作者
使用 libusb 或 pyusb 编写脚本,通过USB接口向设备发送配置命令

使用特权

评论回复
13
b5z1giu| | 2025-2-19 13:01 | 只看该作者
使用网络工具(如 ifconfig 或 ip 命令)检查设备是否正常工作。可以测试设备之间的通信,确保 NodeID 设置正确。

使用特权

评论回复
14
慢醇| | 2025-2-23 00:04 | 只看该作者
通过 MDIO 控制,你可以修改每个设备的 NodeID

使用特权

评论回复
15
jiekou001| | 2025-2-26 16:20 | 只看该作者
是不是可以用Python实现
import subprocess

# 获取网络接口的 MAC 地址
def get_mac_address(interface):
    result = subprocess.run(['ifconfig', interface], stdout=subprocess.PIPE)
    output = result.stdout.decode('utf-8')
    mac_address = output.split('ether ')[1].split(' ')[0]
    return mac_address

# 为每个设备分配 NodeID
devices = ['eth0', 'eth1']
node_ids = {}

for idx, dev in enumerate(devices):
    mac = get_mac_address(dev)
    node_ids[mac] = idx + 1  # 分配 NodeID

print(node_ids)

使用特权

评论回复
16
jiekou001| | 2025-2-26 16:21 | 只看该作者
设置完成后,验证每个设备的 NodeID 是否正确:

通过应用程序读取 NodeID。

检查设备是否按预期工作。

使用特权

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

本版积分规则

21

主题

29

帖子

1

粉丝