EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块...

97
1 河北优控新能源科技有限公司 http://eco-ev.com/ EcoCoder 说明手册 V4.7.9

Transcript of EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块...

Page 1: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

1 河北优控新能源科技有限公司 http://eco-ev.com/

EcoCoder 说明手册 (V4.7.9)

Page 2: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

2 河北优控新能源科技有限公司 http://eco-ev.com/

更改历史

修改日期 版本 描述

2015.9 V 1.1 初始版本

2016.10 V 1.2

2016.10 V 1.3

2017.4 V 1.6 增加 DAC 模块

2017.9 V 4.0 删除 ECU_Setting,将初始化独立,并增加一些新模块

2017.11 V 4.2 更新第三章内容

2017.12 V 4.3 更新 3.3

2017.12 V 4.4 更新 4.2.1

2018.2 V 4.5 增加 3.13 章节

2018.5. V 4.6

2018.6 V 4.7.3 增加细节

2018.8 V 4.7.5 修改第二章和第三章

2018.8 V 4.7.6 修改 3.14 章节,增加支持 Input port 的三个模块

2018.11 V 4.7.7 第二章增加 CS+相关信息,第三章增加新的模块

2018.12 V 4.7.9 修改细节

Page 3: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

3 河北优控新能源科技有限公司 http://eco-ev.com/

1. 概述.................................................................................................................................................. 8

1.1 关于 EcoCoder ......................................................................................................................... 8

1.2 操作系统要求 ......................................................................................................................... 8

1.3 MATLAB 组件要求 ................................................................................................................... 8

1.4 支持的 MATLAB 版本 .............................................................................................................. 9

2. 基于 EcoCoder 的开发环境搭建 ................................................................................................. 10

2.1 软件安装列表 ....................................................................................................................... 10

2.2 CodeWarrior 安装 ................................................................................................................. 11

2.3 MinGW-GCC 编译器安装 ...................................................................................................... 11

2.4 C++编译器安装 ..................................................................................................................... 13

2.4.1 MATLAB 32 位编译器安装步骤 .................................................................................... 14

2.4.2 MATLAB 64 位编译器安装步骤 .................................................................................... 14

2.5 EcoCoder 安装 ....................................................................................................................... 14

2.6 S32DS_Power_Win32 与 EcoCoder 关联 .............................................................................. 17

2.7 HighTec TriCore Tool Chain 与 EcoCoder 关联 ...................................................................... 19

2.8 CS+与 EcoCoder 关联 ............................................................................................................ 20

2.9 激活 EcoCoder ....................................................................................................................... 20

2.9.1 USB 加密狗激活 EcoCoder ........................................................................................... 20

2.9.2 License 文件激活 EcoCoder .......................................................................................... 20

2.10 快速创建应用层模型 ........................................................................................................... 23

3. EcoCoder 封装库介绍 .................................................................................................................. 25

3.1 EcoCoder Target Definition 目标控制器选择模块 ............................................................... 25

3.2 ADC 模拟输入模块 ............................................................................................................... 26

3.2.1 Read ADC Value 采集模拟通道 AD 值模块 .................................................................. 26

3.2.2 Read Fixed-Point ADC Volt 读取通道电压模块 ............................................................ 26

3.2.3 Read Float ADC Volt 读取通道电压模块 ...................................................................... 27

3.3 CAN 通信模块 ....................................................................................................................... 28

3.3.1 CAN Channel Definition 定义 CAN 通道模块 .............................................................. 28

3.3.2 CAN Wake-up Frame Definition 唤醒帧定义模块 ........................................................ 30

3.3.3 Read Fixed-Point CAN Message 消息解析模块 ............................................................ 31

3.3.4 Read CAN Message 消息解析模块 ............................................................................... 32

3.3.5 Send Fixed-Point CAN Message 消息打包模块 ............................................................ 34

3.3.6 Send CAN Message 消息打包模块 ............................................................................... 35

3.3.7 Receive CAN Message 接收 CAN 消息模块 .................................................................. 36

3.3.8 Transmit CAN Message 发送 CAN 消息模块 ................................................................ 37

3.3.9 Send CAN Data 数据发送模块 ...................................................................................... 37

Page 4: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

4 河北优控新能源科技有限公司 http://eco-ev.com/

3.3.10 CAN Receive Counter 接收计数器模块 ........................................................................ 38

3.3.11 Set CAN Mode 设置 CAN 模式模块 .............................................................................. 38

3.3.12 Unpack CAN Data To Signals 解析 CAN 数据模块 ....................................................... 39

3.3.13 Pack Signals To CAN Data CAN 打包 CAN 数据模块 ..................................................... 40

3.4 SCI 串口通信模块 ................................................................................................................. 40

3.4.1 SCI Definition 串口通信配置模块 ................................................................................ 40

3.4.2 Read SCI Data 串口接收模块 ........................................................................................ 41

3.4.3 Send SCI Data 串口发送模块 ........................................................................................ 41

3.5 Digital I/O 数字输入输出模块 .............................................................................................. 41

3.5.1 Switch Input 开关量输入模块 ...................................................................................... 42

3.5.2 KeyOn Input 钥匙开关输入模块 .................................................................................. 42

3.5.3 Switch Output 开关量输出模块 ................................................................................... 43

3.5.4 IPM Read 频率信号输入模块 ....................................................................................... 43

3.5.5 PWM IO Frequency Range Definition 频率范围定义模块 ........................................... 44

3.5.6 IPWM Read 频率占空比测量模块 ............................................................................... 44

3.5.7 OPWM Definition 频率输出通道配置模块 .................................................................. 44

3.5.8 PWM Output 频率信号输出模块 ................................................................................. 45

3.5.9 WakeUp Input 唤醒信号读取模块 ............................................................................... 46

3.5.10 Hbridge Definition H 桥定义模块 ................................................................................. 46

3.5.11 Hbridge Output H 桥输出模块 ..................................................................................... 46

3.6 Task Scheduler 任务调度模块 ............................................................................................... 47

3.7 Non-volatile Memory Blocks 非易失性存储器库 ................................................................. 47

3.7.1 Fixed NVM Definition 固定 NVM 变量定义模块 ......................................................... 48

3.7.2 Read Fixed NVM 固定 NVM 变量读数据模块 ............................................................. 48

3.7.3 Write Fixed NVM 固定 NVM 变量写数据模块 ............................................................. 49

3.7.4 NVM Definition 非固定 NVM 变量初始化方式选择模块 ........................................... 49

3.7.5 NVM Variable Definition 非固定 NVM 变量定义模块 ................................................. 50

3.7.6 Read NVM 非固定 NVM 变量读数据模块 ................................................................... 50

3.7.7 Write NVM 非固定 NVM 变量写数据模块 .................................................................. 51

3.7.8 Store All NVM Data 存储所有数据到 NVM 模块 ......................................................... 51

3.7.9 Restore All NVM Data 从 NVM 恢复所有数据模块 ..................................................... 52

3.8 Diagnostic Blocks 诊断模块 .................................................................................................. 52

3.8.1 HardWare Output DTC 硬件输出诊断模块 .................................................................. 52

3.8.2 DTC Parser 故障码解析模块 ......................................................................................... 53

3.8.3 Software Core Diagnostic 软件内核自检模块 .............................................................. 54

3.8.4 Clear Hbridge DTC 清除 H 桥故障模块 ........................................................................ 54

3.9 Calibration & Measurement 标定测量模块 .......................................................................... 54

3.9.1 Calibration Definition 标定量定义模块 ........................................................................ 54

3.9.2 Override Probe 覆盖探头模块...................................................................................... 55

3.9.3 Read Calibration 标定量读取模块 ................................................................................ 56

3.9.4 Write Measurement 测量量定义模块 ........................................................................ 57

Page 5: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

5 河北优控新能源科技有限公司 http://eco-ev.com/

3.9.5 Write and Read Measurement 测量量定义模块.......................................................... 57

3.9.6 1-D Lookup Table 曲线查表模块 .................................................................................. 58

3.9.7 2-D Lookup Table 曲面查表模块 .................................................................................. 58

3.9.8 Calibration Data Check 标定数据检测模块 .................................................................. 59

3.10 System Management Blocks 系统管理模块 ......................................................................... 59

3.10.1 Power Management Example 电源管理配置模块 ....................................................... 59

3.10.2 Shutdown Power 下电模块 .......................................................................................... 61

3.10.3 Set ECU Mode 模式设置模块 ....................................................................................... 61

3.10.4 ECU Master Chip WakeUp Definition 主芯片唤醒设置模块 ........................................ 62

3.10.5 Watchdog Definition 看门狗定义模块 ......................................................................... 62

3.10.6 Service Software Watchdog 软件喂狗模块 .................................................................. 63

3.10.7 Software Reset 软件复位模块 ...................................................................................... 63

3.10.8 Read System Free Counter 读取系统自由运行计数器模块 ........................................ 63

3.10.9 Power Control Output 电源输出控制模块 ................................................................... 63

3.11 CCP 模块 ................................................................................................................................ 64

3.11.1 Fixed CCP Slave Definiton 定义 CCP 模块 ..................................................................... 64

3.11.2 CCP CAL Seed&Key Security Definiton 数据标定密钥定义模块 .................................. 65

3.11.3 CCP DAQ Seed&Key Security Definiton 数据测量密钥定义模块 ................................. 65

3.11.4 CCP PGM Seed&Key Security Definiton 数据刷写密钥定义模块 ................................ 65

3.11.5 CCP Generate Seed Demo 生成 Seed 示例模块 ........................................................... 66

3.11.6 CCP Get Seed Trigger 获取 Seed 任务触发模块........................................................... 66

3.11.7 CCP Set Seed 设置 Seed 模块 ....................................................................................... 66

3.12 Sensors Blocks 传感器模块 ................................................................................................... 67

3.12.1 Read Gyro Hex Value 读取陀螺仪原始信号模块 ......................................................... 67

3.12.2 Read Gyro Phy Value 读取陀螺仪物理信号模块 ......................................................... 67

3.13 Programming Blocks 刷写模块 ............................................................................................. 67

3.13.1 Online Programming Definition 在线刷写定义模块 .................................................... 67

3.13.2 Programming SeedKey Definition 刷写密钥定义模块 ................................................. 68

3.13.3 Entry UDS Programming UDS 刷写模块 ....................................................................... 69

3.14 Advanced Data Blocks 高级数据模块 ................................................................................... 69

3.14.1 Read OTP 读取 OTP 数据模块 ...................................................................................... 69

3.14.2 Read OTP(Input port)读取 OTP 数据模块 .................................................................... 70

3.14.3 Write OTP 写入 OTP 数据模块 ..................................................................................... 70

3.14.4 Write OTP(Input port)写入 OTP 数据模块 ................................................................... 71

3.14.5 Read Data By Address 通过地址读取数据模块 ........................................................... 71

3.14.6 Read Data By Address(Input port)通过地址读取数据模块 ......................................... 72

3.14.7 Read String Value 读取字符串 ASCII 值模块 ................................................................ 72

3.14.8 EEPROM Emulation Definition 模拟 EEPROM 定义模块 .............................................. 72

3.14.9 Clear All EEPROM Emulation Record 清除所有模拟 EEPROM 记录模块 .................... 73

