网卡(Network Interface Card,简称NIC),也称网络适配器,是电脑与局域网相互连接的设备。无论是普通电脑还是高端服务器,只要连接到局域网,就都需要安装一块网卡。如果有必要,一台电脑也可以同时安装两块或多块网卡。
可以看到PHY的数据是RJ45网络接口(网线口)穿过了的差分信号,而PHY作用就是将差分信号转为数字信号,这块内容不用深究,制造商都设计好了。那我们干什么呢?(主要是对phy芯片进行模式选择,比如工作速率,工作模式)
在嵌入式系统里,以太网是一个基本的接口,既用于调试,也用于数据传输。所以在单板调试过程中,以太网是一个基本的任务。如果以太网工作正常,也可以说是一个重要的里程碑。 Xilinx MPSoC支持多个网卡,应用成熟,下面是常见的调试思路。
上图来自 瑞昱半导体 (RealTek) 的 RTL8201F 系列网卡 PHY 芯片手册。按OSI 7层网络模型划分,网卡PHY 芯片(图中的RTL8201F)位于物理层,对应的软件层就是本文讨论的 PHY 驱动层;而 MAC 位于 数据链路层,也是通常软件上所说的网卡驱动层,它不是本文的重点,不做展开。另外,可通过 MDIO 接口对 PHY 芯片进行配置(如PHY芯片寄存器读写),而 PHY 和 MAC 通过 MII/RMII 进行数据传输。
2 在probe里 申请网络结构体net_device、对相关变量函数赋值,注册网络结构体net_device
I.MX6UL/ULL 有两个网络接口 ENET1 和 ENET2,I.MX6U-ALPHA 开发板提供了这两个网络接口,其中 ENET1 和 ENET2 都使用 LAN8720A 作为 PHY 芯片。
在Xilinx的ZCU102和ZCU106单板设计中,使用了管脚PS_MODE1作为外部USB Phy的复位信号。在MPSoC的文档ug1085和ug1087中,关于PS_MODE1的信息比较少。下面是更详细的描述。
系统发育推断(phylogenetic inference)的算法五花八门,从最简单的UPGMA法,到邻接法(neighbor joining)、最大简约法(maximum parsimony),再到复杂的的最大似然法(maximum likelihood)与贝叶斯推断法(Bayesian inference),每种方法都有不少可选择的实现工具。这些方法无一例外都遵循一个规律:越精确则速度越慢。而随着分析的数据越来越庞大,对于用户来说,需要寻找一个尽可能快速而且错误率可以容忍的算法是十分必要的。
从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成。如下图所示:
这个模块是 Asix PHY 的网络驱动程序。它是作为用 C 编写的现有驱动程序的替代方法提供的。这些功能是等效的。
1、 硬件配置,通过电阻上下拉确定;6096的硬件配置不可以错,其在port status寄存器状态中有相应的寄存器位体现硬件配置的工作模式。
NXP官方linux仓库地址为:https://github.com/Freescale/linux-fslc/tree/5.4-2.1.x-imx。
RK33999使用synopsys dwc3的USB3.0控制器IP。早期的初始化需要在两个模块中进行,一个在rockchip官方提供的驱动中初始化,位于drivers/usb/dwc3/dwc3-rockchip.c文件中,主要初始化和CPU紧密相关的内容,如时钟、复位、电源、extcon(用于USB模式切换),另一个在synopsys提供的驱动中初始化,位于drivers/usb/dwc3/core.c文件中,这部分和USB3.0控制器密切相关,如USB3.0控制器内部寄存器地址、USB3.0的PHY、中断等。只有两个模块都初始化完毕,USB3.0控制器才能正常工作。本节只分析USB驱动早期初始化部分。
死锁指两个或更多进程或线程因相互等待对方释放资源而互相阻塞,从而导致系统中所有的进程或线程都无法继续运行的情况。
1)首先根据"snps,dwc3"进行dts和driver的匹配,执行dwc3_probe()
据此推算,貌似单一线路,网络传输速度也就1.5*(1/4*10^6) = 375M/bs
CPU用的是Armada-3720,内核是https://github.com/MarvellEmbeddedProcessors/linux-marvell 里面18.12版本,uboot使用的是https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/tree/u-boot-2018.03-armada-18.12。两路网口,一路是RGMII模式(lan1),另外一路是SGMII模式(lan2)。最近发现有时系统起来后用PC去ping lan2会ping不通,phy可以正常识别,执行ifconfig down/up也可以看到正常的打印信息。
在以太网通信中,设备之间的物理局链路均由 PHY 芯片建立。PHY 芯片内部含有一些列寄存器,用户可通过这些寄存器来配置 PHY 芯片的工作模式以及获取 PHY 芯片的若干状态信息,如连接速率、双工模式、自协商状态等。PHY 内部寄存器的读写通过 MDIO 接口进行。
总结:上面已经将phy的状态设置成了 phydev->state = PHY_READY,同时完成了emac接口下的phy设备驱动注册,接下来将分析如何使用该phy设备驱动。
本节主要介绍我们开发过程中,WiFi常用的开发工具,内容主要介绍工具种类以及基本的使用方法,更多使用可以见后面章节。
内存子系统是 SoC 中最复杂的系统之一,对芯片的整体性能至关重要。近年来,内存市场呈爆炸式增长,在移动、消费和企业系统中势头强劲。这不仅导致内存控制器 (MC) 越来越复杂,还导致将内存子系统连接到外部 DRAM 的 PHY变得非常复杂。
MIPI C-PHY是手机中的重要接口,它的速率比D-PHY还要高,其速率单位是symbol/s/lane,而D-PHY的速率单位是bit/s/lane,换算关系是1 Symbol = 2.28 bits。
复制一份imx_v6_v7_defconfig,这里我命名为dfos_mini_defconfig。
一般我们不需要从用户态得到进程虚拟地址对应的物理地址,因为一般来说用户进程是完全不关心物理地址的。
高通5G平台SDX55支持5G独立组网(SA)和非独立组网(NSA)两种网络架构,同时兼容LTE和WCDMA制式,拥有更快的传输速度,更优秀的承载能力,以及更低的网络延时,可广泛应用于网关、工业监控、远程医疗、无人机、虚拟现实和沉浸式体验(VR和AR)、智慧能源、车联网、工业互联网、智慧教育、高清视频、智慧城市、家庭娱乐等多个领域。
实现网络通信实质上是PHY与MAC及RJ45接口实现信号传输。MAC 就是以太网控制器,MAC属于数据链路层,主要负责把数据封装成帧,对帧进行界定实现帧同步。对MAC地址和源MAC地址及逆行相应的处理并对错误帧进行处理。PHY属于物理层,在以太网控制器中负责物理层功能的芯片叫PHY芯片,因为网线上传输的是模拟信号而MAC发出或接收的信号为数字信号所以PHY主要负责对网络数据的编解码处理以及一些网络状态的控制。RJ45就是我们常用的网口座子。
在飞凌嵌入式OKA40i-C开发板上虽然只有一个网口,但全志A40i-H处理器本身是有两个网络控制器的,因此在飞凌嵌入式提供的产品资料中提供了双网口解决方案。有的工程师小伙伴在开发过程中会遇见一些网卡的设计问题,今天小编为大家分享3种在使用OKA40i-C开发板时容易遇到的网卡软件问题以及排查思路。
Sniffle是一个基于使用TI CC1352/CC26x2硬件的蓝牙5和4.x LE嗅探器。
《带你遨游USB世界》中,我们已经初步介绍了USB的整体架构,本文将从以下几个方面继续介绍USB的内容。
自协商仲裁状态机是理解双绞线自协商机制的关键。这部分内容笔者以点带面基于几个常见的应用场景做一个简单的解析。如果读者想对细节理解得更为透彻,请自行阅读IEEE 802.3相关章节。
首先定义参考时钟。其中的psgtr_ref_clk_2 ,是SATA使用的125MHz的参考时钟。
物理层规范了传输介质、电气特性、IO电路、和同步机制。通俗地说,就是指定在MIPI协议的最底层物理层,发送端Tx如何拿到上层编码好的数据、转化成怎样的电信号、并通过多少根/组通道以何种形式发送给接收端Rx等等。
MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写。MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。
Xen是一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序”,是为x86架构的机器而设计的。Xen可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的资源最少。
当电源控制器看到 suspend_detected 被激活(并且在状态寄存器中设置了电源门控启用位)时,它会启动掉电序列。该序列如图 8-2 所示,描述如下:
数据中心,存储,汽车和其他新兴市场应用程序的增长,正在推动DDR5,LPDDR5的发展。像它们的前辈一样,最新的内存技术还使用DFI(内存控制器和PHY之间的标准接口)来降低集成成本并提高性能和数据吞吐效率。DFI也随着存储技术而发展,DFI 5.0可以确保使用DDR5 / LPDDR5的系统中的更高性能。
SGMII作为1000BASE-X的孪生兄弟。它俩通常是同一个芯片物理接口的复用功能。很多小伙伴经常对它俩的基本概念和应用场景有混淆。下面笔者对SGMII接口进行一个系统的梳理。
笔者以曾经实践过的Broadcom公司的BCM53286的四个1000BASE-X Serdes口举例[与自协商相关的寄存器属于IEEE802.3标准寄存器,故不同厂家不同型号的PHY该部分实现大同小异],与1000BASE-X自协商相关的7个寄存器内容分别如下。
mii-tool(media-independent interface tool)查看、操作媒体无关的接口状态。
MIPI接口的内部非常复杂,如果不是专门去做MIPI接口,没有必要像研究H264一样往深入的去研究。
现在遇到这样一个问题,没有USB,甚至于USB都没有电压输出,检查电路,USB供电是由一个TPS2051BDBV来控制的,这个芯片又是USB3320C来控制的,说明这个芯片没有工作。经过一天的排查,最后终于找到原因了。是因为没有设置设备树。设备树这方面我并不是很懂,所以整理一下。 首先,先找到编译出来的设备树。文件是images/linux/system.dtb。 在这篇文章 《设备树(device tree)学习笔记》 找到了反向编译工具fdtdump,使用fdtdump工具将其反向编译。 结果就是这样的:
有这么一个需求:需要远程访问内网的nas。然后现成的解决方案有蒲公英这个方案,但是个人版的话限了只能3个设备,因此找了半天,最后选择了功能类似的zerotier.
概述:由于近期要使用以太网PHY芯片,于是在网上查找各种资料,学习这部分的知识,这篇文章是对当前的学习做一个汇总。海翎光电的小编目前也是在学习PHY,所以难免会有错误不足,有什么需要更正补充的,欢迎大家一起讨论交流。
本章节为大家讲解RL-TCPnet的底层驱动,主要是STM32自带MAC的驱动实现和PHY的驱动实现。
从硬件上来说,一般PHY芯片为模数混合电路,负责接收电、光这类模拟信号,经过解调和A/D转换后通过MII接口将信号交给MAC芯片进行处理。一般MAC芯片为纯数字电路。
今天和海翎光电的小编一起分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时小编也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的连接方法。
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法。
本例子使用zynq7000系列的ps带的两个mac,一个通过mio引出,一个通过emio引出。如下图:
领取专属 10元无门槛券
手把手带您无忧上云