當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于ARM和CPLD的開(kāi)放式數(shù)控系統(tǒng)設(shè)計(jì)

 隨著工業(yè)自動(dòng)化技術(shù)和數(shù)控技術(shù)的飛速發(fā)展,數(shù)控系統(tǒng)的功能得到了極大的擴(kuò)展。用戶對(duì)數(shù)控系統(tǒng)提出可聯(lián)網(wǎng)、開(kāi)放性等更高的要求。開(kāi)放性是數(shù)控系統(tǒng)未來(lái)的發(fā)展趨勢(shì)。開(kāi)放式數(shù)控系統(tǒng)的核心是建立一種對(duì)數(shù)控系統(tǒng)的軟硬件開(kāi)發(fā)商、機(jī)床制造商和最終用戶都開(kāi)放的體系結(jié)構(gòu)和標(biāo)準(zhǔn),使數(shù)控系統(tǒng)不依賴于特定的廠家,達(dá)到可互聯(lián)、可互操作、可重組和可互換的目的[1]?;诠I(yè)PC的開(kāi)放式數(shù)控系統(tǒng)已得到廣泛運(yùn)用,它能夠快速開(kāi)發(fā)出獨(dú)具特色的軟件系統(tǒng),具有良好的人機(jī)界面,但資源利用率不高、體積較大、攜帶不方便。ARM、CPLD和DSP等微處理器的快速發(fā)展,為開(kāi)放式數(shù)控系統(tǒng)的發(fā)展提供了新的實(shí)現(xiàn)方法[2]。
    ARM具有較強(qiáng)的事務(wù)管理功能,可以運(yùn)行具有良好人機(jī)界面的多線程應(yīng)用程序,其優(yōu)勢(shì)主要體現(xiàn)在程序控制上。CPLD具有較強(qiáng)的邏輯運(yùn)算能力,可用于進(jìn)行插補(bǔ)運(yùn)算及運(yùn)動(dòng)控制等。Windows CE是嵌入式實(shí)時(shí)操作系統(tǒng),其獨(dú)特體系結(jié)構(gòu)和運(yùn)行機(jī)制使其能夠快速響應(yīng)外部中斷,并調(diào)度相關(guān)程序進(jìn)行處理[3],可以滿足數(shù)控系統(tǒng)的實(shí)時(shí)性要求。本文提出一種基于ARM9和CPLD的開(kāi)放式數(shù)控系統(tǒng)。該系統(tǒng)中ARM9移植了Windows CE嵌入式操作系統(tǒng),通過(guò)開(kāi)發(fā)應(yīng)用程序?qū)崿F(xiàn)信息輸入、運(yùn)動(dòng)顯示和粗插補(bǔ)等功能; CPLD實(shí)現(xiàn)精插補(bǔ)和運(yùn)動(dòng)控制。整個(gè)系統(tǒng)具有結(jié)構(gòu)緊湊、集成度高、可靠性強(qiáng)和友好人機(jī)交互等特點(diǎn)。
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)硬件設(shè)計(jì)

    本系統(tǒng)ARM采用SAMSUNG公司的S3C2410,CPLD采用ALTERA公司FLEX6000系列的EPF6016。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。


    S3C2410內(nèi)部資源豐富,可嵌入Windows CE操作系統(tǒng),并進(jìn)行復(fù)雜的信息處理。系統(tǒng)以LCD和觸摸屏為人機(jī)交互裝置,采用10 MB的以太網(wǎng)接口芯片CS8900A,可連接到Internet或局域網(wǎng)。在PC機(jī)上生成的CAD文件通過(guò)以太網(wǎng)或SD卡輸入到處理器中。系統(tǒng)采用NANDFLASH存儲(chǔ)數(shù)據(jù)和程序。
    EPF6016是ALTERA公司為大容量設(shè)計(jì)提供的一種低成本可編程交織式門陣列,共有16 000個(gè)可用門、1 320個(gè)邏輯單元、117個(gè)I/O引腳,每個(gè)I/O引腳都有獨(dú)立的三態(tài)輸出使能控制。EPF6016接收ARM的插補(bǔ)指令進(jìn)行精插補(bǔ),輸出控制信號(hào),并采集編碼器的反饋信號(hào)和限位開(kāi)關(guān)零點(diǎn)開(kāi)關(guān)的狀態(tài)信號(hào)。
    本系統(tǒng)將EPF6016直接連接到S3C2410的存儲(chǔ)總線上。S3C2410與EPF6016之間依靠24位數(shù)據(jù)總線和8位地址總線進(jìn)行指令和數(shù)據(jù)的傳輸,提高了通信效率。S3C2410與EPF6016之間的總線還包括了片選信號(hào)線、讀寫控制信號(hào)線和中斷信號(hào)線。
