一、基础工程与版本配置
在 SSC Tool 主页面(SSC-Device界面),首先显示工程的基础配置信息,决定协议栈版本与核心文件关联,是后续配置的前提:

| 配置项 | 说明与作用 | 关键约束与示例 | |
|---|---|---|---|
SSC Version |
显示当前 SSC Tool 的版本 | / | |
Config File Version |
配置文件版本,定义工程配置文件(.esp)的格式规范,确保生成的源码与 ESI 文件符合 ETG 规范。 | 配置文件版本需与 SSC 版本对应,不可跨版本混用(如 5.13 版本需搭配 1.5.x 系列配置文件)。 | |
Project File List |
列出工程关联的核心文件(如aoeappl.c/h、coeappl.c/h、ecatappl.c/h等),不同文件对应不同功能模块(AoE、CoE、EtherCAT 应用逻辑),未启用的功能模块文件可手动移除。 |
例如启用 CoE 功能时,coeappl.c/h会自动加入工程;禁用 EOE 时,ecateoe.c/h可删除以减少代码冗余。 |
|
Custom Project Template |
选择基础工程模板 | 模板预配置了适配特定硬件的基础参数(如 I/O 口映射、SPI 接口定义),减少手动配置工作量 |
二、Slave Information(从站身份配置)
该模块定义从站设备的唯一标识信息,与 ESI 文件(XML)强关联,主站通过这些信息识别从站,是网络通信的 "身份凭证":

| 配置项 | 说明与作用 | 配置要求与示例 |
|---|---|---|
VENDOR_ID |
公司注册 ETG(EtherCAT 技术协会)的唯一 ID,若公司未注册,需在 ETG 官网(www.ethercat.org)申请,商业产品必须填写真实 ID。 | 示例:0x10000(测试用临时 ID,商业产品需替换为正式注册 ID)。 |
VENDOR_NAME |
公司名称,将显示在主站(如 TwinCAT)的从站列表中,用于直观识别设备供应商。 | 示例:"Beckhoff Automation""Microchip"。 |
VENDOR_IMAGE |
公司图标数据(二进制格式),主站扫描到从站时会显示该图标,增强设备辨识度。 | 格式需符合 ETG 规范,通常由图片转换工具生成(如 BMP 转二进制)。 |
GROUP_NAME |
设备组名,用于区分从站设备类型(如 "I/O 模块""运动控制器""传感器"),便于主站分类管理。 | 示例:"SSC_Device"(默认组名)、"Digital I/O Module"。 |
GROUP_IMAGE/DEVICE_IMAGE |
组图标与设备图标数据,通常复用公司图标,若需自定义设备外观(如模块外形),可单独配置。 | 非必配项,测试阶段可留空,商业产品建议配置以提升专业性。 |
PRODUCT_CODE |
产品唯一 ID,同一公司的不同产品需分配不同代码,主站通过该代码识别设备型号。 | 示例:0x26483052(EL9800 评估板默认代码)。 |
REVISION_NUMBER |
产品修订版本号,格式为 "0xVVVVMMMM"(VVVV = 硬件版本,MMMM = 软件版本),用于区分产品迭代。 | 示例:0x00020111(硬件 V2.0,软件 V1.11)。 |
SERIAL_NUMBER |
产品序列号,每台设备唯一,用于设备溯源与故障定位,可通过硬件引脚或软件动态生成。 | 测试阶段可设为 0x00000000,量产时需按生产批次分配唯一值。 |
DEVICE_PROFILE_TYPE |
设备配置文件类型,对应 ETG 规范中定义的标准设备类型(如 I/O 模块、驱动器),主站根据该值加载对应的协议处理逻辑。 | 示例:0x00001389(EL9800 数字量 I/O 模块对应的标准类型)。 |
DEVICE_NAME |
从站设备名称,主站界面中显示的设备别名,需简洁明了。 | 示例:"SSC-Device""EL9800_8DI_16AI"。 |
DEVICE_HW_VERSION/DEVICE_SW_VERSION |
硬件版本与软件版本,用于主站识别设备的硬件型号与协议栈版本,便于维护升级。 | 硬件版本示例:"V2.1",软件版本示例:"5.13"(与 SSC 版本一致)。 |
三、Generic(通用功能配置)
该模块配置从站的基础功能开关,涉及 ESC(EtherCAT Slave Controller)内存访问、看门狗、对象字典类型等通用逻辑:

