图书目录

  基  础  篇

第1章  车载网络概述 3

1.1  车载网络起源 3

1.2  CAN总线概述 4

 1.2.1  CAN总线简史 4

 1.2.2  CAN总线特点 4

 1.2.3  CAN总线主要应用 5

 1.2.4  CAN-FD协议简介 6

1.3  LIN总线概述 6

 1.3.1  LIN总线简史 6

 1.3.2  LIN总线特点 7

 1.3.3  LIN总线主要应用 7

1.4  目前典型车载网络架构 7

 1.4.1  紧凑型 8

 1.4.2  豪华型 8

1.5  主要的车载网络 9

1.6  车载网络发展趋势 11

第2章  CANoe概述 12

2.1  关于Vector公司 12

2.2  CANoe简介 13

2.3  CANoe在ECU项目开发中的作用 13

 2.3.1  第一阶段:全仿真网络系统 13

 2.3.2  第二阶段:真实节点和部分仿真节点共存 14

 2.3.3  第三阶段:全真实节点的网络系统 14

2.4  CANoe不同版本的区别 15

 2.4.1  CANoe pex版本 15

 2.4.2  CANoe run版本 15

 2.4.3  CANoe full版本 16

 2.4.4  关于Demo版本CANoe 16

 2.4.5  关于64bit版本CANoe 17

2.5  CANoe安装 17

 2.5.1  系统配置要求 17

 2.5.2  常见硬件接口卡 18

 2.5.3  安装过程 18

2.6  CANoe常见的总线授权选项 23

2.7  CANoe的授权管理 24

2.8  CANoe的硬件配置 25

 2.8.1  硬件信息查看 25

 2.8.2  硬件配置 27

 2.8.3  通道数量设置 28

第3章  CANoe开发环境 29

3.1  CANoe主界面 29

3.2  CANoe选项卡和功能区 30

 3.2.1  File菜单 30

 3.2.2  Home功能区 31

 3.2.3  Analysis功能区 32

 3.2.4  Simulation功能区 33

 3.2.5  Test功能区 34

 3.2.6  Diagnostics功能区 35

 3.2.7  Environment功能区 36

 3.2.8  Hardware功能区 37

 3.2.9  Tools功能区 38

 3.2.10  Layout功能区 39

3.3  常用仿真窗口 40

 3.3.1  Simulation Setup窗口 40

 3.3.2  Start Values窗口 40

3.4  常见诊断窗口 41

 3.4.1  Diagnostic Console窗口 41

 3.4.2  Diagnostic Session Control窗口 42

 3.4.3  Fault Memory窗口 42

3.5  常见测试窗口 43

 3.5.1  Test Unit窗口 43

 3.5.2  Test Module窗口 45

第4章  CANoe总线测量和分析 46

4.1  CANoe总线测量和分析概述 46

4.2  Measurement Setup窗口 47

 4.2.1  主要功能 48

 4.2.2  插入分析窗口或数据记录模块 48

 4.2.3  插入功能模块 49

4.3  常见分析窗口 49

 4.3.1  Write窗口 49

 4.3.2  Trace窗口 51

 4.3.3  Graphic窗口 52

 4.3.4  State Tracker窗口 52

 4.3.5  Data窗口 53

 4.3.6  Statistics窗口 53

 4.3.7  Scope窗口 54

 4.3.8  Video窗口 55

 4.3.9  GPS窗口 55

4.4  测量数据记录设置及处理 56

 4.4.1  Logging文件设置 56

 4.4.2  Logging文件格式 57

 4.4.3  Filter设置 57

 4.4.4  Trigger设置 58

 4.4.5  Trace导入和导出 60

 4.4.6  Trace查看和编辑 63

 4.4.7  Trace回放 64

4.5  离线分析 67

4.6  发生器模块 68

 4.6.1  CAN IG模块 68

 4.6.2  IG模块 69

第5章  CANoe仿真工程配置及运行 71

5.1  配置仿真工程 71

 5.1.1  物理通道分配问题 71

 5.1.2  波特率设置问题 71

 5.1.3  授权或相关选项缺失问题 74

 5.1.4  虚拟通道设置问题 75

 5.1.5  硬件连接问题 76

5.2  不同版本工程文件之间的兼容性处理 76

5.3  仿真工程个性化设置 78

 5.3.1  添加/修改的Desktop设置 78

 5.3.2  保存不同的工程配置文件 78

5.4  仿真工程文件夹的命名习惯 79

  入  门  篇

第6章  车载总线仿真基础 83

6.1  ECU硬件/软件架构介绍 83

 6.1.1  硬件架构 83

 6.1.2  软件架构 84

6.2  开发仿真工程的必要性 85

 6.2.1  软件开发的V模型 86

 6.2.2  仿真工程的必要性 86

6.3  CANoe仿真工程架构 87

第7章  开发第一个CANoe仿真工程 88

7.1  创建第一个仿真工程 88

7.2  添加CAN数据库 89

 7.2.1  新建CAN数据库 89

 7.2.2  添加报文和信号 89

 7.2.3  添加数据库到工程中 91

7.3  定义系统变量 91

7.4  创建仿真面板 92

 7.4.1  创建开关面板 92

 7.4.2  创建指示灯面板 93

7.5  创建网络节点 93

 7.5.1  添加网络节点 93

 7.5.2  添加Hello World代码 95

 7.5.3  添加Switch代码 95

 7.5.4  添加Light代码 96

7.6  工程运行测试 96

7.7  查看Trace信息 97

第8章  总线数据库设计 98

8.1  总线数据库概述 98

8.2  CANdb++ Editor 98

 8.2.1  File菜单 99

 8.2.2  工具栏 100

8.3  在X-Vehicle项目中创建CAN总线数据库 100

 8.3.1  基于模板新建总线数据库 100

 8.3.2  Networks 101

 8.3.3  ECUs 102

 8.3.4  Network Nodes 102

 8.3.5  Messages 103

 8.3.6  Signals 105

 8.3.7  Environment Variable 109

 8.3.8  Attribute 110

 8.3.9  Value Table 113

 8.3.10  Byte Order 114

8.4  导入数据库文件 116

8.5  LIN总线数据库编辑器LDF Explorer 117

第9章  Panel设计 118

9.1  Panel概述 118

9.2  Panel设计环境介绍 119

 9.2.1  File菜单 119

 9.2.2  Home功能区 120

 9.2.3  Panel功能区 121

 9.2.4  Properties功能区 122

 9.2.5  Toolbox窗口 122

 9.2.6  Symbol Explorer窗口 122

 9.2.7  Working Area窗口 123

 9.2.8  Properties窗口 124

 9.2.9  Output Window 124

9.3  控件介绍 125

 9.3.1  Switch/Indicator控件 126

 9.3.2  LED Control控件 127

 9.3.3  Input/Output Box控件 128

 9.3.4  Hex/Text Editor控件 130

 9.3.5  Analog Gauge控件 131

 9.3.6  Meter控件 132

9.4  多帧图片简介 133

9.5  系统变量简介 134

9.6  在X-Vehicle项目中创建仿真Panel 136

 9.6.1  添加Control面板 136

 9.6.2  添加Display面板 140

 9.6.3  创建一个Desktop 143

第10章  CAPL语言设计 145

10.1  CAPL概述 145

 10.1.1  CAPL主要用途 145

 10.1.2  CAPL的特点 146

10.2  CAPL开发环境—— CAPL浏览器简介 146

 10.2.1  File菜单 147

 10.2.2  功能区 147

 10.2.3  导航区和编辑区 150

 10.2.4  函数浏览区 150

 10.2.5  对象浏览区 150

 10.2.6  输出窗口 151

10.3  CAPL基础——数据类型 151

 10.3.1  变量的声明与定义 152

 10.3.2  简单变量 153

 10.3.3  复合类型 154

 10.3.4  特殊类型 155

10.4  CAPL基础——常见运算 157

10.5  CAPL基础——流程控制 158

 10.5.1  if条件语句 158

 10.5.2  switch语句 158

 10.5.3  while循环语句 159

 10.5.4  for循环语句 160

 10.5.5  break语句 160

 10.5.6  return语句 161

10.6  CAPL基础——程序结构 161

 10.6.1  头文件 161

 10.6.2  全局变量声明 162

 10.6.3  事件处理 162

 10.6.4  自定义函数 169

10.7  CAPL基础——常用函数库简介 170

 10.7.1  通用函数 170

 10.7.2  计算函数 172

 10.7.3  字符串函数 172

 10.7.4  CAN总线函数 173

 10.7.5  LIN总线函数 174

 10.7.6  诊断函数 174

10.8  CAPL基础——总线数据库的使用 175

10.9  CAPL基础——变量和信号的访问 175

 10.9.1  CAPL中访问信号 175

   10.9.2  CAPL中访问系统变量 176

   10.9.3  CAPL中访问环境变量 176

10.10  在X-Vehicle项目中添加CAPL程序 177

   10.10.1  创建节点Engine的CAPL程序 178

   10.10.2  创建节点Door的CAPL程序 178

   10.10.3  创建节点Display的CAPL程序 180

10.11  工程运行测试 181

第11章  仿真工程编译和调试 182

11.1  CAPL程序编译 182

 11.1.1  条件编译 182

 11.1.2  编译CAPL程序 183

11.2  CAPL程序的Debug功能调试 184

 11.2.1  设置Debug Mode 184

 11.2.2  Debugger工具栏 185

 11.2.3  设置调试断点 185

 11.2.4  变量查看 186

 11.2.5  断点查看 187

11.3  使用Write窗口调试CAPL程序 187

第12章  仿真工程开发入门—— CAN仿真 190

12.1  总线仿真工程概述 190

12.2  总线仿真工程开发流程及策略 190

 12.2.1  开发流程 190

 12.2.2  仿真工程开发策略 191

12.3  工程实例简介 192

 12.3.1  网络拓扑图 192

 12.3.2  实现功能 193

12.4  工程实现 193

 12.4.1  创建仿真工程 194

 12.4.2  DBC文件设计与导入 194

 12.4.3  系统变量 197

 12.4.4  面板设计 198

 12.4.5  CAPL代码实现 207

 12.4.6  Automation Sequences 217

 12.4.7  分析窗口设置 218

 12.4.8  Trace窗口与Logging 220

 12.4.9  Desktop布局 221

12.5  工程运行测试 223

  进  阶  篇

第13章  仿真工程开发进阶I ——  CAN+LIN仿真 227

13.1  工程实例简介 227

 13.1.1  网络拓扑图 227

 13.1.2  实现功能 228

13.2  工程实现 229

 13.2.1  添加LIN总线支持 229

 13.2.2  数据库LDF文件设计与导入 230

 13.2.3  添加环境变量 236

 13.2.4  面板设计 237

 13.2.5  CAPL实现 248

 13.2.6  Trace窗口与Logging 256

 13.2.7  设置Desktop布局 257

13.3  工程运行测试 257

13.4  扩展话题——关于网络管理 258

第14章  仿真工程开发进阶II——仿真+测试 260

14.1  基于CANoe的自动化测试系统简介 260

14.2  Test Feature Set功能简介 261

 14.2.1  约束和条件设置函数 261

 14.2.2  信号测试函数 261

 14.2.3  等待指示函数 262

 14.2.4  测试控制函数 263

 14.2.5  故障注入函数 263

 14.2.6  测试判别函数 264

 14.2.7  测试架构函数 264

 14.2.8  测试报告函数 265

14.3  Test Service Library功能简介 265

 14.3.1  检测函数 266

 14.3.2  状态报告函数 268

 14.3.3  激励函数 269

 14.3.4  检测控制函数 270

14.4  测试单元与测试模块简介 270

 14.4.1  测试单元与测试模块的区别 271

 14.4.2  测试模块架构 271

14.5  工程实例简介 272

14.6  工程实现 272

 14.6.1  添加CAPL测试模块 272

 14.6.2  测试方法分析 274

 14.6.3  CAPL测试用例 276

 14.6.4  CAPL测试模块 282

14.7  工程运行测试 283

 14.7.1  测试执行 283

 14.7.2  测试报告 285

14.8  扩展话题——关于vTESTstudio 286

第15章  仿真工程开发进阶III —— 仿真+诊断 288

15.1  汽车诊断技术概述 288

 15.1.1  诊断术语 289

 15.1.2  OBD诊断与增强型诊断 289

 15.1.3  诊断协议 289

 15.1.4  诊断接口 290

 15.1.5  诊断周期 291

 15.1.6  UDS诊断服务 291

 15.1.7  Vector诊断工具简介 292

15.2  CANoe诊断功能简介 293

 15.2.1  诊断描述文件 294

 15.2.2  安全访问服务 294

 15.2.3  诊断测试窗口 295

15.3  CANoe常见诊断函数 295

 15.3.1  通信/设定功能函数 295

 15.3.2  安全访问函数 296

 15.3.3  对象访问函数 296

 15.3.4  参数访问函数 297

 15.3.5  诊断测试函数 298

15.4  工程实例简介 299

15.5  工程实现 299

 15.5.1  CDD文件导入 299

 15.5.2  Security DLL文件配置 301

 15.5.3  诊断控制台 301

 15.5.4  诊断测试面板 302

 15.5.5  添加Tester节点 314

 15.5.6  虚拟诊断响应 317

 15.5.7  自动化诊断测试方法分析 318

 15.5.8  CAPL诊断测试模块实现 319

 15.5.9  制作GenerateKey.dll 332

15.6  工程运行测试 332

 15.6.1  手动诊断测试面板 332

 15.6.2  自动化诊断测试模块 333

15.7  扩展话题——VT System在测试中的应用 335

第16章  CANoe高级编程 —— COM Server技术 336

16.1  COM接口技术简介 336

16.2  CANoe COM Server简介及设置 336

16.3  工程实例简介 337

16.4  开发实现 —— CANoe工程 338

 16.4.1  CANoe工程中供调用的系统变量 338

 16.4.2  CANoe工程中供调用的总线信号 339

 16.4.3  新建CANoe CAPL函数 340

16.5  开发实现——VB.NET工程 342

 16.5.1  新建VB.NET工程 342

 16.5.2  添加CANoe相关引用 342

 16.5.3  界面设计 344

 16.5.4  全局变量定义 348

 16.5.5  CANoe应用和Measurement对象控制 348

 16.5.6  CANoe事件处理 349

 16.5.7  系统变量操作 349

 16.5.8  总线信号操作 350

 16.5.9  CAPL函数调用 350

 16.5.10  完整代码 351

16.6  工程运行测试 362

16.7  扩展话题 —— Python脚本调用COM Server 362

第17章  CANoe高级编程 —— CAPL DLL技术 363

17.1  CAPL DLL技术概述 363

 17.1.1  CAPL DLL函数列表 364

 17.1.2  CAPL回调函数 365

17.2  工程实例简介 366

17.3  工程实现 —— VC.NET开发CAPL DLL 366

 17.3.1  创建用户自定义函数 —— CRC算法函数 366

 17.3.2  创建用户自定义函数 —— 读取MAC地址函数 369

17.4  工程实现 —— CANoe调用CAPL DLL 371

 17.4.1  如何添加CAPL DLL 371

 17.4.2  DLL路径搜索顺序 372

 17.4.3  添加系统变量 372

 17.4.4  添加一个测试面板 372

 17.4.5  添加CAPL代码 375

17.5  工程运行测试 378

17.6  扩展话题 —— CANoe仿真工程代码保护 379

 17.6.1  编译后删除源代码 379

 17.6.2  加密后删除源代码 380

 17.6.3  加密保护与硬件绑定 380

第18章  CANoe高级编程 —— C Library API技术 381

18.1  CCL库文件概述 381

