嵌入式智能评审终端系统设计

基于您提供的项目背景(嵌入式工程师岗位智能评审系统落地场景)和附件核心需求,我为您生成了**《嵌入式智能评审终端系统设计说明书》。这份文档采用工业级嵌入式项目标准撰写规范**,结构完整、术语专业,可直接作为项目交付文档或研发指导手册使用。


嵌入式智能评审终端系统设计说明书

文档信息

项目名称

嵌入式智能评审终端系统

文档版本

V1.0.0

编制日期

2026年02月23日

编制部门

研发中心 - 嵌入式开发部

项目负责人

[您的姓名/团队名称]

文档密级

内部公开


目录

  1. 引言

  1. 1.1 项目背景

  1. 1.2 项目目标

  1. 1.3 文档范围

  1. 1.4 参考标准

  1. 系统框架

  1. 2.1 总体架构设计

  1. 2.2 系统框架图

  1. 2.3 硬件架构图

  1. 2.4 软件架构图

  1. 硬件设计

  1. 3.1 硬件总体方案

  1. 3.2 核心控制单元

  1. 3.3 供电系统设计

  1. 3.4 状态指示系统

  1. 3.5 外围采集与控制接口

  1. 3.6 通信接口电路

  1. 3.7 PCB布局与EMC设计

  1. 软件流程

  1. 4.1 系统初始化流程

  1. 4.2 主程序调度流程

  1. 4.3 按键检测与处理流程

  1. 4.4 电压电流采集流程

  1. 4.5 故障诊断与处理流程

  1. 系统状态

  1. 5.1 状态机总体设计

  1. 5.2 详细状态定义

  1. 5.3 状态迁移规则

  1. 通信协议和接口设计

  1. 6.1 接口总体规划

  1. 6.2 内部通信接口(UART)

  1. 6.3 工业现场通信接口(CAN/CANopen)

  1. 6.4 上位机通信接口(Modbus-RTU)

  1. 6.5 数据帧格式定义

  1. 附录

  1. 7.1 术语与缩写

  1. 7.2 元器件清单


1. 引言

1.1 项目背景

随着工业4.0与智能制造的深度融合,工业现场对嵌入式终端的实时性、可靠性、可维护性提出了严苛要求。传统的人工评审模式已无法满足大规模、标准化的嵌入式工程师能力考核与项目验收需求。

本项目作为**“理工科岗位智能评审系统”**的核心硬件载体,旨在构建一套集数据采集、实时控制、多协议通信、故障诊断于一体的嵌入式终端。该终端将作为被测工程师的实操对象,通过模拟真实工业场景,全面验证其在硬件设计、驱动开发、RTOS应用、通信协议栈移植等核心领域的工程实践能力。

1.2 项目目标

  1. 能力验证载体:提供标准化的硬件平台,覆盖系统初始化、中断控制、RTOS任务管理、多协议通信等71个核心评审点。

  2. 高可靠性:满足工业级EMC标准,支持7x24小时稳定运行,具备完善的故障自诊断与保护机制。

  3. 灵活可配置:支持多种通信协议切换,具备可扩展的IO接口,适配不同难度等级的评审任务。

  4. 数据闭环:实现现场数据(电压、电流、状态)的采集、处理、上传,为智能评审系统提供客观评分依据。

1.3 文档范围

本文档详细规定了嵌入式智能评审终端的总体设计方案,包括系统框架、硬件电路设计、软件工作流程、系统状态机及通信协议。本文档是硬件研发、软件开发、测试验收的唯一技术依据。

1.4 参考标准

  1. GB/T 17626:电磁兼容(EMC)试验和测量技术

  2. ISO 11898:道路车辆控制器局域网(CAN)

  3. CiA DS 301:CANopen应用层与通信协议

  4. Modbus-IDA:Modbus RTU通信协议规范

  5. IEC 60730:自动电气控制设备的安全标准


2. 系统框架

2.1 总体架构设计