3.14.10 Clear One EEPROM Emulation Record 清除单个模拟 EEPROM 记录模块 .................. 73

3.14.11 Read EEPROM Emulation Record 读取模拟 EEPROM 记录模块 .................................. 74

Page 6: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

6 河北优控新能源科技有限公司 http://eco-ev.com/

3.14.12 Write EEPROM Emulation Record 写模拟 EEPROM 数据模块 ..................................... 74

3.14.13 Read Signals From EEPROM Emulation Record 解析模拟 EEPROM 记录模块 ............ 75

3.14.14 Write Signals to EEPROM Emulation Record 打包模拟 EEPROM 记录模块 ................ 75

3.14.15 Program First Run Flag 程序第一次运行标志位模块 .................................................. 76

3.15 Application Base Blocks 基本应用模块 ................................................................................. 76

3.15.1 Rising Edge 上升沿模块 ................................................................................................ 76

3.15.2 Falling Edge 下降沿模块 ............................................................................................... 77

3.15.3 Online Programming By SoftReset 在线刷写模块 ........................................................ 77

3.15.4 Online Programming By Entry UDS Programming UDS 在线刷写模块......................... 77

4. CAN 协议实现 .............................................................................................................................. 79

4.1 DBC 转为 m 文件 .................................................................................................................. 79

4.2 CAN 广播协议实现 ............................................................................................................... 80

4.2.1 选择 CAN 模块库 .......................................................................................................... 80

4.2.2 选择 m 文件 .................................................................................................................. 81

4.2.3 选择 CAN 消息 .............................................................................................................. 81

4.2.4 选择采样时间 ............................................................................................................... 81

4.2.5 CAN 示例模型 ............................................................................................................... 82

5. 自定义变量类型 ............................................................................................................................ 84

5.1 自定义变量类型 ................................................................................................................... 84

5.2 添加 EcoObj 数据到工作区 .................................................................................................. 85

5.3 定义标定变量 ....................................................................................................................... 85

5.4 定义测量变量 ....................................................................................................................... 86

5.5 定义 NVM 变量 ..................................................................................................................... 86

5.6 将数据保存到 m 文件 .......................................................................................................... 87

5.7 从 m 文件加载数据到工作区 .............................................................................................. 87

5.8 Model Example 模型示例 ..................................................................................................... 88

6. 自动代码生成 ................................................................................................................................ 89

7. 程序刷写........................................................................................................................................ 90

8. 测量和标定 .................................................................................................................................... 91

9. 卸载 EcoCoder.............................................................................................................................. 92

9.1 从 MATLAB 卸载 EcoCoder .................................................................................................... 92

9.2 从操作系统卸载 EcoCoder ................................................................................................... 92

10. FAQ 常见问题解答 .................................................................................................................. 93

10.1 Q1- m 文件不能使用 ............................................................................................................ 93

10.2 Q2-快速创建模型报错 ......................................................................................................... 93

10.3 Q3- CAN 模块界面空白 ......................................................................................................... 93

10.4 Q4-任务调度优先级 ............................................................................................................. 93

Page 7: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

7 河北优控新能源科技有限公司 http://eco-ev.com/

10.5 Q5-EcoCoder Loader 弹窗 ..................................................................................................... 94

10.6 Q6-取消代码生成后弹出文件夹窗口 .................................................................................. 94

10.7 Q7-取消 C 代码访问 ............................................................................................................. 95

10.8 Q8-更新应用程序模型以与新版 EcoCoder 兼容 ................................................................ 95

11. 附录 ........................................................................................................................................... 97

Page 8: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

8 河北优控新能源科技有限公司 http://eco-ev.com/

1. 概述

1.1 关于 EcoCoder

EcoCoder 是控制系统应用程序开发工具,使用户在 Simulink 环境下进行嵌

入式应用程序的开发更加便捷。它扩展了 Simulink 和 Real-Time Workshop 嵌入

式编码器生成必要代码模块的资源,可以对代码生成进行自动配置及优化。通过

将基础软件库封装为 s-function,可以使开发者以图形化的方式进行一些基本参

数配置。

EcoCoder 使开发者能够完全在 Matlab /Simulink 环境下开发控制系统,跳过

深度硬件学习、C 代码程序与单片机设置,直接以图形化的方式进行开发,降低

应用层开发者对底层软件的使用难度,并可以通过 CAN 总线刷写工具和标定软

件进行系统平台软件开发。

此外,不同于市场上其他类似的自动代码生成工具,EcoCoder 是一个基于

Matlab/Simulink 的自动代码生成库。它的功能很强大,只需添加必要的库模块,

就能将应用程序和特定的控制器连接,并能最大化的使用 Simulink 通用库,可

以把模型移植到任何支持 Simulink 的平台上。

1.2 操作系统要求

支持 Windows XP,Windows 7,Windows 10 操作系统。

1.3 MATLAB 组件要求

必需要安装的组件:

MATLAB

Simulink

MATLAB Coder

Simulink Coder

Embedded Coder

强烈建议要安装的组件:

Stateflow

Stateflow Coder

Page 9: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

9 河北优控新能源科技有限公司 http://eco-ev.com/

1.4 支持的 MATLAB 版本

EcoCoder 支持的 MATLAB 版本如下:

MATLAB R2010b 32-bit/64-bit

MATLAB R2011a 32-bit/64-bit

MATLAB R2011b 32-bit/64-bit

MATLAB R2012a 32-bit/64-bit

MATLAB R2012b 32-bit/64-bit

MATLAB R2013a 32-bit/64-bit

MATLAB R2013b 32-bit/64-bit

MATLAB R2014a 32-bit/64-bit

MATLAB R2014b 32-bit/64-bit

MATLAB R2015a 32-bit/64-bit

MATLAB R2015b 32-bit/64-bit

MATLAB R2016a 64-bit

MATLAB R2016b 64-bit

MATLAB R2017a 64-bit

MATLAB R2017b 64-bit

MATLAB R2018a 64-bit

注意:某些客户由于 MATLAB 组件配置问题造成使用不便,请联系客服支

持。

Page 10: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

10 河北优控新能源科技有限公司 http://eco-ev.com/

2. 基于 EcoCoder 的开发环境搭建

2.1 软件安装列表

注意:红色字体软件必须严格按照编号顺序进行安装。

1) 生成可刷写文件的集成开发环境

主芯片 集成开发环境

Infineon TC27x HighTec TriCore Tool Chain

NXP SPC57xx S32DS_Power_Win32_v2017.R1_b171019.exe

NXP SPC56xx CodeWarrior for MPC55xxMPC56xx v2.10.exe

Renesas RH850 CS+(CSPlus_CC_Package_V70000.EXE)

2) 生成 DLL 的编译器

编译器集成包 说明

tdm64-gcc-4.9.2.exe 包含可以生成标定、测量及程序刷写权限 DLL 的 GCC 编译器,支

持所有版本 MATLAB 生成 DLL

3) 程序刷写工具,EcoFlash

4) 标定工具软件,EcoCAL 或者 INCA

5) CAN 卡驱动

6) Stateflow 编译器

编译器 用途

C++ Compiler 支持 32 位和 64 位 MATLAB 的 Stateflow

Lcc-win32 支持 32 位 MATLAB 的 Stateflow

MinGW-GCC 支持某些版本 MATLAB 的 stateflow,具体 MATLAB 是否支持,

查看下表 MATLAB 版本和支持的 MinGW 版本对应关系

MATLAB 版本和支持 Stateflow 的 MinGW 版本对应关系如下:

MATLAB 版本 支持的 MinGW 版本

MATLAB 2015a 或以下版本 不支持

MATLAB 2015b MinGW 4.9.2 (Distributor:TDM-GCC)

MATLAB 2016a MinGW 4.9.2 (Distributor:TDM-GCC)

MATLAB 2016b MinGW 4.9.2(Distributor:TDM-GCC)

MATLAB 2017a MinGW 4.9.2(Distributor:TDM-GCC)

Page 11: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

11 河北优控新能源科技有限公司 http://eco-ev.com/

MATLAB 2017b MinGW 5.3(Distributor:TDM-GCC)

MATLAB 2018a MinGW 5.3(Distributor:mingw-w64)

7) EcoCoder 安装包

2.2 CodeWarrior 安装

安装 CodeWarrior for MPC55xxMPC56xx v2.10.exe。如果安装了其他版本的

CodeWarrior,请在安装后执行以下操作:

在安装目录(例如:C:\Program Files (x86)\Freescale\CW for MPC55xx and

MPC56xx 2.10)中运行 regservers.bat 文件。出现如下窗口时,按任意键退出。

注意:若按上述步骤操作后,编译过程中还是调用其他版本 CodeWarrior,

则需要将其他版本卸载。

2.3 MinGW-GCC 编译器安装

可以通过 TDM-GCC 进行 MinGW-GCC 编译器的安装。TDM-GCC 是

Windows 下的编译器集成包,结合了最新稳定版本的 GCC 工具集,包含了自由

开源的 MinGW 或 MinGW-w64 的运行 API。

具体安装步骤如下:

1) 勾选 Check for updated files on the TDM-GCC server

Page 12: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

12 河北优控新能源科技有限公司 http://eco-ev.com/

2) 选择 MinGW-w64

3) 选择安装目录

4) 选择 TDM-GCC Recommended,C/C++

注意:如果用户使用 MinGW-GCC 作为 Stateflow 编译器,请继续执行接下

来的步骤。

Page 13: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

13 河北优控新能源科技有限公司 http://eco-ev.com/

5) 添加环境变量

6) 重启或打开 MATLAB

7) MATLAB 命名窗口输入“mex –setup C++”

8) 选择 MinGW64 编译器

2.4 C++编译器安装

对于 32 位系统,MATLAB 软件包提供了一个“Lcc”编译器,足以生成代

码。为了在 Simulink 中使用 Stateflow 编码器,有必要安装支持 MATLAB 64 位

版本的第三方 C++编译器。

Page 14: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

14 河北优控新能源科技有限公司 http://eco-ev.com/

2.4.1 MATLAB 32 位编译器安装步骤

1) 在命令窗口输入“mex -setup”,并按回车键。

2) 输入“y”,并按回车键。

3) 进行编译器选择,比如选择“1”,并按回车键。

4) 输入“y”,并按回车键。

5) 弹出以下信息,并出现红色框中的“Done . . .”字样,则说明安装成功。

2.4.2 MATLAB 64 位编译器安装步骤

1) 登录 MATLAB 官网。

2) 找到 MATLAB 版本支持的编译器,下载并安装。

3) 按照前面的 MATLAB 32 位版本教程步骤来配置编译器。

2.5 EcoCoder 安装

Page 15: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

15 河北优控新能源科技有限公司 http://eco-ev.com/

注意:在整个安装过程中请关闭 MATLAB。

1) 双击 EcoCoder 安装包,弹出以下窗口后,点击“Next”

2) 选择好安装路径后,点击“Next”

3) 点击“Next”

4) 从已安装的 MATLAB 列表中,选择想要关联的 MATLAB 版本,点击

“Install EcoCoder to selected MATLAB version”,然后点击“OK”

Page 16: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

16 河北优控新能源科技有限公司 http://eco-ev.com/

