內容簡介
《基於模型的設計及其嵌入式實現(第2版)》以基於模型的設計為主線,講述了M 代碼的快速編寫與調試,用戶界面的創建,浮點Simulink/Stateflow模型的建立、調試與驗證,用戶自定義模組的生成;詳細介紹了基於模型設計的全過程,主要有需求分析與跟蹤、模型的檢查與設計驗證、浮點模型到定點模型的轉換、模型嵌入式C代碼的自動生成、軟體/處理器/硬體在環測試,整個過程滿足DO 178B航空電子規範,可顯著提高工作效率、降低開發成本,並且增強了代碼的安全性與魯棒性,避免了產品開發的潛在市場風險。
本書可作為汽車電子、航天軍工、通信與電子信息、電力等領域的工程師從事嵌入式開發的技術手冊,也可作為高校電類專業
嵌入式系統開發與基於模型設計的教材,還可作為學習MATLAB Simulink/Stateflow的參考書。
圖書目錄
第1章 搭建軟體開發環境…………………………………………………………… 1
1.1 下載與安裝所需的軟體……………………………………………………… 1
1.1.1 下載開發軟體包………………………………………………………… 1
1.1.2 安裝開發軟體包………………………………………………………… 1
1.1.3 安裝更新………………………………………………………………… 4
1.2 創建一個包含DSP/BIOS的C6000DSP工程……………………………… 5
1.3 設定MATLABR2015b與CCS5.11數據鏈配置……………………… 14
1.3.1 checkEnvSetup……………………………………………………… 14
1.3.2 xmakefilesetup ………………………………………………………… 16
1.4 有關MATLABR2015b與CCS3.3的配置問題………………………… 18
第2章 MATLAB高級套用基礎…………………………………………………… 19
2.1 MATLAB的功能簡介……………………………………………………… 20
2.1.1 函式瀏覽器……………………………………………………………… 20
2.1.2 函式提示………………………………………………………………… 21
2.1.3 目錄瀏覽器……………………………………………………………… 22
2.1.4 檔案交換服務…………………………………………………………… 24
2.2 M 檔案……………………………………………………………………… 26
2.2.1 M 檔案結構…………………………………………………………… 26
2.2.2 清理程式………………………………………………………………… 28
2.2.3 創建M 檔案…………………………………………………………… 29
2.2.4 M 腳本檔案…………………………………………………………… 29
2.2.5 M 函式………………………………………………………………… 30
2.2.6 匿名函式………………………………………………………………… 34
2.3 加快M 檔案的編寫………………………………………………………… 36
2.3.1 什麼是代碼檢查器……………………………………………………… 36
2.3.2 代碼檢查器的使用方法………………………………………………… 36
2.3.3 代碼檢查器實例………………………………………………………… 36
2.4 加快M 檔案的調試———cell ……………………………………………… 40
2.4.1 什麼是cell……………………………………………………………… 40
2.4.2 cell的定義與刪除……………………………………………………… 40
2.4.3 cell調試實例…………………………………………………………… 42
2.4.4 應 用…………………………………………………………………… 44
2.5 數據存取……………………………………………………………………… 47
2.5.1 生成MAT檔案………………………………………………………… 47
2.5.2 載入MAT檔案………………………………………………………… 49
2.5.3 讀/寫音視頻檔案……………………………………………………… 50
2.6 代碼效率分析………………………………………………………………… 53
2.7 MATLABCoder簡介……………………………………………………… 55
2.7.1 MATLABCoder支持/不支持生成C代碼的類型………………… 56
2.7.2 MATLABCoder的使用要求………………………………………… 57
2.7.3 EmbeddedCoder的常用命令………………………………………… 57
2.7.4 C編譯器的設定………………………………………………………… 58
2.7.5 套用實例………………………………………………………………… 59
第3章
圖形用戶界面簡介………………………………………………………… 72
3.1 GUIDE簡介………………………………………………………………… 72
3.1.1 GUIDE界面簡介……………………………………………………… 72
3.1.2 獲取當前圖形對象句柄的常用函式…………………………………… 75
3.1.3 Callback函式…………………………………………………………… 76
3.2 基於GUIDE工具的實例…………………………………………………… 76
3.2.1 讀取圖像的GUI實例………………………………………………… 76
3.2.2 製作及發布簡易計算器………………………………………………… 94
第4章 Stateflow 原理與建模基礎……………………………………………… 106
4.1 Stateflow概述……………………………………………………………… 107
4.1.1 狀 態………………………………………………………………… 111
4.1.2 遷 移………………………………………………………………… 114
4.1.3 事 件………………………………………………………………… 118
4.1.4 數據對象……………………………………………………………… 120
4.1.5 條件與動作…………………………………………………………… 122
4.1.6 節 點………………………………………………………………… 122
4.2 流程圖……………………………………………………………………… 128
4.2.1 手動建立流程圖……………………………………………………… 128
4.2.2 快速建立流程圖……………………………………………………… 131
4.2.3 車速控制……………………………………………………………… 132
4.3 狀態圖的層次……………………………………………………………… 136
4.3.1 歷史節點……………………………………………………………… 138
4.3.2 遷移的層次性………………………………………………………… 139
4.3.3 內部遷移……………………………………………………………… 140
4.4 並行機制…………………………………………………………………… 143
4.4.1 廣 播………………………………………………………………… 143
4.4.2 隱含事件……………………………………………………………… 149
4.4.3 時間邏輯事件………………………………………………………… 150
4.5 其他的圖形對象…………………………………………………………… 152
4.5.1 真值表………………………………………………………………… 152
4.5.2 圖形盒………………………………………………………………… 155
4.5.3 圖形函式……………………………………………………………… 156
4.6 MATLAB函式…………………………………………………………… 157
4.6.1 建立調用MATLAB函式的Simulink模型………………………… 157
4.6.2 編寫MATLAB函式………………………………………………… 159
4.6.3 調 試………………………………………………………………… 160
4.7 Simulink函式……………………………………………………………… 163
4.7.1 Simulink函式的使用………………………………………………… 163
4.7.2 使用Simulink函式需遵循的規則…………………………………… 169
4.8 集成自定義代碼…………………………………………………………… 170
4.9 Stateflow建模實例———計時器…………………………………………… 174
第5章 Simulink建模與驗證……………………………………………………… 184
5.1 Simulink的基本操作……………………………………………………… 185
5.1.1 啟動Simulink ………………………………………………………… 185
5.1.2 Simulink模組庫簡介………………………………………………… 186
5.1.3 模組操作……………………………………………………………… 188
5.2 信號採樣誤差……………………………………………………………… 193
5.2.1 信號源………………………………………………………………… 193
5.2.2 MATLAB工作空間………………………………………………… 198
5.2.3
用戶自定義函式……………………………………………………… 202
5.2.4 非線性系統…………………………………………………………… 204
5.2.5 離散模組……………………………………………………………… 207
5.2.6 採樣誤差……………………………………………………………… 209
5.2.7 建立子系統…………………………………………………………… 211
5.2.8 封裝子系統…………………………………………………………… 212
5.2.9 數據類型匹配………………………………………………………… 215
5.2.10 模型信息……………………………………………………………… 218
5.2.11 模型元件化…………………………………………………………… 221
5.2.12 自定義模組庫………………………………………………………… 222
5.3 音頻信號處理……………………………………………………………… 224
5.3.1 仿真環境……………………………………………………………… 224
5.3.2 基於採樣的模型……………………………………………………… 225
5.3.3 幀結構………………………………………………………………… 228
5.3.4 基於幀結構的模型…………………………………………………… 228
5.3.5 信號緩衝器…………………………………………………………… 230
5.4 視頻監控…………………………………………………………………… 232
5.4.1 原 理………………………………………………………………… 233
5.4.2 SAD子系統…………………………………………………………… 233
5.4.3 閾值比較……………………………………………………………… 234
5.4.4 視頻記錄子系統……………………………………………………… 235
5.4.5 源視頻幀計數及顯示………………………………………………… 236
5.4.6 數據讀取與顯示……………………………………………………… 237
5.4.7 實驗結果……………………………………………………………… 239
5.5 模型調試…………………………………………………………………… 241
5.5.1 圖形調試模式………………………………………………………… 241
5.5.2 命令行調試模式……………………………………………………… 244
5.5.3 調試過程……………………………………………………………… 245
5.5.4 斷點設定……………………………………………………………… 249
5.5.5 顯示仿真及模型信息………………………………………………… 253
5.6 模型檢查與驗證…………………………………………………………… 260
5.6.1 使用系統檢查器———ModelAdvisor檢查模型…………………… 260
5.6.2 建立測試用例………………………………………………………… 269
5.6.3 模型覆蓋度分析……………………………………………………… 279
5.6.4 模型效率分析………………………………………………………… 285
第6章 用戶驅動模組的創建……………………………………………………… 289
6.1 什麼是S-Function ………………………………………………………… 289
6.1.1 S-Function的工作機制……………………………………………… 291
6.1.2 函式回調方法………………………………………………………… 292
6.1.3 編寫C MEXS-Function …………………………………………… 295
6.1.4 Simulink引擎與CS-Function的相互作用………………………… 300
6.1.5 TLC檔案……………………………………………………………… 309
6.1.6 LEVEL 2M 檔案S-Function介紹……………………………… 313
6.1.7 調用仿真模型外部的C代碼和生成代碼…………………………… 324
6.2 S-FunctionBuilder………………………………………………………… 327
6.2.1 S-Function名及參數名……………………………………………… 328
6.2.2 初始化………………………………………………………………… 329
6.2.3 數據屬性……………………………………………………………… 329
6.2.4 庫檔案………………………………………………………………… 332
6.2.5 輸 出………………………………………………………………… 333
6.2.6 連續狀態求導………………………………………………………… 336
6.2.7 離散狀態更新………………………………………………………… 337
6.2.8 編譯信息……………………………………………………………… 338
6.2.9 應 用………………………………………………………………… 340
6.3 MATLABFunction模組………………………………………………… 342
6.3.1 MATLABFunction模組的生成方法……………………………… 343
6.3.2 集成用戶自定義的C代碼…………………………………………… 347
6.4 實 例……………………………………………………………………… 348
6.4.1 IIR濾波器…………………………………………………………… 348
6.4.2 S-Function的參數設定與封裝……………………………………… 351
6.4.3 讀取數據檔案………………………………………………………… 357
第7章 嵌入式代碼的快速生成…………………………………………………… 362
7.1 利用EmbeddedCoder生成DSP目標代碼……………………………… 362
7.2 CCS5/6與MATLABR2015b的數據鏈配置…………………………… 364
7.3 TIDSP原裝板的實時代碼生成………………………………………… 368
7.4 代碼驗證…………………………………………………………………… 375
7.5 TIC6416DSK目標板套用例程………………………………………… 380
7.6 用戶自定義目標板的套用………………………………………………… 401
第8章 基於模型的設計…………………………………………………………… 406
8.1 傳統設計過程與基於模型設計過程的對比……………………………… 407
8.2 DO 178B標準簡介……………………………………………………… 409
8.2.1 什麼是DO 178B標準……………………………………………… 409
8.2.2 DO 178B標準驗證要求…………………………………………… 410
8.2.3 DO 178B軟體生命周期…………………………………………… 411
8.3 基於模型設計的工作流程………………………………………………… 412
8.4 需求分析及跟蹤…………………………………………………………… 417
8.4.1 根據需求建立系統模型……………………………………………… 417
8.4.2 建立需求與模組間的關聯…………………………………………… 418
8.4.3
一致性檢查…………………………………………………………… 421
8.5 模型檢查及驗證…………………………………………………………… 423
8.5.1 ModelAdvisor檢查………………………………………………… 423
8.5.2 SystemTest …………………………………………………………… 424
8.5.3 DesignVerifier ……………………………………………………… 433
8.6 定點模型…………………………………………………………………… 439
8.7 軟體在環測試……………………………………………………………… 447
8.8 處理器在環測試…………………………………………………………… 448
8.9 代碼跟蹤…………………………………………………………………… 449
8.10 硬體模型…………………………………………………………………… 453
8.10.1 建立硬體模型………………………………………………………… 453
8.10.2 模組設定……………………………………………………………… 454
8.11 代碼最佳化及代碼生成……………………………………………………… 457
8.11.1 子系統原子化………………………………………………………… 457
8.11.2 最佳化模組庫…………………………………………………………… 460
8.11.3 指定晶片……………………………………………………………… 461
8.11.4 代碼檢查……………………………………………………………… 462
8.11.5 IDE環境下的代碼最佳化……………………………………………… 464
8.11.6 工程選項及代碼生成………………………………………………… 465
8.12 代碼有效性檢查原理……………………………………………………… 469
8.13 硬體在環測試……………………………………………………………… 472
8.13.1 建立PC端模型……………………………………………………… 472
8.13.2 模組參數設定………………………………………………………… 473
8.13.3 實施硬體在環測試…………………………………………………… 476
8.13.4 代碼效率剖析………………………………………………………… 477
8.13.5 記憶體使用分析………………………………………………………… 478
參考文獻……………………………………………………………………………… 480