18.2  常用CCL接口函数介绍 381

18.3  工程实例简介 383

18.4  工程实现 —— VC.NET开发CCL 384

 18.4.1  如何创建一个CCL库文件 384

 18.4.2  CCL代码实现 386

18.5  工程实现 —— CANoe调用CCL 389

 18.5.1  如何调用CCL API 389

 18.5.2  添加系统变量 390

 18.5.3  添加测试面板 390

 18.5.4  添加IG模块 392

18.6  工程运行测试 392

第19章  CANoe高级编程 —— 自定义菜单插件 394

19.1  自定义菜单插件概述 394

19.2  工程实例简介 394

19.3  开发自定义菜单插件 394

 19.3.1  创建和配置工程 395

 19.3.2  代码实现 396

19.4  在CANoe中配置自定义菜单插件 401

19.5  工程运行测试 401

19.6  扩展话题 —— 关于C#语言 402

第20章  CANoe高级编程 —— .NET测试模块开发 403

20.1  .NET测试模块开发概述 403

20.2  .NET测试环境设定 404

 20.2.1  配置CANoe的.NET文件编辑器 404

 20.2.2  配置Visual C#项目开发模板 405

20.3  工程实例简介 406

20.4  工程实现 —— .NET测试模块 406

 20.4.1  添加.NET测试模块 406

 20.4.2  调用CAPL测试库中的测试用例 407

 20.4.3  新建C#测试模块工程 409

 20.4.4  数据库和系统变量的访问方法 409

 20.4.5  .NET测试模块开发 410

 20.4.6  .NET测试模块配置和编译 414

20.5  工程运行测试 415

20.6  扩展话题 —— XML测试模块 416

第21章  CANoe高级编程 —— TCP/IP通信编程 419

21.1  网络传输协议简介 419

 21.1.1  网际层 420

 21.1.2  传输层 420

 21.1.3  Socket编程简介 421

21.2  .NET编程中TCP/IP相关类的简介 421

21.3  CAPL中TCP/IP相关函数的简介 424

21.4  工程实例简介 426

21.5  工程实现 —— C#  TCP/IP服务器端开发 427

 21.5.1  新建一个工程 427

 21.5.2  界面设计 427

 21.5.3  C#代码实现 429

21.6  工程实现 —— CANoe TCP/IP客户端开发 434

 21.6.1  创建仿真工程 434

 21.6.2  新建系统变量 434

 21.6.3  Panel设计 435

 21.6.4  CAPL实现 438

21.7  工程运行测试 446

21.8  扩展话题 —— UDP Socket通信 447

第22章  CANoe高级编程 —— FDX协议与HIL系统通信 449

22.1  FDX协议 449

 22.1.1  Datagram 450

 22.1.2  创建Data Groups和Items 454

 22.1.3  FreeRunning模式 455

22.2  工程实例简介 455

22.3  工程实现 —— CANoe项目 456

 22.3.1  创建FDX Description文件 456

 22.3.2  配置FDX 457

22.4  工程实现 —— VC.NET项目 458

 22.4.1  VC.NET中FDX相关类简介 458

 22.4.2  Datagram结构体定义 459

 22.4.3  界面设计 461

 22.4.4  代码实现 463

22.5  工程运行测试 480

22.6  扩展话题 —— 硬件在环 481

第23章  CANoe高级编程 —— 调用LabVIEW 482

23.1  LabVIEW Integration系统设置要求 482

23.2  工程实例简介 482

23.3  工程实现 —— LabVIEW 483

 23.3.1  创建共享变量 483

 23.3.2  创建DemoVI 484

23.4  工程实现 —— CANoe 485

 23.4.1  启用LabVIEW Integration设置 485

 23.4.2  设置Signal Generators 486

 23.4.3  CAPL调用LabVIEW共享变量 487

 23.4.4  添加一个Desktop布局 488

23.5  工程运行测试 488

23.6  扩展话题 —— LabVIEW调用CANoe 490

附录A  英文缩写对照表 491

参考文献 494