系统采用**“分层化、模块化、高内聚、低耦合”的设计思想,整体分为感知层、控制层、传输层、应用层**四层架构。

  • 感知层:负责物理量采集(电压、电流、温度)与外部事件检测(按键、故障输入)。

  • 控制层:基于ARM Cortex-M4内核MCU,运行RTOS实时操作系统,实现任务调度与逻辑控制。

  • 传输层:集成CAN、RS485、UART等多种通信接口,实现与上位机、工业总线的互联互通。

  • 应用层:实现智能评审业务逻辑,包括状态管理、故障注入、数据上报等。

2.2 系统框架图

+--------------------------------------------------------------------------------------------------+
|                                        应用层 (Application Layer)                                |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
|  |  智能评审逻辑   |  |  系统状态管理   |  |  故障注入与诊断  |  |  参数配置管理   |  |  数据日志记录 | |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
+--------------------------------------------------------------------------------------------------+
|                                        中间件层 (Middleware Layer)                               |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
|  |    RTOS内核     |  |   CANopen栈    |  |   Modbus栈     |  |   设备驱动框架   |  |  故障处理框架 | |
|  | (FreeRTOS v10)  |  |  (CANfestival) |  |  (Modbus-RTU)  |  |   (HAL/LL API)  |  |   (FSM)      | |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
+--------------------------------------------------------------------------------------------------+
|                                        硬件抽象层 (HAL Layer)                                   |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
|  |  GPIO/EXTI驱动  |  |  UART/SPI驱动  |  |   CAN/FD驱动   |  |  ADC/DAC驱动    |  |  TIM/PWM驱动 | |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
+--------------------------------------------------------------------------------------------------+
|                                        硬件层 (Hardware Layer)                                   |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
|  |  主控MCU (M4)   |  |  电源管理单元   |  |  通信接口单元   |  |  信号采集单元   |  |  人机交互单元 | |
|  +----------------+  +----------------+  +----------------+  +----------------+  +--------------+ |
+--------------------------------------------------------------------------------------------------+

2.3 硬件架构图

+----------------------------------------------------------------------------------------+
|                               嵌入式智能评审终端硬件框图                              |
+----------------------------------------------------------------------------------------+
|  [ 电源模块 ]                                                                          |
|  +----------------+    +----------------+    +----------------+                       |
|  |  24V工业供电   |--->|  LDO降压(5V/3.3V)|--->|  电源监测(ADC) |                       |
|  +----------------+    +----------------+    +----------------+                       |
+----------------------------------------------------------------------------------------+
|  [ 主控核心 ]                                                                          |
|  +---------------------------------------------------------------------------------+  |
|  |       MCU (STM32F407)                                                           |  |
|  |  [内核:Cortex-M4, 168MHz, FPU, 1MB Flash, 192KB RAM]                           |  |
|  +---------------------------------------------------------------------------------+  |
+----------------------------------------------------------------------------------------+
|  [ 采集接口 ]                          [ 控制接口 ]                                   |
|  +----------------+                    +----------------+                            |
|  |  电压采集(0-30V)|                    |  继电器输出    |                            |
|  +----------------+                    +----------------+                            |
|  +----------------+                    +----------------+                            |
|  |  电流采集(0-5A) |                    |  PWM输出       |                            |
|  +----------------+                    +----------------+                            |
|  +----------------+                                                                 |
|  |  温度采集(NTC)  |                                                                 |
|  +----------------+                                                                 |
+----------------------------------------------------------------------------------------+
|  [ 通信接口 ]                                                                          |
|  +----------------+    +----------------+    +----------------+    +----------------+  |
|  |  CAN总线 (ISO11898) |  RS485 (Modbus) |  UART (调试/扩展)|  USB (数据下载)   |  |
|  +----------------+    +----------------+    +----------------+    +----------------+  |
+----------------------------------------------------------------------------------------+
|  [ 人机交互 ]                                                                          |
|  +----------------+    +----------------+    +----------------+                       |
|  |  3位LED状态灯  |    |  4位机械按键   |    |  OLED显示屏    |                       |
|  +----------------+    +----------------+    +----------------+                       |
+----------------------------------------------------------------------------------------+

