EcoCoder是一个功能强大的自动代码生成库,基于Matlab / Simulink,将嵌入式底层软件封装为Simulink库函数或S-Function,应用层控制策略模型可以直接链接到目标控制器。EcoCoder集成了代码生成,编译和一键生成可执行文件功能。

兼容操作系统:
Windows 10 & Windows 7 & Windows XP
支持MATLAB版本:
EcoCoder 支持 MATLAB2010b 及以上版本

MATLAB 组件需求:
① MATLAB ② Simulink ③ Real Time Workshop
④ Realtime Workshop Embedded Coder
⑤ Stateflow,⑥ Stateflow Coder


EcoCoder基本软件库和S-Function

  • 运行EcoCoder安装包,安装过程中自动将所有EcoCoder的库模块和S-Function添加到Simulink;
  • EcoCoder的S-Function库封装了面向控制器硬件的所有驱动软件,包括CAN总线、CCP/XCP模块、ADC模拟输入、数字IO、PWM输入、高底边驱动、H桥等;同时EcoCoder的任务调度函数S-Function库封装了实时操作系统;
  • 在Simulink环境中搭建模型,通过EcoCoder的封装库模块和S-Function将用户的应用程序软件(即Simulink模型)链接到硬件驱动程序中;
  • 运行Simulink仿真,验证模型和软件功能完整性;
  • 在Simulink中定义信号属性和参数属性,将其输出到生成的A2L文件中。
  • 点击“自动代码生成”按钮,EcoCoder将生成微处理器兼容的可执行代码文件。
  • 点击“编译”按钮,将调用在后台运行的编译链接过程,后者将运行编译器(如CodeWarrior),将应用程序代码和硬件驱动程序代码一起编译并生成可执行代码。
 

EcoCoder编译过程将生成3个文件

  • 机器可执行文件,例如NXP MPC57xx/56xx系列和Infineon Tc27xT系列处理器的.MOT/.HEX文件;
  • A2l文件,数据描述文件包含标定工具解释控制器协议所需的全部信息,兼容INCA、CANape等标定软件工具;
  • CAL文件,只包含标定数据,不包含代码。
EcoCoder Target Definition

EcoCoder Target Definition用于选择目标控制器型号,将此模块拖到Simlink中,EcoCoder会根据选择目标控制器型号自动配置相关参数。

System Management

系统管理模块,包括系统电源管理、看门口、系统运行计数器等。

Programming

刷写模块用于软件在线刷写功能定义、刷写参数设置等。

CCP block

CCP模块主要用于CCP初始化、数据密钥定义(标定、测量、刷写)、seed任务触发和发送等。

XCP block

XCP模块主要包括XCP初始化、参数配置等。

CAN block

CAN模块用于定义CAN通讯配置、数据解析、数据打包、数据接收和发送,以及CAN唤醒、故障诊断等。

LIN communication block

LIN通讯模块定义LIN通道参数,包括获取LIN总线状态和数据的发送/接收。

FlexRay block

FlexRay 模块包括FlexRay通讯定义、状态获取、组网控制、状态恢复、消息接收和发送等。

Task Scheduler

Task Scheduler用于定义任务类型,优先级,以及任务监控。

Non-Volatile Memory block

用于定义固定的NVM变量和非固定的NVM变量,包括变量数据类型定义,变量初始化,数据读/写,数据初始值定义,变量地址获取。

Diagnostic block

用于硬件级故障诊断,包括高/低边驱动,电源块和H桥的诊断信息。

Calibration & Measurement block

标定测量模块用于定义标定量和测量变量。标定量可以定义单值标定量、一维表格、二维表格。

Advanced Data block

主要用于特殊的存储器操作,包括OTP,Flash拟EEPROM、以及按地址读取数据等。

Application Base block

应用层软件基础模块,包含应用层模型搭建可能会用到的基础算法模块。

ADC(Analog-Digital-Converter) block

用于模拟信号输入采集,包括原始AD值,定点电压值和浮点电压值。

Digital IN/OUT block

管理数字输入和输出信号,包括数字I/O,频率(PWM)信号,高低边驱动,唤醒信号输入和H桥输出控制等。

 

CAN协议实现

通过ECOCAN工具,将DBC文件转换为m文件,然后在EcoCoder的CAN模块中加载转换的m文件并选择相应的CAN massage。CAN signal会显示并可直接与模型中的信号进行连接。

 

自定义变量类型

自定义变量既可以用Eco0bj在.m文件里定义类型和变量,页可以借用MATLAB自带的图形化工具“Model Explorer”进行定义。通过“Model Explorer”在“Base Workspace”中添加“Simlink NumericType”进行用户类型自定义。

 

自动代码生成

模型仿真通过后,通过快捷键“Ctrl+B”或者点击如下图标,就可以一键生成可执行文件。