1. 边缘网关硬件平台选型与接口识别
任务说明
某工业现场需要部署边缘网关,需求文档要求:支持Modbus RTU设备接入(RS-485)、支持4路数字量输入采集、支持通过以太网上传数据至云平台,且需具备本地AI推理能力(用于振动信号异常检测)。请根据需求完成硬件选型,并识别所选平台上的主要接口,输出接口清单及用途。
硬件选型决策
根据需求文档,三个候选平台的对比如下:
| 需求项 | 树莓派4B | Jetson Nano | x86工控机 |
|---|---|---|---|
| RS-485/Modbus | 需外接USB转485模块 | 需外接USB转485模块 | 通常板载COM口(RS-232/485) |
| 4路DI采集 | GPIO可扩展(需光耦隔离) | GPIO可扩展(需光耦隔离) | 需加隔离数字量输入卡 |
| 以太网 | 千兆以太网 | 千兆以太网 | 双千兆以太网 |
| AI推理能力 | CPU推理,算力弱 | 128核Maxwell GPU,适合边缘AI | 可加GPU,但功耗/体积大 |
| 工作温度 | 0~50℃(商用级) | -25~85℃(工业级型号) | -20~70℃(工业级型号) |
选型结论:选用Jetson Nano(工业级型号)。理由:①自带GPU满足振动信号AI推理需求;②工业级型号工作温度范围覆盖现场环境;③GPIO可扩展DI采集,USB可扩展RS-485模块;④千兆以太网满足数据上云带宽要求。
接口识别与清单
Jetson Nano开发板主要接口分布如下图所示:
接口清单及用途
| 接口 | 数量/规格 | 在本案例中的用途 |
|---|---|---|
| GPIO(40-Pin) | 28个可编程IO | 4路DI采集(接光耦隔离后接传感器),2路用于RS-485方向控制 |
| UART | UART0/1/2(TTL电平) | UART1接USB转RS-485模块(需额外模块),UART0作调试串口 |
| I2C | 1路(引脚复用) | 预留扩展:读取板载温度/电压监控芯片 |
| SPI | 1路(引脚复用) | 预留扩展:外接高速ADC或LCD |
| USB 3.0 | 4个Type-A | 1个接USB转RS-485模块(Modbus RTU),1个接4G模块(备用上云通道) |
| USB Type-C | 1个 | 5V供电输入(配合DC 5V冗余供电) |
| 以太网 | 1个千兆RJ-45 | 主用上云通道,Modbus TCP/HTTP/MQTT上传 |
| CSI/DSI/HDMI | 各1个 | 本案例不使用(HDMI仅用于调试显示) |
| microSD | 1个 | 系统存储(运行Ubuntu + 网关程序) |
| 风扇接口 | 1个5V PWM | 散热控制(工业现场高温环境) |
接口识别验证方法
在Jetson Nano上运行Ubuntu 20.04系统,通过以下命令验证接口可用性:
# 查看GPIO引脚映射(使用Jetson.GPIO库)
sudo apt install python3-pip
pip3 install Jetson.GPIO
python3 -c "import Jetson.GPIO as GPIO; print('GPIO OK')"
# 查看UART设备
ls /dev/ttyTHS*
# 预期输出:/dev/ttyTHS0 /dev/ttyTHS1 /dev/ttyTHS2
# 查看USB设备(插入USB转485模块后)
lsusb
# 预期输出:包含 "FTDI" 或 "CP210x" 等串口芯片信息
# 查看以太网链路状态
ethtool eth0 | grep "Link detected"
# 预期输出:Link detected: yes
# 查看I2C总线
sudo i2cdetect -y -r 1
# 预期输出:地址列表(无设备时显示 "--")
判定标准:①GPIO库导入无报错;②/dev/ttyTHS*设备节点存在;③插入USB转485模块后lsusb能识别到对应芯片;④以太网物理链路为yes;⑤I2C总线扫描命令正常执行。以上全部满足即接口识别通过。