| 配置项 | 说明与作用 | 配置逻辑与注意事项 |
|---|---|---|
SYSTEM_HEADER_FILE |
定义系统头文件的引用语法,用于导入用户自定义的硬件驱动头文件(如 MCU 的 GPIO、SPI 驱动)。 | 格式示例:#include "myhardware.h",仅在未选择默认硬件(如 EL9800)时需配置。 |
EXPLICIT_DEVICE_ID |
控制是否处理主站发送的 "显示设备 ID" 请求,置 1 时从站会返回VENDOR_ID/PRODUCT_CODE等信息,置 0 时忽略该请求。 |
测试与调试阶段建议置 1,便于主站识别设备;量产阶段可置 0 以减少通信开销。 |
ESC_SM_WD_SUPPORTED |
是否启用 ESC 内部的同步管理器(SM)看门狗(过程数据看门狗),由 ESC 定时器触发,若超时未收到主站过程数据,从站会进入故障状态。 | 默认置 1,确保过程数据传输的实时性;若无需实时性(如低速 I/O),可置 0 关闭。 |
STATIC_OBJECT_DIC |
设置对象字典为 "静态",仅 PIC18 系列 MCU 默认启用,其他 MCU(如 PIC24、ARM)通常置 0,使用动态对象字典。 | 静态对象字典编译时固定,不可修改;动态对象字典可在运行时调整,灵活性更高。 |
ESC_EEPROM_ACCESS_SUPPORT |
启用后从站支持访问 ESC 外接的 EEPROM(如存储 ESI 文件、设备参数),置 0 时无法读取 EEPROM 数据。 | 若从站需保存配置参数(如 IP 地址、PDO 映射),需置 1;无 EEPROM 时置 0。 |
四、Hardware(硬件适配配置)
该模块是 SSC 配置的核心,直接关联从站硬件(如 EL9800 评估板、MCU、ESC)的接口与访问方式,配置错误会导致硬件通信失败:

