目录

1.管理接口

1.1 MII 接口

1.1.1特点

1.1.2帧格式

1.1.3 MII寄存器

1.2 SMI 接口

1.2.1特点

1.2.2帧格式

1.2.3 8位寄存器

1.3 SPI接口

1.3.1特点

1.3.2总线格式

1.4 I2C接口

1.4.1特点

2.驱动调试

2.1 管理接口数据读写

2.1.1 MII/SMI接口

2.1.2 SPI接口

2.2 寄存器设置

2.2.1寄存器分析

2.2.2寄存器设置

2.3 功能测试

2.3.1 Switch功能测试

2.3.2 PHY功能测试


1.管理接口

1.1 MII 接口

1.1.1特点

IEEE 802.3标准接口,两根信号线mdc/mdio,最高频率5MHZ,访问8个16位寄存器,含6个标准寄存器[0:5], 2个客户寄存器[29, 31]。

1.1.2帧格式

1.1.3 MII寄存器

port1端口PHY地址默认为0x01,port2端口PHY地址默认为0x02。均可通过bits[7:3] of Register 15 (0x0F): Global Control 13 进行更改。Port3不是PHY,故MIIM接口无法访问。

1.2 SMI 接口

1.2.1特点

非标准接口,两根信号线mdc/mdio,最高频率5MHZ,可访问所有寄存器[0-198],间接访问8个MIIM寄存器。寄存器数据为8位,写数据时高8位无效,读数据时高8位为0。SMI接口不是所有CPU在硬件层面都能支持,可以使用GPIO模拟实现。

1.2.2帧格式

1.2.3 8位寄存器

1.3 SPI接口

1.3.1特点

4线SPI接口,最高频率25MHZ,可访问所有寄存器[0-198]。支持2个标准SPI命令:‘0000_0011’ for data read 和 ‘0000_0010’ for data write。

1.3.2总线格式

1.4 I2C接口

1.4.1特点

2线I2C接口,最高频率2.5MHZ,可访问所有寄存器[0-198],从机地址0x5F。可以外接EEPROM。

2.驱动调试

2.1 管理接口数据读写

驱动此类芯片的首要任务是调通管理接口,能够访问芯片寄存器。编写程序之前,检测PHY芯片所有管脚信号,波形均正常,收发数据时钟频率为25MHZ。

2.1.1 MII/SMI接口

使用illd自带驱动访问KSZ8873,发现时序是标准MIIM读写时序:

32个1+ST(01)+OP(10)+PHY Address(00)+REG Address(00)+TA(11)+DATA(0xFFFF)。

32个1+ST(01)+OP(01)+PHY Address(00)+REG Address(00)+TA(11)+DATA(0x8000)。

由于MIIM模式下,PHY1和PHY2地址默认为01和02,故此处读写数据均无效。

将PHY地址分别修改为01和02,并读取0-31所有地址,发现确如数据手册所述,只有8个寄存器可访问。

01地址数据:0-5:0x1120 0x7808 0x0022 0x1430 0x05E1 0x0001;1D:0x0000;1F:0x0034

02地址数据:0-5:0x3120 0x7808 0x0022 0x1430 0x05E1 0x0001;1D:0x0000;1F:0x0014

PHY01为何为10Mbps?极性为何反相?应是管脚设置不对,应当设置相关寄存器并确认。

MII能够访问的寄存器数量太少,无法满足要求;而AURIX 单片机无法控制OPCODE为00,因此无法实现KSZ8873特有的SMI接口。

2.1.2 SPI接口

修改KSZ8873管理接口为SPI接口,频率10MHZ。

可见已经正确读出芯片ID,一共读出199个8位寄存器的数据。此处为了分析方便,利用MOSI将寄存器地址和其对应数据同步输出。

2.2 寄存器设置

2.2.1寄存器分析

1) Global Registers (Registers 0 – 15)

Register 6 (0x06): Global Control 4,port3 的端口设置;

Register 15 (0x0F): Global Control 13,设置Port1和2的PHY 地址,默认Port1为 0x1,Port 2 PHY address = (Port 1 PHY address) + 1;

2) Port Registers (Registers 16 – 95)

26 (0x1A): Port 1 PHY Special Control/Status,诊断与近端回环设置;

42 (0x2A): Port 2 PHY Special Control/Status

28 (0x1C): Port 1 Control 12,设置自动协商,速度,双工/半双工,流控,默认全部使能;

44 (0x2C): Port 2 Control 12

29 (0x1D): Port 1 Control 13,设置自动协商重启,低功耗,远端回环,默认均不使能;

45 (0x2D): Port 2 Control 13

30 (0x1E): Port 1 Status 0

46 (0x2E): Port 2 Status 0

