一、简介:为什么矿用控制器必须“国产芯+实时系统”?

  • 政策驱动:2025 年矿山智能化建设意见明确要求“关键控制系统自主可控”,进口 PLC+Windows 方案被限制进入井下。

  • 环境挑战:井下 50 °C、95% 湿度、煤尘易爆 → 需隔爆外壳+本质安全电源,对功耗、散热、稳定性提出极致要求。

  • 实时需求:瓦斯传感器 50 ms 内必须停机;提升机 10 ms 内完成抱闸 → 通用 Linux 无法满足。

  • 飞腾优势:FT-2000/4 功耗 < 15 W,支持 SM2/3/4 国密,内置看门狗 & 温度传感器,一颗芯片=CPU+国密+安全启动,替代“x86+国外 PLC”黄金组合。

掌握“飞腾+实时 Linux”落地方法 = 拿到能源、矿山、轨道交通等关键场景入场券,也是国产化投标加分项


二、核心概念:6 个关键词先搞懂

关键词 一句话说明 本文出现场景
隔爆 Ex d 外壳能承受内部爆炸而不传爆 整机结构设计
本安 Ex ia 电路能量限制,短路也不会点燃瓦斯 电源与 GPIO 设计
PREEMPT_RT Linux 实时补丁,中断线程化,延迟 < 100 μs 内核编译必开
SM2/3/4 国密算法,飞腾硬件加速 数据上云加密
EtherCAT 实时工业以太网,周期 1 ms,矿用本安网线 传感器总线
看门狗 软件跑飞 100 ms 内自动复位 飞腾内置 WDT

三、环境准备:10 分钟搭好“矿用实验台”

1. 硬件

模块 型号/规格 备注
飞腾核心板 FT-2000/4 2.2 GHz 4 核 官方 EVB 或信迈矿用板
电源 24 V 本安电源,带双重保护 输出 12 V/2 A
隔爆外壳 304 不锈钢,IP66 自备或淘宝样品
温湿瓦斯传感器 本安型 RS485/EtherCAT 符合 GB3836.4
调试转接板 串口+网口引出,防爆格兰头 需灌胶密封

2. 软件

组件 版本 一键安装脚本
Ubuntu Server 20.04 (ARM64) 飞腾源 http://repo.phytium.com.cn
实时内核 linux-5.10.y-rt 见下
EtherCAT 主站 IgH 1.6 apt install ethercat-1.6
国密工具 gmssl 2.5 apt install gmssl

3. 一键编译飞腾 RT 内核(可复制)

#!/bin/bash
# build_ft_rt.sh
set -e
KERNEL=linux-5.10.142
RT_PATCH=${KERNEL}-rt61.patch
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/${KERNEL}.tar.xz
wget https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.10/${RT_PATCH}
tar -xf ${KERNEL}.tar.xz && cd ${KERNEL}
xzcat ../${RT_PATCH} | patch -p1
# 飞腾默认 config
wget http://repo.phytium.com.cn/arm64/config.ft2004 -O .config
./scripts/config -e CONFIG_PREEMPT_RT
make -j$(nproc) Image dtbs
sudo make modules_install
sudo cp arch/arm64/boot/Image /boot/vmlinuz-5.10.142-rt
sudo update-grub

重启选 RT 内核,确认:

uname -r   # 5.10.142-rt61
cyclictest -p99 -i100 -d60s | tail -1
# Max 延迟 < 80 μs 即合格

四、应用场景(300 字):井下采面智能化集控

某矿 3403 综采面,埋深 800 m,采高 3.2 m,布置 128 台液压支架、2 台采煤机、4 路瓦斯传感器。
传统方案:进口 S7-400 PLC + Profibus,周期 500 ms,线缆多、节点多、易爆。
采用飞腾本安控制器后:

  • 隔爆箱内仅 1 块 FT-2000/4 核心板,功耗 < 15 W,无需风冷。

  • EtherCAT 环网 1 ms 周期,同步 128 个支架位移传感器,控制精度 ±2 mm。

  • 瓦斯浓度>1.0% 时,1 ms 切断牵引电机电源,< 50 ms 完成支架闭锁。

  • 数据经 SM4 加密后通过 5G 本安 CPE 上云,地面调度室实时 3D 可视化。
    国产化率 100%,通过煤安 MA 认证,成本下降 30%,维护工作量减半。


五、实际案例与步骤:从“裸板”到“矿用集控”

5.1 硬件连接图(简化)

温湿传感器 ─┐
             ├─ EtherCAT 本安环网 ── 飞腾 ECAT 主站 ── FT-2000/4 ── 5G CPE
瓦斯传感器 ─┘                                     │
                                                 └─ 本安 DO → 接触器断电

5.2 步骤 1:设备树开启 EtherCAT 主站

# 编辑 dts 打开 MACB 外设
sudo nano arch/arm64/boot/dts/rockchip/ft2004-evb.dts
# 添加
&macb0 {
    status = "okay";
    phy-handle = <&phy0>;
};

编译并替换 dtb:

