![](https://img-blog.csdnimg.cn/9a7767e0e6a74ff0801a159e13983617.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
车载以太网
文章平均质量分 77
车载以太网
四季帆
汽车电子、bsp
展开
-
以太网调试经验总结
注意:当设备树或MAC驱动代码中配置了PHY ADDR,MDC/MDIO通信依旧无法成功,可以通过软件方式轮询0~31这个32个PHY ADDR上的PHY的可操作寄存器,如此也可以找到PHY ADDR,将该PHY ADDR重新配置到设备树中或代码中。在bringup时,首先需要确认MDC/MDIO控制通道是否正常,通过捕获MDC时钟以确认MDC/MDIO的工作状态是否正常,MDC时钟频率由具体的PHY芯片决定,不同的PHY芯片支持的MDC时钟频率范围不通。原创 2023-03-01 15:30:46 · 2174 阅读 · 2 评论 -
PHY调试经验
2.5match_phy_device主要用于实现phy_device与phy_driver的匹配检测,若一个phy_driver支持多个类型的phy_device,则最好实现该接口,若该phy_driver只适配某一个型号的phy_device,则不需要实现该接口,只需要设置支持的phy_id与phy_mask即可。1.设备树中配置正确的PHY ADDR、PHY ID、clause 45或者22协议,PHY ADDR配置不正确会导致MDC/MDIO通信不正常或失败,PHY ID用于匹配PHY驱动程序。原创 2023-02-28 15:41:43 · 3457 阅读 · 0 评论 -
PHY自协商
自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式。自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受对方可能传递过来的相应信息,从而解决双工和10M/100M速率自协商问题。自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。自协商功能的基本机制是:每个网络设备在上电、管理命令发出、或是用户干预时发出FLP(快速连接脉冲),协商信息封装在这些FLP序列中。原创 2023-02-28 14:55:20 · 4458 阅读 · 0 评论 -
PHY设备驱动
MAC控制器的驱动使用的是platform总线的连接方式,PHY设备驱动是基于device、driver、bus的连接方式。其驱动涉及如下几个重要部分:总线 - sturct mii_bus (mii stand for media independent interface)设备 - struct phy_device驱动 - struct phy_driver。原创 2023-02-24 20:41:13 · 2397 阅读 · 1 评论 -
STMMAC驱动
在PHY设备的注册中(读PHY ID)、PHY的初始化、自协商、中断、状态、能力获取等流程中经常可以看到phy_read和phy_write两个函数(下一节要讲的PHY驱动),这两个函数的实现就依赖于控制器设备mii_bus的读写。可以清楚的看到bus->read和bus->write读写接口在这里得到调用。原创 2023-02-23 20:15:00 · 3216 阅读 · 0 评论 -
mdio协议
MDIO接口中有特定的术语定义总线上的各种设备。驱动MDIO总线的设备被定义为站管理实体(STA)。而被MDC管理的目标设备称为可被MDIO管理的设备(MMD)。STA初始化MDIO所有的通信,同时负责驱动时钟MDC。原创 2023-02-20 22:40:37 · 1879 阅读 · 0 评论 -
网络数据包接收流程
在网卡中断处理函数中,检查网卡的中断状态寄存器,检查到有RX interrupt时,会先清该中断,关闭网卡dma中断,在raise NET_RX的软中断后退出,实际的收包工作在软中断中处理。5.NET_RX软中断中通过napi_poll接口轮询调用网卡的接收函数将数据从rx ringbuffer中搬运到网络协议栈中处理,取空rx ringbuffer后使能网卡dma中断;4.CPU响应网卡中断(同时关网卡dma中断),执行网卡驱动程序的中断处理函数,触发NET_RX软中断;那么网络相关的软中断在哪里呢?原创 2023-02-19 21:32:54 · 1871 阅读 · 0 评论 -
网络设备驱动框架
网络设备接收数据的主要方法是有中断引发设备的中断处理函数,中断处理函数判断中断类型,如果为接收中断,则读取接收到的数据,分配sk_buffer数据结构和数据缓冲区,将接收到的数据复制到数据缓冲区,并调用netif_rx()函数将sk_buffer传递给上层协议。3)设备驱动功能层的各函数是网络设备接口层net_device数据结构体的具体成员,是驱动网络设备硬件完成相应动作的程序,它通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接收操作。原创 2023-02-17 21:00:00 · 1120 阅读 · 0 评论 -
车载以太网简介
在同一个VLAN(虚拟局域网)里面是可以进行二层通信的,不在同一个VLAN的主机是不能二层通信(如EE:01 与 EE:02 是不能进行通信的),需要注意的是,二层通信本质上是跟IP地址没有关系的,因为二层的通信属于MAC寻址。在CAN总线的车载网络中,通信过程是面向信号的,当ECU的信号的值发生了改变,或者发送周期到了,就会发送消息,而不考虑接收者是否需要,这样就会造成总线上出现不必要的信息,占用了带宽;车载以太网与传统以太网相比,车载以太网仅需要使用1对双绞线,而传统以太网则需要多对,线束较多。原创 2023-02-15 21:17:22 · 3073 阅读 · 0 评论 -
以太网基础
PHY是IEEE 802.3规定的一个标准模块,PHY芯片的寄存器地址空间是5位,地址空间031共32个寄存器,IEEE定义了015这16个寄存器的功能,16-31这16个寄存器由厂商自行实现。PHY在数据接受时, 进行如上所述的逆操作,将模拟信号转化为数字信号,解码,并行化后,传给MAC。发送数据:对于PHY来说,并没有帧的概念,对它来说,不管是地址、数据还是CRC,都会将并行数据转换为串行数据流,在按照物理层的编码规则把数据编码,最终转换成模拟信号发送出去。原创 2023-02-16 20:00:00 · 516 阅读 · 0 评论