2.4 软件架构图

+--------------------------------------------------------------------------------------------------+
| 应用任务层 (Application Tasks)                                                                 |
+--------------------------------------------------------------------------------------------------+
| [Task_AppMain]       [Task_Comm]         [Task_Acq]          [Task_Diag]        [Task_UIFrame]   |
|  主状态机管理         多协议通信处理       数据采集与滤波       故障诊断与处理       UI显示与按键   |
|  (Priority: 2)       (Priority: 3)       (Priority: 4)       (Priority: 1)       (Priority: 5)    |
+--------------------------------------------------------------------------------------------------+
| 中间件服务层 (Middleware Services)                                                             |
+--------------------------------------------------------------------------------------------------+
| [Queue]  [Semaphore] [Timer] [CANopen] [Modbus] [FSM] [Logger] [Config]                          |
|  消息队列   信号量     软件定时器 CANopen协议 Modbus协议 状态机  日志服务  参数配置            |
+--------------------------------------------------------------------------------------------------+
| 驱动适配层 (Driver Abstraction)                                                                |
+--------------------------------------------------------------------------------------------------+
| [Drv_CAN] [Drv_RS485] [Drv_ADC] [Drv_LED] [Drv_Key] [Drv_Relay] [Drv_OLED]                      |
+--------------------------------------------------------------------------------------------------+
| 硬件层 (BSP)                                                                                   |
+--------------------------------------------------------------------------------------------------+
| [STM32 HAL] [Low Layer] [System Init]                                                           |
+--------------------------------------------------------------------------------------------------+

3. 硬件设计

3.1 硬件总体方案

硬件采用STM32F407ZET6作为主控芯片,该芯片基于ARM Cortex-M4内核,具备FPU浮点运算单元,主频高达168MHz,满足RTOS多任务调度和复杂算法运算需求。系统采用24V工业标准供电,具备完善的过压、过流、反接保护机制。

3.2 核心控制单元

  • MCU型号:STM32F407ZET6

  • 时钟配置:外部晶振25MHz,PLL倍频至168MHz,APB1=42MHz,APB2=84MHz。

  • 存储配置:板载1MB SPI Flash (W25Q64) 用于存储参数和日志;192KB片内SRAM满足系统运行。

  • 复位电路:采用手动复位+看门狗复位双重机制,确保系统异常时可自动恢复。

3.3 供电系统设计

3.3.1 供电拓扑

  • 输入:DC 18V~36V 宽电压输入(兼容24V工业电源)。

  • 一级转换:通过DCDC芯片(LM2596)将24V转为5V,为继电器、通信接口等外设供电。

  • 二级转换:通过LDO芯片(AMS1117-3.3)将5V转为3.3V,为MCU、传感器、存储器供电。

3.3.2 电源保护

  1. 反接保护:在电源输入端串联P沟道MOS管,防止电源正负极接反。

  2. 过流保护:DC-DC输出端配置自恢复保险丝,限制短路电流。

  3. 电源监测:利用MCU内部ADC采集5V和3.3V电压,实时监控电源健康状态。

3.3.3 电源状态指示

  • PWR LED (绿色):24V电源正常常亮。

  • SYS LED (蓝色):3.3V电源正常常亮。

3.4 状态指示系统

系统配备3位高亮度LED,用于指示系统运行状态,符合工业现场可视化需求。

LED颜色

标识

状态定义

驱动方式

红色

ALM

常亮:严重故障;闪烁:一般故障;熄灭:无故障

推挽输出,低电平点亮

黄色

RUN

1Hz闪烁:正常运行;2Hz闪烁:通信中;常亮:初始化中

推挽输出,低电平点亮

绿色

RDY

常亮:准备就绪/空闲;熄灭:未就绪/运行中

推挽输出,低电平点亮

3.5 外围采集与控制接口