make dtbs
sudo cp arch/arm64/boot/dts/rockchip/ft2004-evb.dtb /boot/

5.3 步骤 2:IgH EtherCAT 主站快速配置

sudo apt install ethercat-1.6
sudo modprobe ec_master main_devices=00:0a:35:00:01:02  # MACB0 地址
sudo ethercatctl start

扫描从站:

sudo ethercat slaves   # 应显示 4 个传感器

5.4 步骤 3:实时数据采集线程(可复制)

/* ecrt_demo.c */
#include <ecrt.h>
#include <stdio.h>
#include <pthread.h>
#include <sched.h>

static ec_master_t *master;
static ec_domain_t *domain;
static uint8_t *process_data;

void *cyclical_task(void *arg)
{
    struct timespec ts = {0, 1000000}; /* 1 ms */
    while (1) {
        ecrt_master_receive(master);
        ecrt_domain_process(domain);
        /* 读取瓦斯值 */
        uint16_t gas = EC_READ_U16(process_data);
        if (gas > 1000) {  /* 1.0% = 1000 */
            system("echo 0 > /sys/class/gpio/gpio99/value"); // 断电
        }
        ecrt_domain_queue(domain);
        ecrt_master_send(master);
        nanosleep(&ts, NULL);
    }
    return NULL;
}

int main()
{
    master = ecrt_request_master(0);
    domain = ecrt_master_create_domain(master);
    ecrt_domain_reg_pdo(domain);
    ecrt_master_activate(master);
    process_data = ecrt_domain_data(domain);

    pthread_t tid;
    pthread_attr_t attr;
    struct sched_param param = { .sched_priority = 90 };
    pthread_attr_init(&attr);
    pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
    pthread_attr_setschedparam(&attr, &param);
    pthread_create(&tid, &attr, cyclical_task, NULL);
    pthread_join(tid, NULL);
    ecrt_release_master(master);
    return 0;
}

编译:

gcc ecrt_demo.c -o ecrt_demo -lethercat -pthread
sudo ./ecrt_demo

5.5 步骤 4:看门狗与故障复位

飞腾内置 WDT 节点:/dev/watchdog

sudo apt install watchdog
sudo nano /etc/watchdog.conf
# 取消注释
watchdog-device        = /dev/watchdog
max-load-1             = 24

启动服务:

sudo systemctl enable watchdog --now

软件跑飞 1 s 内自动复位整机,满足 MA 认证“故障安全”条款。


六、常见问题与解答(FAQ)

问题 现象 解决
cyclictest Max > 200 μs 未关 CPU 省电 BIOS 关闭 Turbo、C-State;加内核参数 nohz_full=2,3
EtherCAT 丢包 周期 1 ms 抖动大 使用专用网口,关闭 NetworkManager;irqbalance 移出该 IRQ
本安电源无法启动 过流保护 确认飞腾板 12 V 峰值 < 1.5 A,加 470 μF 钽电容
SM4 加密卡顿 单核占用 80% 改用 /dev/crypto 飞腾硬件加速接口,吞吐量提升 10 倍
MA 认证样机被否 无“故障自检”记录 在代码里加 printf("DIAG: %d\n", err); 并保存到掉电存储,审计时导出

七、实践建议与最佳实践

  1. 边开发边测试
    每合并 1 个功能 → 自动跑 cyclictest + ethercat 回归,MR 流水线失败禁止合并。

  2. 版本锁定
    内核、IgH、fpga 固件哈希写入《配置清单》,现场升级需走“变更影响分析”。

  3. 故障记录掉电保存
    使用 SPI-FRAM 存储最后 1000 条诊断日志,审计员可随身带走。

  4. 双核冗余
    关键继电器输出采用“双 MCU 交叉校验”,即使飞腾核跑飞也能硬件切断。

  5. 培训与文化
    每月举办“矿安下午茶”,分享认证发现,把标准从纸面落到习惯。

  6. 维持证书连续性
    现场修改参数 → 必须走“变更请求→安全评估→回归测试→文档更新”闭环,否则 MA 证书暂停。


八、总结:一张脑图带走全部要点

飞腾矿用实时控制
├─ 芯片:FT-2000/4 低功耗 <15 W,内置国密 & WDT
├─ 系统:PREEMPT_RT + EtherCAT 1 ms 周期
├─ 安全:本安电源 + 隔爆外壳 + 故障自检 + 看门狗
├─ 认证:MA / SIL 2 追溯链 + 故障注入记录
└─ 实战:cyclictest < 80 μs + SM4 硬加速 + 双核冗余

掌握“飞腾 + 实时 Linux”组合,你就能:

  • 替代进口 PLC,成本降 30%,国产化率 100%。

  • 让井下控制器在 50 °C 粉尘环境里 7×24 零故障运行。

  • 轻松通过煤安、SIL、CCC 认证,投标直接加分。

立刻把本文脚本 git clone 到本地,跑一遍 cyclictest,再插上 EtherCAT 从站——下一座智慧矿山,就将由你的代码守护

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