31 (0x1F): Port 1 Status 1

47 (0x2F): Port 2 Status 1

63 (0x3F): Port 3 Status 1

67 (0x43): Reset,控制软复位;

3) Advanced Control Registers (Registers 96-198)

112 (0x70) to 117 contain the switch engine’s MAC address,读出00 10 A1 FF FF FF。

121 (0x79) to 131 provide read and write access to the static MAC address table, VLAN table, dynamic MAC address table, and MIB counters.

147~142(0x93~0x8E): Station MAC Address 1 MACA1

153~148 (0x99~0x94): Station MAC Address 2 MACA2

187 (0xBB): Interrupt enable register

188 (0xBC): Link Change Interrupt

195 (0xC3): Power Management and LED Mode

166 (0xA6): KSZ8873 mode indicator,读出0x03 ,即芯片型号为MLL/MLLJ。

198 (0xC6): Forward Invalid VID Frame and Host Mode,读出0x02,即为SPI 模式。

2.2.2寄存器设置

对0x06,0x1c,0x2c,0x1d,0x2d几个寄存器进行设置,回读正确。

  /* ETH_RST */IfxPort_setPinMode(&MODULE_P23, 6, IfxPort_Mode_outputPushPullGeneral);/* ETH_INT */IfxPort_setPinMode(&MODULE_P23, 7, IfxPort_Mode_inputPullUp);IfxPort_setPinState(&MODULE_P23, 6,IfxPort_State_low);_DelayMS(20);IfxPort_setPinState(&MODULE_P23, 6,IfxPort_State_high);_DelayMS(10);/* Reset the PHY */str_tx[0] = KSZ8873_CMD_WRITE;str_tx[1] = KSZ8873_Reg_RESET;str_tx[2] = KSZ8873_Reg_RESET_SWRST;_SPI_KSZ8873_Send(str_tx,3);/* wait for reset to finish */do {str_tx[0] = KSZ8873_CMD_READ;str_tx[1] = KSZ8873_Reg_RESET;_SPI_KSZ8873_Exchange(str_tx,str_rx,3);} while (str_rx[2] & KSZ8873_Reg_RESET_SWRST);/* setup Eth PHY */str_tx[0] = KSZ8873_CMD_WRITE;str_tx[1] = KSZ8873_Reg_GC4;str_tx[2] = 0x20; /* 100MBit,full duplex, flow control */_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_GC9;str_tx[2] = 0x40; /* 62.5MHz supports SPI speed between 6MHz to 12.5MHz */_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_P1SC_ST;str_tx[2] = 0x02; /* Perform Remote loopback *///_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_P2SC_ST;str_tx[2] = 0x02; /* Perform Remote loopback *///_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_P1CON12;str_tx[2] = 0xff; /* 100MBit,full duplex, flow control */_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_P2CON12;str_tx[2] = 0xff; /* 100MBit,full duplex, flow control */_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_P1CON13;str_tx[2] = 0x00; /* Enable auto MDI/MDI-X */_SPI_KSZ8873_Send(str_tx,3);str_tx[1] = KSZ8873_Reg_P2CON13;str_tx[2] = 0x00; /* Enable auto MDI/MDI-X */_SPI_KSZ8873_Send(str_tx,3);

2.3 功能测试

2.3.1 Switch功能测试

设置KSZ8873相应寄存器后,将两台PC分别连至Port1、Port2,观察寄存器30和46的第五位,插上网线后都为1。设置PC1 IP地址为192.168.4.8,设置PC2 IP地址为192.168.4.23。

PC1执行:ping 192.168.4.23

PC2执行:ping 192.168.4.8

2.3.2 PHY功能测试

目标板运行测试程序,连接PC至Port1,在PC上使用Wireshark抓包,观察收发数据是否正确。

1) 关闭回环模式,目标板只发送数据,可见Wireshark接收到了相应数据[aa 55 aa 55 01 02 03 04]。PC接到Port1和Port2均能接收到数据。

2) 关闭回环模式,目标板只接收数据。

当PC使用ping命令时(广播),PHY芯片的RXDx管脚出现数据,说明PHY部分通讯正常。在单步运行模式下,目标板抓到IP数据,说明下位机已经成功接收了数据。PC接至Port1,执行ping 192.168.4.5 -t;PC接至Port2,执行ping 192.168.4.13,分别在目标板抓到相应IP地址。

