CANoe開發從入門到精通( 簡體 字) | |
作者:楊金升、張可晨、唐新宇 | 類別:1. -> 程式設計 -> 綜合 |
出版社:清華大學出版社 | 3dWoo書號: 51025 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:5/1/2019 | |
頁數: | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302522898 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
基礎篇
第1章車載網絡概述 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版本CANoe 16 2.4.5關于64bit版本CANoe 17 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.2CANdb++Editor 98 8.2.1File菜單 99 8.2.2工具欄 100 8.3在X-Vehicle項目中創建CAN總線數據庫 100 8.3.1基于模板新建總線數據庫 100 8.3.2Networks 101 8.3.3ECUs 102 8.3.4NetworkNodes 102 8.3.5Messages 103 8.3.6Signals 105 8.3.7EnvironmentVariable 109 8.3.8Attribute 110 8.3.9ValueTable 113 8.3.10ByteOrder 114 8.4導入數據庫文件 116 8.5LIN總線數據庫編輯器LDFExplorer 117 第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.9OutputWindow 124 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項目中創建仿真Panel 136 9.6.1添加Control面板 136 9.6.2添加Display面板 140 9.6.3創建一個Desktop 143 第10章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 第11章仿真工程編譯和調試 182 11.1CAPL程序編譯 182 11.1.1條件編譯 182 11.1.2編譯CAPL程序 183 11.2CAPL程序的Debug功能調試 184 11.2.1設置DebugMode 184 11.2.2Debugger工具欄 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.2DBC文件設計與導入 194 12.4.3系統變量 197 12.4.4面板設計 198 12.4.5CAPL代碼實現 207 12.4.6AutomationSequences 217 12.4.7分析窗口設置 218 12.4.8Trace窗口與Logging 220 12.4.9Desktop布局 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.5CAPL實現 248 13.2.6Trace窗口與Logging 256 13.2.7設置Desktop布局 257 13.3工程運行測試 257 13.4擴展話題——關于網絡管理 258 第14章仿真工程開發進階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擴展話題——關于vTESTstudio 286 第15章仿真工程開發進階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.dll 332 15.6工程運行測試 332 15.6.1手動診斷測試面板 332 15.6.2自動化診斷測試模塊 333 15.7擴展話題——VTSystem在測試中的應用 335 第16章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腳本調用COMServer 362 第17章CANoe高級編程——CAPLDLL技術 363 17.1CAPLDLL技術概述 363 17.1.1CAPLDLL函數列表 364 17.1.2CAPL回調函數 365 17.2工程實例簡介 366 17.3工程實現——VC.NET開發CAPLDLL 366 17.3.1創建用戶自定義函數——CRC算法函數 366 17.3.2創建用戶自定義函數——讀取MAC地址函數 369 17.4工程實現——CANoe調用CAPLDLL 371 17.4.1如何添加CAPLDLL 371 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 第18章CANoe高級編程——CLibraryAPI技術 381 18.1CCL庫文件概述 381 18.2常用CCL接口函數介紹 381 18.3工程實例簡介 383 18.4工程實現——VC.NET開發CCL 384 18.4.1如何創建一個CCL庫文件 384 18.4.2CCL代碼實現 386 18.5工程實現——CANoe調用CCL 389 18.5.1如何調用CCLAPI 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配置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.1Datagram 450 22.1.2創建DataGroups和Items 454 22.1.3FreeRunning模式 455 22.2工程實例簡介 455 22.3工程實現——CANoe項目 456 22.3.1創建FDXDescription文件 456 22.3.2配置FDX 457 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高級編程——調用LabVIEW 482 23.1LabVIEWIntegration系統設置要求 482 23.2工程實例簡介 482 23.3工程實現——LabVIEW 483 23.3.1創建共享變量 483 23.3.2創建DemoVI 484 23.4工程實現——CANoe 485 23.4.1啟用LabVIEWIntegration設置 485 23.4.2設置SignalGenerators 486 23.4.3CAPL調用LabVIEW共享變量 487 23.4.4添加一個Desktop布局 488 23.5工程運行測試 488 23.6擴展話題——LabVIEW調用CANoe 490 附錄A英文縮寫對照表 491 參考文獻 494 本書遵循由淺入深的原則,將內容分為三篇。基礎篇首先介紹車載網絡的相關知識,接著介紹CANoe開發環境和常見功能的使用,以便初學者掌握使用CANoe進行一般的總線仿真、測試和分析的方法;入門篇首先介紹CANoe開發總線仿真的基礎知識,接著結合實例重點介紹總線數據庫創建、面板設計,以及CAPL語言設計;進階篇結合廣大開發工程師可能面臨的技術難題,由簡單到復雜地介紹一些典型實例,以提高讀者的實戰技術。
中國的汽車工業正在經歷轟轟烈烈的變革和創新,其發展比以往任何時代都迅速,自2009年以來,中國已經連續9年成為世界最大的汽車生產國和第一大汽車市場,穩居世界第一汽車大國地位。中國汽車的自主品牌正受到越來越多購車者的關注和認可,市場份額持續攀升,2017年的市場份額達到43%。中國品牌的強勢崛起將進一步壓縮海外品牌在中國的生存空間。2017年年銷售量超過百萬輛的就有幾家自主品牌整車廠。再經幾年奮起直追,繼電視機、手機之后,汽車也有望成為“中國制造”的杰出代表。
在中國汽車工業的崛起過程中,我們的自主品牌也面臨眾多的挑戰,其中比較關鍵的是來自技術層面的挑戰。特別是很多自主品牌在積極進軍和搶占高端消費市場的過程中舉步艱難。我們無法擺脫對國外技術的依賴,在研發新的平臺和車型時,過多地依賴國外的設計中心或供應商。 高端車型的技術門檻,其中重要的一點就體現在車載總線的創新性和復雜性上。如果想在技術上擺脫對國外設計中心或供應商的依賴,必須不斷提高技術水平,充分利用現有的開發工具。CANoe作為全球汽車電子設計、開發和驗證的利器,在汽車行業可謂家喻戶曉。 本書結構 本書遵循由淺入深的原則,將內容分為三篇。基礎篇首先介紹車載網絡的相關知識,接著介紹CANoe的開發環境和常見功能的使用,以便初學者掌握使用CANoe進行一般的總線仿真、測試和分析的方法;入門篇首先介紹CANoe開發總線仿真的基礎知識,接著結合實例重點介紹總線數據庫創建、面板設計,以及CAPL語言設計;進階篇結合廣大開發工程師可能面臨的技術難題,由簡單到復雜地介紹一些典型實例,以提高讀者的實戰 技術。 本書的具體編寫分工如下:第1、2、7、16~23章由楊金升編寫;第5、6、8、9、11~13章由張可晨編寫;第10、14、15章由唐新宇編寫初稿,張可晨整理;第3、4章由李秀娟編寫;李秀娟通讀了本書的全部內容,并對所有代碼做了測試和驗證。全書由楊金升負責策劃、統稿和審閱。 關于本書中的代碼 讀者可以在清華大學出版社網站http://www.tup.tsinghua.edu.cn下載相關源代碼。每個章節的實例都給出不同版本CANoe的工程文件,以滿足不同讀者的需求。所有代碼已經在以下版本中測試并驗證通過。 * CANoe Full 11.0(options:CAN + LIN) * CANoe Demo 11.0(options:CAN + LIN) * CANoe Full 10.0(options:CAN + LIN) * CANoe Demo 10.0(options:CAN + LIN) * CANoe Full 9.0(options:CAN + LIN) * CANoe Demo 9.0(options:CAN + LIN) * Visual Studio 2013(VB.NET、VC.NET、C#等代碼) * LabVIEW 2014 本書附帶的資源壓縮包中包含相關的源代碼及附送的其他資料文件,各章的文件夾架構說明如下。 /Chapter_xx/Source —— 本章工程源代碼(含11.0代碼及10.0/9.0 代碼壓縮包) /Chapter_xx/Additional —— 本章相關資源 /Chapter_xx/Additional/Material —— 本章實例需要使用的資源(如圖片、模板等) /Chapter_xx/Additional/Document —— 本章相關參考文檔 /Chapter_xx/Additional/Example —— 本章相關參考例程 本書目標讀者 (1)汽車行業的軟硬件研發人員; (2)汽車行業的測試驗證人員; (3)汽車電子相關專業的高校師生; (4)想從事汽車電子開發和測試的工程師。 如何使用本書 (1)建議初學者由前往后閱讀,盡量不要跳躍。 (2)對于有一定CANoe使用經驗的讀者,可以跳過基礎篇,直接學習后面兩篇。 (3)對于已經擁有CANoe正式版授權的讀者,書中的實例可以上機動手實踐,學習效果將更好。 (4)對于目前沒有正式版CANoe的讀者,可以安裝CANoe的Demo版,本書絕大部分的實例都可以在Demo版上直接實踐。 本書的約定 由于CANoe軟件目前沒有中文版,所以本書在使用一些相關名稱時,部分以英文為主。英文名稱第一次出現時會附上相關翻譯供讀者參考,例如Option(選項)。為了避免混亂,本書需要將CANoe中常見的術語做如下約定。 Configuration —— 仿真工程或工程 Measurement —— 測量 License —— 授權 License Option —— 授權選項 Message —— 報文 Signal —— 信號 致謝 在本書的創作過程中,得到了來自家人、朋友、同事以及清華大學出版社的鼓勵和支持,在此表示衷心的感謝。特別感謝上海交通大學劉功申教授的鼓勵和支持,德國同事Thomas Mehring和中國同事黃友新等在技術上不吝指教,使本書得以順利完成。同時,感謝Vector(中國)的技術支持團隊,在以往的技術交流中給予我們的支持和幫助。 本書雖經多次審稿修訂,但限于作者的水平和條件,書中不足和疏漏之處在所難免,衷心希望讀者批評指正,使之得以不斷提高和完善。 歡迎讀者通過清華大學出版社網站與我們聯系,也可以通過郵件聯系作者或者加入QQ技術交流群,與我們進一步交流,共同進步。 僅以此書獻給正在崛起的中國汽車工業! 作 者 2018年11月 |