5) 出现安装完成提示后,点击“Close”

6) 桌面出现图标“EcoCoder Loader”,用于将 EcoCoder 与 MATLAB 关联

或取消关联。

7) 若启动 MATLAB 之后,有如下红色框中“EcoCoder has been installed

succesfully”的提示,则说明 EcoCoder 安装成功。

Page 17: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

17 河北优控新能源科技有限公司 http://eco-ev.com/

注意:安装完成后需要激活 EcoCoder 才能使用,激活方法参考 2.9 小节。

2.6 S32DS_Power_Win32 与 EcoCoder 关联

如果需要安装 S32DS_Power_Win32 开发环境,比如 S32DS_Power_Win32_

v2017.R1_b171019.exe,从 NXP 官网下载即可。

安装完 EcoCoder 和 S32DS_Power_Win32 后,还需要使用 EcoCoder Loader

选择 e200_ewl2 下 makefile 的路径,并将 powerpc-eabivle-gcc.exe 和 make.exe 所

在的两个目录添加到环境变量,添加过程如下:

1) 打开 EcoCoder Loader,选择 Tools->Select S32DS

2) 点击 Browse,选择 e200_ewl2 下的 makefile,例如路径为 C:\NXP\S32

DS_Power_v2017.R1\S32DS\e200_ewl2\makefile

Page 18: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

18 河北优控新能源科技有限公司 http://eco-ev.com/

3) 右击 Computer,点击 Properties

4) 选择 Advanced system settings->Advanced->Environment Variables

5) 将 powerpc-eabivle-gcc.exe 和 make.exe 所在的两个目录添加到环境变量

中,以分号分割。例如在 Variable value 末尾添加 ;C:\NXP\S32DS_Po

wer_v2017.R1\utils\msys32\usr\bin;C:\NXP\S32DS_Power_v2017.R1\Cro

ss_Tools\powerpc-eabivle-4_9\bin

Page 19: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

19 河北优控新能源科技有限公司 http://eco-ev.com/

注意:添加完环境变量后需要重启 MATALAB。

2.7 HighTec TriCore Tool Chain 与 EcoCoder 关联

如果需要安装HighTec TriCore Tool Chain开发环境,可从HighTec或 Infineon

官网下载。

安装完 HighTec TriCore Tool Chain 后,还需要使用 EcoCoder Loader 选择

HighTec 安装目录下 make.exe 的路径,步骤如下:

1) 打开 EcoCoder Loader,选择 Tools->Select HighTec

2) 点击 Browse,选择 HIGHTEC 安装目录下 toolchains 文件夹内的 make.e

xe,例如路径为 C:\HIGHTEC\toolchains\tricore\v4.6.6.0-infineon-1.1\bi

n\make.exe

Page 20: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

20 河北优控新能源科技有限公司 http://eco-ev.com/

2.8 CS+与 EcoCoder 关联

如果需要安装 CS+,比如 CSPlus_CC_Package_V70000.EXE。安装完后,需

要将安装目录下 CubeSuite+.exe 所在的目录添加到系统环境变量 Path 中,添加

完环境变量后需要重启 MATLAB。其中添加环境变量的方法可以参考 S32DS_P

ower_Win32 与 EcoCoder 关联中的相关操作。

2.9 激活 EcoCoder

EcoCoder 需要 license 文件或 USB 加密狗激活之后才能使用。

2.9.1 USB 加密狗激活 EcoCoder

将 USB 加密狗设备连接电脑,可自动激活 EcoCoder,激活成功后打开

MATLAB 会出现如下红框提示信息。

2.9.2 License 文件激活 EcoCoder

1.获取 Key 文件

1) 双击桌面上的“EcoCoder Loader”

Page 21: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

21 河北优控新能源科技有限公司 http://eco-ev.com/

2) 选择 Tools->Get EcoCoder Key

3) 点击“Export”

4) 弹出窗口如下,给文件命名并保存。例如 EcoCoderKey

5) 将文件"EcoCoderKey.key"发送到邮箱 [email protected],来获取

license 文件。

Page 22: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

22 河北优控新能源科技有限公司 http://eco-ev.com/

2.license 文件激活 EcoCoder

注意:激活时请关闭所有的 MATLAB。

1) 双击桌面上的“EcoCoder Loader”

2) 如果只想激活特定版本的 MATLAB,请在下拉菜单中选择相应的 Matlab

版本。

3) 选择 Tools->Activate EcoCoder

4) 点击“Browse”

5) 选择获取到的 license 文件,例如“EcoCoder_license.dat”,点击 Open

Page 23: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

23 河北优控新能源科技有限公司 http://eco-ev.com/

6) 点击“OK”,如果弹出如下窗口,则说明激活成功。

7) 启动 MATLAB 后,出现下图红框提示,则说明 EcoCoder 可以使用了。

2.10 快速创建应用层模型

在没有 Simulink 模型,或将现有模型移植到 EcoCoder 平台的情况下,可以

使用 EcoCoder 快速创建模型框架,将其作为模板开发控制应用程序,方法共有

两种,一种是通过在命令窗口输入指令;一种是新建模型。

1.通过指令快速创建模型:

1) 更改路径到除 MATLAB 安装目录之外的文件夹。

2) 在命令窗口中输入命令“EcoCoder_Prj('DemoTest')”并回车,则会生成

一个名为“DemoTest”的模型及一些相关的 m 文件。

3) 使用快捷键“Ctrl + B”或直接点击“Build Model”可直接生成 A2L

文件和可执行文件(mot 文件或 hex 文件)。为了更好的理解应用层框架,

下图对各个模块的功能做了注释。

Page 24: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

24 河北优控新能源科技有限公司 http://eco-ev.com/

2.通过新建模型快速创建模型:

通过将 EcoCoder Target Definition 模块拖拽到新模型中,可实现快速创建模

型。

注意:

1.编译时若有窗口弹出,不要手动干预,编译完成后会自动关闭。

2.快速生成模型目录不能是 MATLAB 安装目录。否则,将报告错误并且无

法成功编译。

Page 25: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

25 河北优控新能源科技有限公司 http://eco-ev.com/

3. EcoCoder 封装库介绍

EcoCoder 库作为 Simulink 的其他库或者工具箱使用, EcoCoder 主要提供

应用程序接口来处理 I/O、内存管理、电源管理、CAN 通信和标定/测量。

3.1 EcoCoder Target Definition 目标控制器选择模块

EcoCoder Target Definition 用于选择目标控制器,必需添加这个模块,否则

编译时会出错。且拖拽此模块到新建的模型中,会自动进行模型配置。

参数:

General Parameters:

1) Target:选择目标硬件。

2) Enable all…:如果不使能,所有没有在 Task Trigger 里且没有自动分配

到高或低优先级任务的模型,在控制器里不运行;如果使能,该类模型

会以 L1ms 任务周期在控制器中执行。

注意:Task Trigger 的更多细节,请参阅第 3.6.1 节。

Advanced Parameters:

1) 该标签页可以进行单片机部分 ROM 和 RAM 的配置,若有调整需求,

建议联系技术支持人员。

Page 26: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

26 河北优控新能源科技有限公司 http://eco-ev.com/

3.2 ADC 模拟输入模块

3.2.1 Read ADC Value 采集模拟通道 AD 值模块

该模块用于采集模拟电压输入的原始值(AD 值)。

参数:

1) Analog input channel:模拟通道选择。

输出:

1) ad:指定通道的 ad 值。

3.2.2 Read Fixed-Point ADC Volt 读取通道电压模块

该模块用于读取模拟输入通道信号的电压值。信号为定点类型,需要

Fixed-point 工具支持。

Page 27: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

27 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Analog input channel:模拟通道选择。

2) Input type:通道类型,为电压型输入,支持“Volt_0_5V”, “Volt_0_12V”

“Volt_0_24V”和“Customer Voltage Ratio”四种类型。

3) AD Resolution:模拟输入通道精度,可选 10 位精度或 12 位精度。

4) Custom Voltage Ratio:定制电压比。只有在 Input type 选择“Customer

Voltage Ratio”时,才支持更改。其值由控制器技术手册“表 2.2.1”中

的参数确定,计算公式如下:

Custom Voltage Ratio= Divided Voltage Resistor /(Divided Voltage Resistor

+ Serial Resistor)。

5) Reference Voltage:参考电压值,默认是 5V。

输出:

1) volt:指定通道电压值,单位为 V,数据类型为定点类型。

注意:每个通道都有专用的配置,请参考 VCU 技术手册的数据表,选择正

确的通道设置。

3.2.3 Read Float ADC Volt 读取通道电压模块

该模块用于读取模拟输入通道信号的电压值。

Page 28: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

28 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Analog input channel:模拟通道选择。

2) Input type:通道类型,为电压型输入,支持 “Volt_0_5V”, “Volt_0_12V”,

“Volt_0_24V”和“Customer Voltage Ratio”四种类型。

3) AD Resolution:模拟输入通道精度,可选 10 位精度或 12 位精度。

4) Custom Voltage Ratio:定制电压比。只有在 Input type 选择“Customer

Voltage Ratio”时,才支持更改。其值由控制器技术手册“表 2.2.1”中

的参数确定,计算公式如下:

Custom Voltage Ratio= Divided Voltage Resistor /(Divided Voltage Resistor

+ Serial Resistor)。

5) Reference Voltage:参考电压值,默认是 5V。

输出:

1) volt:指定通道电压值,单位为 V,数据类型为 single。

注意:每个通道都有专用的配置,请参考 VCU 技术手册的数据表,选择正

确的通道设置。

3.3 CAN 通信模块

3.3.1 CAN Channel Definition 定义 CAN 通道模块

该模块用于 CAN 总线初始化参数设置。主要包括 CAN 通道使能、CAN 接

收 ID 过滤使能与滤波设置、波特率设置等。

Page 29: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

29 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) CAN_Channel:CAN 通道选择。

2) CAN_Enable:CAN 模块使能。

3) CAN ID Filter Enable:CAN ID 过滤使能,使能后 CAN 接收指定 ID 的

报文。

4) CAN Extended:接收扩展帧使能,使能后接收扩展帧,不使能接收标准

帧。

注意:若 CAN ID Filter Enable 不使能,则忽略设置,所有类型都接收。

5) CAN ID Mask (uint32 Hex):CAN ID 过滤掩码,其值为十六进制数,若

某位为 0,则忽略 ID 设置的相应位;若为 1,则此位必须和 ID 相应位

相同才能被接收。为更好的理解此功能,请参考例子 1。

注意:此选项需要和 CAN ID Filter(uint32 Hex)配合使用。

6) CAN ID Filter (uint32 Hex):过滤 ID,其值是十六进制数,需要和 CAN

ID Filter(uint32 Hex)配合使用。

7) CAN Baud Rate(kbps):CAN 波特率设置。

8) CAN TxBuffer Size:CAN 发送缓冲区长度,默认为 30,最小值为 2。

9) CAN RxBuffer Size:CAN 接收缓冲区长度。

例子 1:

若 CANID Mask 某个位为 0,则 CAN 线既能接收此位为 0 的 ID,也能接收

此位为 1 的 ID;若 CAN ID Mask 某个位为 1,则 CAN线只能接收和 CAN ID Filter

此位相同值的 ID。假设过滤掩码为 0x700(0b0000011100000000),过滤 ID 为

Page 30: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

30 河北优控新能源科技有限公司 http://eco-ev.com/

0x111(0b0000000100010001),则 VCU 接收的 ID 为 0bxxxxx001xxxxxxxx,其中

x 表示此位既可以是 0,也可以是 1。

3.3.2 CAN Wake-up Frame Definition 唤醒帧定义模块

该模块用于通过 CAN 报文唤醒控制器。

参数:

1) CAN_Channel:CAN 通道选择。

2) Wake-up Mode:唤醒模式设置。共有 Disable(禁止唤醒),All Frames

(所有帧唤醒)和 Specific Frames(特定帧唤醒)3 种模式。

3) Baud Rate(k bps):特定帧波特率设置。

4) ID Extended:特定帧接收扩展帧使能,使能后接收扩展帧,不使能接收

标准帧。

5) ID Setting:特定帧 ID 设置。

6) ID Mask:特定帧 ID 掩码设置,需要和 ID Setting 配合使用。使用方法

可以参考上一节中 CAN ID Mask 的说明。

7) Data Setting Enable:特定帧数据使能设置,若使能需要设置唤醒帧的数

据,若不使能所有数据都能唤醒。

8) Data Length:特定帧数据长度设置,只有总线数据长度等于设定值,才

Page 31: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

31 河北优控新能源科技有限公司 http://eco-ev.com/

能唤醒。

9) Data Mask:特定帧数据掩码设置,在设定的数据长度内,总线上数据

和设置值取位与,结果有一位不为 0 就可以唤醒。

3.3.3 Read Fixed-Point CAN Message 消息解析模块

该模块用于接收 CAN 报文。将 CAN 报文解析为信号,信号为定点类型,

需要 Fixed-point 工具支持。该模块不直接兼容 DBC,但可以加载 DBC 转换的 m

文件。

参数:

1) Select CAN Channel State:选择通道状态,包含Connected和Disconnected

两个选项。选择 Connected 时,没有输入端口,直接从选择的通道读取

报文信息;选择 Disconnected 时,模块会出现输入端口,报文信息从这

些端口获取。

2) Select CAN Channel:CAN 通道选择。

3) Select M File:选择 DBC 转换工具转换的 m 文件,需要将 m 文件添加

到 MATLAB 路径。每次选择后,点击“OK”和“Apply”后,需要再

次双击模块后进行 Message 的选择。

4) Select Message:进行 CAN 报文的选择。

5) Show Message Available Port:显示是否接收到报文数据,为 1 代表接收

到数据。

6) Show Message Count Port:报文计数器,每次收到新的报文,计数器加

Page 32: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

32 河北优控新能源科技有限公司 http://eco-ev.com/

1。

7) Show Signal Names:使能后,输出信号线上会显示信号的名字。

8) Define Signals:使能后,会定义信号线上的变量为测量量。使能时,Show

Signal Names 必须使能。

9) Signal prefix:信号线上的变量前缀。

10) Output data type:勾选时,信号的数据类型向后继承;不勾选时,信号

类型自动定义为定点带定标的数据类型。

11) Sample time:模块仿真时间选择。

输入:

当通道状态为 Disconnected 时,输入端口如下,选择 Connected 时无输入端

口。

1) Enable:使能 CAN 报文解析。

2) Remote:报文帧类型,1 为远程帧,0 为数据帧。

3) Extended:报文帧类型,1 为扩展帧,0 为标准帧。

4) ID:报文 ID。

5) Length:报文数据长度。

6) Data:报文数据。

输出:

1) 解包后的每个信号,信号的值为实际意义的物理值。

注意:此模块信号初值 0 代表十六进制值,而非实际意义的物理值。

3.3.4 Read CAN Message 消息解析模块

该模块用于接收 CAN 报文。将 CAN 报文解析为信号,信号类型自动向后

继承,模块不直接兼容 DBC,但可以加载 DBC 转换的 m 文件。

Page 33: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

33 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Select CAN Channel State:选择通道状态,包含Connected和Disconnected

两个选项。选择 Connected 时,没有输入端口,直接从选择的通道读取

报文信息;选择 Disconnected 时,模块会出现输入端口,报文信息从这

些端口获取。

2) Select CAN Channel:CAN 通道选择。

3) Select M File:选择 DBC 转换工具转换的 m 文件,需要将 m 文件添加

到 MATLAB 路径,每次选择后,点击“OK”和“Apply”后,需要再

次双击模块后进行 Message 的选择。

4) Select Message:进行 CAN 报文的选择。

5) Show Message Available Port:显示报文数据是否有效,为 1 代表接收到

数据。

6) Show Message Count Port:报文计数器,每次收到新的报文,计数器加

1。

7) Show Signal Names:使能后,输出信号线上会显示信号的名字。

8) Signal prefix:信号线上的变量前缀。

9) Sample time:模块仿真时间选择。

输入:

当通道状态为 Disconnected 时,输入端口如下,选择 Connected 时无输入端

口。

1) Enable:使能 CAN 解析报文。

Page 34: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

34 河北优控新能源科技有限公司 http://eco-ev.com/

2) Remote:报文帧类型,1 为远程帧,0 为数据帧。

3) Extended:报文帧类型,1 为扩展帧,0 为标准帧。

4) ID:报文 ID。

5) Length:报文数据长度。

6) Data:报文数据。

输出:

1) 解包后的每个信号,信号的值为实际意义的物理值。

3.3.5 Send Fixed-Point CAN Message 消息打包模块

该模块用于发送 CAN 报文。将 CAN 信号打包并发送,信号为定点类型,

需要 Fixed-point 工具支持,模块不直接兼容 DBC,但可以加载 DBC 转换的 m

文件。

参数:

1) Select CAN Channel State:选择通道状态,包含Connected和Disconnected

两个选项。选择 Connected 时,没有输出端口,报文信息直接发送到选

择的通道;选择 Disconnected 时,模块会出现输出端口,报文信息从这

些端口输出。

2) Select CAN Channel:CAN 通道选择。

3) Select M File:选择 DBC 转换工具转换的 m 文件,需要将 m 文件添加

到 MATLAB 路径,每次选择后,点击“OK”和“Apply”后,需要再

次双击模块后进行 Message 的选择。

4) Select Message:进行 CAN 报文的选择。

5) Input data type:勾选时,信号的数据类型向后继承;不勾选时,信号类

Page 35: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

35 河北优控新能源科技有限公司 http://eco-ev.com/

型自动定义为定点带定标的数据类型。

6) Sample time:模块仿真时间选择。

输入:

1) 要打包的每个信号,信号的值为实际意义的物理值。

输出:

当通道状态为 Disconnected 时,输出端口如下,选择 Connected 时无输出端

口。

1) Remote:报文帧类型,1 为远程帧,0 为数据帧。

2) Extended:报文帧类型,1 为扩展帧,0 为标准帧。

3) ID:报文 ID。

4) Length:报文数据长度。

5) Data:报文数据。

3.3.6 Send CAN Message 消息打包模块

该模块用于发送 CAN 报文。将 CAN 信号打包并发送,信号类型为继承,

模块不直接兼容 DBC,但可以加载 DBC 转换的 m 文件。

参数:

1) Select CAN Channel State:选择通道状态,包含Connected和Disconnected

两个选项。选择 Connected 时,没有输出端口,报文信息直接发送到选

择的通道;选择 Disconnected 时,模块会出现输出端口,报文信息从这

些端口输出。

2) Select CAN Channel:CAN 通道选择。

3) Select M File:选择 DBC 转换工具转换的 m 文件,需要将 m 文件添加

到 MATLAB 路径,每次选择后,点击“OK”和“Apply”后,需要再

次双击模块后进行 Message 的选择。

Page 36: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

36 河北优控新能源科技有限公司 http://eco-ev.com/

4) Select Message:进行 CAN 报文的选择。

5) Sample time:模块仿真时间选择。

输入:

1) 要打包的每个信号,信号的值为实际意义的物理值。

输出:

当通道状态为 Disconnected 时,输出端口如下,选择 Connected 时无输出端

口。

1) Remote:报文帧类型,1 为远程帧,0 为数据帧。

2) Extended:报文帧类型,1 为扩展帧,0 为标准帧。

3) ID:报文 ID。

4) Length:报文数据长度。

5) Data:报文数据。

3.3.7 Receive CAN Message 接收 CAN 消息模块

该模块用于接收 CAN 报文。可以配合 Read CAN Message 模块使用,当通

道状态选为 Disconnected 时,可以将接收到指定 ID 的数据重新解析。

参数:

1) CAN Channel:CAN 通道选择。

2) CAN ID:要接收的报文 ID。

3) Extended:要接收的报文类型,使能为扩展帧,否则为标准帧。

4) Data Length:要接收的报文数据长度。

5) Sample Time:模块仿真时间选择。

输出:

Page 37: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

37 河北优控新能源科技有限公司 http://eco-ev.com/

1) Message Available:报文数据是否有效,1 代表数据有效。

2) Remote:报文帧类型,1 为远程帧,0 为数据帧。

3) Extended:报文帧类型,1 为扩展帧,0 为标准帧。

4) ID:报文 ID。

5) Length:报文数据长度。

6) Data:报文数据。

3.3.8 Transmit CAN Message 发送 CAN 消息模块

该模块用于发送 CAN 报文。可以配合 Send CAN Message 模块使用,当通

道状态选为 Disconnected 时,可以将某些特定信号值重新解析发送出去。

参数:

1) CAN Channel:CAN 通道选择。

2) Sample Time:模块仿真时间选择。

输入:

1) Remote:报文帧类型,1 为远程帧,0 为数据帧。

2) Extended:报文帧类型,1 为扩展帧,0 为标准帧。

3) ID:报文 ID。

4) Length:报文数据长度。

5) Data:报文数据。

3.3.9 Send CAN Data 数据发送模块

该模块用于发送 CAN 报文。

Page 38: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

38 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) CAN Channel::CAN 通道选择。

2) Data Length:发送的数据长度。

3) CANID:发送 ID,其值为十六进制数。

4) FrameType:数据帧类型,包括标准帧和扩展帧。

输入:

1) data:要发送的 CAN 数据域的数据。

3.3.10 CAN Receive Counter 接收计数器模块

该模块用于监控 CAN 线是否接收到数据,每收到一帧报文,计数器加 1。

参数:

1) Select CAN Channel:CAN 通道选择。

输出:

1) cnt:如果所选通道接收到数据帧,则增加 1。

3.3.11 Set CAN Mode 设置 CAN 模式模块

该模块用于选择 CAN 通道的工作模式。

Page 39: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

39 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Trigger type:触发类型选择。

2) CAN Channel:CAN 通道选择。

3) CAN Mode:工作模式选择,正常模式或者只听模式。

输入:

1) Trigger signal:触发信号。

3.3.12 Unpack CAN Data To Signals 解析 CAN 数据模块

该模块用于 CAN 数据域的信号解析。

参数:

1) Signal(Array):一帧数据的信号定义矩阵,具体数据定义请参考例程。

输入:

1) Data:CAN 数据域的数据。

输出:

1) 从 CAN 数据域解析后的各个信号,都为 Hex 值。

