我的I210设计总结

2024-04-13 08:18
文章标签 设计 总结 i210

本文主要是介绍我的I210设计总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前段时间,因为项目需要做了一个I210的网卡设计。先做了miniPCIE的单板设计,后来又集到了主板上。第一次做此类设计,记录下心得体会。

1.典型原理图很容易从官网上下载到,改一下就可以用。简单说下就是PCIE信号注意收发信号匹配,供电电源可直接用芯片自带的转换。

2.做网卡一定要网络变压器的,选用你合适的。

3.硬件设计还是比较简单的,布线上都是老话,差分对等长,阻抗匹配。PCIE时钟线和数据线的阻抗值是不一样的,接网变的MDI差分线也是不一样的,切记!!电源上分了3种,注意输入输出走向,走线尽量宽,电源供不起来或者不足影响网络速度。四层板是必要的,不然很难做到信号和电源兼顾。当然,不需要千兆的话,随便来吧。

4.硬件的安全防护就看应用场合了,场合不同需要的防护也不同。一般至少要加个ESD的。

5.网卡芯片需要烧录配置的,I210可以配置成不同的模式,这个是必须要配置的,它默认的是1531,是不能工作的。

6.烧写工具和烧写文件都可以在官网上下载到。工具支持多种系统,ARM下的需要申请,到intel的嵌入式论坛。如果第一次使用这些工具和文件,估计会和我一样蒙,花些时间熟悉一下。老手就很easy了。

7.官网给的烧写文件都是同一个MAC,可用于测试,修改MAC需要修改配置文件。熟读了手册会知道改动配置需要同时修改校验码,不然烧不进去的。

8.配置文件要不要FLASH呢?I210是支持不用flash的,可以直接烧录到iNVM里面。但是,要想你的网卡适应性好,还是加上FLASH吧。我设计的网卡开始就直接用了iNvm,在windows和linux发行版都可以认出来,但是在arm下认不出来,好像默认只认1533的设备,才能装上驱动的,157b的情况下不加载驱动。改驱动应该是可以用的,没有试过,我直接加了flash,用了1533的配置。不管是哪种配置,在Windows下都没有问题。

9.顺带提一下I210使用的arm-linux内核配置。
有些 Linux 配置没有包含 i210 驱动你需要重新编译内核并将添加相应的驱动
[*]   Intel devices   │ │
 < >     Intel(R) PRO/100+ support (NEW) │ │
 < >     Intel(R) PRO/1000 Gigabit Ethernet support (NEW) │ │
 < >     Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support (NEW) 
 <*>     Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support 
 [*]       Intel(R) PCI-Express Gigabit adapters HWMON support (NEW)

10.网速测试。我使用了iperf这个工具测试网速,测得速度在970M/s,在不同系统上都有运行测试。设计是符合预期的。

11.第一次做此类设计,中间的错误很多,持续改进吧!

 

本来觉得有官网的东西还是更准确,但是总有朋友问哪里下载,现在贴出来。

https://downloadcenter.intel.com/download/19186

这个应该是新的工具,我用的不是这个,这个没有验证,大体看了下,应该是能用的。

部分烧写数据,比较关键的是MAC,校验,还有1533这里,其他的不影响调试,可以根据自己情况调整。

红色是MAC,绿色是校验。

A000 00C9 0000 0D20 FFFF 3025 FFFF FFFF
0003 0000 402F 0000 FFFF 1533 8086 3367
8002 003C 67FF 00C1 E024 0040 2400 FFFF
303D 7000 5A0E 3400 0084 0000 3200 0706
200C 0584 0000 FFFF 0280 803D 0010 0098
1C66 003C 8000 0701 00F8 0097 1000 05F8
0100 4000 1332 4003 FFFF 4000 FFFF 00F9
FFFF FFFF FFFF FFFF 0094 0430 FFFF 401F
8072 003D 05D0 8000 FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
0000 0080 FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF FFFF FFFF 0091 FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
FFFF AB03 88F9 FDC3 4C56 0601 0000 FFFF
000F 00DA 16E8 1541 0000 16D1 00A8 00A8
16D0 0090 5E00 0000 0241 0810 038D 3C21

 

这篇关于我的I210设计总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/899608

相关文章

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO