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”或者点击如下图标,就可以一键生成可执行文件。