2、开发环境搭建:ISOLAR-A与DaVinci Developer安装、工程创建、网络管理模块导入
好,咱们直接进入正题。这一章,我带你把吃饭的家伙先支棱起来。
做AUTOSAR网络管理,说白了就两样工具绕不开:ISOLAR-A 和 DaVinci Developer。一个管系统级配置,一个管SWC和RTE。我刚开始接触那会儿,也分不清谁该干啥,后来踩过坑才明白——ISOLAR-A是画骨架的,DaVinci是填血肉的。
2.1 工具链概览:谁负责什么?
先理清楚这两个工具的分工,不然你后面会乱。
| 工具 | 主要职责 | 我的理解 |
|---|---|---|
| ISOLAR-A | 系统级配置、ECU提取、BSW模块配置(含CanNm) | 相当于总设计师,定通信矩阵、定网络拓扑 |
| DaVinci Developer | SWC设计、Port接口定义、RTE生成 | 相当于软件架构师,管应用层怎么跟底层交互 |
嗯,这里要注意:网络管理模块(CanNm)的配置主要在ISOLAR-A里完成。DaVinci Developer更多是帮你把网络管理状态机暴露给应用层。
2.2 ISOLAR-A安装与工程创建
安装过程我就不啰嗦了,ETAS的安装包一路Next就行。但有几个坑,我帮你提前排掉。
2.2.1 创建系统级工程
打开ISOLAR-A,选 File → New → System Project。这里你会看到几个模板选项:
- Empty System:从零开始,适合老手
- From ARXML:导入已有的系统描述文件,团队协作常用
我个人习惯选 Empty System,然后手动导入通信矩阵(DBC或LDF)。为什么?因为这样我能清楚每一步做了什么,心里有底。
创建完后,你会看到左侧的 System Explorer 视图。这里就是你的主战场了。
2.2.2 导入网络管理模块
这一步是关键。ISOLAR-A默认不会自动给你配好CanNm,你得手动把BSW模块加进来。
- 在System Explorer里,找到你的ECU实例
- 右键 →
Add BSW Module - 在弹出的列表里找到
CanNm,勾上 - 系统会自动帮你把依赖的模块(比如Can、EcuM)也带上
Help → Install New Software 里补上 ETAS BSW Package。
导入成功后,你会看到CanNm出现在ECU的BSW模块列表里。双击它,就能进入配置界面了。
2.3 DaVinci Developer安装与工程创建
DaVinci Developer的安装相对简单。但有一点我要强调:版本一定要跟ISOLAR-A匹配。我见过有人用ISOLAR-A 2020配DaVinci Developer 2019,结果ARXML导来导去全是兼容性报错。
2.3.1 创建SWC工程
打开DaVinci Developer,选 File → New → Software Project。这里要注意:
- Project Name:最好跟你的ECU名字一致,方便管理
- Template:选
Empty Project,别选带示例的,那些示例反而容易干扰你
创建完后,你会看到一个空白的 Component Tree。嗯,这里先不急,等我们把ISOLAR-A的ARXML导过来再说。
2.3.2 导入ISOLAR-A的ARXML
在ISOLAR-A里,把你的系统配置导出成ARXML:
File → Export → ARXML
选择你的ECU实例
勾上 "Include BSW Configuration"
点击 Finish
然后在DaVinci Developer里:
File → Import → ARXML
选择刚才导出的文件
确保 "Merge with existing" 是勾选状态
2.4 网络管理模块的初步配置
好,工具搭好了,工程也建了。现在咱们看看CanNm模块长什么样。
在ISOLAR-A里打开CanNm配置,你会看到一堆参数。别慌,咱们先关注几个核心的:
| 参数名 | 作用 | 我常用的值 |
|---|---|---|
| CanNmMsgCycleTime | 网络管理报文发送周期 | 1000 ms(标准) |
| CanNmMsgTimeoutTime | 超时时间,超过这个时间没收到NM报文就认为节点挂了 | 3000 ms(3个周期) |
| CanNmRepeatMsgTime | 重复报文阶段的总时间 | 2000 ms |
| CanNmNodeId | 当前节点的ID,用于源地址标识 | 根据项目分配 |
这些参数怎么来的?说白了就是跟OEM或者系统需求定的。我建议你一开始先用标准值,等后面调试时再微调。
2.5 验证环境是否搭好
配置完了,怎么知道环境没问题?我一般做三步验证:
- ARXML导出导入无报错:ISOLAR-A导出的ARXML,DaVinci Developer能顺利导入,没有红色错误
- 代码生成能跑通:在ISOLAR-A里点
Generate Code,看控制台有没有Error - RTE能生成:在DaVinci Developer里点
Generate RTE,确认没有接口不匹配的问题
这三步都过了,恭喜你,开发环境算是真正搭起来了。
2.6 本章小结
嗯,这一章内容不少,但都是实打实的操作。你想想看,工具链没搭好,后面所有配置都是空中楼阁。我个人习惯是每做一个新项目,都会重新走一遍这个流程,确保环境是干净的。
下一章,咱们就要真正进入CanNm的核心配置了——网络管理状态机。到时候我会把 Repeat Message State 和 Normal Operation State 的切换逻辑掰开揉碎讲给你听。
公众号:蓝海资料掘金营,微信deep3321