3.5.1 模拟量采集

  1. 电压采集:0-30V输入,通过电阻分压(100k:10k)将电压降至0-3V,接入ADC通道,采样精度12位。

  2. 电流采集:0-5A输入,通过霍尔电流传感器(ACS712)转换为电压信号,经滤波后接入ADC。

  3. 采集频率:采用DMA方式,对电压、电流、温度进行轮询采集,总采样率≥1kHz。

3.5.2 数字量控制

  1. 继电器输出:2路常开继电器,控制电压24V,负载能力5A,用于模拟工业负载的通断。

  2. PWM输出:1路PWM信号,频率1kHz~10kHz可调,用于控制调速电机或调光设备。

3.6 通信接口电路

3.6.1 CAN接口

  • 芯片:TJA1050

  • 保护:配置共模电感、TVS管,具备ESD和浪涌保护能力。

  • 终端电阻:板载120Ω终端电阻,通过拨码开关选择是否启用。

3.6.2 RS485接口

  • 芯片:MAX485

  • 控制:通过GPIO控制DE/RE引脚,实现半双工通信。

  • 保护:TVS管防静电,自恢复保险丝防过流。

3.7 PCB布局与EMC设计

  1. 分区布局:模拟地与数字地分开布局,ADC采集电路远离功率器件。

  2. 接地设计:采用单点接地与多点接地结合方式,主芯片下方铺设完整地平面。

  3. 滤波设计:每个IC电源引脚就近放置0.1uF去耦电容,电源入口处放置10uF钽电容。


4. 软件流程

软件基于FreeRTOS实时操作系统开发,采用前后台结合的架构,中断处理紧急事件,任务处理业务逻辑。

4.1 系统初始化流

flowchart TD
    st([系统上电/复位]) --> op1[硬件复位初始化]
    op1 --> op2[系统时钟配置\n(PLL/分频)]
    op2 --> op3[外设GPIO初始化]
    op3 --> op4[HAL库与底层驱动初始化]
    op4 --> op5[中断向量表配置]
    op5 --> op6[RTOS内核初始化]
    op6 --> op7[创建设备驱动任务]
    op7 --> op8[创建应用业务任务]
    op8 --> op9[RTOS调度器启动]
    op9 --> e([进入主任务调度])
 

4.2 主程序调度流程

st=>start: 按键中断触发
e=>end: 发送消息队列
op1=>operation: 清除中断标志
op2=>operation: 启动消抖定时器(20ms)
op3=>operation: 定时器中断回调
op4=>operation: 读取GPIO电平
cond1=>condition: 按键仍按下?
op5=>operation: 记录按下时间戳
op6=>operation: 启动长按定时器(1s)
cond2=>condition: 按键释放?
op7=>operation: 计算按下时长
cond3=>condition: 时长 < 1s?
op8=>operation: 发送短按事件
op9=>operation: 发送长按事件
op10=>operation: 停止长按定时器

st->op1->op2->e
op3->op4->cond1
cond1(yes)->op5->op6->e
cond1(no)->e
cond2(yes)->op10->op7->cond3
cond3(yes)->op8->e
cond3(no)->op9->e

4.3 按键检测与处理流程

采用消抖+短按/长按识别算法,通过软件定时器实现,不阻塞主任务。

st=>start: ADC DMA完成
e=>end: 数据入队缓存
op1=>operation: 读取ADC原始值
op2=>operation: 死区与异常值判断
cond1=>condition: 数据有效?
op3=>operation: 丢弃异常数据
op4=>operation: 标度变换(电压/电流)
op5=>operation: 滑动窗口滤波(窗口=10)
op6=>operation: 更新历史数据缓存
op7=>operation: 触发阈值比较

st->op1->op2->cond1
cond1(no)->op3->e
cond1(yes)->op4->op5->op6->op7->e

4.4 电压电流检测流程

采用滑动平均滤波算法,剔除异常值,保证数据稳定性。

