CANoe開發從入門到精通檢視原始碼討論檢視歷史
《CANoe開發從入門到精通》,楊金升,張可晨,唐新宇 著,出版社: 清華大學出版社。
清華大學出版社成立於1980年6月,是教育部主管、清華大學主辦的綜合性大學出版社[1]。清華社現年出版圖書、音像製品、電子出版物等近3000種,銷售規模和綜合實力以及在高等教育教材市場、科技圖書市場、館配圖書市場占有率均名列前茅[2]。
內容簡介
本書遵循由淺入深的原則,將內容分為三篇。基礎篇首先介紹車載網絡的相關知識,接着介紹CANoe開發環境和常見功能的使用,以便初學者掌握使用CANoe進行一般的總線仿真、測試和分析的方法;入門篇首先介紹CANoe開發總線仿真的基礎知識,接着結合實例重點介紹總線數據庫創建、面板設計,以及CAPL語言設計;進階篇結合廣大開發工程師可能面臨的技術難題,由簡單到複雜地介紹一些典型實例,以提高讀者的實戰技術。
目錄
基 礎 篇
第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 添加Disy面板 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 創建節點Disy的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
參考文獻
- ↑ 我國出版社的等級劃分和分類標準,知網出書,2021-03-01
- ↑ 企業簡介,清華大學出版社有限公司