CANape的CASL工具箱

描述

ecu

在汽车电子 ECU(电子控制单元)开发与测试领域,CANape 是核心的测量、标定与诊断工具,而其专属的 CASL(Calculation and Scripting Language)语言,凭借接近 C 语言的语法及内置功能库,成为实现流程自动化、交互定制化的关键。CASL 内置功能库本质是 CANape 封装的 API 集合,覆盖 ECU 开发 “硬件连接 - 测量采集 - 参数标定 - 数据后处理” 全链路,无需额外开发即可直接调用,核心价值在于减少手动干预、提升效率,同时支持深度集成 CANape 核心能力与跨模块协同。


 

ecu

核心功能模块:覆盖 ECU 开发全流程


 

CASL 内置功能库包含15大模块,以下提炼CASL关键的6类核心能力,聚焦实用场景与关键函数进行介绍:

1. 网络控制:总线通信的基础

该模块负责激活、禁用CAN/LIN/FlexRay 等总线网络,是ECU通信的前提。核心函数均以 “networkName”为输入,返回值-1代表错误、0代表成功(状态判断除外):

ActivateNetwork():激活指定网络(如ActivateNetwork("CAN_Network")激活 CAN 网络);

DeactivateNetwork():禁用指定网络;

IsNetworkActive():判断网络状态(返回1为激活,0为未激活)。

Example:指定网络激活/禁用/状态的判断

ecuecu


 

2. 程序控制:人机交互与界面定制

聚焦 “用户交互+信息输出”,满足定制化操作需求:

用户输入:通过UserQueryDialog()生成带自定义按钮的对话框(如设备刷写确认)、UserSelectDialog()提供下拉列表选择、QueryMultipleValues()实现多字段输入(如十进制 / 路径);

Example1:UserQueryDialog()生成带自定义按钮的对话框

ecu

Example2:UserSelectDialog()提供下拉列表选择

ecu


 

信息输出:Write()逐行输出到“Write窗口”、Speak()将文本转为语音提示、ProgressBarCreate()生成状态栏进度条,覆盖多场景信息传递。

Example3:Write()逐行输出到“Write窗口”

ecu


 

3. 设备管理:ECU 硬件交互核心

所有函数需以设备对象即Device name为前缀(如XCPsim、KWP2000),实现硬件状态控制与数据通信:

状态切换:Online()/Offline()切换设备在线/离线、IsOnline()判断状态;

Example1:Online()/Offline()切换设备在线/离线

ecu

数据通信:SendMessage()发送CAN报文、CCP/XCP命令或诊断指令(如向CAN设备发送扩展报文CAN.SendMessage(0x100, 1, 2, 3, 4, 5));

Example2:SendMessage()的使用

ecu

数据库与刷写:ImportDatabase()导入A2L/DBC文件,FlashParameterset()刷写参数集、DownloadFile()下载HEX文件到ECU。

Example3:使用FlashParameterset()刷写参数集

ecu


 

4. 测量控制:自动化数据采集

支撑测量流程自动化,核心围绕CANape的Recorder操作与全局测量管理:

Recorder控制:RecorderStart()/RecorderStop()启动/停止Recorder(支持保存文件),RecorderGetFileSize()查询记录文件大小;

Example1:RecorderStart()/RecorderStop()启动/停止Recorder

ecu

测量管理:Start()/Stop()控制全局测量,IsRunning()判断测量状态,SaveDisplayBuffers()保存缓冲区数据为 MDF 文件。

Example2:Start()/Stop()控制全局测量,IsRunning()判断测量状态

ecu


 

5. 标定功能:ECU 参数精细化调控

针对 ECU 标定场景,实现数据集管理与参数读写:

数据集管理:CreateDataset()创建A2L+HEX的数据集,ActivateDataset()激活数据集,ResetDatasetToReference()重置到参考状态;

参数与模式:SetParameterPhysValue()设置参数物理值,DirectCalibrationMode()切换直接 / 间接标定(间接模式需手动下载生效)。

Example:参数集管理

ecu


 

6. 辅助功能:简化脚本开发

包含三类实用工具,降低开发复杂度:

脚本控制:CallScript()调用外部脚本,Sleep()延迟执行(如Sleep(1000)延迟 1 秒);

Example1:Sleep()延迟

ecu

数据挖掘:DataMiningStart()启动数据挖掘分析,DataMiningCreateHit()标记信号峰值等命中点;

基础工具:Sprint()格式化字符串、SystemTime()获取系统时间、HexFileCreate()创建HEX文件。

Example2:SystemTime()获取系统时间

ecuecu


 

ecu

功能库特点与典型应用


 

CASL内置功能库的核心优势在于“全链路覆盖”与“深度集成”,这使它能够在ECU开发的各个环节实现高度自动化,无需依赖外部工具即可完成复杂的开发任务。其典型应用场景包括:

1. 自动化测试:高效、精准的实时信号监测

CASL能够通过定时启动测量任务,实时监控ECU的信号状态,并在信号超出预设阈值时自动触发记录停止。例如,在自动驾驶测试中,CASL可以结合“网络控制”模块激活车辆的CAN总线,通过“测量控制”模块的Recorder功能记录传感器数据。一旦检测到异常信号(如超速或偏离车道),系统会立即停止记录并生成警报报告。这种高效的实时监测功能在复杂测试环境中尤为关键。

2. 批量标定:多参数、多设备的高效管理

CASL支持批量处理多个ECU参数的标定任务,包括数据集的批量重置、激活和参数刷写。标定工程师可以通过“标定功能”模块的CreateDataset()和ActivateDataset()函数快速创建和应用新的标定数据集,并通过FlashParameterset()完成参数的批量刷写。这种批量化的操作方式显著减少了人工干预,尤其适合生产线上的大批量标定作业。

3. 定制化交互:灵活的操作界面与流程优化

CASL提供了强大的用户交互功能,能够自定义标定流程对话框和测量进度实时提示。例如,通过UserQueryDialog()函数可以创建带自定义按钮的对话框来确认关键操作;通过ProgressBarCreate()可以实时显示测量任务的完成进度。这种灵活的交互方式不仅提升了用户体验,还优化了复杂的标定和测试流程。

4. 数据后处理:深度分析与自动化报告生成

CASL支持对采集的测量数据进行深度分析和后处理。例如,通过DataMiningCreateHit()函数可以标记信号的峰值或异常点,并结合其“辅助功能”模块生成包含图表和数据统计的PDF报告。工程师可以利用这些报告快速定位问题,完成数据分析并为后续的ECU优化提供依据。

这些应用场景充分体现了CASL在ECU开发中的高效性、灵活性和实用性,使其成为汽车电子工程师的得力助手。


 


 

CASL内置功能库是汽车电子工程师的“效率工具”,掌握其核心模块与关键函数,能大幅减少CANape操作中的手动干预,提升ECU开发与测试的效率和一致性,为复杂测试项目的流程标准化提供坚实支撑。

北汇信息作为Vector中国的合作伙伴,不仅提供相应的工具和技术支持服务及培训,还针对不同的应用提供相应的解决方案,助力中国客户的研发效率提升。欢迎联系北汇信息,我们将根据不同需求为您提供针对性的高效、灵活、稳定的解决方案!

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分