在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM和CPLD的開放式數(shù)控系統(tǒng)設(shè)計(jì)

            基于ARM和CPLD的開放式數(shù)控系統(tǒng)設(shè)計(jì)

            作者: 時(shí)間:2010-03-08 來源:網(wǎng)絡(luò) 收藏

            外接40 MHz時(shí)鐘,程序中使用的所有時(shí)序均由該時(shí)鐘分頻而得。本系統(tǒng)采用數(shù)據(jù)采樣法的粗精兩級插補(bǔ)結(jié)構(gòu),插補(bǔ)周期為8 ms,采樣周期為4 ms。因此中斷程序和精插補(bǔ)程序125 Hz時(shí)序運(yùn)行;數(shù)據(jù)采樣、故障監(jiān)測和速度位置控制250 Hz時(shí)序運(yùn)行。
            系統(tǒng)數(shù)據(jù)傳遞如圖3所示。插補(bǔ)是本系統(tǒng)的一個(gè)重要環(huán)節(jié),因?yàn)椴逖a(bǔ)直接影響系統(tǒng)的實(shí)時(shí)性、運(yùn)動控制和加工精度。從圖3可見粗插補(bǔ)計(jì)算結(jié)果從應(yīng)用程序傳遞到操作系統(tǒng)內(nèi)核,再由內(nèi)核發(fā)送到進(jìn)行精插補(bǔ)運(yùn)算。由于插補(bǔ)是一項(xiàng)硬實(shí)時(shí)任務(wù),因此數(shù)據(jù)傳遞必須實(shí)時(shí)準(zhǔn)確。之間以中斷方式保證通信的實(shí)時(shí)性。而應(yīng)用程序和操作系統(tǒng)內(nèi)核通信的實(shí)時(shí)性則由操作系統(tǒng)的實(shí)時(shí)性保證。

            本文引用地址:http://www.biyoush.com/article/152052.htm


            2 系統(tǒng)中斷控制
            本系統(tǒng)采用基于數(shù)據(jù)采樣法的粗精兩級插補(bǔ)結(jié)構(gòu),插補(bǔ)周期為8 ms,采用中斷方式保證通信的實(shí)時(shí)性。中斷信號由CPLD每隔8 ms定時(shí)產(chǎn)生。當(dāng)接收到CPLD的中斷信號時(shí),把粗插補(bǔ)計(jì)算結(jié)果寫入CPLD的固定地址。CPLD從固定地址讀取數(shù)據(jù)計(jì)算脈沖數(shù),輸出脈沖信號,完成運(yùn)動控制。本系統(tǒng)的中斷控制分成3部分:Windows CE中斷服務(wù)、應(yīng)用程序中斷響應(yīng)程序和CPLD程序。
            2.1 Windows CE中斷服務(wù)
            Windows CE是實(shí)時(shí)操作系統(tǒng),其實(shí)時(shí)性體現(xiàn)在6個(gè)方面:(1)具有256個(gè)線程優(yōu)先級;(2)應(yīng)用程序可以控制提供給每個(gè)線程的時(shí)間片,計(jì)時(shí)器精確到1 ms;(3)優(yōu)先級倒置處理機(jī)制;(4)支持嵌套中斷;(5)中斷延遲時(shí)間短;(6)更細(xì)粒度的內(nèi)存管理控制[4-5]。Windows CE以上機(jī)制特別是中斷體系保證了的實(shí)時(shí)性。
            Windows CE的中斷體系包括核心態(tài)的中斷例程ISR和用戶態(tài)的中斷線程IST兩部分。ISR主要響應(yīng)中斷請求,識別中斷源,給操作系統(tǒng)內(nèi)核返回相應(yīng)的中斷標(biāo)識。ISR具有最高的優(yōu)先級。本系統(tǒng)采用ISR完成中斷服務(wù)。進(jìn)入ISR以后,系統(tǒng)中所有的同級或下級中斷均被屏蔽。為了不降低系統(tǒng)執(zhí)行多任務(wù)的性能,ISR應(yīng)非常短小精干,以使其他中斷也能夠獲得及時(shí)的服務(wù)。
            定制Windows CE中斷服務(wù)程序步驟如下:
            (1)在操作系統(tǒng)內(nèi)核中注冊事件hMotor,用于操作系統(tǒng)和應(yīng)用程序中斷響應(yīng)的同步。
            (2)在操作系統(tǒng)內(nèi)核中注冊插補(bǔ)中斷標(biāo)識號SYSINTR_PWM_READY。
            (3)調(diào)用函數(shù)InterruptInitialize,使中斷請求和hMotor事件掛鉤,當(dāng)接收到中斷請求時(shí)操作系統(tǒng)自動將事件置為有信號,退出ISR時(shí)將事件置為無信號。
            (4)編寫ISR程序。ISR程序框架如下:
            if(IntPendVal==INTSRC_EINT1)//判斷中斷是否來自CPLD
            {
            s2410INT|=BIT_EINT1;//清除中斷請求
            if(PWM_FINISH==TRUE)
            return(SYSINTR_PWM_READY);
            //向內(nèi)核返回中斷標(biāo)識號
            rADDR=*pulse_buf;//向CPLD寫數(shù)據(jù)
            }
            當(dāng)接收到由CPLD發(fā)出的中斷請求,操作系統(tǒng)將調(diào)用ISR,并將hMotor事件置為有信號。在ISR中將粗插補(bǔ)計(jì)算結(jié)果寫入CPLD,并向操作系統(tǒng)內(nèi)核返回中斷標(biāo)識號。退出ISR時(shí),操作系統(tǒng)將hMotor事件置為無信號。整個(gè)ISR程序非常精短,保證了系統(tǒng)其他程序的正常運(yùn)行。
            2.2 應(yīng)用程序中斷響應(yīng)程序
            應(yīng)用程序無法直接獲知是否有中斷請求。利用hMotor事件使操作系統(tǒng)中斷服務(wù)與應(yīng)用程序中斷響應(yīng)程序達(dá)到同步。通過調(diào)用WaitForSingleObject函數(shù)查詢該事件狀態(tài),應(yīng)用程序可獲知是否有中斷請求并及時(shí)響應(yīng)中斷。中斷響應(yīng)程序框架結(jié)構(gòu)如下:
            while(!IsEnd)//判斷插補(bǔ)是否結(jié)束
            {
            ……//粗插補(bǔ)計(jì)算
            WaitForSingleObject(hMotor,INFINITE);//無限期等待
            //hMotor事件狀態(tài)變?yōu)橛行盘?br /> DeviceIoControl();//向操作系統(tǒng)傳遞
            //粗插補(bǔ)計(jì)算結(jié)果,即位置增量
            }
            插補(bǔ)線程啟動后進(jìn)行插補(bǔ)計(jì)算,調(diào)用WaitForSingleObject函數(shù)阻塞插補(bǔ)線程,等待hMotor事件狀態(tài)變?yōu)橛行盘?。?dāng)操作系統(tǒng)接收到中斷請求后調(diào)度ISR,將事件置為有信號。此時(shí)WaitForSingleObject函數(shù)被返回,插補(bǔ)線程阻塞狀態(tài)解除。通過調(diào)用DeviceIoControl函數(shù)將插補(bǔ)結(jié)果傳遞到驅(qū)動層,再由操作系統(tǒng)將數(shù)據(jù)發(fā)送到CPLD。插補(bǔ)運(yùn)算時(shí)間遠(yuǎn)小于插補(bǔ)周期,因此插補(bǔ)線程經(jīng)常處于阻塞狀態(tài)。WaitForSingleObject函數(shù)雖然會阻塞當(dāng)前線程,但是不會占用任何CPU資源,因此即使插補(bǔ)線程優(yōu)先級較高,當(dāng)其被阻塞時(shí)也不會影響其他線程的正常運(yùn)行。



            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