ARM 处理器平台 Ethernet Compliance 测试流程示例

news/2024/12/23 20:16:09 标签: ARM, Ethernet, Compliance, NXP, iMX8MM

By Toradex秦海

1). 简介

为了保证基于IEEE 802.3 协议设计的以太网设备接口可以互相兼容互联互通,需要进行 Ethernet Compliance 一致性测试,相关的技术原理说明请参考如下文章,本文就不赘述,主要展示基于 NXP i.MX8M Mini ARM 处理器平台进行 1000M/100M/10M 以太网端口进行一致性测试的测试流程。

Toradex 以太网一致性测试

本文所示例的平台来自于 Toradex Verdin i.MX8MM 嵌入式平台。

2. 准备

a). Verdin i.MX8MM ARM核心版配合Dahlia载板作为DUT(Device Under Test) 设备

b).至少1GHz 带宽和 4MS 存储的高速示波器,比如 Teledyne LeCroy WaveMaster 808Zi-B

c).LeCroy TF-ENET-B 测试夹具

d).其他需要的线缆和附件

3). 测试环境硬件连接

a). 硬件连接示意图请见如下

b). 首先将 LeCroy 808Zi-B 高速示波器 (配置 BNC-SMA 适配器)通过 SMA 线缆和 LeCroy TF-ENET-B 测试夹具SMA 端口进行连接,具体连接的端口依据需要测试的项目来调整。

c). 然后将 LeCroy TF-ENET-B 测试夹具通过以太网线缆和DUT 待测试的以太网口进行连接,同样测试夹具一侧具体连接的网口依据需要测试的项目来对应调整。

4). DUT 端软件配置

a). 首先根据你需要测试的DUT 配置的 PHY 芯片型号和对应厂家获取配置进入测试模式的方法,Verdin i.MX8MM 核心板上面部署的是来自于 Microchip 公司的 KSZ9131 PHY 芯片,可以通过如下资料了解配置进入测试模式的寄存器配置。

https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ApplicationNotes/ApplicationNotes/AN2686-Ethernet-Compliance-Test-10BASET-100BASETX-1000BASET.pdf

b). Toradex 基于标准 mii-tool工具源码修改添加了对于Microchip KSZ9x31 进入测试模式的配置以便于测试

c). 本文以 KSZ9131 以太网口 100M Base-TX 模式一致性测试为例,在 Verdin iMX8MM 上面通过Toradex 修改定制的 mii-tool 工具配置 100mbit 测试模式,其他 1000M Base-T / 10M Base-T 模式可以类似配置。

// mii-tool -p ksz9031 [-i interface] [mode]

-------------------------------

root@verdin-imx8mm-07276322:~# ./mii-tool-64-bit -p ksz9031 -i eth0 -2

eth0: negotiated 1000baseT-FD flo[  278.768110] fec 30be0000.ethernet eth0: Link is Down

w-control, link ok

 registers for interface eth0 before:

    1140 796d 0022 1642 05e1 cde1 006d 2001

    6001 0200 3800 0000 0000 4002 0010 2000

    0000 00f0 0000 bc7e 54fe 0000 8021 1000

    0000 0000 4000 0500 2400 0000 fa00 0348

ksz9031 selected

set for 100mbit - idle waveform (Scrambled Idles)

 registers for interface eth0 after:

    2100 7949 0022 1642 05e1 0000 0064 2001

    0000 0200 0000 0000 0000 4002 0010 2000

    0000 00f0 0000 b078 5002 0000 8021 1000

    0000 0000 4000 0502 00c0 0000 fa00 0328

[  281.679702] fec 30be0000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off

[  281.687523] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

-------------------------------

d). 此时DUT 测试模式已经准备好,可以通过连接的高速示波器来进行测试了。

5). 通过高速示波器进行以Ethernet Compliance 测试

a). 高速示波器一般已经预置了Ethernet Compliance 测试预设菜单,具体可以根据实际使用的示波器手册来查询,本文基于 LeCroy WaveMaster 808Zi-B 示波器配置来进行说明

./ 首先选择 “Analysis”-> “QualiPHY”-> “Standard:”-> “ENET”

./ 然后选择 “Configuration:”-> “100BASE-TX All tests”

./ 最后打开 “Edit/View Configuration:”-> “Test Selector”, 仅选择 “100BASE-TX”相关测试项

b). 配置完成后,点击“Start”开始测试,然后录入相关测试基本信息,测试过程中需要根据测试项目提示调整LeCroy TF-ENET-B 测试夹具两端的连接端口,测试完成后会自动生成测试报告,通过示波器的PDF 生成设置导出 PDF 测试报告文本。

6). 总结

本文基于NXP i.MX8MM ARM 处理器平台简单示例了 Ethernet Compliance 测试流程。


http://www.niftyadmin.cn/n/5796947.html

相关文章

【java 正则表达式 笔记】

文章目录 快速入门匹配中文或数字或大小写字母(一个或多个) 正则表达式底层实现(重要)mather.find() 完成的任务mather.group(0) 分析 正则表达式基本语法元字符转义字符区分大小写限定字符选择匹配符特殊字符字符匹配符定位符 分组、捕获和反向引用捕获特别分组反向引用经典结…

行数据转换为list的小工具

遇到email 邮件,收件人多的时候要以 ; 进行分隔 数据库 select 的条件 in (xxxxx,xxx)要用逗号分隔 python list 则是[xxxx,xxxx] 逗号分隔,而且还要添加 " " 整理这个数据实在麻烦 希望效果如下:这样以…

2024多模态大模型综述最新总结

摘要 随着人工智能技术的快速发展,多模态大模型(MLLM)已成为研究的新热点。这些模型以强大的大型语言模型(LLM)为基础,能够处理和理解多种模态信息,如文本、图像、视频和音频。本文综述了MLLM的…

详细ECharts图例3添加鼠标单击事件的柱状图

<!DOCTYPE html><html><head><meta charset"UTF-8"><script src"js/echarts.js"></script> <!-- 确保路径正确 --><title>添加鼠标单击事件的柱状图</title></head><body><div id&q…

【机器人】机械臂位置、轨迹和转矩控制概要

仍旧以 RRR&#xff08;三连杆&#xff09;为例&#xff0c;实现控制&#xff0c;可以采用以下步骤。这里的控制包括 位置控制轨迹控制 轨迹跟踪控制&#xff0c; 具体根据应用需求选择。以下是实现 RRR 机械臂控制的完整过程&#xff1a; 1. 定义机器人模型 通过 Denavit-H…

服务器上加入SFTP------(小白篇 1)

在服务器上配置 SFTP (基于 SSH 的文件传输协议) 通常比传统 FTP 更安全&#xff0c;因为它默认加密通信。以下是详细的配置步骤&#xff0c;以 Ubuntu 或 CentOS 为例。 1.服务器上加入SFTP------(小白篇 1) 2.加入SFTP 用户------(小白篇 2) 3.代码加入SFTP JAVA —&#…

Java-32 深入浅出 Spring - IoC 基础 启动IoC 纯注解方式 SpringConfig web.xml

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

Rust之抽空学习系列(五)—— 所有权(上)

Rust之抽空学习系列&#xff08;五&#xff09;—— 所有权&#xff08;上&#xff09; 1、什么是所有权 所有权是确保Rust程序安全的一种机制 安全则是指程序中没有未定义的行为未定义的行为是指在执行一段代码时&#xff0c;结果不可预测且未被编程语言指定的情况Rust的基…