| 配置项 | 说明与作用 | 硬件适配逻辑与示例 |
|---|---|---|
EL9800_HW |
置 1 时生成 EL9800 评估板的专用硬件接口文件(如 SPI 引脚定义、I/O 口映射),原文中默认置 1,适配 EL9800 系列评估板。 | 若使用其他硬件(如 LAN9253 评估板),需置 0 并手动配置HW_ACCESS_FILE。 |
MCI_HW/FC1100_HW |
MCI_HW置 1 时使用 ESC 的 MCI 接口(替代 SPI),FC1100_HW置 1 时适配 FC1100 PCI 板卡,两者均需在ESC_CONFIG_DATA中配置 PDI 类型。 |
默认均置 0,使用 SPI 接口(EL9800 的 IP204/J204 连接器);若需 MCI 接口,需启用并配置对应引脚。 |
HW_ACCESS_FILE |
导入用户自定义的硬件访问头文件,用于适配非默认硬件(如自定义 MCU 的 SPI 驱动),格式为#include "xxx.h"。 |
示例:使用 RT1176 时,配置为#include "fsl_spi.h"(NXP SDK 头文件)。 |
CONTROLLER_16BIT/CONTROLLER_32BIT |
标识 MCU 的位数,16 位 MCU(如 PIC24)置CONTROLLER_16BIT=1,32 位 MCU(如 ARM Cortex-M7)置CONTROLLER_32BIT=1。 |
原文中 EL9800 评估板搭配 PIC24(16 位)时置CONTROLLER_16BIT=1;若搭配 RT1176(32 位),需置CONTROLLER_32BIT=1。 |
MEMORY_UNIT_16BIT |
标识 MCU 最小存储单元位数,若 MCU 仅支持 16 位存储访问(如部分 16 位单片机),置 1;32 位 MCU 通常置 0。 | 与CONTROLLER_16BIT联动,16 位 MCU 默认置 1,32 位 MCU 置 0。 |
_PIC18/_PIC24 |
启用 PIC18/PIC24 系列 MCU 的专用代码(如硬件寄存器映射、中断处理),仅适用于 Beckhoff 评估板(EL9800_2/EL9800_4A)。 | 使用其他 MCU(如 RT1176、STM32)时,需置 0,避免代码冲突。 |
ESC_16BIT_ACCESS/ESC_32BIT_ACCESS |
标识 MCU 访问 ESC 内存的位数,若 MCU 仅支持 16 位访问 ESC(如 PIC24),置ESC_16BIT_ACCESS=1;32 位 MCU 可置ESC_32BIT_ACCESS=1。 |
EL9800 搭配 PIC24 时置ESC_16BIT_ACCESS=1,确保 ESC 内存访问无错位。 |
MBX_16BIT_ACCESS |
标识 MCU 访问本地邮箱内存的位数(与 ESC DPRAM 访问区分),仅支持 16 位访问时置 1,8 位访问时置 0。 | 与ESC_16BIT_ACCESS独立,需根据 MCU 邮箱接口硬件特性配置。 |
BIG_ENDIAN_16BIT/BIG_ENDIAN_FORMAT |
配置 MCU 的字节序,BIG_ENDIAN_FORMAT=1表示大端模式,需对 WORD/DWORD 数据进行字节交换;BIG_ENDIAN_16BIT为 16 位大端专用,两者不可同时置 1。 |
多数 MCU(如 ARM、PIC)默认小端模式,均置 0;特殊场景(如部分工业芯片)需置 1。 |
EXT_DEBUGER_INTERFACE |
启用 EL9800_4A(搭配 PIC24)的外部调试接口,非 PIC24 芯片时该配置被忽略。 | 调试阶段置 1,便于通过调试器(如 MPLAB)排查问题;量产阶段置 0。 |
UC_SET_ECAT_LED/ESC_SUPPORT_ECAT_LED |
控制 EtherCAT 运行 / 错误 LED 的驱动方式:UC_SET_ECAT_LED=1由 MCU 控制 LED;ESC_SUPPORT_ECAT_LED=1由 ESC 硬件控制,两者互斥。 |
中默认UC_SET_ECAT_LED=1,MCU 通过 GPIO 控制 LED 亮灭;若 ESC 支持硬件 LED 驱动,可置ESC_SUPPORT_ECAT_LED=1以减少 MCU 开销。 |
ESC_EEPROM_EMULATION |
启用 EEPROM 模拟功能(用 ESC 内存模拟 EEPROM),需 ESC 硬件支持,并非所有 ESC 都兼容。 | 无物理 EEPROM 时置 1,需同时启用CREATE_EEPROM_CONTENT;有物理 EEPROM 时置 0。 |
CREATE_EEPROM_CONTENT |
置 1 时生成 EEPROM 内容并存储在头文件中,用于 EEPROM 模拟或物理 EEPROM 编程,需与ESC_EEPROM_EMULATION配合使用。 |
示例:生成eeprom_content.h,包含 ESI 文件与设备参数的二进制数据。 |
ESC_EEPROM_SIZE |
指定 EEPROM 大小(字节),需与实际 EEPROM 容量匹配(如 0x800=2KB)。 | 示例:0x800(EL9800 评估板默认 EEPROM 容量),不可超过 ESC 支持的最大容量。 |
| 硬件提示信息 | 原文中反复出现的警告:"EL9800 HW is enabled and no PIC is selected → 使用 SPI 连接器 IP204/J204;需 MCI 接口则启用 MCI HW",明确硬件接口选择逻辑,避免接线错误。 | 若启用 EL9800 硬件但未选择 PIC 芯片,必须使用 SPI 接口;需使用 MCI 接口(IP208/J208),需置MCI_HW=1。 |
五、EtherCAT State Machine(状态机配置)
该模块配置从站的 EtherCAT 状态转换逻辑(如 Init→PreOP→SafeOP→OP),涉及超时时间、固件升级支持、参数校验等,直接影响从站的启动与运行稳定性:

| 配置项 | 说明与作用 | 状态机运行逻辑与示例 |
|---|---|---|
BOOTSTRAPMODE_SUPPORTED |
置 1 时支持 FoE(File over EtherCAT)固件升级功能,需同时启用FOE_SUPPORTED;置 0 时无法通过 FoE 升级固件。 |
需固件升级的场景(如量产设备维护)置 1;无需升级的简单设备可置 0。 |
OP_PD_REQUIRED |
控制从 "SafeOP→OP" 状态转换的条件:置 1 时需至少接收一次主站过程数据才允许转换;置 0 时无需接收过程数据即可转换,看门狗仅在首次接收过程数据后启动。 | 实时性要求高的场景(如运动控制)置 1,确保过程数据链路正常;低速场景(如温湿度采集)可置 0。 |
PREOPTIMEOUT |
从 "Init→PreOP" 状态转换的超时时间(毫秒),超时未完成转换则进入故障状态,对应 ESI 文件中的 "预操作超时" 字段。 | 示例:0x7D0(2000ms),复杂设备(如多轴驱动器)可适当增大,简单设备可减小。 |
SAFEOP2OPTIMEOUT |
从 "SafeOP→OP" 状态转换的超时时间(毫秒),对应 ESI 文件中的 "SafeopOpTimeout" 字段,超时未转换则进入故障状态。 | 示例:0x2328(9000ms),需与主站配置的超时时间匹配,避免误判故障。 |
CHECK_SM_PARAM_ALIGNMENT |
置 1 时检查同步管理器(SM)的长度与起始地址是否符合 ESC 访问权限(如 32 位访问需地址与长度为 4 的倍数);置 0 时不检查,可能导致内存访问错误。 | 建议始终置 1,尤其使用 32 位 ESC 访问时(如ESC_32BIT_ACCESS=1),避免硬件错误。 |

六、Synchronisation(同步配置)
该模块配置从站的分布式时钟(DC)与过程数据同步逻辑,决定从站的实时性与同步精度,是运动控制、高精度采集等场景的核心配置:

| 配置项 | 说明与作用 | 同步精度与实时性逻辑 |
|---|---|---|
AL_EVENT_ENABLED |
置 1 时,AL 事件寄存器(0x220)状态变化会触发中断;置 0 时仅支持轮询 AL 事件,仅适用于自由运行模式。 | 需同步模式(如 DC 同步)时置 1,确保事件响应实时性;自由运行模式(低实时性)可置 0。 |
DC_SUPPORTED |
置 1 时启用分布式时钟(DC)功能,从站参与主站的时钟同步;置 0 时不支持 DC,同步精度仅为毫秒级。 | 运动控制、多设备协同场景(如多轴同步)必须置 1;单设备独立运行可置 0。 |
ECAT_TIMER_INT |
置 1 时在定时器中断中检查 EtherCAT 看门狗时间;置 0 时在ECAT_MAIN主循环中检查,响应速度较慢。 |
实时性要求高的场景(如 1ms 周期控制)置 1,确保看门狗及时触发;低要求场景可置 0。 |
MIN_PD_CYCLE_TIME |
从站支持的最小过程数据周期(纳秒),对应对象字典条目 0x1C3x:05,置 0 时会自动计算该值(需 0x1C3x.8=1)。 | 示例:0x7A120(500,000ns=500μs),运动控制场景可设为 1μs(1000ns)。 |
MAX_PD_CYCLE_TIME |
从站支持的最大过程数据周期(纳秒),需大于MIN_PD_CYCLE_TIME,避免周期配置超出硬件能力。 |
示例:0xC3500000(3,200,000,000ns=3.2s),低速采集场景可设为 100ms。 |
PD_OUTPUT_DELAY_TIME |
从站输出过程数据的最小延迟(纳秒),对应对象字典条目 0x1C32:09,用于补偿输出链路的延迟。 | 示例:0x0(无延迟),长距离布线时需根据实际延迟(如 100m 网线 0.167μs)配置。 |
PD_OUTPUT_CALC_AND_COPY_TIME |
输出过程数据的计算与复制时间(纳秒),对应对象字典条目 0x1C32:06,置 0 时自动计算(需 0x1C3x.8=1)。 | 由 MCU 算力决定,如 RT1176 处理 64 字节数据需 100ns,可配置为 0x64(100ns)。 |
PD_INPUT_CALC_AND_COPY_TIME |
输入过程数据的计算与复制时间(纳秒),对应对象字典条目 0x1C33:06,逻辑与输出端一致。 | 与输入数据量相关,16 位模拟量采集通常需 200ns,可配置为 0xC8(200ns)。 |
PD_INPUT_DELAY_TIME |
从站输入过程数据的延迟(纳秒),对应对象字典条目 0x1C33:09,补偿输入链路的延迟。 | 与PD_OUTPUT_DELAY_TIME配合,确保输入输出延迟对称,提升同步精度。 |
| 备注信息 | 明确 0x1C3x 对象字典条目是 SyncManager 的输入输出参数,记录 SM 的工作模式、EtherCAT 周期时间等,配置需与实际 SM 参数匹配。 | 例如 SM2(输出 PDO)的周期需与MIN_PD_CYCLE_TIME一致,避免周期不兼容。 |
七、Application(应用程序配置)
该模块选择从站的应用程序类型,决定生成的代码是否包含示例逻辑(如 CiA402、Bootloader),以及是否使用默认主函数:

| 配置项 | 说明与作用 | 应用场景与代码逻辑 |
|---|---|---|
TEST_APPLICATION |
测试用应用程序,仅用于测试从站协议栈或主站实现,禁止用于用户自定义应用,包含基础的 PDO/SDO 通信测试逻辑。 | 调试阶段使用,验证从站与主站的通信链路;量产阶段需禁用,避免测试代码冗余。 |
TEST_APPLICATION_REDUCED_MEMORY |
减少测试应用程序的内存占用,仅在默认测试应用程序无内存错误时使用,适用于小内存 MCU。 | 如 PIC18(8KB RAM)需启用。 |
EL9800_APPLICATION |
启用 EL9800 评估板的专用示例代码(如 I/O 口读写、模拟量采集),仅适用于 EL9800 系列硬件。 | 以 EL9800 数字量 I/O 模板为例,启用后自动生成 I/O 驱动代码。 |
CiA402_SAMPLE_APPLICATION |
启用 CiA402 运动控制协议的示例实现,包含位置模式、速度模式、扭矩模式的核心逻辑,适用于电机驱动从站。 | 运动控制场景(如机械臂、传送带)启用,可直接基于示例代码扩展功能。 |
SAMPLE_APPLICATION |
启用与硬件无关的通用示例应用程序,包含基础的 PDO 映射、SDO 参数配置逻辑,适用于自定义硬件。 | 空白工程(Default 模板)可启用,快速搭建应用框架,减少重复开发。 |
SAMPLE_APPLICATION_INTERFACE |
启用示例应用程序接口,生成静态库(如EtherCATSampleLibrary.h),便于外部应用程序调用协议栈功能。 |
需将协议栈集成到复杂系统(如 Linux 应用)时启用,提供标准化的 API 接口。 |
BOOTLOADER_SAMPLE |
启用轻量级 Bootloader 应用程序,仅支持 Bootstrap 状态与 FoE 邮箱协议,用于固件升级。 | 需远程升级固件的场景启用,代码体积小(通常<10KB),不包含复杂控制逻辑。 |
APPLICATION_FILE |
导入用户自定义的应用程序头文件,格式为#include "xxx.h",用于替换默认示例代码。 |
示例:自定义运动控制逻辑时,配置为#include "my_motion.h"。 |
USE_DEFAULT_MAIN |
置 1 时使用默认应用程序的主函数(main.c);置 0 时仅调用初始化函数与主循环处理程序,用户需自定义主函数。 |
快速验证时置 1;需集成到 RTOS(如 FreeRTOS)时置 0,避免主函数冲突。 |
八、ProcessData(过程数据配置)
该模块配置过程数据(PDO)的地址范围与最大长度,直接关联同步管理器(SM2 用于输出 PDO,SM3 用于输入 PDO)的内存分配,配置错误会导致 PDO 传输失败,:
| 配置项 | 说明与作用 |
|---|---|
MIN_PD_WRITE_ADDRESS/DEF_PD_WRITE_ADDRESS/MAX_PD_WRITE_ADDRESS |
SM2(输出 PDO)的最小 / 默认 / 最大起始地址,位于 ESC 用户内存(0x1000-0xFFFF),DEF_PD_WRITE_ADDRESS需在MIN与MAX之间。 |
MIN_PD_READ_ADDRESS/DEF_PD_READ_ADDRESS/MAX_PD_READ_ADDRESS |
SM3(输入 PDO)的最小 / 默认 / 最大起始地址,逻辑与输出 PDO 一致,需与输出 PDO 地址不重叠。 |
MAX_PD_INPUT_SIZE/MAX_PD_OUTPUT_SIZE |
输入 / 输出过程数据的最大字节数,需与 PDO 映射的总数据量匹配,不可超过 SM 的内存容量。 |
| 备注信息 | 明确 PD 配置影响从站 "PreOP→SafeOP" 状态转换,需确保实际 PDO 字节数在配置范围内,否则状态转换失败。 |
九、Mailbox(邮箱配置)
该模块配置邮箱通信(SM0 用于接收主站邮箱,SM1 用于发送从站邮箱)的参数,支持 CoE、FoE、EOE 等非实时服务:

| 配置项 | 说明与作用 | 邮箱通信逻辑与示例 |
|---|---|---|
MAILBOX_QUEUE |
置 1 时邮箱服务存储在队列中,支持并行处理多个邮箱请求;置 0 时仅能并行处理一个邮箱服务。 | 多协议场景(如同时启用 CoE+FoE)置 1,提升邮箱处理效率;单协议场景可置 0。 |
AOE_SUPPORTED/COE_SUPPORTED/EOE_SUPPORTED/FOE_SUPPORTED |
分别启用 AoE(ADS over EtherCAT)、CoE(CANopen over EtherCAT)、EOE(Ethernet over EtherCAT)、FoE(File over EtherCAT)协议,置 1 时生成对应协议的处理代码。 | COE_SUPPORTED=1(默认启用 CoE)、FOE_SUPPORTED=1(支持固件升级),AOE/EOE默认置 0;需 TCP/IP 通信时置EOE_SUPPORTED=1。 |
COMPLETE_ACCESS_SUPPORTED |
置 1 时支持完整的 SDO 访问(通过一个 SDO 服务访问对象的所有条目),需与COE_SUPPORTED=1配合。 |
需批量读写对象字典条目时置 1(如配置多个 PDO 映射);单条目访问可置 0。 |
SEGMENTED_SDO_SUPPORTED |
置 1 时支持分段式 SDO 服务(传输超过 4 字节的数据),需与COE_SUPPORTED=1配合,否则仅支持加急 SDO(≤4 字节)。 |
传输大尺寸参数(如固件升级包、复杂配置)时置 1;仅小参数(如开关量)可置 0。 |
SDO_RES_INTERFACE |
置 1 时支持 SDO 响应延迟(如通过串行接口访问时无法立即生成响应),从OBJ_Read/OBJ_Write返回ABORTIDX_WORKING,后续通过SDOS_SdoRes发送响应。 |
低速接口(如 UART)访问对象字典时置 1;高速接口(如 SPI)可置 0,立即返回响应。 |
BACKUP_PARAMETER_SUPPORTED |
置 1 时编译应用程序中加载 / 存储备份参数的功能,需与COE_SUPPORTED=1配合,用于保存设备参数(如 PDO 映射、DC 偏移)。 |
需参数掉电保存时置 1;无需保存参数的临时设备可置 0。 |
STORE_BACKUP_PARAMETER_IMMEDIATELY |
置 1 时参数写入后立即存储到备份介质(如 EEPROM),仅在BACKUP_PARAMETER_SUPPORTED=1时生效。 |
关键参数(如安全配置)需立即保存时置 1;非关键参数可延迟保存以减少写入次数。 |
DIAGNOSIS_SUPPORTED |
置 1 时支持诊断消息(对象字典 0x10F3),需COE_SUPPORTED=1且平台支持动态内存分配,符合 ETG.1020 规范。 |
需故障诊断的工业设备置 1;简单设备可置 0 以减少内存占用。 |
MAX_DIAG_MSG |
诊断消息环缓冲区的个数,决定可缓存的诊断消息数量,需与动态内存容量匹配。 | 示例:0x14(20 个),复杂设备可增大(如 0x32=50 个)。 |
EMERGENCY_SUPPORTED |
置 1 时支持紧急消息,需COE_SUPPORTED=1或SOE_SUPPORTED=1,用于设备故障时向主站发送紧急通知。 |
安全相关设备(如急停模块)置 1;无安全需求的设备可置 0。 |
MAX_EMERGENCIES |
并行处理的紧急消息数量,限制同时发生的故障通知个数。 | 示例:0x1(1 个),复杂设备可设为 0x4(4 个)。 |
VOE_SUPPORTED/SOE_SUPPORTED |
分别启用 VoE(Vendor specific over EtherCAT)、SOE(Servo over EtherCAT)协议,仅生成mailbox.c中的功能调用,需用户补充协议实现代码,示例代码无法直接链接。 |
特殊定制场景(如厂商私有协议)启用,常规场景建议禁用(功能未完善)。 |
STATIC_ETHERNET_BUFFER |
置 1 时使用静态缓冲区存储以太网帧(EOE 协议);置 0 时动态分配缓冲区,按需申请内存。 | 内存资源紧张的 MCU(如 PIC18)置 1;内存充足的 MCU(如 ARM)可置 0,提升灵活性。 |
DEF_MBX_SIZE/MAX_MBX_SIZE |
邮箱(SM0/SM1)的默认 / 最大大小(字节),DEF_MBX_SIZE可由主站修改,MAX_MBX_SIZE为上限。 |
示例:均为 0x80(128 字节),需大于最大邮箱报文长度(如 CoE SDO 分段报文通常≤64 字节)。 |
邮箱地址配置(MIN_MBX_WRITE_ADDRESS等) |
与 PDO 地址逻辑一致,分别配置 SM0(写邮箱)与 SM1(读邮箱)的最小 / 默认 / 最大起始地址,需位于 ESC 用户内存(0x1000-0xFFFF),且与 PDO 地址不重叠。 | 示例:SM0 地址MIN=0x1000,DEF=0x1000,MAX=0x2FFF;SM1 地址DEF=0x1080,邮箱大小 = 0x1080-0x1000=0x80(128 字节),与MAX_MBX_SIZE一致。 |
| 备注信息 | 明确邮箱地址决定邮箱大小(如 SM0 起始 0x1000,SM1 起始 0x1080,邮箱大小 = 0x80 字节),需与MAX_MBX_SIZE匹配,避免报文溢出。 |
配置时需确保 "SM1 起始地址 - SM0 起始地址 = MAX_MBX_SIZE",如 0x1080-0x1000=0x80,与MAX_MBX_SIZE=0x80一致。 |