KSZ8873MLLV在AURIX平台的应用相关推荐

  1. 第16届智能小车用AURIX™ 资料汇总

    Hi,同学们!第16届智能小车用英飞凌AURIX™ 32位单片机TC212, TC264, TC364, TC377所需的 各类官方资料汇总 在此. 请大家持续关注,我们会陆续在此更新. ➤大赛简介及 ...

  2. 在汽车控制器应用最广最多的芯片之一-英飞凌-AURIX架构

    汽车世界正以前所未有的速度发展着.英飞凌拥有40多年在为汽车行业的电子系统提供高质量半导体方面的成功和成熟的专业知识.今天,其传感器.微控制器和功率半导体帮助世界各地的汽车制造商实现了具有挑战性的更高 ...

  3. 智能车竞赛线上培训:基于英飞凌AURIX的BLDC控制方案

      根据第十七届全国大学生智能汽车竞赛规则,允许平衡单车组动量轮可采用无刷电机,但无刷电机的驱动需要采用基于英飞凌AURIX™的无刷电机驱动方案.为了帮助参赛队伍更好的了解和使用英飞凌单片机用于智能车 ...

  4. 智能车竞赛线上培训:英飞凌AURIX的智能车应用--基础四轮篇

      全国大学生智能汽车竞赛是以智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一.   本竞赛以"立足培养,重在参与,鼓励探索 ...

  5. 英飞凌的AURIX TC4x系列芯片在汽车控制器上应用

    英飞凌的AURIX  TC4x系列微控制器--智能汽车安全的领导者来了! 汽车市场上出现了重大的颠覆者: 汽车E/E架构微控制器(MCU)在领域和区域控制方面的创新 加速从传统动力系统到xEV的转变 ...

  6. 英飞凌AURIX Development Studio安装和使用,TASKING软件license推荐

    背景: AURIX Development Studio(下简称ADS), 是英飞凌推出在针对自家AURIX芯片的免费编译环境,软件使用无需license,长期免费(英飞凌终于有自家的免费编译器了,喜 ...

  7. 智能车竞赛线上培训:英飞凌AURIX™的智能车培训入门篇

      第18届智能汽车竞赛的规则已经发布一段时间了,根据规则,摄像头组,独轮平衡,极速越野以及声音信标4个组别都需要采用英飞凌AURIX™系列MCU作为主控.为了让参赛的同学们更快速的入门以及了解英飞凌 ...

  8. AURIX TC275/TC234开发----(1) 开发准备工作

    TC234/TC275 是英飞凌推出的较新一代AURIX 系列的单核/三核处理器,适合应用于车载控制器的开发,目前在很多车型上有在使用,下面对两种芯片做个简单的分析对比: 1)TC275 该芯片有三个 ...

  9. 英飞凌单片机知乎_AURIX学习篇——《英飞凌多核单片机应用技术(AURIX三天入门篇)》-第5章 GTM驱动波形合成...

    本次开始第五章学习,GTM与驱动波形合成,GTM部分在电机控制或是传统发动机控制中有着举足轻重的位置,所以此部分为重点章节,但本书仅是大致的罗列了基本概念,如需对GTM部分详细学习,建议参考AURIX ...

最新文章

  1. 【机器学习】如何简单形象又有趣地讲解神经网络是什么?
  2. python 来搞定 非线性方程组和最小二乘拟合问题
  3. VTK:八叉树时序用法实战
  4. 文件断点续传原理与实现
  5. ※部分VB文章汇总A※
  6. 操作系统实验一:Linux基本操作
  7. 「首席看业务架构」商业模式画布
  8. Linux上卸载JDK
  9. scala下载和安装——aboutyun
  10. JDK、Neo4j下载、安装、运行及问题
  11. 双网卡,上网走外网网卡,内网走内网网卡设置。
  12. FlashFXP用到的功能
  13. iOS开发通过微信学习hijack(一)函数劫持
  14. Photoshop —— 白色(或任意颜色)或黑色物体修改成任意色彩
  15. 使用Excel中的公式计算日期
  16. 软件测试人员需不需要懂代码?需要什么技能才行?
  17. 源程序的相似性分析 —— 基于Python实现哈希表
  18. Windows10搭建opengrok服务器
  19. 1. 机器人动力学—动力学的数学基础
  20. Win7系统交互式服务检测关闭方法-

热门文章

  1. MLP入门:多层人工神经网络模型及算法公式推导(正向传播与逆向传播过程详解)
  2. SQL数据库之索引优缺点
  3. #午安,努力#11.30
  4. 【华人学者风采】陈晓峰 西安电子科技大学
  5. VMware无法连接网络问题不显示网络连接
  6. Foundation框架 - NSArray类 、NSMutableArray类
  7. 计算机应用基础一九春在线作业,西电17春《计算机应用基础(一)》在线作业答案...
  8. 软件测试别再被“薪资陷阱”困扰了,这份攻略带你轻松查薪资
  9. mybatis面试相关
  10. Word 中空格有大有小,解决办法