




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、聲明:本文是基于模型設計自定義目標系統配置指南的續集,主要和大家分享RTW工具箱做自動代碼生成時,硬件驅動的編寫方法;本文涉及兩方面的技術難點C MEX S函數和TLC文件的編寫,對這兩方面不熟悉的童鞋可以先看看相關的Help 文檔。通過硬件驅動模塊和上層控制模塊的結合,可以實現嵌入式系統C代碼的一鍵式生成,所生成的代碼無需做任何修改就可以直接下載到單片機中。本教程開發環境如下:Matlab2010a+CodeWarrior V6.3+Mc9s08dz60歡迎汽車電子工程師加入QQ群:89462451,討論Matlab在汽車行業的應用,分享自己的獨門經驗。中斷、IO、ADC、TPM、CAN、C
2、CP、MCG下一個模塊硬件驅動,你也可以tntuyh Godman2011.8.20附件列表:dz60該文件夾為自定義目標系統文件系統TLC文件、主函數TLC文件、_file_processTLC文件、_callback_handler文件、_make_rtw_hook文件、模塊TLC文件(及C-Mex S函數 blocks該文件夾為中斷模塊+數字輸出模塊的硬件驅動、interrupt_init.c中斷模塊C MEX S函數interrupt_init.tlc對應的TLC文件dz60_dio_out.c數字輸出模塊C MEX S函數dz60_dio_out.tlc對應的TLC文件demos該文
3、件夾為測試用demo文件interrupt_demo.mdl測試模型,實現500ms和100ms任務(33基于模型設計自動代碼生成之硬件驅動.1、自定義目標創建 (32、軟件整體架構 (33、硬件驅動編寫 (53.1主函數文件硬件驅動 (53.2中斷模塊硬件驅動 (53.3數字輸出模塊硬件驅動 (9基于模型設計自動代碼生成之硬件驅動基于模型設計1、自定義目標創建本文的硬件平臺為Mc9s08dz60,Matlab沒有相應目標系統和現成使用模塊,所以需要自己創建自定義目標系統和編寫相應的硬件驅動。關于自定義目標系統的創建可以參考基于模型設計自定義目標系統配置指南。DZ60的自定義目標系統源代碼請參
4、考附件中dz60文件夾下的各文件,此處不再累述。通過setup.m文件可以自動向Matlab中添加該目標系統。2、軟件整體架構軟件架構對嵌入式系統的重要性,就不再多說了。這里選擇較為簡單的中斷驅動方式來實現整個嵌入式軟件的調度。 圖1軟件整體架構如上圖所示,所有的程序處理都是通過RTC中斷來實現的,配置RTC模塊每隔10ms產生一次中斷,并對各個任務進行計時(如flag_100ms,當計時達到時調用相應的任務處理函數(如task_100ms,而主函數中只對整個工程進行初始化(如interrupt_demo _initialize,在for循環中無需其余操作。RTC中斷處理函數部分通過中斷模塊及
5、TLC 文件來對生成的代碼進行控制,后文將詳述。在模型搭建過程中,只需要調用中斷模塊,通過修改Function Call System中的內容即可以實現各種任務的調度,如下圖所示: 圖2軟件架構之模塊搭建PS:當然,在實際的產品會根據項目需要采用不同的軟件架構來實現任務調度,其余架構及嵌入式操作系統的嵌入都可以在本文的基礎上進行修改來滿足項目需求。非常期望和各位探討關于嵌入式系統軟件架構方面的內容。3、硬件驅動編寫硬件驅動主要是編寫C MEX S函數和其對應的TLC文件。3.1主函數文件硬件驅動主函數部分編寫過程可以參考基于模型設計自定義目標系統配置指南中2.5主函數TLC文件htgt_srm
6、ain.tlc。3.2中斷模塊硬件驅動中斷模塊只需要傳遞一個任務周期即可,該參數為edit類型的數據。3.2.1Mask對話框1、首先在SimulinkUser-Defined Function中找到S-Function模塊拖到一個新建的model文件中。2、單擊右鍵,尋則Edit Mask,在Icon&Ports選項卡中輸入該模塊需要顯示的內容,如disp(RTC Interrupt,如下圖: 3、點擊Parameter選項卡,安裝如下方式填寫參數信息,其中Promt為顯示提示, Variable為參數名稱在s函數中調用,Type為顯示格式。 4、點擊Documentation選項卡,填寫相
7、關提示信息,最終該模塊顯示結果如下。 3.2.2C MEX函數編寫在看這部分之前,強烈建議先看看Matlab關于C MEX S函數的編寫的Help文檔。1、文件聲明部分#define S_FUNCTION_NAME interrupt_init#define S_FUNCTION_LEVEL2每個C MEX S函數都是按照上面的方式進行聲明,這段代碼的含義為,聲明一個名為interrupt_init和LEVEL2S函數。2、參數聲明 參數聲明部分,主要是創建一個枚舉數組,用于后面的各函數調用,如上面那段代碼創建一個以0開始的枚舉數據,即INT_PERIOD=0,N_PARAMS=1;后面那行d
8、efine 用于從終端模塊對話框中讀取相應的參數。3、模型初始化函數 該部分代碼針對中斷模塊含有的變量個數,輸入模塊個數、類型等參數進行初始化。4、mdlRTW函數 該函數用于把S 函數的參數值,傳遞到model.rtw 文件中,再通過tlc 文件讀取rtw 文件中值,從而控制自動代碼的生成。5.其余函數設置參數個數設置參數為不可調對應一般的C MEX S函數只需要上述兩個函數即可實現功能。對于中斷模塊,由于其需要調用Function Call System,所以要多一點設備。 3.2.3TLC文件編寫TLC文件用于控制代碼的自定義生成,主要有如下函數:1、BlockTypeSetup函數該函
9、數主要用于同一類模塊的初始過程,如一個模型同時函數兩個中斷模塊,則該函數內的代碼只會執行一次。這里考慮多個中斷模塊的情況,需要設置一個全局變量來存儲多個模塊的任務周期。:Vct_Int_Period表示為全局變量。 2、Start函數該函數用于控制各模塊的的初始化代碼的生成,如中斷模塊需要對RTC模塊的RTCSC和RTCMOD寄存器進行配置,而這部分代碼應該在初始化代碼中生成(即interrupt_demo_initialize函數。當一個模型含有多個中斷模塊時,這個函數對多次在每個中斷模塊中都執行,這樣就能讀取到所有中斷模塊的定時周期, 3、Outputs函數該函數用于控制中斷模塊的任務調度
10、代碼的生成。在該函數中需要調用LibBlockExecuteFcnCall函數來對Function Call System模塊中代碼進行生成,還需要針對硬件進行相應的函數、變量聲明等。如通過如下代碼可以實現在model.h文件中聲明函數 由于TLC文件的編寫是個復雜的過程,沒法用簡單的幾句話說明白,所有本文僅對TLC文件的結構進行分析,而不詳細闡述每段代碼的具體含義,感興趣的童鞋可以自己先看看RTW工具箱中關于TLC部分的介紹,再結合附件中的代碼摸索。3.3數字輸出模塊硬件驅動數字輸出模塊的硬件驅動和中斷模塊的驅動非常相似,此處只做簡要介紹。3.2.1Mask對話框數字輸出模塊需要再對話框中配
11、置Port和number兩個參數,用于控制各io通道的輸出。而輸入模塊則為0、1、-1,其中0表示輸出電平,1表示輸出高電平,-1表示取反;mask對話框如下圖所示,其創建過程與前文一致,不再累述。 3.2.2C MEX函數編寫該s函數需要傳遞的參數是兩個popup下拉菜單格式的數據,其S函數編寫過程基本和前文一致,各位童鞋自行對比二者之間的區別。3.2.3TLC文件編寫數字輸出的TLC文件需要從輸入模塊讀取相應的參數,所以需要再Outputs函數中通過LibBlockInputSignal函數來讀取輸入模塊的值,然后對改值進行判斷,從而控制代碼的生成,如下圖,其余部分和前文一致。 PS:本文主要介紹硬件驅動的編寫流程,基本不涉及具體的實現過程,需要深究的童鞋,可以先看看Matlab的Help文檔,再結合附件中的文檔進行摸索。附件中的所有文件,均為原創代碼,相對于M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年重慶對外經貿學院輔導員考試真題
- 剖宮產縫合培訓課件
- 基于物聯網的臨床數據安全傳輸-洞察及研究
- 巖溶泉微生物生態系統研究-洞察及研究
- 材料力學模擬試卷AB及答案
- 材料力學模擬試卷A
- 收銀員工作流程SOP-企業管理
- 物業安保人員健康安全教育講課件
- siRNA靶向治療進展-洞察及研究
- 三創賽答辯講課件
- 2025年中國AI智能鼠標行業市場全景分析及前景機遇研判報告
- 2025年湖北省新華書店(集團)有限公司市(縣)分公司招聘筆試參考題庫含答案解析
- 2025至2030中國軍用推進劑和炸藥行業產業運行態勢及投資規劃深度研究報告
- EPC總承包管理實施方案
- 廣東省廣州市越秀區2023-2024學年五年級下學期數學期末考試試卷(含答案)
- 三副實習記錄簿附頁
- 工程認證背景下軟件工程專業實踐課程平臺研究與建設
- 2025年AI Agent+醫療行業研究報告
- 《危險化學品企業動火作業安全管理規定》知識培訓
- 江蘇省宿遷市名校2025年七下數學期末檢測試題含解析
- 中國工商銀行校園招聘筆試EPI數字推理真題匯編理科
評論
0/150
提交評論