st=>start: ADC DMA完成
e=>end: 数据入队缓存
op1=>operation: 读取ADC原始值
op2=>operation: 死区与异常值判断
cond1=>condition: 数据有效?
op3=>operation: 丢弃异常数据
op4=>operation: 标度变换(电压/电流)
op5=>operation: 滑动窗口滤波(窗口=10)
op6=>operation: 更新历史数据缓存
op7=>operation: 触发阈值比较

st->op1->op2->cond1
cond1(no)->op3->e
cond1(yes)->op4->op5->op6->op7->e

4.5 故障诊断与处理流程

遵循**“先报警、后保护、再记录”**的原则,确保系统安全。

st=>start: 诊断任务调度
e=>end: 更新ALM LED状态
op1=>operation: 轮询各诊断项
cond1=>condition: 存在故障?
op2=>operation: 获取故障等级
cond2=>condition: 严重故障?
op3=>operation: 立即执行安全保护(停机)
op4=>operation: 记录故障代码与时间
op5=>operation: 发送故障上报报文
op6=>operation: 清除故障标志
op7=>operation: 恢复系统运行

st->op1->cond1
cond1(yes)->op2->cond2
cond2(yes)->op3->op4->op5->e
cond2(no)->op4->op5->e
cond1(no)->cond2
cond2(yes)->op6->op7->e
cond2(no)->e

5. 系统状态

系统采用有限状态机(FSM) 设计,共定义5个核心状态,状态迁移基于外部事件和内部条件,确保逻辑严谨。

5.1 状态机总体设计

[初始化状态] -->[就绪状态]
    ^               |
    |               v
[故障状态] <-- [运行状态] --> [通信配置状态]
    |
    +--> [待机状态]

5.2 详细状态定义

状态ID

状态名称

英文标识

优先级

状态描述

LED指示 (ALM/RUN/RDY)

S0

初始化状态

INIT

最高

系统上电或复位后,进行硬件自检、参数加载、网络初始化。

灭/常亮/灭

S1

就绪状态

READY

系统初始化完成,无故障,等待评审任务指令。

灭/1Hz闪/常亮

S2

运行状态

RUNNING

接收评审任务,执行数据采集、控制逻辑、算法运算。

灭/2Hz闪/灭

S3

故障状态

FAULT

最高

检测到严重错误(过压、过流、通信中断),系统进入保护模式。

常亮/灭/灭

S4

通信配置状态

CONFIG

响应上位机指令,进行参数配置、协议切换、固件升级。

灭/双闪/灭

S5

待机状态

STANDBY

故障清除后或空闲超时,关闭非必要外设,降低功耗。

灭/慢闪/常亮

5.3 状态迁移规则

当前状态

触发事件

目标状态

迁移动作

INIT

自检通过

READY

加载默认参数,启动看门狗

INIT

自检失败

FAULT

记录故障码,关闭输出

READY

收到启动指令

RUNNING

开启采集,启动控制任务

READY

空闲超时(5min)

STANDBY

关闭显示屏,降低CPU主频

RUNNING

任务完成/停止指令

READY

停止输出,清除缓存

RUNNING

检测到故障

FAULT

立即切断输出,保存现场数据

FAULT

故障清除/复位指令

INIT

重启系统,重新自检

READY/RUNNING

收到配置指令

CONFIG

暂停业务,进入配置模式

CONFIG

配置完成/超时

READY

保存配置,恢复业务

STANDBY

按键唤醒/指令唤醒

READY

恢复外设,正常运行


6. 通信协议和接口设计

系统遵循**“异构网络,统一接口”**的设计原则,集成多种工业标准协议,满足不同评审场景的需求。

6.1 接口总体规划

接口名称

物理接口

通信协议

波特率

功能定位

评审点覆盖

COM1

UART (DB9)

自定义ASCII

115200

调试日志、参数查询

中断控制、UART驱动

COM2

RS485 (接线端子)

Modbus-RTU

9600

工业级数据交互

通信协议、数据解析

CAN1

CAN (接线端子)

CANopen / 自定义CAN

