1. 边缘网关硬件选型与接口规划
任务目标
为工业IoT边缘智能网关完成硬件选型与接口规划,输出一份可直接用于采购与PCB布局的硬件接口映射表。本案例聚焦于网关的核心计算单元选型、工业通信接口分配及电源/存储规划,不涉及外壳结构与天线射频设计。
硬件选型约束
- 工业温度范围:-40℃ ~ +85℃,所有芯片必须满足该等级
- 供电输入:9~36V DC宽压输入,带反接与浪涌保护
- 通信接口需求:2路工业RS485、1路CAN、2路10/100M以太网、2路DI/2路DO、1路4G LTE(预留)、1路Wi-Fi(预留)
- 边缘计算能力:需支持Linux,至少1GB RAM,8GB eMMC,硬件加密引擎
核心选型结果
| 模块 | 选型 | 关键规格 | 选型理由 |
|---|---|---|---|
| 主控SoC | NXP i.MX6ULL | ARM Cortex-A7 528MHz,工业级,硬件加密 | 低功耗、工业级、Linux生态成熟,满足边缘协议解析与数据转发 |
| RS485收发器 | TI SN65HVD72 | 3.3V供电,±16kV ESD,1/8单位负载(最多256节点) | 工业级,支持长距离总线 |
| CAN收发器 | NXP TJA1042T | 3.3V/5V兼容,±8kV ESD,待机模式 | 与i.MX6ULL内置FlexCAN直接对接 |
| 以太网PHY | Microchip LAN8720A | RMII接口,10/100M,工业级 | 与i.MX6ULL内置MAC配合,外围器件少 |
| DI输入保护 | TI TVS3300 | 33V浪涌钳位,用于DI/DO端口防护 | 保护数字输入端口免受工业现场浪涌冲击 |
| 电源管理 | TI LM25088 | 宽压输入6~42V,同步降压控制器 | 适配9~36V输入,效率高 |
| 存储 | SanDisk iNAND 8GB eMMC | 工业温度,eMMC 5.1 | 存储Linux系统与本地缓存 |
接口规划与引脚映射
以下映射基于i.MX6ULL的引脚功能复用,需在设备树中配置对应pinmux。
| 接口 | 数量 | SoC外设 | 引脚分配 | 电气特性 |
|---|---|---|---|---|
| RS485-1 | 1 | UART3 | UART3_TXD/RXD + GPIO1_IO09(DE) | 半双工,自动方向控制 |
| RS485-2 | 1 | UART4 | UART4_TXD/RXD + GPIO1_IO10(DE) | 半双工,自动方向控制 |
| CAN | 1 | FlexCAN1 | CAN1_TX/CAN1_RX | 带120Ω终端电阻(跳线可选) |
| 以太网-1 | 1 | FEC1 | RMII接口(MDIO/MDC+数据线) | LAN8720A,RJ45带变压器 |
| 以太网-2 | 1 | FEC2 | RMII接口(MDIO/MDC+数据线) | LAN8720A,RJ45带变压器 |
| DI-1/DI-2 | 2 | GPIO1_IO04/GPIO1_IO05 | 直接接入GPIO | 光耦隔离,24V输入兼容 |
| DO-1/DO-2 | 2 | GPIO1_IO06/GPIO1_IO07 | 直接驱动GPIO | 光耦隔离,开漏输出,最大500mA |
| 4G LTE | 1 | USB_OTG1 | USB_DM/USB_DP | EC20模块,USB 2.0 |
| Wi-Fi | 1 | USDHC1 | SDIO接口 | AP6212模块,SDIO+蓝牙UART共享 |
| 调试串口 | 1 | UART1 | UART1_TXD/RXD | TTL 3.3V,用于系统调试 |
电源树规划
9~36V DC输入
└─ LM25088 降压至 5V/3A
├─ 5V → RS485收发器、CAN收发器、DI/DO光耦侧
├─ 5V → MP1584 降压至 3.3V/2A
│ ├─ 3.3V → i.MX6ULL、eMMC、LAN8720A、SN65HVD72
│ └─ 3.3V → AP6212 Wi-Fi模块
└─ 5V → MP1584 降压至 1.2V/1A(i.MX6ULL核心电压,由PMIC产生)
关键设计验证代码
以下设备树片段展示了RS485与CAN的引脚复用配置,这是接口规划落地的核心验证点。完整设备树文件需在Yocto BSP中编译。
&iomuxc {
pinctrl_rs485_1: rs485_1grp {
fsl,pins = <
MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1
MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1
MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x4001b0b0 /* DE方向控制 */
>;
};
pinctrl_can1: can1grp {
fsl,pins = <
MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b0b0
MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b0b0
>;
};
};
&uart3 {
pinctrl-names = "default";
pinctrl-0 = &pinctrl_rs485_1;
status = "okay";
rs485-rts-active-high;
linux,rs485-enabled-at-boot-time;
};
&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = &pinctrl_can1;
status = "okay";
};
运行与验证方法
- 硬件验证:按上述映射表完成原理图绘制与PCB布局后,使用万用表测量各电源轨电压(5V/3.3V/1.2V),确认在±5%范围内。
- 系统启动验证:将编译好的设备树与内核烧录至eMMC,通过调试串口连接主机,上电后应能在终端看到U-Boot与Linux启动日志。
- RS485通信验证:将RS485-1的A/B端连接至USB转RS485适配器,主机侧执行:
适配器端应能收到ASCII字符串"hello"。stty -F /dev/ttymxc2 9600 raw echo "hello" > /dev/ttymxc2 - CAN通信验证:将CAN_H/CAN_L连接至USB-CAN分析仪,网关侧执行:
分析仪应能捕获到ID=0x123、数据为DE AD BE EF的帧。ip link set can0 up type can bitrate 500000 cangen can0 -g 100 -I 0x123 -D 0xDEADBEEF -v - DI/DO验证:DI-1接入24V时,执行
cat /sys/class/gpio/gpio4/value应返回1;对DO-1写入1时,对应端子应输出24V高电平。
通过条件:上述5项验证全部通过,且网关在-40℃与+85℃环境下各连续运行2小时无复位、无通信中断,即判定硬件选型与接口规划合格。