●基礎篇
章車載網絡概述3
1.1車載網絡起源3
1.2CAN總線概述4
1.2.1CAN總線簡史4
1.2.2CAN總線特點4
1.2.3CAN總線主要應用5
1.2.4CAN-FD協議簡介6
1.3LIN總線概述6
1.3.1LIN總線簡史6
1.3.2LIN總線特點7
1.3.3LIN總線主要應用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.2CANoe簡介13
2.3CANoe在ECU項目開發中的作用13
2.3.1階段:全仿真網絡繫統13
2.3.2第二階段:真實節點和部分仿真節點共存14
2.3.3第三階段:全真實節點的網絡繫統14
2.4CANoe不同版本的區別15
2.4.1CANoepex版本15
2.4.2CANoerun版本15
2.4.3CANoefull版本16
2.4.4關於Demo版本CANoe16
2.4.5關於64bit版本CANoe17
2.5CANoe安裝17
2.5.1繫統配置要求17
2.5.2常見硬件接口卡18
2.5.3安裝過程18
2.6CANoe常見的總線授權選項23
2.7CANoe的授權管理24
2.8CANoe的硬件配置25
2.8.1硬件信息查看25
2.8.2硬件配置27
2.8.3通道數量設置28
第3章CANoe開發環境29
3.1CANoe主界面29
3.2CANoe選項卡和功能區30
3.2.1File菜單30
3.2.2Home功能區31
3.2.3Analysis功能區32
3.2.4Simulation功能區33
3.2.5Test功能區34
3.2.6Diagnostics功能區35
3.2.7Environment功能區36
3.2.8Hardware功能區37
3.2.9Tools功能區38
3.2.10Layout功能區39
3.3常用仿真窗口40
3.3.1SimulationSetup窗口40
3.3.2StartValues窗口40
3.4常見診斷窗口41
3.4.1DiagnosticConsole窗口41
3.4.2DiagnosticSessionControl窗口42
3.4.3FaultMemory窗口42
3.5常見測試窗口43
3.5.1TestUnit窗口43
3.5.2TestModule窗口45
第4章CANoe總線測量和分析46
4.1CANoe總線測量和分析概述46
4.2MeasurementSetup窗口47
4.2.1主要功能48
4.2.2插入分析窗口或數據記錄模塊48
4.2.3插入功能模塊49
4.3常見分析窗口49
4.3.1Write窗口49
4.3.2Trace窗口51
4.3.3Graphic窗口52
4.3.4StateTracker窗口52
4.3.5Data窗口53
4.3.6Statistics窗口53
4.3.7Scope窗口54
4.3.8Video窗口55
4.3.9GPS窗口55
4.4測量數據記錄設置及處理56
4.4.1Logging文件設置56
4.4.2Logging文件格式57
4.4.3Filter設置57
4.4.4Trigger設置58
4.4.5Trace導入和導出60
4.4.6Trace查看和編輯63
4.4.7Trace回放64
4.5離線分析67
4.6發生器模塊68
4.6.1CANIG模塊68
4.6.2IG模塊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.1ECU硬件/軟件架構介紹83
6.1.1硬件架構83
6.1.2軟件架構84
6.2開發仿真工程的必要性85
6.2.1軟件開發的V模型86
6.2.2仿真工程的必要性86
6.3CANoe仿真工程架構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添加HelloWorld代碼95
7.5.3添加Switch代碼95
7.5.4添加Light代碼96
7.6工程運行測試96
7.7查看Trace信息97
第8章總線數據庫設計98
8.1總線數據庫概述98
8.2CANdbEditor98
8.2.1File菜單99
8.2.2工具欄100
8.3在X-Vehicle項目中創建CAN總線數據庫100
8.3.1基於模板新建總線數據庫100
8.3.2Networks101
8.3.3ECUs102
8.3.4NetworkNodes102
8.3.5Messages103
8.3.6Signals105
8.3.7EnvironmentVariable109
8.3.8Attribute110
8.3.9ValueTable113
8.3.10ByteOrder114
8.4導入數據庫文件116
8.5LIN總線數據庫編輯器LDFExplorer117
第9章Panel設計118
9.1Panel概述118
9.2Panel設計環境介紹119
9.2.1File菜單119
9.2.2Home功能區120
9.2.3Panel功能區121
9.2.4Properties功能區122
9.2.5Toolbox窗口122
9.2.6SymbolExplorer窗口122
9.2.7WorkingArea窗口123
9.2.8Properties窗口124
9.2.9OutputWindow124
9.3控件介紹125
9.3.1Switch/Indicator控件126
9.3.2LEDControl控件127
9.3.3Input/OutputBox控件128
9.3.4Hex/TextEditor控件130
9.3.5AnalogGauge控件131
9.3.6Meter控件132
9.4多幀圖片簡介133
9.5繫統變量簡介134
9.6在X-Vehicle項目中創建仿真Panel136
9.6.1添加Control面板136
9.6.2添加Display面板140
9.6.3創建一個Desktop143
0章CAPL語言設計145
10.1CAPL概述145
10.1.1CAPL主要用途145
10.1.2CAPL的特點146
10.2CAPL開發環境——CAPL瀏覽器簡介146
10.2.1File菜單147
10.2.2功能區147
10.2.3導航區和編輯區150
10.2.4函數瀏覽區150
10.2.5對像瀏覽區150
10.2.6輸出窗口151
10.3CAPL基礎——數據類型151
10.3.1變量的聲明與定義152
10.3.2簡單變量153
10.3.3復合類型154
10.3.4特殊類型155
10.4CAPL基礎——常見運算157
10.5CAPL基礎——流程控制158
10.5.1if條件語句158
10.5.2switch語句158
10.5.3while循環語句159
10.5.4for循環語句160
10.5.5break語句160
10.5.6return語句161
10.6CAPL基礎——程序結構161
10.6.1頭文件161
10.6.2全局變量聲明162
10.6.3事件處理162
10.6.4自定義函數169
10.7CAPL基礎——常用函數庫簡介170
10.7.1通用函數170
10.7.2計算函數172
10.7.3字符串函數172
10.7.4CAN總線函數173
10.7.5LIN總線函數174
10.7.6診斷函數174
10.8CAPL基礎——總線數據庫的使用175
10.9CAPL基礎——變量和信號的訪問175
10.9.1CAPL中訪問信號175
10.9.2CAPL中訪問繫統變量176
10.9.3CAPL中訪問環境變量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
1章仿真工程編譯和調試182
11.1CAPL程序編譯182
11.1.1條件編譯182
11.1.2編譯CAPL程序183
11.2CAPL程序的Debug功能調試184
11.2.1設置DebugMode184
11.2.2Debugger工具欄185
11.2.3設置調試斷點185
11.2.4變量查看186
11.2.5斷點查看187
11.3使用Write窗口調試CAPL程序187
2章仿真工程開發入門——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.2DBC文件設計與導入194
12.4.3繫統變量197
12.4.4面板設計198
12.4.5CAPL代碼實現207
12.4.6AutomationSequences217
12.4.7分析窗口設置218
12.4.8Trace窗口與Logging220
12.4.9Desktop布局221
12.5工程運行測試223
進階篇
3章仿真工程開發進階I——CANLIN仿真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.5CAPL實現248
13.2.6Trace窗口與Logging256
13.2.7設置Desktop布局257
13.3工程運行測試257
13.4擴展話題——關於網絡管理258
4章仿真工程開發進階II——仿真測試260
14.1基於CANoe的自動化測試繫統簡介260
14.2TestFeatureSet功能簡介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.3TestServiceLibrary功能簡介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.3CAPL測試用例276
14.6.4CAPL測試模塊282
14.7工程運行測試283
14.7.1測試執行283
14.7.2測試報告285
14.8擴展話題——關於vTESTstudio286
5章仿真工程開發進階III——仿真診斷288
15.1汽車診斷技術概述288
15.1.1診斷術語289
15.1.2OBD診斷與增強型診斷289
15.1.3診斷協議289
15.1.4診斷接口290
15.1.5診斷周期291
15.1.6UDS診斷服務291
15.1.7Vector診斷工具簡介292
15.2CANoe診斷功能簡介293
15.2.1診斷描述文件294
15.2.2安全訪問服務294
15.2.3診斷測試窗口295
15.3CANoe常見診斷函數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.1CDD文件導入299
15.5.2SecurityDLL文件配置301
15.5.3診斷控制臺301
15.5.4診斷測試面板302
15.5.5添加Tester節點314
15.5.6虛擬診斷響應317
15.5.7自動化診斷測試方法分析318
15.5.8CAPL診斷測試模塊實現319
15.5.9制作GenerateKey.dll332
15.6工程運行測試332
15.6.1手動診斷測試面板332
15.6.2自動化診斷測試模塊333
15.7擴展話題——VTSystem在測試中的應用335
6章CANoe不錯編程——COMServer技術336
16.1COM接口技術簡介336
16.2CANoeCOMServer簡介及設置336
16.3工程實例簡介337
16.4開發實現——CANoe工程338
16.4.1CANoe工程中供調用的繫統變量338
16.4.2CANoe工程中供調用的總線信號339
16.4.3新建CANoeCAPL函數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.5CANoe應用和Measurement對像控制348
16.5.6CANoe事件處理349
16.5.7繫統變量操作349
16.5.8總線信號操作350
16.5.9CAPL函數調用350
16.5.10完整代碼351
16.6工程運行測試362
16.7擴展話題——Python腳本調用COMServer362
7章CANoe不錯編程——CAPLDLL技術363
17.1CAPLDLL技術概述363
17.1.1CAPLDLL函數列表364
17.1.2CAPL回調函數365
17.2工程實例簡介366
17.3工程實現——VC.NET開發CAPLDLL366
17.3.1創建用戶自定義函數——CRC算法函數366
17.3.2創建用戶自定義函數——讀取MAC地址函數369
17.4工程實現——CANoe調用CAPLDLL371
17.4.1如何添加CAPLDLL371
17.4.2DLL路徑搜索順序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
8章CANoe不錯編程——CLibraryAPI技術381
18.1CCL庫文件概述381
18.2常用CCL接口函數介紹381
18.3工程實例簡介383
18.4工程實現——VC.NET開發CCL384
18.4.1如何創建一個CCL庫文件384
18.4.2CCL代碼實現386
18.5工程實現——CANoe調用CCL389
18.5.1如何調用CCLAPI389
18.5.2添加繫統變量390
18.5.3添加測試面板390
18.5.4添加IG模塊392
18.6工程運行測試392
9章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配置VisualC#項目開發模板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.3Socket編程簡介421
21.2.NET編程中TCP/IP相關類的簡介421
21.3CAPL中TCP/IP相關函數的簡介424
21.4工程實例簡介426
21.5工程實現——C#TCP/IP服務器端開發427
21.5.1新建一個工程427
21.5.2界面設計427
21.5.3C#代碼實現429
21.6工程實現——CANoeTCP/IP客戶端開發434
21.6.1創建仿真工程434
21.6.2新建繫統變量434
21.6.3Panel設計435
21.6.4CAPL實現438
21.7工程運行測試446
21.8擴展話題——UDPSocket通信447
第22章CANoe不錯編程——FDX協議與HIL繫統通信449
22.1FDX協議449
22.1.1Datagram450
22.1.2創建DataGroups和Items454
22.1.3FreeRunning模式455
22.2工程實例簡介455
22.3工程實現——CANoe項目456
22.3.1創建FDXDescription文件456
22.3.2配置FDX457
22.4工程實現——VC.NET項目458
22.4.1VC.NET中FDX相關類簡介458
22.4.2Datagram結構體定義459
22.4.3界面設計461
22.4.4代碼實現463
22.5工程運行測試480
22.6擴展話題——硬件在環481
第23章CANoe不錯編程——調用LabVIEW482
23.1LabVIEWIntegration繫統設置要求482
23.2工程實例簡介482
23.3工程實現——LabVIEW483
23.3.1創建共享變量483
23.3.2創建DemoVI484
23.4工程實現——CANoe485
23.4.1啟用LabVIEWIntegration設置485
23.4.2設置SignalGenerators486
23.4.3CAPL調用LabVIEW共享變量487
23.4.4添加一個Desktop布局488
23.5工程運行測試488
23.6擴展話題——LabVIEW調用CANoe490
附錄A英文縮寫對照表491
參考文獻494
內容簡介
本書遵循由淺入深的原則,將內容分為三篇。基礎篇首先介紹車載網絡的相關知識,接著介紹CANoe開發環境和常見功能的使用,以便初學者掌握使用CANoe進行一般的總線仿真、測試和分析的方法;入門篇首先介紹CANoe開發總線仿真的基礎知識,接著結合實例重點介紹總線數據庫創建、面板設計,以及CAPL語言設計;進階篇結合廣大開發工程師可能面臨的技術難題,由簡單到復雜地介紹一些典型實例,以提高讀者的實戰技術。