汽车网络处理设计
适用于中央网关、域控制器、FOTA、安全密钥管理、智能天线和高性能中央计算节点
概述
恩智浦S32G-VNP-RDB2是一款紧凑型、高度优化的集成板,适用于汽车服务型网关(SoG)、域控制应用、高性能处理、功能安全和信息安全应用。
S32G-VNP-RDB2基于4个Arm® Cortex®-A53内核和3个双核锁步Arm Cortex-M7内核,提供高性能计算能力和丰富的输入/输出(I/O),为中央网关、域控制器、FOTA、安全密钥管理、智能天线和高性能中央计算节点等各种典型的汽车应用提供了参考。
S32G-VNP-RDB2为新的汽车应用提供了高水平的计算、实时网络性能、数千兆字节的数据包加速和安全性。
开箱即用
1.1 S32-VNP-RDB2汽车网络处理参考设计板介绍
1.2 完整的板套件介绍
获取软件
2.1 为控制台安装终端仿真器
安装任意终端仿真器,如Tera Term、Putty等。
建议使用Tera Term 2.3.
Tera Term是支持UTF-8协议的免费开源软件终端仿真器。现在TTSSH支持SSH2协议(最初版本支持SSH1)。
2.2 安装FTDI CDM WHQL驱动程序
FTDI芯片的FTDI CDM v2.12.28 WHQL串行配置驱动程序
连接!
开始试用S32-VNP-RDB2板!
3.1 插入SD卡
SD卡出厂时预装了Linux BSP镜像,只需将SD卡插入S32G-VNP-RDB2板上的相应插槽中即可。
3.2 连接UART线缆
使用UART线缆的Micro-AB接口连接S32G-VNP-RDB2的UART0端口。
使用UART线缆的typeA接口连接PC。
3.3 连接12 V电源
将电源连接至S32G-VNP-RDB2上的12 V电源插孔。
运行
4.1 设置控制台
1. 打开控制台终端仿真器。
注:使用Windows PC上的Tera
Term 2.3 。
2. 选择PC的 “设备管理器”中的串行端口,点击OK (确定)。
3. 前往Setup > Serial
Port,选择115200
波特率。
4.2 为板通电
将电源开关SW15拨到S32G-VNP-RDB2板的左侧。左侧是第1.1章中图片的视角
4.3 运行Linux BSP
Linux BSP自动从SD卡运行。
Tera Term的控制台显示屏显示Linux
BSP的运行日志。
Processors
Transceivers
- TJA1102/TJA1102S:符合IEEE 100BASE-T1标准的以太网PHY收发器
- TJA1043 : 高速CAN收发器
- Secure CAN Transceivers : Secure TJA115x CAN Transceiver Family
- TJA1463 : CAN Signal Improvement Capability Transceiver with Sleep Mode
Power Management
- VR5510 : 面向S32G处理器的多通道(9) PMIC – 8个高功率,1个低功率,符合ASIL D安全级别
Switches
- SJA1110 : 内置100BASE-T1 PHY的多Gig安全TSN以太网交换机
产品规格
· S32G-VNP-RDB2 ACTIVE
- S32G Reference Design 2 for Vehicle Network Processing
- S32G-VNP-RDB2仅适用于授权客户购买。
每个订单将在完成前进行审查。
对于此审批流程给带来的不便,我们深表歉意。 S32G-VNP-RDB2仅适用于授权客户购买。 - S32G参考设计板2
- 通用AC适配器
- AC/DC 12V, 6.67A电源
- 16GB SD卡
- DuPont线路
- (2) USB A转Micro B线缆(UART0/1)
- 以太网和以太网环回电缆
- 100BASE-T1以太网线
- J5线缆(LIN/ADC)和J6线缆(CAN/FlexRay)
- (4) 散热器
- (4) 散热垫
- M2螺钉
套件包含
AWS IoT Greengrass
将S32G-VNP-RDB和S32G-VNP-RDB2作为Greengrass内核
AWS IoT Greengrass是AWS提供的一款软件,用于将云功能扩展到本地连接的设备。
这允许本地设备发布/订阅主题,即使与AWS IoT控制台没有连接
Greengrass组由一个Greengrass内核、连接到该内核的多个Greengrass设备、lambda函数和其他运行在该内核上的服务组成。
1. 前提条件
- AWS Greengrass账户
- S32G-VNP-RDB或S32G-VNP-RDB2板
- Linux主机(本指南使用Ubuntu 18.04)
- Linux主机和S32G目标应连接同一个LAN
2. 通过Greengrass支持创建S32G镜像
在Linux主机中按以下步骤操作。
如果以前使用Yocto构建了一个S32G
Linux BSP,则可跳过第2.1节。
2.1 安装主机依赖项
$ sudo update $ sudo intall python git curl $ mdkir ~/bin $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ PATH=${PATH}:~/bin
2.2 构建Greengrass镜像
Fetch Repo
按以下步骤下载构建镜像所需的Yocto步骤。
$ mkdir <yocto_dir> $ cd <yocto_dir> $ repo init -u https://source.codeaurora.org/external/autobsps32/meta-nxp-greengrass $ repo sync
设置主机(仅限第一次)
下一步下载Yocto依赖项并将其安装到主机。
$ ./sources/meta-alb/scripts/host-prepare.sh
配置构建目录
下一步创建构建目录并配置要使用的额外层。<machine>值可以是S32G-VNP-RDB或S32G-VNP-RDB2。
$ source nxp-setup-alb.sh -m -b <build_dir> -e "meta-aws meta-java meta-nxpgreengrass meta-tensorflow"
安装PFE固件
meta-nxp-greengrass层在S32G-VNP-EVB中使用eth0接口访问互联网,在S32G-VNP-RDB或S32G-VNP-RDB2中使用pfe2接口。要使用pfe2,在<yocto_dir>/<build_dir>/conf/local.conf中包含以下行。
注:PFE固件通过Flexera提供。
DISTRO_FEATURES_append = " pfe" PFE_LOCAL_FIRMWARE_DIR = "<path_to_pfe_fw_directory>"
构建镜像
支持Greengrass的镜像为fsl-image-auto-greengrass。
$ bitbake fsl-image-auto-greengrass
2.3 刷新镜像并启动
将SD卡插入Linux主机并执行以下命令。
$ sudo umount /dev/ $ cd tmp/deploy/images// $ sudo dd if=-fsl-image-auto-greengrass.sdcard of=/dev/mmcblk0 bs=4M status=progress $ sync
将SD卡插入目标,然后通电。
首次启动
首次启动时,Greengrass守护进程将因缺少证书而失败。
按以下章节的内容获取并安装证书,并将云配置部署到Greengrass内核。
3. 准备Greengrass组
按照AWS IoT Greengrass网页的以下指示进行操作:
4. 将云配置部署到Greengrass内核
“在AWS Iot上配置AWS IoT Greengrass”时,将一个文件下载到主机,hash-setup.tar.gz (例如c6973960cc-setup.tar.gz)。此压缩文件包含内核设备证书和加密密钥,这些密钥支持AWS IoT内核和包含Greengrass内核专用配置信息的config.json文件之间进行安全通信。
将hash-setup.tar.gz放入目标rootfs。
在Linux主机执行下面的命令,将.tar.gz文件传输到目标设备。
$ scp hash-setup.tar.gz root@<target_ip_address>:/
在目标设备中,解压/greengrass文件夹中的文件,并下载Amazon Root CA 1证书。
完成后可重启。
$ tar -xzvf hash-setup.tar.gz -C /greengrass $ cd /greengrass/certs/ $ wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem $ reboot
现在有了正确的证书,Greengrass在重新启动后应该不会出错:
根据步骤2中的将云配置部署到Greengrass代码设备指示操作,并确保S32G Greengrass内核已联网。
5. 验证Lambda函数
如果已创建了Lambda函数并使用了“HelloWorld”示例,请按照验证Lambda函数是否在核心设备上运行来测试它是否按预期运行。
如正确按指示操作,应看到以下输出:
走到这一步,已经使Greengrass内核在S32G上运行。
6. 增加ML框架支持
Tensorflow
Yocto构建的镜像支持tensorflow 1.13。要进行双重检查,请在目标中执行以下命令:
$ python3 -c "import tensorflow as tf; print(tf.__version__)"
Apache MXNet
镜像的rootfs中有libmxnet.so,但接下来的步骤应该在目标中执行,以便用Python支持它。
$ cd /mxnet/python $ python3 setup.py Install
要验证版本,执行以下命令:
$ python3.7 -c "import mxnet; print(mxnet.__version__)"
DLR
要添加DLR支持,在目标中执行下面的命令:
$ wget https://neo-ai-dlr-release.s3-us-west-2.amazonaws.com/v1.2.0/a1-aarch64-ubuntu18_04-glibc2_27-libstdcpp3_4/dlr-1.2.0-py2.py3-none-any.whl $ pip3 install dlr-1.2.0-py2.py3-none-any.whl
安装完DLR后,使用以下命令查看其版本:
$ python3 -c "import dlr; print(dlr.__version__)"