500k

实时控制、多节点通信

CAN驱动、协议栈移植

USB

USB SLAVE

MSC/HID

-

固件升级、日志导出

存储管理、USB驱动

6.2 内部通信接口(UART)

6.2.1 帧格式

采用自定义ASCII帧,便于人工调试,帧头$,帧尾\r\n

  • 查询电压$RD,VA\r\n

  • 响应$OK,VA,24.50V\r\n

  • 错误$ER,01,Param Error\r\n

6.3 工业现场通信接口(CAN/CANopen)

6.3.1 CAN物理层参数

  • 波特率:500 kbps

  • 采样点:75%

  • SJW:1

  • 总线长度:≤ 40m(带终端电阻)

6.3.2 CANopen对象字典(OD)

采用CANopen CiA 402运动控制协议子集,核心索引如下:

索引(Index)

子索引(Sub)

名称

访问权限

数据类型

初始值

0x6000

0x00

设备状态字

RO

UNSIGNED16

0x0001

0x6001

0x00

控制字

RW

UNSIGNED16

0x0000

0x6002

0x00

电压实际值

RO

UNSIGNED16

0

0x6003

0x00

电流实际值

RO

UNSIGNED16

0

0x6004

0x00

故障代码

RO

UNSIGNED16

0

6.3.3 PDO映射配置

  • TxPDO1 (COB-ID: 0x180+NodeID):发送状态数据

    • 0x6000:00 (设备状态字) - 2字节

    • 0x6002:00 (电压实际值) - 2字节

    • 0x6003:00 (电流实际值) - 2字节

  • RxPDO1 (COB-ID: 0x200+NodeID):接收控制指令

    • 0x6001:00 (控制字) - 2字节

6.4 上位机通信接口(Modbus-RTU)

6.4.1 寄存器映射

采用保持寄存器(4xxxx) 映射系统参数,地址从0开始。

起始地址

寄存器数量

名称

数据类型

分辨率

访问权限

0x0000

1

系统状态

16位无符号

-

RO

0x0001

1

故障代码

16位无符号

-

RO

0x0002

2

电压值

32位浮点数

0.01V

RO

0x0004

2

电流值

32位浮点数

0.001A

RO

0x0006

1

控制指令

16位无符号

-

RW

0x0007

1

参数保存

16位无符号

-

WO

6.4.2 典型报文示例

读取电压值(地址0x0002,数量2)

  • 主机请求01 03 00 02 00 02 C4 0B

  • 从机响应01 03 04 41 C8 00 00 76 87

    • 解析:0x41C80000 = 24.50 V

6.5 数据帧格式定义

6.5.1 自定义CAN数据帧(非CANopen模式)

用于快速数据传输,适用于实时性要求高的场景。

字节

功能

说明

Byte 0

帧类型

0x01:状态帧, 0x02:数据帧, 0x03:控制帧

Byte 1-2

时间戳

系统运行时间(ms)

Byte 3-4

电压值

(电压*100),16位无符号整数

Byte 5-6

电流值

(电流*1000),16位无符号整数

Byte 7

状态标志

Bit0:运行, Bit1:故障, Bit2:就绪


7. 附录

7.1 术语与缩写

缩写

英文全称

中文释义

RTOS

Real-Time Operating System

实时操作系统

CAN

Controller Area Network

控制器局域网

FSM

Finite State Machine

有限状态机

HAL

Hardware Abstraction Layer

硬件抽象层

DMA

Direct Memory Access

直接存储器访问

EMC

Electromagnetic Compatibility

电磁兼容性

7.2 元器件清单(核心)

序号

型号

数量

用途

1

STM32F407ZET6

1

主控制芯片

2

TJA1050

1

CAN总线收发器

3

MAX485

1

RS485总线收发器

4

LM2596-5.0

1

DC-DC电源转换

5

AMS1117-3.3

2

LDO电源转换

6

ACS712-05B

1

电流传感器

7

W25Q64JV

1

SPI Flash存储器

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