色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MBDT實(shí)現(xiàn)PIL測(cè)試步驟

冬至子 ? 來(lái)源:autoMBD ? 作者:autoMBD ? 2023-07-13 10:03 ? 次閱讀

1 從零新建一個(gè)MBDT工程

  • 按鍵中斷檢測(cè)S32K144 EVB上的按鍵SW2,每按下一次,紅色LED燈切換一次亮滅狀態(tài);
  • 周期中斷 :每0.5秒(2 Hz)進(jìn)入一次周期中斷服務(wù)函數(shù),切換綠色LED燈亮滅狀態(tài),綠色LED燈會(huì)亮滅交替閃爍。

從零開始創(chuàng)建MBDT工程可以分為七個(gè)步驟:

**1. **將S32K144 EVB連接到電腦上,注意檢查OpenSDA端口號(hào)和磁盤中S32K144 EVB盤號(hào);

**2. **選擇合適的位置作為MATLAB的工作空間,新建Simulink模型,并命名保存;

**3. **在模型中添加必要模塊,包括MBD_S32K1xx_Config_Information、Digital_Input_ISR、Periodic_Interrupt_Timer和兩個(gè)Function-Call Subsystem,如下圖:

圖片

添加模塊到新建工程中 - From autoMBD

**4. **配置模塊的參數(shù),各個(gè)模塊的配置可以參照以下截圖(未給出截圖的地方保持默認(rèn)即可):

圖片

MBD_S32K1xx_Config_Information配置1 - From autoMBD

圖片

MBD_S32K1xx_Config_Information配置2 - From autoMBD

圖片

Periodic_Interrupt_Timer配置 - From autoMBD

圖片

Digital_Input_ISR配置 - From autoMBD

**5. **構(gòu)建中斷中執(zhí)行的功能,本示例執(zhí)行的功能較為簡(jiǎn)單,僅控制燈的亮滅。具體的模型如下(兩個(gè)模型實(shí)際上是一樣的,只不過(guò)輸出的引腳不一樣):

圖片

周期中斷的中斷函數(shù)模型 - From autoMBD

圖片

按鍵中斷的中斷函數(shù)模型 - From autoMBD

**6. **選擇固定步長(zhǎng),配置工程的步長(zhǎng)為0.001 s,設(shè)置求解器為離散求解器。工程的步長(zhǎng)根據(jù)實(shí)際需要進(jìn)行配置,但也要考慮模型的運(yùn)算量。如果運(yùn)算量大,在設(shè)置的步長(zhǎng)內(nèi)不能完成計(jì)算,會(huì)導(dǎo)致錯(cuò)誤結(jié)果。

圖片

工程求解器配置 - From autoMBD

**7. **至此MBDT的工程已經(jīng)完成,可以生成代碼了。在“C CODE”標(biāo)簽中點(diǎn)擊“Build”(快捷鍵ctr + B),Simulink編譯后會(huì)將代碼自動(dòng)下載到S32K144 EVB中,并運(yùn)行起來(lái)。一切正常的話,下載后可以看到綠色LED燈在不斷閃爍,按壓SW2按鍵,可以控制紅色LED燈的亮滅。

從零開始新建一個(gè)MBDT工程的基本步驟就是這樣的了。

使用模型來(lái)構(gòu)建自己的函數(shù),最常用到的是Simulink中的 Stateflow ,它可以高效的產(chǎn)生和控制各種信號(hào)(Signal)、事件(Event)和狀態(tài)(State)。后期會(huì)專門針對(duì)Stateflow開一期,歡迎關(guān)注。

2 使用S32DS下載生成的代碼

可能有讀者會(huì)疑惑,為什么需要使用S32DS下載生成的代碼,Simulink不是已經(jīng)下載好了嗎?原因我總結(jié)有以下三點(diǎn):

  • 最重要的一點(diǎn)是 ,底層驅(qū)動(dòng)并不適合通過(guò)模型的方式來(lái)實(shí)現(xiàn),最高效的還是使用S32DS來(lái)配置底層。一般建議將算法部分和底層驅(qū)動(dòng)分開,這樣的話需要有一個(gè)集成的過(guò)程,這就避免不了使用S32DS;
  • 使用S32DS進(jìn)行debug更加高效和便捷,功能也更加強(qiáng)大;
  • 通過(guò)S32DS還可以對(duì)生成的代碼進(jìn)行擴(kuò)展,擴(kuò)展一些其它庫(kù)或者技術(shù)棧。

從我目前了解到的,一個(gè)完整的基于MBD的開發(fā),還很難擺脫對(duì)IDE的依賴,所以這里給出使用S32DS下載生成的代碼的示例。同樣給出一個(gè)視頻教程時(shí)長(zhǎng)約4 min 44 s。

使用S32DS下載生成的代碼,一共有6個(gè)步驟:

**1. **打開S32DS,新建一個(gè)空白工程,并刪去main.c文件。注意新建工程時(shí)不要選擇SDK,因?yàn)樯傻拇a中已經(jīng)包含了SDK,其他保持默認(rèn)即可。

圖片

*新建S32DS工程(不選擇SDK) * - From autoMBD

但如果你在 模型中使用了AMMCLIB的相關(guān)模塊 ,可以在新建的時(shí)候添加相應(yīng)的AMMCLIB庫(kù):

圖片

*添加AMMCLIB工具 * - From autoMBD

當(dāng)然也可以通過(guò)添加庫(kù)的方式添加AMMCLIB,添加庫(kù)的方法是:選中工程,右鍵選擇“Properties”,找到Paths and Symbols中的Library Paths和Libraries,添加S32K14x_AMMCLIB.a文件和路徑即可(其他擴(kuò)展庫(kù)也是這樣的方法添加):

圖片

*添加AMMCLIB工具 * - From autoMBD

需要注意的是路徑和庫(kù)文件的格式,以我自己安裝的AMMCLIB1.1.24為例,格式如下:

  • 庫(kù)文件為 英文的冒號(hào)+文件名 ,不包含路徑

圖片

*添加庫(kù)文件 * - From autoMBD

  • 庫(kù)路徑為 路徑所在目錄 ,不包含庫(kù)文件

圖片

*添加庫(kù)路徑 * - From autoMBD

視頻展示的例程沒有使用到AMMCLIB庫(kù),所以沒有上述過(guò)程。

**2. **將Simulink生成的代碼復(fù)制到S32DS工程中去,生成的代碼在Simulink工作空間一個(gè)標(biāo)題為 “工程名”+“_mbd_rtw” 的文件夾中。生成的代碼源文件有:

  • common文件夾內(nèi)所有文件
  • inc文件夾內(nèi)所有文件
  • S32K144文件夾內(nèi)所有文件
  • src文件夾內(nèi)所有文件
  • 目錄內(nèi)所有***.c和.h文件***

將上述所有源文件復(fù)制到新建的工程中去:

圖片

*復(fù)制生成的代碼到S32DS工程中 * - From autoMBD

**3. **下一步,添加編譯路徑。需要添加的具體路徑如下:

  • ${ProjDirPath}/src
  • ${ProjDirPath}/src/common
  • ${ProjDirPath}/src/inc
  • ${ProjDirPath}/src/S32K144/include
  • ${ProjDirPath}/src/src/clock/S32K1xx
  • ${ProjDirPath}/src/src/power/S32K1xx

值得注意的是, 如添加了庫(kù),那么庫(kù)的include文件也需要包含到路徑中 。還是以AMMCLIB1.1.24為例,庫(kù)的包含路徑為:

  • C:NXPAMMCLIBS32K14x_AMMCLIB_v1.1.24include

同樣視頻中也沒有這個(gè)步驟。添加庫(kù)的方法是:選中工程,右鍵選擇“Properties”,找到Paths and Symbols中的“Includes”,依次添加上述路徑即可。如下圖所示:

圖片

*添加必要的編譯路徑 * - From autoMBD

**4. **將startup.c、system_S32K144.c從編譯路徑中移除,因?yàn)檫@些文件和新建的S32DS工程有重復(fù),編譯會(huì)報(bào)錯(cuò)。從編譯路徑移除的方法是:選中要移除編譯路徑的文件,右鍵選中Buidl path -> Remove from -> Debug_FLASH。

移除編譯路徑的文件并沒有被刪除,但不會(huì)被編譯,同時(shí)文件會(huì)變成灰色。如下圖所示:

圖片

*移除編譯路徑的文件 * - From autoMBD

5. 至此生成的代碼已經(jīng)成功導(dǎo)入到S32DS中了,可以點(diǎn)擊編譯查看是否有錯(cuò)誤。

圖片

*編譯S32DS工程 * - From autoMBD

**6. **點(diǎn)擊Debug蟲,開始下載代碼

圖片

下載S32DS工程* * - From autoMBD

下載成功后,即可開始Debug,下圖方框中的按鈕分別是:運(yùn)行、暫停、終止、斷開連接、步入、步進(jìn)、步出。

圖片

*S32DS Debug調(diào)試 * - From autoMBD

通過(guò)S32DS下載的代碼,功能和Simulink下載的是完全一樣的。

3 基于MBDT實(shí)現(xiàn)PIL測(cè)試

通過(guò)MBDT,實(shí)現(xiàn)PIL(Processor In the Loop)是比較簡(jiǎn)單的。

PIL的基本原理是,Simulink在下載代碼的同時(shí),會(huì)在代碼中包含一段通信協(xié)議。該通信協(xié)議可以接受Simulink發(fā)送的指令,并傳輸代碼運(yùn)算的結(jié)果到Simulink。

在Simulink的每一個(gè)步長(zhǎng)中,Simulink會(huì)將輸入信號(hào)發(fā)送到MCU,MCU計(jì)算好后,再將結(jié)果傳回Simulink,周而復(fù)始實(shí)現(xiàn)PIL測(cè)試。一般采用的是串口通信方式,本示例中使用的是UART通訊。

**Tips:**該通信協(xié)議被稱為rtiostream,是Simulink開發(fā)的,有興趣的可以去了解一下。

這里要提一下,在MCU的應(yīng)用中,是沒必要做SIL(Software In the Loop)的,因?yàn)镾IL是在電腦上跑(跑的是exe文件),而實(shí)際代碼是在MCU中跑。這樣的SIL測(cè)試結(jié)果沒什么意義。MCU的應(yīng)用中,一般只需要執(zhí)行PIL和HIL。

開展PIL測(cè)試需要?jiǎng)?chuàng)建兩個(gè)工程:Model工程是被測(cè)工程,會(huì)生成代碼,并下載到MCU中運(yùn)行;Top工程上位機(jī)工程,用于產(chǎn)生Model工程的輸入信號(hào),并與MCU進(jìn)行數(shù)據(jù)交互。

本示例中對(duì) AMMCLIB中的Sin函數(shù)進(jìn)行PIL測(cè)試 ,測(cè)試其在MCU中的運(yùn)行效果。開展PIL測(cè)試一共分為了四個(gè)步驟:

**1. **首先將S32K144 EVB連接到電腦上,并為MATLAB選擇合適的工作空間。前文已經(jīng)提到過(guò),這里不再贅述。

**2. **創(chuàng)建Model工程。Model工程比較簡(jiǎn)單,可按以下步驟進(jìn)行創(chuàng)建:

  • 添加MBD_S32K1xx_Config_Information模塊,并配置參數(shù);
  • 添加GFLIB_Sin_FLT、輸入和輸出模塊;
  • 配置工程步長(zhǎng)為0.001 s。

創(chuàng)建的Model工程如下圖所示:

圖片

*PIL測(cè)試的Model工程 * - From autoMBD

