打印
[其它产品/技术]

车载以太网之Switch网关详解

[复制链接]
2460|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-6-21 11:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1. Switch配置
Switch上电启动之后,需要对其内部的寄存器进行配置,这样才能切换至正常工作模式。对于车载以太网Switch RTL9071CL来说,存在两种配置模式,分别是automatic configuration和manual configuration。

automatic configuration
在这种配置模式下,Switch需要一颗外挂的Flash。需要先将Switch固件烧录至Switch外挂的Flash中,然后Switch上电后会自动从Flash中加载固件,最后Switch内部CPU会根据加载的固件来配置相应的寄存器。

manual configuration
在这种配置模式下,Switch不需要外挂Flash,由外部的CPU(例如,与Switch连接的SOC或MCU)向Switch传送Switch固件,并配置相应的寄存器。
这两种模式的选择,需要对硬件电路进行相应的修改。但无论是哪种配置模式,Switch都需要加载Switch固件(由Realtek Automotive Switch Tool配置生成,包含了每个Port的工作模式等配置信息)。

1.1 Automatic Configuration
若使用Automatic Configuration模式,可以通过读取相应的寄存器来确认Switch的操作模式、固件启动模式,以及外挂Flash中Switch固件的版本信息。以RTL9071CL为例,可以通过以下三个寄存器进行确认:

OPINER2 (0x4A001620)
n[7:0] - Global FSM state
    0x20: Standy Mode
    0x30: Normal Mode
    0x31: Safety Mode
只有当值为0x30 (Normal Mode)时,Switch的操作模式才是正常的,若为其它值,则需要先检查硬件电路、连线等。

CPU_DMY_1 (0x4A1A0004)
n[31:24] - Firmware bootup status
    0xB0: Switch boot up init
    0xB1: PHY init phase 1
    0xB2: PHY init phase 2
    0xB3: Switch enter in flashless status (over I2C/SPI/SMI                  interface).
    Verification succeeds: the boot status will transfer to 0xBF
    Verfication fails: the boot status will stay in 0xB3
    0xB4: Switch enter in flashless status over Ethernet
    0xBE: Switch protocol init
    0xBF: Switch configuration & protocol done.
当配置为Automatic Configuration模式时,只有当Firmware bootup status为0xBF时,才说明Switch固件加载成功,Switch配置已经完成了。
之前调试的时候遇到该值为0xB4的情况,就是由于Switch之前配置为Flashless Mode(Manual Configuration),但改回Automatic Configuration模式时,硬件电路没有全部修改好,导致Switch工作异常。当硬件电路后续调整完成后,该值为0xBF时,Switch就工作正常了。

Internal CPU Variable Register 39 (0x4A1B004C)
n[31:0] - User specific firmware version

该寄存器用于确认Switch固件的版本号,可以根据版本号来判断Switch固件是否已经更新。若Switch外挂Flash中并没有Switch固件,则该寄存器读出来为0。

注意事项
若配置为Automatic Configuration模式,则一定要在外挂的Flash中刷入Switch固件。否则,Switch是无法正常工作的,后续通过寄存器去修改Switch的工作模式,可能会有一些难以排除的问题。
若出现使用Realtek Automotive Switch Tool无法擦除或更新外挂Flash中的Switch固件时,首先需要确认Flash是否与Switch兼容,可以通过Realtek提供的CLE去读取外挂Flash中的内容(指令,spi read ..)。若能成功读取到数据,则说明Flash和Switch之间的SPI通信是正常的,则可以通过CLE中的指令擦除Flash后,再将Switch固件写入至Flash中。


1.2 Manual Configuration
Manual Configuration模式指的也就是Flashless Mode,若配置该模式,则需要在与Switch连接的SOC或MCU中集成Realtek提供的SDK,并通过SDK中的接口,将Switch固件传输至Switch。具体可以参考Realtek提供相应说明文档。
相比于Automatic Configuration模式,使用Manual Configuration模式时,Switch的启动时间会更长一点,但是方便后续对Switch固件进行更新升级。

1.3 调试流程
在调试RTL9071CL与RH850的RMII通信的过程中,踩了不少的坑,当功能调试完成再进行总结的时候,就发现由于一开始调试的方向就不对,导致后面越调试越出现意料之外的问题。

确认硬件连线
首先Switch与MCU之间的硬件连线是正确的,例如以RTL9071CL与RH850的RMII通信来说,要确保Switch侧的TXD0、TXD1、TXEN引脚是与MCU侧的RXD0、RXD1、CRS_DV引脚所连接的。

