前言
大联大世平集团推出了一款基于 NXP 车规级 MCU S32K344 的开发板——花名“Cavalry”,它使用 BGA257 封装的 32 位 Arm®Cortex®-M7 S32K344 作为主控芯片,在69.6*130mm 的小体积开发板上搭载了 SBC 电源管理芯片、CAN 收发器、LIN 收发器、FLASH 存储芯片、RMII 以太网接口等多种功能拓展,是一款适用于通用工业和汽车应用的评估板/开发板。S32K3xx 系列大部分都支持 TSN/AVB 以太网模块,具体型号可查询 S32K3 数据手册,支持 MII/RMII 以太网接口,通信速度 10/100 Mbps,200Mbps(MAC 到 MAC)。
本文使用“Cavalry”开发板作为 MAC,连接到景略的车载以太网模块 JL3101 来搭建以太网开发环境,当然,也可以使用市面上常见的工业以太网模块(如:DP83848)。
下面解析 S32K3 以太网 RMII 接口的调试过程,希望能帮助到相关的朋友,如有错误之处,欢迎各路大神指正。
图 1 S32K3 MAC + JL3101/DP83848 PHY
RMII 接口定义
S32K344 开发板通过 J33 接口与 JL3101 以太网模块对插:
图 2 MAC to PHY 接线方式
- VDD_HV_B:以太网模块的供电电源为 3V,连接到 S32K344 的 VDD_HV_B 电源域
- SMI:串行管理接口(Serial Management Interface),包括 MDC 和 MDIO 两条信号线。
- MDIO:是一个半双工双向的串行 PHY 管理接口,用来读写寄存器,达到控制 PHY 行为和监控 PHY 状态的目的。
- MDC:它为 MDIO 提供时钟,可以实现同步/异步收发时钟。
当 MAC 作为主机,PHY 为从机时,一个 MAC 最多连接 32 个 PHY。在写 PHY 寄存器时,由 MAC 驱动 MDIO 向 PHY 写入数据;当读 PHY 寄存器时,前半段由 MAC 驱动发送寄存器地址,后半段由 PHY 驱动回复寄存器数据。
- TX_EN:发送使能信号。
- TXD[1:0]:数据发送信号,该信号是 2-bit 位宽的数据信号。
- RXD[1:0] :数据接收信号,该信号是 2-bit 位宽的数据信号。RMII 接口通过 TXD[1:0] 和 RXD[1:0] 进行数据交换,发送和接收信号与 REF_CLK(shared reference clock)同步。
- RX_ER:接收错误信号。该信号必须保持一个或多个周期(RX_CLK),从而向 MAC 子层指示在帧的某处检测到错误。
- RX_DV:接收数据有效信号。该信号表示 PHY 当前针对 RMII 接收已恢复并解码的半字节。
- TX_CLK:连续时钟信号,该信号提供进行 TX 数据传输时的参考时序。标称频率为:速率 10Mbit/s 时为 5MHz;速率为 100 Mbit/s 时为 50MHz。目前 S32K344 板上由外部晶振提供 50MHz 时钟源,实现百兆通信。
图 3 S32K3 RMII接口线序
开发环境搭建
1. 开发工具
- Federation of Flyers
- JL3101 车载以太网模块
- NXP S32K344 开发板——Cavalry
- 调试以太网程序,驱动以太网模块,需要接 12V 电源和 USB 串口线
- PE-Micro 调试器
- 烧录程序并调试,也可使用支持 S32K3 的任意调试器,如 J-link
- 100/1000BASE-T1 信号转接器
- 千兆车载以太网 T1 转工业网口 RJ45 连接到 PC 端,需要外接 12V 电源
图 4 开发工具连接图
2. 软件开发资源列表
- 3.4_b201217_win32.x86_64.exe
- NXP S32 系列的集成开发环境 4 版本
- 4.3_D2205.zip
- 适用于 S32DS 的 S32K3 RTD 基础开发包
- 4_2.0.0_DS_updatesite_D2204.zip
- 适用于S32DS 的 S32K3 RTD V2.0.0 标准插件包,使用 CT 配置
- zip
- FreeRTOS 实时操作系统插件包,TCP/IP 堆栈依赖于 FreeRTOS
- zip
- Lwip_S32K344 例程扩展包,附带 TCP/IP 堆栈
3. 例程建立
网上应该有很多关于如何搭建 S32K3 开发环境的教程,没有接触过的小伙伴也可以参考我这篇博文“【S32K 进阶之旅】S32K3 RTD MCAL 开发环境搭建(详细教程)”的第 2.3 和3.3 小节安装软件包。开发环境搭建完成之后,可以在 S32DS 的“File -> New -> S32DS Project from Example”中找到 lwip_s32k344 例程,如下图所示
图 5 S32DS 例程路径
图 6 例程界面
打开例程,进入外设配置页面,可以看到 RTD 模块组件,如下图所示,RTD 模块的序号与上文“软件开发资源列表”序号对应:
图 7 lwip_S32K344 例程的 RTD 组件
4. Notes
- 上述插件包都是基于 S32K3 RTD 2.0.0 版本,通过插件包的 Release Notes 可以查询各版本对应关系
- 请按照列表编号依次安装,否则可能会找不到 lwip_s32k344 例程
- 如果安装了多个版本的 RTD 包,为了避免版本冲突,在“C:\NXP\S32DS.3.4\eclipse\mcu_data\configuration”路径中删除“xml”文件
- S32K3xx 微控制器的以太网 MAC 模块的所有信号都来自 VDD_HV_B 电源域。由于板上 VDD_HV_B 接到 3V,所以以太网物理层或 MAC 接口不需要再额外做电平转换。
小结
文中使用的开发板“Cavalry”现已上架大大购,链接如下:DVK2305- CAVALRY S32K344产品详情_大大购 (wpgdadago.com)
到这一步 S32K3 车载以太网开发环境已经搭建完成,下节开始讲解软件调试步骤,敬请关注本章更新。获取更多资讯,或进一步交流关于 S32K3 的技术问题,欢迎联系世平集团上海应用技术处ATU <atu.sh@wpi-group.com>。
参考文档
[1] Automotive TCP/IP Stack User Manual. Rev. 33.0
[2] lwip_s32k344 demo guide.
欢迎前往大大通相关博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com
作者:Jadyn Li /李瑞洁