在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于μC/OS-II的整車(chē)控制器系統(tǒng)技術(shù)設(shè)計(jì)

            基于μC/OS-II的整車(chē)控制器系統(tǒng)技術(shù)設(shè)計(jì)

            作者: 時(shí)間:2012-03-13 來(lái)源:網(wǎng)絡(luò) 收藏

            (2)OSCtxSw()

            當(dāng)從低優(yōu)先級(jí)的任務(wù)切換到較高優(yōu)先級(jí)的任務(wù)時(shí),調(diào)用任務(wù)切換函數(shù)OSCtxSw()保存處理器的內(nèi)容和任務(wù)指針到當(dāng)前任務(wù)的任務(wù)堆棧,然后執(zhí)行用戶(hù)調(diào)用函數(shù)OSTaskSwHook(),最后從要執(zhí)行任務(wù)的任務(wù)堆棧里恢復(fù)寄存器和堆棧中的內(nèi)容,執(zhí)行中斷返回指令開(kāi)始運(yùn)行新的任務(wù)。

            (3)OSIntCtxSw()

            當(dāng)需要在中斷發(fā)生后切換到更高優(yōu)先級(jí)的任務(wù)時(shí),調(diào)用中斷級(jí)任務(wù)切換函數(shù)OSIntCtxSw(),然后執(zhí)行用戶(hù)調(diào)用函數(shù)OSTaskSwHook()。因?yàn)樵摵瘮?shù)是在中斷程序中被調(diào)用,所以不需要保存中斷任務(wù)的寄存器;中斷子程序在調(diào)用函數(shù)OSInExit()時(shí),將返回地址壓入堆棧,在這里不需要再返回,所以必須從堆棧中清理掉返回地址。

            (4)OSTickISR()

            OSTickISR()是μC/OS-II中的時(shí)鐘節(jié)拍中斷服務(wù)程序。在每個(gè)時(shí)鐘節(jié)拍調(diào)用該函數(shù),給每個(gè)處于延時(shí)的任務(wù)延時(shí)減1,并檢查所有處于延時(shí)狀態(tài)的任務(wù)是否延時(shí)結(jié)束成為就緒任務(wù)。然后調(diào)用OSIntExit(),如果有優(yōu)先級(jí)更高的任務(wù)就緒,OSIntExit()就會(huì)進(jìn)行任務(wù)調(diào)度。OSIntExit()并不返回調(diào)用者,而是用新的任務(wù)堆棧中的內(nèi)容來(lái)恢復(fù)CPU現(xiàn)場(chǎng),由中斷返回執(zhí)行新的任務(wù)。

            3.2.4OS_CPU_C.C

            用戶(hù)需要編寫(xiě)6個(gè)C語(yǔ)言函數(shù)OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskSatHook()、OSTimeTickHook()。其中,唯一必要的是OSTaskStkInit(),其他5個(gè)必須聲明,但可以不包含代碼。

            OSTaskStkInit()由任務(wù)創(chuàng)建函數(shù)OSTaskCreate()或OSTaskCreateExt()調(diào)用,在建立每個(gè)任務(wù)的時(shí)候初始化任務(wù)堆棧。開(kāi)始運(yùn)行這個(gè)任務(wù)就是模擬中斷返回,把初始化后堆棧中保存的值恢復(fù)到各個(gè)寄存器。初始化任務(wù)堆棧時(shí),要傳遞任務(wù)代碼起始指針(Ptask)、參數(shù)指針(Pdata)、任務(wù)堆棧棧頂指針。任務(wù)堆棧初始化完成后,返回一個(gè)新的堆棧棧頂指針,OSTaskCreate()或OSTaskCreateExt()將它保存到OSTCB中。

            在OS_CPU_C.C文件中可以創(chuàng)建5個(gè)鉤子函數(shù),使用的前提是配置文件中常量OS_CPU_HOOKS_EN使能。

            至此,μC/OS-II操作的移植基本完成。

            4 軟件多任務(wù)

            軟件以實(shí)時(shí)操作作為開(kāi)發(fā)平臺(tái),將應(yīng)用程序分解成多任務(wù),簡(jiǎn)化了軟件的,保證了控制系統(tǒng)的實(shí)時(shí)性,提高了系統(tǒng)的穩(wěn)定性與可靠性。整個(gè)系統(tǒng)的主程序流程如圖3所示。



            4.1 定時(shí)器模塊

            定時(shí)器的主要功能是為軟件程序提供基準(zhǔn)時(shí)鐘。本應(yīng)用選擇T5作為時(shí)鐘基準(zhǔn),在初始化函數(shù)void GPT_vInit()中完成模塊寄存器配置;中斷服務(wù)程序設(shè)置為OSTicklSR(),中斷向量為0x25。通過(guò)建立時(shí)鐘任務(wù)函數(shù)Timer_Int(),調(diào)用時(shí)鐘節(jié)拍函數(shù)OSTimeTick(),實(shí)現(xiàn)定時(shí)器與系統(tǒng)時(shí)鐘的連接。系統(tǒng)時(shí)鐘節(jié)拍編程為1 ms,可以減少中斷服務(wù)時(shí)間,提高實(shí)時(shí)性。


            4.2 CAN通信模塊

            CAN通信模塊功能是實(shí)現(xiàn)整車(chē)與其他節(jié)點(diǎn)間的信息傳輸。周期性傳輸,傳輸周期為20 ms,通信速率為250 kbps,中斷調(diào)用CAN通信服務(wù)程序。

            創(chuàng)建CAN通信模塊任務(wù)CAN_Trans,任務(wù)優(yōu)先級(jí)3:



            4.3 A/D模塊

            A/D模塊功能是完成讀取蓄電池電壓、加速踏板傳感器和節(jié)氣門(mén)位置傳感器信號(hào),并進(jìn)行模數(shù)轉(zhuǎn)換,被其他函數(shù)調(diào)用。

            創(chuàng)建A/D轉(zhuǎn)換模塊任務(wù)ADC_Cony,任務(wù)優(yōu)先級(jí)4:



            4.4 整車(chē)控制主程序模塊

            在混合動(dòng)力汽車(chē)系統(tǒng)各模塊自檢成功后,整車(chē)控制器要求啟動(dòng)電池,進(jìn)入正常EV工作模式。然后通過(guò)判斷檔位,鑰匙開(kāi)關(guān)和油門(mén)踏板等信息,進(jìn)入不同的處理模塊??刂撇呗园ㄕ?chē)控制策略和能量流管理策略,實(shí)現(xiàn)扭矩算法的控制輸出。

            創(chuàng)建整車(chē)控制主程序任務(wù)Drive_Ctr,優(yōu)先級(jí)9:

            OSTaskCreate(Drive_Ctr,(void*)Drive_Ctr[OS_TASK_STK],9)

            這里限于篇幅不再介紹其他模塊,大體過(guò)程相似。

            結(jié)語(yǔ)

            隨著汽車(chē)整車(chē)的不斷發(fā)展和法規(guī)日益嚴(yán)格的要求,汽車(chē)電子系統(tǒng)會(huì)變得越來(lái)越復(fù)雜,采用操作系統(tǒng)來(lái)實(shí)現(xiàn)對(duì)復(fù)雜任務(wù)的管理和協(xié)調(diào),將成為不可避免的趨勢(shì)。

            本文通過(guò)混合動(dòng)力整車(chē)控制器的軟硬件設(shè)計(jì),詳細(xì)說(shuō)明了μC/OS-II系統(tǒng)移植過(guò)程,優(yōu)化了系統(tǒng)軟件設(shè)計(jì),充分滿(mǎn)足了系統(tǒng)的需求。經(jīng)實(shí)車(chē)試驗(yàn)測(cè)試取得了很好的效果。

            本文引用地址:http://www.biyoush.com/article/149436.htm
            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