Simulink建;A(chǔ)及C2000 DSP代碼自動生成
本書主要介紹C2000DSP控制代碼的自動生成。由此從兩個方面(建模與代碼自動生成)逐次展開,引導(dǎo)讀者學(xué)習(xí)自動生成算法模型DSP控制代碼的方法。在建模部分:重點介紹Simulink的常用模塊功能與基于MATLABR2017a版的Simulink建;A(chǔ),以及用戶模塊的定制方法。此外,還介紹基于有限狀態(tài)機(Stateflow)的建;A(chǔ)。在算法模型C2000DSP控制代碼的自動生成部分:重點介紹F28027DSP模塊的功能及基于MATLABR2017a版的算法模型代碼的自動生成方法。
更多科學(xué)出版社服務(wù),請掃碼獲取。
目錄
第1章 軟件開發(fā)環(huán)境與傳統(tǒng)編程 1
1.1 CCS6.1.2的下載與安裝 1
1.2 安裝C2000處理器支持包 3
1.3 運行一個現(xiàn)有的CCS工程 7
1.4 如何新建/運行一個ADC轉(zhuǎn)換及顯示的CCS工程 15
1.5 創(chuàng)建一個LCD1602顯示驅(qū)動工程 22
第2章 MATLAB編程基礎(chǔ) 28
2.1 MATLAB R2017a新增功能簡介 28
2.2 M文件的編寫 28
2.2.1 M文件結(jié)構(gòu) 29
2.2.2 M腳本文件 31
2.2.3 M函數(shù) 33
2.3 M文件的調(diào)試 40
2.3.1 代碼分析器 40
2.3.2 使用cell加快調(diào)試 40
2.4 MATLAB Coder 簡介 44
2.4.1 MATLAB Coder支持/不支持生成C代碼的類型 44
2.4.2 MATLAB Coder的使用要求 45
2.4.3 Embedded Coder的常用命令 46
2.4.4 C編譯器的設(shè)置 47
2.4.5 應(yīng)用實例 48
第3章 Simulink建;A(chǔ) 56
3.1 Simulink 基本操作 56
3.1.1 模塊庫和編輯窗口 56
3.1.2 Simulink 模塊庫 58
3.1.3 模塊的基本操作 72
3.2 建模實例 76
3.2.1 由系統(tǒng)的物理含義或微分方程創(chuàng)建模型 76
3.2.2 數(shù)學(xué)表達式模型的搭建技巧 84
3.2.3 物理建模 97
3.2.4 子系統(tǒng) 101
3.2.5 創(chuàng)建自定義模塊庫及知識產(chǎn)權(quán)保護 108
第4章 Stateflow建;A(chǔ) 110
4.1 Stateflow概述 110
4.2 流程圖 123
4.3 狀態(tài)圖的層次 127
4.4 并行機制 132
4.4.1 廣播 132
4.4.2 隱含事件 139
4.4.3 時間邏輯 140
4.5 非圖形對象 142
4.5.1 真值表 142
4.5.2 圖形盒 144
4.5.3 圖形函數(shù) 145
4.6 MATLAB 函數(shù) 147
4.6.1 建立調(diào)用 147
4.6.2 編寫 149
4.6.3 調(diào)試 149
4.7 Simulink 函數(shù) 152
4.8 Stateflow 建模實例 156
4.8.1 搭建流水燈模型 156
4.8.2 搭建開關(guān)控制器模型 160
4.8.3 計算乘法與平方和 163
第5章 定制用戶模塊 166
5.1 S函數(shù) 166
5.1.1 S函數(shù)運行機制 166
5.1.2 Simulink引擎與 168
5.2 C MEX S函數(shù)模板 172
5.2.1 打開C MEX S函數(shù)模板 172
5.2.2 基本C MEX S函數(shù)模板介紹 173
5.2.3 C MEX S 函數(shù)的簡單例子 187
5.3 目標語言編譯器 191
5.3.1 概述 191
5.3.2 TLC文件的語法 195
5.3.3 TLC入門及 200
5.3.4 model.rtw文件和編寫 213
5.4 S-Function Builder定制用戶模塊 219
5.4.1 S-Function Builder簡介 219
5.4.2 初始化(Initialization)頁面 220
5.4.3 數(shù)據(jù)屬性(Data Properties)頁面 221
5.4.4 庫文件(Libraries)頁面 222
5.4.5 輸出(Outputs)頁面 224
5.4.6 連續(xù)狀態(tài)求導(dǎo)(Continuous Derivatives)頁面 225
5.4.7 離散狀態(tài)更新(Discrete Update)頁面 227
5.4.8 編譯信息(Build Info)頁面 228
5.4.9 S-Function Builder簡單示例 229
5.5 定制用戶模塊舉例 239
5.5.1 Wrapper S-Function 的寫法 239
5.5.2代碼繼承工具(Legacy Code Tool) 244
5.5.3 定制Freescale HC12 ADC模塊 248
5.5.4 定制Freescale HC12 ADC模塊 269第 277
6.1 C2802x DSP的特點及功能框圖 277
6.2 GPIO模塊 280
6.2.1 GPIO運行機制簡介 280
6.2.2 Digital Input模塊簡介 283
6.2.3 Digital Output模塊簡介 284
6.3 ADC模塊 285
6.3.1 ADC功能簡介 285
6.3.2 ADC模塊簡介 290
6.4 SCI模塊 292
6.4.1 SCI模塊功能簡介 292
6.4.2 SCI Receive模塊簡介 298
6.4.3 SCI Transmit模塊簡介 299
6.5 SPI模塊 300
6.5.1 SPI模塊功能簡介 300
6.5.2 SPI Receive模塊簡介 304
6.5.3 SPI Transmit模塊簡介 306
6.6 I2C總線 307
6.6.1 I2C模塊功能簡介 307
6.6.2 I2C Receive模塊簡介 315
6.6.3 I2C Transmit模塊簡介 316
6.7 ePWM模塊 317
6.7.1 ePWM模塊功能簡介 317
6.7.2 ePWM模塊簡介 332
6.8 PIE模塊 343
6.8.1 PIE模塊功能簡介 343
6.8.2 Software Interrupt Trigger模塊簡介 345
6.9 eCAP模塊 346
6.9.1 eCAP模塊功能簡介 346
6.9.2 eCAP模塊簡介 347
6.10Watchdog 模塊 351
6.11其他模塊 352
6.11.1 eCAN總線 352
6.11.2 eCAN Transmit模塊 355
6.11.3 CCP模塊 357
6.11.4 eQEP模塊 359
6.11.5 CLA Task模塊 365
第7章 C2802x DSP算法代碼的快速生成 367
7.1 自動生成C2802x DSP代碼的一般流程 367
7.1.1 生成C2802x DSP閃爍燈代碼的示例 367
7.1.2 為C2802x DSP生成流水燈代碼的流程 384
7.1.3 簡易單側(cè)交通燈代碼自動生成 401
7.2 SCI/ADC模塊的應(yīng)用實例 405
7.2.1 使用SCI/ADC模塊向主機發(fā)送SE字符 405
7.2.2 通過SCI模塊在主機上顯示ADC模塊采集到的數(shù)據(jù) 410
7.3 串行外部模式示例 414
7.4 SPI/I2C 模塊的示例 420
7.4.1 SPI模塊示例 420
7.4.2 I2C模塊示例 428
7.5 自動算法代碼加手寫驅(qū)動代碼 436
7.6永磁同步電機的FOC控制仿真及代碼生成 442
7.6.1 與電機有關(guān)的幾個常用定則/定理的回顧 442
7.6.2 磁場定向(FOC)控制算法簡介 443
7.6.3 PMSM的FOC算法框圖 444
7.6.4 PMSM的FOC算法部分模塊分解 445
7.6.5 用TI的DMC模塊庫搭建PMSM 的FOC算法模型 451
7.6.6 對搭建的PMSM的FOC算法模塊進行功能仿真 460
7.6.7 為PMSM的FOC算法模型生成代碼 461
7.6.8 軟件在環(huán)(SIL)測試 463
7.6.9 硬件測試 463
參考文獻 464