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,硬件加密引擎

核心选型结果

模块选型关键规格选型理由
主控SoCNXP i.MX6ULLARM Cortex-A7 528MHz,工业级,硬件加密低功耗、工业级、Linux生态成熟,满足边缘协议解析与数据转发
RS485收发器TI SN65HVD723.3V供电,±16kV ESD,1/8单位负载(最多256节点)工业级,支持长距离总线
CAN收发器NXP TJA1042T3.3V/5V兼容,±8kV ESD,待机模式与i.MX6ULL内置FlexCAN直接对接
以太网PHYMicrochip LAN8720ARMII接口,10/100M,工业级与i.MX6ULL内置MAC配合,外围器件少
DI输入保护TI TVS330033V浪涌钳位,用于DI/DO端口防护保护数字输入端口免受工业现场浪涌冲击
电源管理TI LM25088宽压输入6~42V,同步降压控制器适配9~36V输入,效率高
存储SanDisk iNAND 8GB eMMC工业温度,eMMC 5.1存储Linux系统与本地缓存

接口规划与引脚映射

以下映射基于i.MX6ULL的引脚功能复用,需在设备树中配置对应pinmux。

接口数量SoC外设引脚分配电气特性
RS485-11UART3UART3_TXD/RXD + GPIO1_IO09(DE)半双工,自动方向控制
RS485-21UART4UART4_TXD/RXD + GPIO1_IO10(DE)半双工,自动方向控制
CAN1FlexCAN1CAN1_TX/CAN1_RX带120Ω终端电阻(跳线可选)
以太网-11FEC1RMII接口(MDIO/MDC+数据线)LAN8720A,RJ45带变压器
以太网-21FEC2RMII接口(MDIO/MDC+数据线)LAN8720A,RJ45带变压器
DI-1/DI-22GPIO1_IO04/GPIO1_IO05直接接入GPIO光耦隔离,24V输入兼容
DO-1/DO-22GPIO1_IO06/GPIO1_IO07直接驱动GPIO光耦隔离,开漏输出,最大500mA
4G LTE1USB_OTG1USB_DM/USB_DPEC20模块,USB 2.0
Wi-Fi1USDHC1SDIO接口AP6212模块,SDIO+蓝牙UART共享
调试串口1UART1UART1_TXD/RXDTTL 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";
};

运行与验证方法

  1. 硬件验证:按上述映射表完成原理图绘制与PCB布局后,使用万用表测量各电源轨电压(5V/3.3V/1.2V),确认在±5%范围内。
  2. 系统启动验证:将编译好的设备树与内核烧录至eMMC,通过调试串口连接主机,上电后应能在终端看到U-Boot与Linux启动日志。
  3. RS485通信验证:将RS485-1的A/B端连接至USB转RS485适配器,主机侧执行:
    stty -F /dev/ttymxc2 9600 raw
    echo "hello" > /dev/ttymxc2
    适配器端应能收到ASCII字符串"hello"。
  4. CAN通信验证:将CAN_H/CAN_L连接至USB-CAN分析仪,网关侧执行:
    ip link set can0 up type can bitrate 500000
    cangen can0 -g 100 -I 0x123 -D 0xDEADBEEF -v
    分析仪应能捕获到ID=0x123、数据为DE AD BE EF的帧。
  5. DI/DO验证:DI-1接入24V时,执行cat /sys/class/gpio/gpio4/value应返回1;对DO-1写入1时,对应端子应输出24V高电平。

通过条件:上述5项验证全部通过,且网关在-40℃与+85℃环境下各连续运行2小时无复位、无通信中断,即判定硬件选型与接口规划合格。