1.2 系統(tǒng)軟件開(kāi)發(fā)
    本系統(tǒng)軟件開(kāi)發(fā)包括Windows CE應(yīng)用程序開(kāi)發(fā)和CPLD程序開(kāi)發(fā)。采用C#語(yǔ)言開(kāi)發(fā)Windows CE應(yīng)用程序,采用VHDL語(yǔ)言開(kāi)發(fā)CPLD程序。系統(tǒng)軟件結(jié)構(gòu)如圖2所示。


    Windows CE應(yīng)用程序是基于多線程的。應(yīng)用程序包括信息輸入、譯碼、運(yùn)動(dòng)顯示、故障管理、電機(jī)啟動(dòng)停止和插補(bǔ)等功能模塊,每個(gè)功能模塊都是一個(gè)獨(dú)立的線程。信息輸入、譯碼是非實(shí)時(shí)任務(wù),線程優(yōu)先級(jí)設(shè)為默認(rèn)值251;故障管理、電機(jī)啟動(dòng)停止是實(shí)時(shí)非周期性任務(wù),屬于弱實(shí)時(shí)任務(wù),線程優(yōu)先級(jí)設(shè)為247,即用戶態(tài)實(shí)時(shí)級(jí)別;插補(bǔ)、運(yùn)動(dòng)顯示是實(shí)時(shí)周期性任務(wù),屬于強(qiáng)實(shí)時(shí)任務(wù),線程優(yōu)先級(jí)設(shè)為3,即核心態(tài)實(shí)時(shí)級(jí)別。[!--empirenews.page--]
    CPLD外接40 MHz時(shí)鐘,程序中使用的所有時(shí)序均由該時(shí)鐘分頻而得。本系統(tǒng)采用基于數(shù)據(jù)采樣法的粗精兩級(jí)插補(bǔ)結(jié)構(gòu),插補(bǔ)周期為8 ms,采樣周期為4 ms。因此中斷程序和精插補(bǔ)程序基于125 Hz時(shí)序運(yùn)行;數(shù)據(jù)采樣、故障監(jiān)測(cè)和速度位置控制基于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)動(dòng)控制和加工精度。從圖3可見(jiàn)粗插補(bǔ)計(jì)算結(jié)果從應(yīng)用程序傳遞到操作系統(tǒng)內(nèi)核,再由內(nèi)核發(fā)送到CPLD進(jìn)行精插補(bǔ)運(yùn)算。由于插補(bǔ)是一項(xiàng)硬實(shí)時(shí)任務(wù),因此數(shù)據(jù)傳遞必須實(shí)時(shí)準(zhǔn)確。ARM與CPLD之間以中斷方式保證通信的實(shí)時(shí)性。而應(yīng)用程序和操作系統(tǒng)內(nèi)核通信的實(shí)時(shí)性則由操作系統(tǒng)的實(shí)時(shí)性保證。


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


    通過(guò)40 MHz時(shí)鐘分頻,CPLD內(nèi)部產(chǎn)生125 Hz(周期8 ms)的脈沖序列。當(dāng)接收到啟動(dòng)指令時(shí),CPLD將該脈沖序列發(fā)送到ARM作為中斷信號(hào)。ARM的中斷觸發(fā)模式為沿觸發(fā),上升沿為有效中斷請(qǐng)求。ARM接收到中斷請(qǐng)求后,向CPLD傳送數(shù)據(jù)。CPLD內(nèi)部建立2個(gè)數(shù)據(jù)緩沖區(qū),設(shè)置標(biāo)志FLAG。當(dāng)FLAG為0時(shí),CPLD將ARM傳送的數(shù)據(jù)寫入緩沖區(qū)1,讀取緩沖區(qū)2的數(shù)據(jù)進(jìn)行計(jì)算輸出;當(dāng)FLAG為1時(shí)則反之。設(shè)定2個(gè)數(shù)據(jù)緩沖區(qū)可以保證數(shù)據(jù)讀寫的準(zhǔn)確性和運(yùn)動(dòng)控制的連續(xù)性。CPLD接收到結(jié)束指令后,不再向ARM發(fā)送中斷信號(hào),整個(gè)系統(tǒng)的中斷控制停止。
3 實(shí)驗(yàn)
    本系統(tǒng)已經(jīng)運(yùn)用于激光沉積焊接機(jī),并成功進(jìn)行了實(shí)物加工。圖5是該系統(tǒng)的激光焊接圖。該焊接軌跡由
正方形和圓形組成。在操作系統(tǒng)ISR中寫入檢測(cè)程序,記錄中斷情況。在實(shí)驗(yàn)中,所有中斷信號(hào)均被正確處理,hMotor事件狀態(tài)切換正常,沒(méi)有丟失中斷和事件的情況,即應(yīng)用程序與操作系統(tǒng)、ARM與CPLD的通信狀態(tài)良好。該系統(tǒng)的中斷控制能保證系統(tǒng)實(shí)時(shí)性,直線加工和圓弧加工均能很好地滿足加工精度。


    本系統(tǒng)充分利用了Windows CE的良好實(shí)時(shí)性、ARM的管理能力和CPLD的邏輯計(jì)算能力,硬件組成簡(jiǎn)單,軟件開(kāi)發(fā)方便,具有開(kāi)放性強(qiáng)、實(shí)時(shí)性好、穩(wěn)定性高、人機(jī)交互友好和性價(jià)比高等優(yōu)點(diǎn),可滿足高速度和高精度的加工要求。本系統(tǒng)設(shè)計(jì)方案已實(shí)際運(yùn)用于激光沉積焊接數(shù)控系統(tǒng)中,運(yùn)行狀態(tài)良好,加工精度較高。本系統(tǒng)可運(yùn)用于各種機(jī)床數(shù)控系統(tǒng),具有廣泛使用價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