**3. **創(chuàng)建Top工程。可按以下步驟創(chuàng)建:

  • 添加Model模塊,并關(guān)聯(lián)到需要測(cè)試的model工程;
  • 添加對(duì)照模塊,斜坡輸入(斜率π,初始值-2π)作為輸入信號(hào);
  • 配置工程步長(zhǎng)為0.001 s。

值得注意的是,PIL的輸入信號(hào)要轉(zhuǎn)換為單精度數(shù),因?yàn)镸CU處理的是單精度數(shù)據(jù)。創(chuàng)建的Top工程如下:

圖片

*PIL測(cè)試的Top工程 * - From autoMBD

**4. **至此PIL測(cè)試的模型搭建已經(jīng)完成了。將仿真總時(shí)長(zhǎng)設(shè)為6 s,點(diǎn)擊Run即可開始PIL測(cè)試。測(cè)試過(guò)程中的現(xiàn)象可查看上面的視頻,這里給出一個(gè)測(cè)試結(jié)果的圖:

圖片

*PIL測(cè)試的結(jié)果 * - From autoMBD

由于斜坡輸入的斜率為π,初始值-2π,總仿真時(shí)長(zhǎng)為6π,那么測(cè)試的輸入信號(hào)范圍是-2π到4π。從上圖可以看到,-2π到2π之間的曲線是吻合得較好的,當(dāng)輸入信號(hào)大于2π時(shí),MCU的Sin函數(shù)計(jì)算結(jié)果開始出現(xiàn)失真。

查看AMMCLIB的手冊(cè)說(shuō)明,找到GFLIB_Sin_FLT的說(shuō)明

圖片

*GFLIB_Sin_FLT的說(shuō)明 * - From AMMCLIB手冊(cè)