确认工作模式
例如RTL9071CL和RH850是通过Port3进行RMII通信的,则两者的工作模式需要相匹配。RH850的以太网控制器内置MAC芯片,但并没有内置PHY,所以只能工作在RMII MAC模式(即REFCLK由Switch提供)。故RTL9071CL的Port3的工作模式需要配置为RMII PHY模式,并且两者的传输速率和传输模式都需要一致(例如,100Mbps,全双工)。

确认Switch启动模式

无论是使用Automatic Configuration模式还是Manual Configuration模式,都需要先使用Realtek Automotive Switch Tool对每个port的工作模式进行配置,以及一些其它配置,从而生成相应的Switch固件。
若使用Automatic Configuration模式,则一定要确保外挂的Flash中存有Switch固件,否则会出现一些不可预料的问题。之前在调试Port3的RMII通信功能时,在外挂的Flash中并没有相应的Switch固件,仅是通过配置Port3相关的寄存器,强制将Port3 Link Up,并输出相应的REFCLK,后面通过示波器查看REFCLK波形,发现REFCLK波形的电压幅值异常。而当外挂Flash中加载了相应固件之后,再用示波器查看REFCLK波形,就确认了波形是正常的。

集成多个调试接口
若PC侧的调试工具Realtek Automotive Switch Tool是通过Ethernet连接至Switch的,则还需要集成其它相应的接口。例如,RH850与Switch存在RMII接口,则RH850侧可以集成SMI接口,可以通过MDIO读写Switch内部的寄存器。防止出现Switch工作状态异常,PC侧调试工具无法通过Ethernet连接至Switch读取相应寄存器信息,而无法进行debug的情况。当Ethernet接口工作异常时,仍可以通过SMI接口来确认Switch的工作状态。

确认MCU配置

以RH850与RTL9071CL通过Port3进行RMII通信为例,当Switch侧功能已调试完成后,但与RH850仍无法正常通信,则需要检查RH850侧的配置。
可以通过以下方式来确认RTL9071CL侧的Port3已经工作正常:
在PC侧通过发包工具AnySend进行灌包(数据包的目的MAC地址可以填写为广播地址或者RH850侧以太网控制器的MAC地址),数据包的传输路径为PC -> 车载以太网适配器 -> Switch Port1 (Port1模式配置为100Base T1,可以通过车载以太网适配器与PC连接) -> Switch Port 3 -> MCU (若通信正常)。可以通过示波器查看Switch与MCU之间RMII连接的TXD0、TXD1、TXEN和REFCLK波形,来确认Port3上是否有数据发送。或者通过Realtek Automotive Switch Tool中的Debug工具来确认Port3中的Transmit、Send情况。再或者使用Realtek Automotive Switch Tool将Port3 Mirror至Port1,就可以通过Wireshark抓包来确认Port3上发出去的数据包情况。
当确认Switch侧Port3工作正常后,可以通过以下方式来检查MCU侧RMII配置:
确认MCAL中相应Port的配置、引脚复用功能
确认MCAL中Eth控制器是否选择了RMII模式、传输速率和传输模式是否一致
确认Option Byte 8是否配置正确,当修改完Option Byte 8后,建议使用Renesas Flash Programmer更新RH850的Data Flash。
Option Byte 8含义如下:

使用特权

评论回复
沙发
地瓜patch| | 2024-6-27 23:02 | 只看该作者
网关最大速度能到多少?

使用特权

评论回复
板凳
jf101| | 2024-6-28 11:08 | 只看该作者
将Switch固件烧录至Switch外挂的Flash中,然后Switch上电后会自动从Flash中加载固件,最后Switch内部CPU会根据加载的固件来配置相应的寄存器。

使用特权

评论回复
地板
有何不可0365| | 2024-6-30 13:52 | 只看该作者
Automatic Configuration:需要外挂 Flash,Switch 固件被预先烧录到 Flash 中

使用特权

评论回复
5
有何不可0365| | 2024-6-30 13:52 | 只看该作者
Switch 上电后自动从 Flash 中加载固件,内部 CPU 根据固件配置寄存器。

使用特权

评论回复
6
有何不可0365| | 2024-6-30 13:52 | 只看该作者
通过寄存器 OPINER2、CPU_DMY_1 和 Internal CPU Variable Register 39 来确认操作模式、固件启动状态和固件版本信息。

使用特权

评论回复
7
有何不可0365| | 2024-6-30 13:53 | 只看该作者
Manual Configuration:
不需要外挂 Flash,由外部 CPU(如 SOC 或 MCU)传输 Switch 固件并配置寄存器。

使用特权

评论回复
8
有何不可0365| | 2024-6-30 13:53 | 只看该作者
需要集成 Realtek 提供的 SDK,通过 SDK 接口传输固件。

使用特权

评论回复
9
有何不可0365| | 2024-6-30 13:53 | 只看该作者
启动时间较长,但方便固件更新。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1506

主题

4536

帖子

6

粉丝