Page 40: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

40 河北优控新能源科技有限公司 http://eco-ev.com/

3.3.13 Pack Signals To CAN Data CAN 打包 CAN 数据模块

该模块用于将各个信号打包到 CAN 的数据域。

参数:

1) Out Signal(Array):一帧要打包的数据的信号定义矩阵,具体数据定义请

参考例程。

输入:

1) 将要打包到 CAN 数据域的各个信号,都为 Hex 值。

输出:

1) Data:CAN 数据域的数据。

3.4 SCI 串口通信模块

SCI 通信包括发送数据和接收数据,目前只支持 SCI_A 模式。SCI 模块保

留一些旧的通信,如 RS232。

3.4.1 SCI Definition 串口通信配置模块

该模块用于串口通信参数配置。

Page 41: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

41 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) SCI Channel:SCI 通道选择。

2) SCI_Enable:通道使能。

3) SCI Baudrate:波特率设置。

4) SCI Parity Mode:校验模式设置。

3.4.2 Read SCI Data 串口接收模块

该模块用于读取指定通道的 SCI 数据。

参数:

1) SCI channel:SCI 通道选择。

输出:

1) f() :如果读到数据则触发事件。

2) data:读到的 8 位数据。

3.4.3 Send SCI Data 串口发送模块

该模块用于将数据发送到指定的 SCI 通道。

参数:

1) SCI channel:SCI 通道选择。

输入:

1) data:要发送的 8 位数据。

3.5 Digital I/O 数字输入输出模块

该模块为数字 IO 的输入测量和输出控制,其中开关型包括 Switch Input,

Switch Output 等,PWM 类型包括 IPM Read 和 PWM Output。

Page 42: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

42 河北优控新能源科技有限公司 http://eco-ev.com/

3.5.1 Switch Input 开关量输入模块

该模块用于读取数字输入通道电平。

参数:

1) Switch input channel:数字通道选择。

输出:

1) bool:1 为高电平,0 为低电平。

3.5.2 KeyOn Input 钥匙开关输入模块

该模块用于采集钥匙信号。

参数:

1) Switch input channel:通道选择,KEYON 被指定为此模块的唯一通道。

注意:查阅 VCU 技术手册,确定钥匙开关为数字信号还是模拟信号。若为

模拟信号,则需要配置以下选项;若为数字信号则忽略参数设置。

2) Key AD2Volt Factor:将 AD 采样值转换为输入电压值要乘以的比例系数,

其值由控制器技术手册“表 2.2.1”中的参数确定,计算公式如下:

Key AD2Volt Factor =(Divided Voltage Resistor + Serial Resistor)/(819 *

Divided Voltage Resistor)。

3) Key Off Threshold Volt:如果电压低于这个值,则输出为 0(比如小于 7

Page 43: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

43 河北优控新能源科技有限公司 http://eco-ev.com/

为 0)。

4) Key On Hysteresis Volt:如果电压大于 Key Off Threshold Volt 加上这个

值,则输出为 1(比如大于 7+2 为 1)。

输出:

1) bool:1 为高电平,0 为低电平。

3.5.3 Switch Output 开关量输出模块

该模块用于以开关量输出的方式,配置高边、低边及 H 桥通道的输出。

参数:

1) Switch output channel:数字通道选择。

输入:

1) bool:1 为接通,0 为断开。

3.5.4 IPM Read 频率信号输入模块

该模块用于采集指定通道的频率,输出值为周期,通过运算可以转换成频率。

参数:

1) IPM channel:数字通道选择。

输出:

1) period:指定通道信号的周期,1 代表 0.1ms。

Page 44: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

44 河北优控新能源科技有限公司 http://eco-ev.com/

3.5.5 PWM IO Frequency Range Definition 频率范围定义模块

该模块用于定义频率精度,不拖拽时,默认精度为 1Hz。

参数:

1) Frequency Range:频率范围选择。不同选择会使频率输入、输出所有通

道的频率精度改变。

2) Frequency Accuracy:频率精度。频率输入或输出 1 代表的频率。精度对

应的范围查看硬件技术手册。

3.5.6 IPWM Read 频率占空比测量模块

参数:

1) Select IPWM Channel:通道选择。

输出:

1) freq:指定通道的频率,单位与 PWM IO Frequency Range Definition 设

置有关 。

2) duty:指定通道的占空比,其中 0-10000 对应 0-100%。

3.5.7 OPWM Definition 频率输出通道配置模块

该模块用于对 OPWM 通道进行初始化设置。所有 H 桥、高边、低边通道都

可进行初始化设置,只有在设置后才具有 OPWM 功能。

Page 45: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

45 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) OPWM channel:通道选择。

2) OPWM Enable:通道使能。

3) OPWM FRQ:通道初始化频率,单位与 PWM IO Frequency Range

Definition 设置有关。

4) OPWM Duty:通道初始化占空比,其中 0-10000 对应 0-100%。

注意:占空比指通道打开时占整个通、断总时间的百分比。

3.5.8 PWM Output 频率信号输出模块

该模块用于对高边,低边以及 H 桥通道进行 PWM 输出控制。

参数:

1) OPWM channel:数字通道选择。

输入:

1) freq:控制指定通道信号的频率,单位与 PWM IO Frequency Range

Definition 设置有关。

2) duty:控制指定通道信号的占空比,其中 0-10000 对应 0-100%。

Page 46: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

46 河北优控新能源科技有限公司 http://eco-ev.com/

3.5.9 WakeUp Input 唤醒信号读取模块

该模块用于检测是否有唤醒信号。

参数:

1) Switch input channel:数字通道选择。

输出:

1) bool:高电平为 1,低电平为 0。

3.5.10 Hbridge Definition H 桥定义模块

参数:

1) Hbridge Channel:通道选择。

2) Hbridge Enable:通道使能。勾选表示使能;不勾选表示不使能。

3) Hbridge Current Direction A->B:电流方向设置。勾选表示从 A 流向 B,

不勾选表示从 B 流向 A。A 和 B 是 H 桥的两个端口。

4) Hbridge Initial Frequency:初始化频率,单位与 PWM IO Frequency Range

Definition 设置有关。

5) Hbridge Initial Duty Cycle:初始化占空比,其中 0-10000 对应 0-100%。

3.5.11 Hbridge Output H 桥输出模块

Page 47: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

47 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Hbridge Channel:通道选择。

输入:

1) en:使能控制,1 为使能,0 为不使能。

2) curA2B:电流方向,1 为 A 流向 B,0 为 B 流向 A。

3) frq:频率控制,单位与 PWM IO Frequency Range Definition 设置有关。

4) duty:占空比控制,其中 0-10000 对应 0-100%。

3.6 Task Scheduler 任务调度模块

除定义/初始化模块之外,所有应用程序都应由一个任务触发器驱动。

参数:

1) Set Task Time:任务类型选择。

输出:

1) f():固定周期任务事件。

注意:H 任务的优先级高于 L 任务。对所有 H 任务而言,周期越短优先级

越高。对所有 L 任务而言,它们的优先级相同。如果为两个任务分配了相同的

任务类型,则需指定两个模块的优先级以确定执行顺序。

3.7 Non-volatile Memory Blocks 非易失性存储器库

NVM 变量分为固定 NVM 变量和非固定 NVM 变量两种,它们的区别在于

地址是否固定。

Page 48: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

48 河北优控新能源科技有限公司 http://eco-ev.com/

3.7.1 Fixed NVM Definition 固定 NVM 变量定义模块

该模块用于定义固定 NVM 数据。

参数:

1) Select the m file:选择 m 文件。文件包含所有变量的配置信息,例如数

据类型和初始化规则等内容。

m 文件中的参数含义:

1) Order:NVM 变量存放的顺序。

2) Name:变量名。

3) Type:变量的数据类型。

4) Size:变量的数据长度。

5) Init:初始化设置。为 1 表示程序更新后,变量的初值为 Value 的值;为

0 表示程序更新后,变量的值为 Flash 里的值。

6) Value:变量初始值。

注意:需要将 m 文件添加到 MATLAB 路径才能使用,m 文件中变量的

定义格式如下:

3.7.2 Read Fixed NVM 固定 NVM 变量读数据模块

Page 49: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

49 河北优控新能源科技有限公司 http://eco-ev.com/

该模块用于读取固定 NVM 变量的值。

参数:

1) Fixed NVM Variable:变量名。

输出:

1) 变量的值。

3.7.3 Write Fixed NVM 固定 NVM 变量写数据模块

该模块用于写入固定 NVM 变量。

参数:

1) Fixed NVM Variable:变量名。

输入:

1) 变量的值。

3.7.4 NVM Definition 非固定 NVM 变量初始化方式选择模块

该模块用于选择非固定 NVM 的初始化方式。

参数:

1) Load NVM value in the following way:用于选择初始化方式。若选择

Load previous saved values in flash,则所有非固定 NVM 变量在程序

Page 50: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

50 河北优控新能源科技有限公司 http://eco-ev.com/

更新后,初值为 Flash 里的值;若选择 Restore from factory default val

ues in. mot,则所有非固定 NVM 的变量在程序更新后,初值为变量设

置的默认值。

3.7.5 NVM Variable Definition 非固定 NVM 变量定义模块

该模块用于定义 NVM 变量。

参数:

1) Variable_name:变量名。

2) Init_value:初始值。

3) Variable_type:变量的数据类型。

4) Dimensions:数据维数。

5) Unit:单位。

6) Description:描述。

3.7.6 Read NVM 非固定 NVM 变量读数据模块

该模块用于读取 NVM 变量的值。

Page 51: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

51 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) variable_name:变量名。

2) variable_type:变量的数据类型。

输出:

1) 变量的值。

3.7.7 Write NVM 非固定 NVM 变量写数据模块

该模块用于 NVM 变量的定义和写操作。

参数:

1) Variable_name:变量名。

2) Enable Variable Definition:变量是否定义使能。若勾选,则除了写功能

外,还具有变量定义功能;若不勾选,则只有写功能。

3) Init_value:初始值。

4) Variable_type:变量的数据类型。

5) Dimensions:数据维数。

6) Unit:单位。

7) Description:描述。

输入:

1) 变量的值。

3.7.8 Store All NVM Data 存储所有数据到 NVM 模块

该模块用于将所有固定 NVM 变量、非固定 NVM 变量存储到非易失性存储

空间。

Page 52: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

52 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Select Trigger Type:选择触发类型。

输入:

1) 触发信号。

3.7.9 Restore All NVM Data 从 NVM 恢复所有数据模块

该模块用于将所有固定 NVM 变量、非固定 NVM 变量载入到 RAM 区域。

参数:

1) Select Trigger Type:选择触发类型。

输入:

1) 触发信号。

3.8 Diagnostic Blocks 诊断模块

诊断模块用于使用户做硬件级的故障诊断。

3.8.1 HardWare Output DTC 硬件输出诊断模块

该模块用于对硬件高、低边以及 H 桥驱动模块诊断,可读取硬件端口的故障

信息,故障信息以 DTC(诊断故障代码)的形式体现。

Page 53: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

53 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) DTC_Channel:故障诊断通道选择。

输出:

1) DTC:指定通道的故障码,结果为一个字节的数据。下表为字节各个位