可以看到這里要求的輸入范圍是-π到π。一般對(duì)于MCU來(lái)說(shuō),算力非常緊張,所以這種非線性的數(shù)學(xué)函數(shù)會(huì)有特殊的要求,如果不滿足就會(huì)出現(xiàn)失真,結(jié)果不正確。所以我們?cè)谑褂眠@類函數(shù)的時(shí)候一定要注意使用要求,從而保證最佳的性能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    108225
  • simulink仿真
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    8588
  • 按鍵中斷
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    6459
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    253

    瀏覽量

    11583
  • S32DS
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    841
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MBDT實(shí)現(xiàn)電機(jī)控制設(shè)計(jì)

    本期也屬于MBDT(Model-Based Design Tools)上手的一部分,主要是進(jìn)階一點(diǎn)的電機(jī)控制算法。
    發(fā)表于 07-13 09:39 ?765次閱讀
    <b class='flag-5'>MBDT</b><b class='flag-5'>實(shí)現(xiàn)</b>電機(jī)控制設(shè)計(jì)

    如何在集成模型級(jí)別上使用S32K114評(píng)估板執(zhí)行PIL

    怎樣才能正確設(shè)置集成模型以便能夠取回探查器結(jié)果?在集成級(jí)別上完全運(yùn)行 PIL 的正確步驟是什么?我應(yīng)該注意哪些約束以及應(yīng)該考慮的總體最佳實(shí)踐。 請(qǐng)注意,我使用的是特定架構(gòu),我在其中運(yùn)行 MIL/SIL
    發(fā)表于 04-14 08:41

    嘗試運(yùn)行集成模型時(shí)出現(xiàn)PIL編譯錯(cuò)誤怎么解決?

    我正在使用 S32K144 和 MBDT 工具箱。我已經(jīng)成功地在單個(gè) Simulink 模型上執(zhí)行 PIL,但是當(dāng)擁有多個(gè)模型時(shí),我會(huì)遇到一些我不清楚如何解決的問(wèn)題。它是基于配置的還是執(zhí)行 PIL 時(shí)需要考慮任何架構(gòu)限制?
    發(fā)表于 04-20 06:41

    Matlab 2022b無(wú)法運(yùn)行簡(jiǎn)單的 PIL S32CT示例是怎么回事?

    我正在為 Matlab 2022b 上的 S32K3** 版本 1.3.0 使用 MBDT 嘗試一個(gè)簡(jiǎn)單的 PIL S32CT 示例。我正在開發(fā)的電路板是 NXP S32K3x4EVB-Q257
    發(fā)表于 04-21 07:31

    NXPs32k144 evb上的PIL仿真問(wèn)題如何解決?

    確信所有的設(shè)置選項(xiàng)都是正確的(求解器,我配置硬件實(shí)現(xiàn)的設(shè)置,目標(biāo)塊是正確的......),但我不知道為什么我會(huì)遇到這個(gè)錯(cuò)誤。 奇怪的是,如果我通過(guò)嵌入式編碼器應(yīng)用程序構(gòu)建代碼,我在刷新 evb 時(shí)不會(huì)遇到任何問(wèn)題。 使用 harnest 和 SIL/PIL
    發(fā)表于 05-19 07:50

    如何設(shè)置PIL模擬的環(huán)境以及在哪里包含我的C代碼項(xiàng)目?

    我看到 MBDT 用于生成基于 Simulink 模塊的 C代碼,以減少原型設(shè)計(jì)過(guò)程。就我而言,我想 在 Simulink 中的 PIL(處理器在環(huán))仿真中測(cè)試我自己的 C 代碼項(xiàng)目。我想
    發(fā)表于 06-08 08:47

    關(guān)于MIL、SIL、PIL和HIL之間的聯(lián)系和異同分析

    SIL和PIL是等效性測(cè)試測(cè)試的目的是為了驗(yàn)證自動(dòng)生成的代碼和模型具有相同的行為,既然如此,對(duì)于SIL和PIL測(cè)試用例就沒有功能意義上的
    的頭像 發(fā)表于 09-17 11:51 ?1.5w次閱讀
    關(guān)于MIL、SIL、<b class='flag-5'>PIL</b>和HIL之間的聯(lián)系和異同分析

    PIL硬件支持包開發(fā)指南

    在航空和汽車等安全攸關(guān)的行業(yè),如果采用基于模型的設(shè)計(jì)方法論(MBD),需要額外引入背靠背測(cè)試的概念,具體來(lái)說(shuō),使用模型開發(fā)的過(guò)程中,背靠背測(cè)試包含 SIL(Software-in-the-Loop)和 PIL(Processor
    的頭像 發(fā)表于 02-28 09:21 ?1769次閱讀

    看直播 | 電機(jī)控制:如何使用恩智浦MBDT實(shí)現(xiàn)快速設(shè)計(jì)、開發(fā)和部署?

    直播預(yù)告 6月8日 ?15:15–15:45 MATLAB EXPO 2023年6月8日,恩智浦的技術(shù)專家將在MATLAB EXPO上發(fā)表題為 《電機(jī)控制:使用恩智浦 MBDT實(shí)現(xiàn)快速設(shè)計(jì)、開發(fā)
    的頭像 發(fā)表于 06-04 13:45 ?1184次閱讀

    PiL測(cè)試實(shí)戰(zhàn)(上)| 單元級(jí)代碼的PiL測(cè)試

    作者:酷兔本兔小編:吃不飽對(duì)于嵌入式代碼,為了測(cè)試軟件能否在目標(biāo)芯片上實(shí)現(xiàn)預(yù)期的功能,通常需要進(jìn)行PiL測(cè)試(Processor-in-the-Loop-Testing)。目前市面上較
    的頭像 發(fā)表于 11-22 10:19 ?1078次閱讀
    <b class='flag-5'>PiL</b><b class='flag-5'>測(cè)試</b>實(shí)戰(zhàn)(上)| 單元級(jí)代碼的<b class='flag-5'>PiL</b><b class='flag-5'>測(cè)試</b>

    PiL測(cè)試實(shí)戰(zhàn)(下)| PiL階段的閉環(huán)測(cè)試

    作者:酷兔本兔小編:吃不飽上篇我們介紹了單元級(jí)軟件的PiL測(cè)試,對(duì)于集成級(jí)的PiL測(cè)試,其流程和單元階段基本一致。然而,對(duì)于一些帶有反饋控制邏輯的集成
    的頭像 發(fā)表于 12-15 10:31 ?911次閱讀
    <b class='flag-5'>PiL</b><b class='flag-5'>測(cè)試</b>實(shí)戰(zhàn)(下)| <b class='flag-5'>PiL</b>階段的閉環(huán)<b class='flag-5'>測(cè)試</b>

    TPT19新特性之在虛擬環(huán)境中執(zhí)行PiL測(cè)試

    使用TPT 19,您可以獲得一些PiL測(cè)試(處理器在循環(huán)測(cè)試)的新特性。在C平臺(tái)上,您現(xiàn)在可以直接為您的PiL構(gòu)建目標(biāo)代碼,并在目標(biāo)板上或仿真環(huán)境中執(zhí)行它。
    的頭像 發(fā)表于 05-05 15:54 ?648次閱讀
    TPT19新特性之在虛擬環(huán)境中執(zhí)行<b class='flag-5'>PiL</b><b class='flag-5'>測(cè)試</b>

    MBDT快速上手

    基于模型的設(shè)計(jì)(Model-Based Design,MBD)的實(shí)戰(zhàn)系列從MBDT開始。
    的頭像 發(fā)表于 07-13 09:34 ?1342次閱讀
    <b class='flag-5'>MBDT</b>快速上手

    如何安裝Python圖像處理PIL庫(kù)

    安裝PIL庫(kù) 要使用PIL庫(kù),我們首先需要安裝它。有兩種方法可以安裝PIL庫(kù): 方法一:使用pip命令,在終端或命令行中輸入以下代碼: pip install Pillow 方法二:從官網(wǎng)下
    的頭像 發(fā)表于 09-12 17:15 ?2744次閱讀
    如何安裝Python圖像處理<b class='flag-5'>PIL</b>庫(kù)

    如何實(shí)現(xiàn)PIL和OpenCV之間圖像數(shù)據(jù)的轉(zhuǎn)換呢?

    PIL圖像數(shù)據(jù)格式轉(zhuǎn)換成OpenCV圖像數(shù)據(jù)格式
    的頭像 發(fā)表于 02-25 13:43 ?1265次閱讀
    主站蜘蛛池模板: 国产精品一区二区制服丝袜| 国产成+人欧美+综合在线观看| 午夜亚洲动漫精品AV网站| 内射人妻无码色AV麻豆去百度搜| 久久精品热只有精品| 国内精品久久影视免费| 高干紧射H后入| 疯狂第一次国语| 国产69精品麻豆久久久久| 午夜国产福利| 秋霞电影网午夜一级鲁丝片| 久久国语精品| 久久久WWW免费人成精品| 精品午夜久久影视| 精品欧美小视频在线观看| 狠狠色综合久久婷婷| 精品午夜寂寞影院在线观看| 精品国产在线观看福利| 久久国产36精品色熟妇| 久久久无码精品亚洲A片猫咪| 久久re视频精品538在线| 九九热在线视频| 久热在线这里只有精品7| 快播h动漫网| 欧美精品AV一区二区无码| 欧美整片华人play| 日韩欧美三区| 熟妇少妇任你躁在线无码| 王晶经典三级| 亚洲精品无码一区二区三区四虎 | 免费国产成人高清在线观看视频| 恋夜影院支持安卓视频美女| 两性午夜刺激爽爽视频| 男同志在线观看| 日本久久中文字幕精品| 天天射天天爱天天干| 亚洲精品m在线观看| 一二三四韩国免费观看| 中文字幕亚洲欧美日韩2019| 99国产精品成人免费视频| 成人影院久久久久久影院|