对应的故障类型,对应的位被置 1 代表发生相应的故障。

故障码各位 故障类型

Bit 0 对电源短路故障

Bit 1 对地短路故障

Bit 2 开路故障

Bit 3 过温故障

Bit 4 电源故障

Bit 5 负载短路故障

Bit 6 过载故障

Bit 7 其他故障

3.8.2 DTC Parser 故障码解析模块

该模块用于解析硬件端口故障码,判断该故障码表示的具体故障信息。

Page 54: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

54 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) 故障类型。

输入:

1) DTC:故障码。

输出:

bool:为 1 代表发生了该故障,为 0 代表没有发生该故障。

3.8.3 Software Core Diagnostic 软件内核自检模块

该模块用于软件内核自检,读取内核相应模块的故障码。

参数:

1) DTC_Channel:模块选择。

输出:

1) DTC:故障码。1 代表发生了故障,为 0 代表没有发生。

3.8.4 Clear Hbridge DTC 清除 H 桥故障模块

该模块用于清除 H 桥通道的故障,触发方式为上升沿触发。

参数:

1) Hbridge Channel:通道选择。

3.9 Calibration & Measurement 标定测量模块

3.9.1 Calibration Definition 标定量定义模块

Page 55: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

55 河北优控新能源科技有限公司 http://eco-ev.com/

该模块用于定义标定量。

参数:

1) variable_name:变量名。

2) variable_value:变量值。

3) variable_type:变量类型。

4) variable_min:变量最小值。

5) variable_max:变量最大值。

6) Unit:单位。

7) Description:描述。

3.9.2 Override Probe 覆盖探头模块

该模块用于在线上增加标定量控制输出。通过改变控制变量的值,选择输

出变量为标定量的值还是测量量的值。“OvrMsr”为监控变量,“OvrCal_val”为

标定变量,“OvrEn_val”为控制变量。

Page 56: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

56 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Base Variable Name:变量名。

2) Override Calibration Initial Value:标定量初始值。

3) Override Enable Initial Value:控制变量。为 1 时,输出标定量的值;为

0 时,输出监控变量的值。

4) Data Type:标定变量类型。

5) Unit:单位。

6) Description:描述。

输出:

1) 变量值。

3.9.3 Read Calibration 标定量读取模块

该模块用于定义和读取标定变量。

参数:

1) variable_name:变量名。

2) variable_value:变量值。

3) variable_type:变量类型。

4) variable_min:变量最小值。

5) variable_max:变量最大值。

6) Unit:单位。

7) Description:描述。

Page 57: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

57 河北优控新能源科技有限公司 http://eco-ev.com/

输出:

1) 变量值。

3.9.4 Write Measurement 测量量定义模块

该模块用于定义和更新测量变量。

参数:

1) variable_name:变量名。

2) variable_type:变量类型。

3) Demisions:变量维数。

4) Unit:单位。

5) Description:描述。

输入:

1) 变量值。

3.9.5 Write and Read Measurement 测量量定义模块

该模块用于用于定义并读取测量变量。

Page 58: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

58 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) variable_name:变量名。

2) variable_value:变量初值。

3) variable_type:变量类型。

4) Demisions:变量维数。

5) Unit:单位。

6) Description:描述。

输入:

1) 变量值。

输出:

1) 变量值。

3.9.6 1-D Lookup Table 曲线查表模块

该模块用于曲线查表的定义,无需编写 m 变量,就可以生成标定 CUR,CUR

名为表格名加后缀“_cur”。

3.9.7 2-D Lookup Table 曲面查表模块

该模块用于曲面查表的定义,无需编写 m 变量,就可以生成标定 MAP,MAP

名为表格名加后缀“_map”。

Page 59: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

59 河北优控新能源科技有限公司 http://eco-ev.com/

3.9.8 Calibration Data Check 标定数据检测模块

该模块用于上电时对标定数据的检测。若标定数据有问题,会使控制器进入

死循环,并一直执行该模块触发的功能。

参数:

1) Enable Calibration Data Check:使能标定数据检测。

输出:

1) f():任务事件。

3.10 System Management Blocks 系统管理模块

3.10.1 Power Management Example 电源管理配置模块

注意:该模块用于控制系统上、下电,但没有考虑 CAN 唤醒或其他非钥匙

唤醒源,因此并非满足所有情况的下电控制,用户可以参考该模块搭建类似的控

制模型。

Page 60: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

60 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Key Signal From Input:使能该选项,可以从外部读取钥匙触发信号。

2) Power Off Delay:下电延时时间设置,单位为 S。

3) Key Cycle Reset Enable:Key Cycle 复位使能。当钥匙切换为 off,但没

掉电的过程中,又切换为 ON 时是否要复位。勾选表示要复位;不勾选

表示不复位。

4) Key Cycle Off Duration:Key Off 超过这个设置时间后才认为钥匙为 Off。

5) Key Cycle On Duration:Key Off 后再 Key ON 超过这个设置时间后才认

为钥匙为 ON。

6) Key AD2Volt Factor:当钥匙信号为模拟信号采集时,AD 采样值转换为

输入电压值的比例系数。其值由控制器技术手册“表 2.2.1”中的参数确

定,计算公式如下:

Key AD2Volt Factor =(Divided Voltage Resistor + Serial Resistor)/

(819 * Divided Voltage Resistor)。

注意:该选项适用于钥匙信号为模拟信号采集的情况,当钥匙信号为数

字信号采集时,忽略此值的设置。

7) Key Off Threshold Volt(V):下电电压阈值。当外部输入电压小于此设定

值时,系统下电。

8) Key On Threshold Volt(V):上电电压阈值。当外部输入电压大于此设定

值加 Key Off Threshold Volt 时,系统上电。

注意:当系统处于上电状态时,只要输入电压不低于 Key Off Threshold

Volt,系统都不会下电。

Page 61: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

61 河北优控新能源科技有限公司 http://eco-ev.com/

9) Power Off Fail Enable Reset:如果为 1,则下电失败时,VCU 复位;如

果为 0,则下电失败时,VCU 不复位。

10) Enable NVM Store And Restore:使能 NVM 控制选项。如果勾选,则下

电时将所有 NVM 变量存储到 Flash,上电时将所有 NVM 变量载入到

Ram;如果不勾选,则需要用户根据自己的需求搭建逻辑。

11) Set The Waiting Time(ms):下电超时时间。若超过这个时间未下电成功,

则不在执行下电操作。

12) Power off by edge trigger:下电触发方式选择。如果勾选,则钥匙触发信

号的下降沿控制下电;如果不勾选,则钥匙触发信号控制下电。

注意:不同的控制器需要配置的内容略有差别,此处是对所有配置参数

的介绍,使用时按页面显示内容进行配置即可。

3.10.2 Shutdown Power 下电模块

该模块用于下电控制。

参数:

1) Trigger type:触发方式。

2) Set The Waiting Time(ms):设置下电等待时间。

注意:该模块在没有唤醒源的情况下才能下电成功。

3.10.3 Set ECU Mode 模式设置模块

该模块用于 ECU 工作模式的设置。

Page 62: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

62 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Trigger type:触发类型。

2) Select ECU Mode:工作模式选择。MasterChipSleep 为唯一可选模式,

选择该模式将使主控芯片进入睡眠模式。

输入:

1) 触发信号。

3.10.4 ECU Master Chip WakeUp Definition 主芯片唤醒设置模块

该模块用于通过 CAN 报文唤醒主控芯片,使其从睡眠模式切换到工作模式。

参数:

1) CAN Channel:唤醒通道选择。

2) Wakeup Enable:唤醒功能使能设置。若勾选,则选定通道具有唤醒功能;

若不勾选,则选定通道不具有唤醒功能。

3.10.5 Watchdog Definition 看门狗定义模块

该模块用于看门狗设置。

参数:

1) Software Watchdog Enable:软件看门狗使能控制。

2) Software Watchdog Wait Time(ms):喂狗等待时间,单位为 ms。若在等

待时间内没有喂狗,则执行软件复位操作。

Page 63: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

63 河北优控新能源科技有限公司 http://eco-ev.com/

3) Hardware Watchdog Enable:硬件看门狗使能控制,默认喂狗时间为

600ms,超时后执行硬件复位操作。

3.10.6 Service Software Watchdog 软件喂狗模块

该模块用于软件喂狗。需要使能软件看门狗,并且将该模块放在任务调度内

以实现周期性喂狗。

3.10.7 Software Reset 软件复位模块

该模块用于软件复位。

参数:

1) Select Trigger Type:触发类型选择。

3.10.8 Read System Free Counter 读取系统自由运行计数器模块

该模块用于读取系统自由运行计数器的计数值。

输出:

1) 系统自由运行计数器的计数值。

3.10.9 Power Control Output 电源输出控制模块

该模块用于控制电源输出。

Page 64: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

64 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Power Control Channel:通道选择。

输入:

1) 1 为打开电源,0 为关闭电源。

3.11 CCP 模块

3.11.1 Fixed CCP Slave Definiton 定义 CCP 模块

该模块用于 CCP 初始化设置。拖拽该模块才可以通过标定软件(EcoCAL、

INCA 等)进行标定、测量。

参数:

1) CCP Type:CCP 类型,分为 Simple 和 Configurable 两种。选择 Simple

使用 EcoCAL 进行标定、测量时,需要加载 a2l 和 cal 文件;选择 Confi

gurable 时不生成 cal 文件,使用 EcoCAL 时,需要加载 a2l 和 mot/hex

文件。

2) CCP Enable:CCP 使能。

3) CAN Channel:CAN 通道选择。

4) Station Address(Intel):站地址设置。

5) Command Receive Object(CRO) ID:主机发送命令的地址。

Page 65: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

65 河北优控新能源科技有限公司 http://eco-ev.com/

6) Data Transmit Object(DTO) ID:从机回复命令的地址。

7) Data Acquisition (DAQ) ID:从机发送测量数据的地址。

8) Data Acquisition (DAQ) First PID:从机发送测量数据的起始地址。

9) Data Acquisition (DAQ) Length:从机发送测量数据的长度。

10) Data Acquisition (DAQ) Period(ms):从机发送测量数据的周期。

注意:

1.选择 Configurable 使用 EcoCAL 进行标定、测量时,需要使用 EcoCAL 2.

x.x.x 版本。

2.使用 INCA 标定、测量时,必须选择 Configurable。

3.目前最多支持 4 路 DAQ 列表,且周期或长度为 0 时忽略这一路。

3.11.2 CCP CAL Seed&Key Security Definiton 数据标定密钥定义模块

该模块用于对标定数据加密,算法可以自定义。拖拽该模块后,生成密钥对

应的 DLL 文件,名字为模型名加后缀“_CAL”。

3.11.3 CCP DAQ Seed&Key Security Definiton 数据测量密钥定义模块

该模块用于对测量数据加密,算法可以自定义。拖拽该模块后,生成密钥对

应的 DLL 文件,名字为模型名加后缀“_CAL”。

3.11.4 CCP PGM Seed&Key Security Definiton 数据刷写密钥定义模块

Page 66: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

66 河北优控新能源科技有限公司 http://eco-ev.com/

该模块用于对数据刷写加密,算法可以自定义。拖拽该模块后,生成密钥对

应的 DLL 文件,DLL 文件名为 mot 文件加“_PGM”。

3.11.5 CCP Generate Seed Demo 生成 Seed 示例模块

该模块是生成 Seed 的示例,通过 CCP Get Seed Trigger、CCP Set Seed 以及

一些算法实现的。

注意:

1. 该模块仅当 CCP 类型为 Configurable 时有效。

2. 此模块是为了便于用户理解和使用搭建的,用户可根据自己需求自定义。

3.11.6 CCP Get Seed Trigger 获取 Seed 任务触发模块

该模块用于触发获取 seed 任务。

注意:该模块仅当 CCP 类型为 Configurable 时有效。使用方法可以参考 CCP

Generate Seed Demo 模块。

3.11.7 CCP Set Seed 设置 Seed 模块

该模块用于设置 Seed。

Page 67: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

67 河北优控新能源科技有限公司 http://eco-ev.com/

注意:该模块仅当 CCP 类型为 Configurable 时有效。使用方法可以参考 CCP

Generate Seed Demo 模块。

3.12 Sensors Blocks 传感器模块

3.12.1 Read Gyro Hex Value 读取陀螺仪原始信号模块

该模块用于读取陀螺仪三个轴角加速度的 Hex 值,输出数据为 uint16 类型。

乘以斜率 0.05,偏移-819.15 后的值为加速度物理值,单位为 deg/sec。

3.12.2 Read Gyro Phy Value 读取陀螺仪物理信号模块

该模块用于读取陀螺仪三个轴角加速度,输出数据为 single 类型,单位为

deg/sec。

3.13 Programming Blocks 刷写模块

本章的刷写模块可以在线更改程序及相关参数,只有硬件支持此功能时才能

使用,若不支持,则会弹框提示不支持。

3.13.1 Online Programming Definition 在线刷写定义模块

该模块用于在线刷写程序,同时还可以更改刷写参数。

Page 68: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

68 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) CAN Channel:刷写通道选择。

2) Enable KeyCycle Program:使能钥匙开关更新程序,若勾选则可以使用

钥匙开关更新程序。

3) Enable Online Program:使能在线更新程序,若勾选则可以在线刷写程

序。

4) Station Address:从机站地址,不可更改 。

5) Command Receive Object(CRO) ID:CRO 的地址。

6) Data Transmit Object(DTO) ID:DTO 的地址。

3.13.2 Programming SeedKey Definition 刷写密钥定义模块

该模块用于对刷写文件加密,使用时必须拖拽 Online Programming Definition

模块。

用户可以自己定义或修改刷写密钥。如果不拖拽此模块,则使用默认参数

(0x12-0x34-0x56-0x78-0x9A-0xBC)进行刷写;如果拖拽该模块设置参数,将使

Page 69: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

69 河北优控新能源科技有限公司 http://eco-ev.com/

用模块上设置的密钥进行刷写。

参数:

1) Enable Custom Algorithm:用户自定义算法使能。若勾选,则可以使用 c

语言方式进行密钥算法的定义;若不勾选,则通过设置参数的方式定义

密匙。

2) KeyWord1 ~ KeyWord6:刷写密钥设置,6 个字节密钥。

3.13.3 Entry UDS Programming UDS 刷写模块

该模块用于主程序进入 UDS 刷写模式,控制器支持 UDS 刷写才能使用此功

能。

参数:

1) Trigger type:触发类型选择。

3.14 Advanced Data Blocks 高级数据模块

3.14.1 Read OTP 读取 OTP 数据模块

该模块用于读取 OTP 区域的数据。

参数:

1) Start Position Offset(Byte):起始地址偏移量,单位为字节。

2) Data Length(Byte):数据长度,单位为字节。

输出:

1) data:读取的数据。

Page 70: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

70 河北优控新能源科技有限公司 http://eco-ev.com/

2) st:读取状态。0 为读取成功,非 0 为读取失败。

3.14.2 Read OTP(Input port)读取 OTP 数据模块

该模块用于读取 OTP 区域的数据。

参数:

1) Data Length(Byte):数据长度,单位为字节。

输入:

1) offset(Byte):起始地址偏移量,单位为字节。

输出:

1) data:读取的数据。

2) st:读取状态。0 为读取成功,非 0 为读取失败。

3.14.3 Write OTP 写入 OTP 数据模块

该模块用于将数据写入 OTP 区域。

参数:

1) Start Position Offset(8Bytes):起始地址偏移量,单位为 8 个字节。

2) Select Trigger Type:选择触发类型。

3) Data Length(Byte):数据长度,单位为字节。

输入:

Page 71: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

71 河北优控新能源科技有限公司 http://eco-ev.com/

1) data:要写入的数据。

输出:

1) st:写入状态。0 为写入成功,非 0 为写入失败。

3.14.4 Write OTP(Input port)写入 OTP 数据模块

该模块用于将数据写入 OTP 区域。

参数:

1) Select Trigger Type:选择触发类型。

2) Data Length(Byte):数据长度,单位为字节。

输入:

1) offset(8Bytes):起始地址偏移量,单位为 8 个字节。

2) data:要写入的数据。

输出:

1) st:写入状态。0 为写入成功,非 0 为写入失败。

3.14.5 Read Data By Address 通过地址读取数据模块

该模块用于读取特定地址的数据。

参数:

1) Start Address:起始地址。

2) Data Length(Byte):数据长度,单位为字节。

输出:

Page 72: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

72 河北优控新能源科技有限公司 http://eco-ev.com/

1) data:读取的数据。

3.14.6 Read Data By Address(Input port)通过地址读取数据模块

该模块用于读取特定地址的数据。

参数:

1) Data Length(Byte):数据长度,单位为字节。

输入:

1) addr:起始地址。

输出:

1) data:读取的数据。

3.14.7 Read String Value 读取字符串 ASCII 值模块

该模块用于读取字符串对应的 ASCII 值。

参数:

1) String Input:输入的字符串。

输出:

1) data:输入字符串的 ASCII 值数组。

3.14.8 EEPROM Emulation Definition 模拟 EEPROM 定义模块

该模块用于对模拟 EEPROM 缓存进行设置。

Page 73: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

73 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Enable Record Cache:缓存使能设置。若使能,则可以缓存记录信息。

2) Record Cache Size(Record):要缓存的数据记录个数。

3.14.9 Clear All EEPROM Emulation Record 清除所有模拟 EEPROM 记录模

该模块用于清除所有模拟 EEPROM 中的记录。

参数:

1) Select Trigger Type:选择触发类型。

输出:

1) st:输出状态,参考附录表格。

3.14.10 Clear One EEPROM Emulation Record 清除单个模拟EEPROM记录模

该模块用于清除模拟 EEPROM 中的单个记录。

参数:

1) Select Trigger Type:选择触发类型。

输入:

1) id:要清除记录的地址。

Page 74: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

74 河北优控新能源科技有限公司 http://eco-ev.com/

输出:

st:输出状态,参考附录表格。

3.14.11 Read EEPROM Emulation Record 读取模拟 EEPROM 记录模块

该模块用于读取模拟 EEPROM 的记录。

参数:

1) Data Length:要读取的记录中数据的长度。

输入:

1) id:要读取的记录地址。

2) type:要读取的记录类型。

输出:

1) data:读取到的数据。

2) st:输出状态,参考附录表格。

3.14.12 Write EEPROM Emulation Record 写模拟 EEPROM 数据模块

该模块用于将数据写入模拟 EEPROM。

参数:

1) Select Trigger Type:选择触发类型。

2) Data Length:要写入记录的数据长度。

输入:

1) id:要写入记录的地址。

2) type:要写入的记录类型。

Page 75: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

75 河北优控新能源科技有限公司 http://eco-ev.com/

3) data:要写入记录的数据。

输出:

1) st:输出状态,参考附录表格。

3.14.13 Read Signals From EEPROM Emulation Record 解析模拟 EEPROM 记

录模块

该模块用于从模拟 EEPROM 数据解析信号。

参数:

1) Select M File:m 文件选择。勾选后可以在下方输入 m 文件的名字。

2) Select Type:记录数据类型选择。

3) Show Signal Names:信号名称显示。勾选后输出信号线上会显示信号的

名字。

4) Signal prefix:信号前缀。用于在信号线上添加变量名前缀。

输入:

1) Record ID:要读取并解析的记录 ID。

输出:

1) st:输出状态,参考附录表格。

注意:从记录解析的信号值为实际意义的物理值。

3.14.14 Write Signals to EEPROM Emulation Record 打包模拟 EEPROM 记

录模块

该模块用于将信号写入 EEPROM。

Page 76: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

76 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Select M File:m 文件选择。勾选后可以在下方输入 m 文件的名字。

2) Select Type:记录数据类型选择。

输入:

1) Enable:写记录使能控制,建议使用边沿触发信号控制。

2) Record ID:要写入记录的地址。

3) 要写入记录的信号,信号值为实际意义的物理值。

输出:

1) st:输出状态,参考附录表格。

3.14.15 Program First Run Flag 程序第一次运行标志位模块

该模块用于判断是否为程序更新后第一次运行。

输出:

1) flg:输出标志值。若输出 1,表示程序第一次运行。触发 Store All NVM

Data 模块成功后,该标志清 0。

3.15 Application Base Blocks 基本应用模块

3.15.1 Rising Edge 上升沿模块

该模块用于判断是否有上升沿触发。

Page 77: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

77 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Initial Condition is true:初始话配置选项。若勾选,则默认初始化值为 1。

3.15.2 Falling Edge 下降沿模块

该模块用于判断是否有下降沿触发。

参数:

1) Initial Condition is true:初始话配置选项。若勾选,则默认初始化值为 1。

3.15.3 Online Programming By SoftReset 在线刷写模块

该模块用于通过软件复位操作实现在线刷写。

参数:

1) Select CAN Channel:CAN 通道选择。

3.15.4 Online Programming By Entry UDS Programming UDS 在线刷写模块

该模块用于通过 UDS 刷新程序。

Page 78: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

78 河北优控新能源科技有限公司 http://eco-ev.com/

参数:

1) Select CAN Channel:CAN 通道选择。

Page 79: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

79 河北优控新能源科技有限公司 http://eco-ev.com/

4. CAN 协议实现

应用层的具体实现,可通过 dbc 文件或 m 文件进行广播协议矩阵的定义,

整个代码生成流程如下:

DBC解析

DBC文件

DBC转换器

m文件

S_Function

CAN打包 CAN解包

CAN广播协议模型

目标编译器

CAN广播协议c代码

4.1 DBC 转为 m 文件

通过 EcoCAL 软件中的 EcoCAN 工具,可以将 DBC 转换为 m 文件,有关

EcoCAN 的详细信息,请参阅手册《EcoCAL 手册》。

1) 打开需要转换的 DBC 文件。

Page 80: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

80 河北优控新能源科技有限公司 http://eco-ev.com/

2) 导入成功后,显示如下。

3) 导出为 m 文件。

4.2 CAN 广播协议实现

4.2.1 选择 CAN 模块库

Page 81: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

81 河北优控新能源科技有限公司 http://eco-ev.com/

如果 Simulink 不支持定标功能,请使用 “Read CAN Message”和“Send CAN

Message”库。

4.2.2 选择 m 文件

4.2.3 选择 CAN 消息

4.2.4 选择采样时间

Page 82: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

82 河北优控新能源科技有限公司 http://eco-ev.com/

1.Task_Inherit:该选项为继承上层模块的时间,需要将 CAN 模块放在 Function-

Call 子系统中,通过 Task_Call 来进行调用。

2.Task_ini-Task_H5ms:该选项表示 CAN 模块以选定时间进行周期调用。

3.Task_MDef:采样时间在 m 文件中定义,单位为 s。

m 文件里的采样时间并不是可以任意设置的,设置范围和自动匹配后的采样

时间如下:

Interval (-∞,-1) (0,0.005) [0.005,0.01) [0.01,0.02) [0.02,0.05)

实际采样 Task_Inherit Task_H1ms Task_H5ms Task_H10ms Task_L20ms

Interval [0.05,0.1) [0.1,0.2) [0.2,0.5) [0.5,1) [1,10)

实际采样 Task_L50ms Task_L100ms Task_L200ms Task_L500ms Task_L1000ms

4.2.5 CAN 示例模型

以下为 CAN 打包、解包模块使用用例:

Page 83: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

83 河北优控新能源科技有限公司 http://eco-ev.com/

Page 84: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

84 河北优控新能源科技有限公司 http://eco-ev.com/

5. 自定义变量类型

定义测量量、标定量和 NVM 变量共有两种方法。第一种是自定义变量类型,

第二种是使用 EcoCoder 库中的定义模块。EcoCoder 库的使用前面章节已经详细

介绍,本章对自定义变量做详细介绍。

自定义变量既可以用 EcoObj 在 m 文件里定义类型和变量,也可以借用 MA

TLAB 的图形化工具“Model Explorer”进行定义,下面介绍图形化的定义方法。

5.1 自定义变量类型

1) 打开“Model Explorer”。

2) 通过“Model Explorer”在“Base Workspace”中添加 “Simulink

NumericType”进行用户类型自定义。

3) 给类型命名后,通过右边的窗口进行属性的设置。

Page 85: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

85 河北优控新能源科技有限公司 http://eco-ev.com/

5.2 添加 EcoObj 数据到工作区

如下图,通过“Model Explorer”在“Base Workspace”中添加“EcoObj.Signal”

或“EcoObj.Parameter”。

1) 先打开“Model Explorer”。

2) 选中“Base Workspace”后,再选择 Add->Add Custom...。

3) 点击“Add Custom”后弹出窗口如下,然后选择“EcoObj.Signal”或

“EcoObj.Parameter”。

5.3 定义标定变量

标定变量是当控制器运行时,可以实时更改标定值。

1) 选择“EcoObj.Parameter”填好变量名字后点击 “OK”。

2) 通过右边的窗口进行属性的设置,定义标定量必须将“Storage class”选

Page 86: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

86 河北优控新能源科技有限公司 http://eco-ev.com/

择为“Calibration(Custom)”。

5.4 定义测量变量

测量变量可以通过标定软件监控, 比如 EcoCAL 或 INCA。

1) 选择“EcoObj.Signal”,填好变量名字后点击“OK”。

2) 通过右边的窗口进行属性设置,定义测量量必须将“Storage class”选择

为“Msr(Custom)”。

5.5 定义 NVM 变量

NVM 变量用来存储掉电后还能保存的数据,一般用来存储故障码或一些车

辆的信息等。

1) 选择“EcoObj.Signal”,填好变量名字后点击“OK”。

Page 87: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

87 河北优控新能源科技有限公司 http://eco-ev.com/

2) 通过右边的窗口进行属性设置,其中定义 NVM 变量,必须将“Storage

class”选择为“MeasurementNVM (Custom)”。

5.6 将数据保存到 m 文件

在“Base Workspace”定义变量后,如果关闭 MATLAB,数据将会丢失,所

以数据定义完后要及时保存到 m 文件中。

1) 点击“Base Workspace”,然后右击选择“Export...”。

2) 点击“Export...”后,如下图将文件保存。例如将文件保存到“Demo_d

ata.m”中。

5.7 从 m 文件加载数据到工作区

如下图拖拽“Demo_data.m”文件到 MATLAB 的“Command Window”中,

Page 88: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

88 河北优控新能源科技有限公司 http://eco-ev.com/

可以将文件中的数据加载到“Base Workspace”。

5.8 Model Example 模型示例

Page 89: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

89 河北优控新能源科技有限公司 http://eco-ev.com/

6. 自动代码生成

模型仿真通过后,通过快捷键“Ctrl+B”或者点击如下图标,就可以一键生

成可执行文件。

Page 90: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

90 河北优控新能源科技有限公司 http://eco-ev.com/

7. 程序刷写

通过 EcoFlash 进行可执行文件的刷写,具体使用请参考红色框中的提示。

Page 91: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

91 河北优控新能源科技有限公司 http://eco-ev.com/

8. 测量和标定

EcoCAL 是一款专业的标定、测量工具,具有实时测量、实时录制、在线标

定以及离线刷写等功能。

EcoCAL 遵循 CCP/XCP 标准通信协议,读取标准的 A2L 文件,并以 CAL

文件格式管理校准数据。它支持多种通信设备,包括 CAN bus、USB、SCI(COM)

和以太网 Ethernet。具有数据回放,OBD 在线故障诊断,实时读取故障码,准确

定位故障等功能。

Page 92: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

92 河北优控新能源科技有限公司 http://eco-ev.com/

9. 卸载 EcoCoder

注意:卸载时必须关闭所有打开的 MATLAB 程序。

9.1 从 MATLAB 卸载 EcoCoder

从 MATLAB 卸载 EcoCoder,是为了让选择的 MATLAB 不再启动 EcoCoder

工具箱,具体卸载步骤如下:

1) 双击桌面上的“EcoCoder Loader”,如下图 。

2) 选择 MATLAB 版本,点击“Uninstall EcoCoder from selected MATLAB

version”,点击“OK”。

9.2 从操作系统卸载 EcoCoder

从操作系统上卸载 EcoCoder,不仅使所有的 MATLAB 都不再启动 EcoCoder

工具箱,也会将 EcoCoder 从电脑上彻底删除,具体步骤如下:

1) 通过 EcoCoder 安装目录下的“Uninstall”进行卸载。

2) 选择“Yes”进行卸载。

Page 93: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

93 河北优控新能源科技有限公司 http://eco-ev.com/

10. FAQ 常见问题解答

10.1 Q1- m 文件不能使用

为什么用“EcoCAN”从 DBC 导出的 m 文件不能使用?

检查 m 文件的名字是否遵循 c 语言变量命名规则,而且不能是已有模型或

已有 m 文件的名字。 比如“0-.Demo1.2” 或者 "EcoCanM_Demo"都是非法的。

10.2 Q2-快速创建模型报错

通过指令“EcoCoder_Prj”快速建立模型后,为什么仿真或生成代码报错?

1) 检查是否缺少 Fixed-Point Tool 有效 license 导致的。如果是,一种方法

是去掉带定标类型的变量或模块,请删除文件“dram_canRx”和“dra

m_canTx”;二是安装有效 license。

2) 查看是否加载了 m 文件里的数据,以及是否将需要的库添加到了路径,

可以试着运行 “MDL_setup.m”来完成数据加载和路径添加。

3) 检查 MATLAB 组件是否安装完整,如 Real Time Workshop。

10.3 Q3- CAN 模块界面空白

为什么模型中 CAN 模块界面为空白或者问号?

检查需要的 m 文件是否在当前路径或者添加到了 MATLAB 路径。

10.4 Q4-任务调度优先级

任务调度优先级是如何分配的?

H 任务的优先级高于 L 任务。对于所有 H 任务而言,周期越短优先级越高;

而所有 L 任务的优先级相同。

Page 94: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

94 河北优控新能源科技有限公司 http://eco-ev.com/

10.5 Q5-EcoCoder Loader 弹窗

为什么在安装 EcoCoder 过程中会弹窗报错?

当使用 EcoCoder Loader 弹出以上窗口时,需要注册控件“comdlg32.ocx”。

最简单的办法是按“2.1 软件安装顺序”章节进行安装,或者先安装 EcoFlash 在

安装 EcoCoder。

10.6 Q6-取消代码生成后弹出文件夹窗口

是否有方法在一键代码生成后不弹出文件夹提示窗口?

可以通过以下步骤设置:

1) 打开 Model Configuration Parameters 。

2) 点击 Code Generation 目录下的 EcoCoder Debug Options。

3) 设置 Compiled Action 的下拉菜单。

Compiled Action 的下拉菜单共包含 3 种选项,不同选项的含义如下:

No Prompt:一键代码生成后没有任何提示。

OpenTarget:一键代码生成后会自动打开生成的文件夹。

PopupBox:一键代码生成后仅出现提示框“Software has been compiled

successfully!”。

Page 95: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

95 河北优控新能源科技有限公司 http://eco-ev.com/

10.7 Q7-取消 C 代码访问

是否可以在一键代码生成后不访问生成的 C 代码?

可以通过以下步骤设置:

1) 打开 Model Configuration Parameters 。

2) 点击 Code Generation 目录下的 EcoCoder Debug Options。

3) 设置 Project Files Options 的下拉菜单。

Project Files Options 的下拉菜单共包含 2 种选项,不同选项的含义如下:

Reserved:一键生成文件后,会保留„XX_CWPrj‟文件夹,用户可以自由访问

生成的代码。

Removed:一键生成文件后,会删除„XX_CWPrj‟文件。

10.8 Q8-更新应用程序模型以与新版 EcoCoder 兼容

如何更新用户搭建的应用程序模型以与最新版 EcoCoder 兼容?

可以通过以下步骤完成模型兼容安装包:

1) 添加 EcoCoder Target Definition,模型里必须包含 EcoCoder Target Definition。

2) 模型配置。新版本需要独立的模型配置模块,按需求添加 CAN,OPWM,

Page 96: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

96 河北优控新能源科技有限公司 http://eco-ev.com/

CCP 等独立的模型配置模块。

3) Resolve 一些 Disable 的模块。

若模型里使用的 CAN 模块库有 disable 的情况,需要先 Resolve 所有的 CAN

模块,保存模型后再升级 EcoCoder,否则升级后原来的模型会卡死。升级步骤

如下:

a) 在 disable 的模块上右键点击,然后选择 Library link->Resolve Link。

b) 恢复所有 disable 的模块。

Page 97: EcoCoder 说明手册2017.9 V 4.0 删除ECU_Setting,将初始化独立,并增加一些新模块 2017.11 V 4.2 更新第三章内容 2017.12 V 4.3 更新3.3 2017.12 V 4.4 更新4.2.1

97 河北优控新能源科技有限公司 http://eco-ev.com/

11. 附录

表格 1

状态值 状态描述

0 操作成功

1 空间不足,可用活动区 block 小于设定 active block

2 Flash 操作错误

3 Block 操作错误

4 Block 检测错误

5 没有足够写入空间

6 需要擦除

7 Block 状态异常

8 参数错误

9 记录未找到

10 记录类型不匹配

11 记录已删除

12 记录复制成功

13 记录正在写入

14 正在执行 swap 操作

15 记录需要写入到新的活动区