本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,具體的說是一種在雙核架構(gòu)的嵌入式數(shù)控系統(tǒng)中芯片與外設(shè)間中斷機制的實現(xiàn)方法。
背景技術(shù):高速、高精、智能化、開放式、網(wǎng)絡(luò)化成為當(dāng)代數(shù)控系統(tǒng)發(fā)展的主要趨勢。隨著電子技術(shù)的不斷發(fā)展,ARM和DSP等各種嵌入式系統(tǒng)微處理器由于具有成本低廉、功耗小、結(jié)構(gòu)簡單且性能穩(wěn)定等特點,在嵌入式系統(tǒng)開發(fā)領(lǐng)域得以廣泛應(yīng)用。采用ARM與DSP異構(gòu)雙核處理器開發(fā)嵌入式數(shù)控系統(tǒng),具有硬件結(jié)構(gòu)簡單、功耗小、高性能低成本等特點,滿足中高檔數(shù)控系統(tǒng)產(chǎn)品市場需求,數(shù)控系統(tǒng)結(jié)構(gòu)如圖1所示。其中,DSP核處理耗費系統(tǒng)資源多、計算量大、對實時要求高的運動控制算法,ARM核運動系統(tǒng)人機交互,G代碼解釋器等模塊。傳統(tǒng)PC平臺由于具有操作系統(tǒng)和底層驅(qū)動程序,軟件資源豐富,中斷機制封裝在操作系統(tǒng)級,對上層應(yīng)用程序透明,例如圖3所示的PC平臺I/O中斷處理。而ARM+DSP是主從核結(jié)構(gòu),實現(xiàn)中斷機制通常做法是由ARM響應(yīng)來自外設(shè)的中斷,然后通過雙核通信底層機制如消息隊列-中斷機制或共享內(nèi)存機制將中斷信號送至DSP處理。這種處理方式將中斷流程硬性分割在兩個核上,增大了響應(yīng)延遲、效率低下、魯棒性差,不能保證實時性,且造成ARM核負(fù)載過高。其處理方式如圖4。使用的OMAP3530芯片硬件結(jié)構(gòu)如圖5,ARM+DSP的功能結(jié)構(gòu)圖如圖6。其中,DSP集成在IVA圖像加速器子系統(tǒng)中,ARM芯片集成在MPU主處理器單元中。
技術(shù)實現(xiàn)要素:針對上述異構(gòu)雙核結(jié)構(gòu)芯片與外設(shè)間中斷機制的實現(xiàn)方法存在響應(yīng)延遲大,效率低下,ARM核負(fù)載過高等問題,本發(fā)明提供了一種新的異構(gòu)雙核結(jié)構(gòu)芯片與外設(shè)間中斷機制的實現(xiàn)方法。本方法不需要專門的電路和協(xié)議芯片支持,而且編程模型簡單,能有效地降低ARM核負(fù)載,提高數(shù)控系統(tǒng)實時性。本發(fā)明為實現(xiàn)上述目的所采用的技術(shù)方案是:嵌入式數(shù)控系統(tǒng)雙核芯片和外設(shè)間中斷機制的實現(xiàn)方法,包括以下步驟:連接外設(shè)的中斷信號源和嵌入式數(shù)控系統(tǒng)雙核芯片的空閑輸入引腳;配置焊板和該空閑輸入引腳為復(fù)用模式,并作輸入使能;DSP檢測中斷使能;消去抖動;配置中斷觸發(fā)方式;在DSP實時操作系統(tǒng)上實現(xiàn)中斷機制;編寫中斷服務(wù)例程。所述DSP檢測中斷使能通過設(shè)置DSP響應(yīng)中斷狀態(tài)的寄存器實現(xiàn),該寄存器對應(yīng)所述空閑輸入引腳,通過查閱雙核芯片數(shù)據(jù)手冊找到。所述消去抖動通過配置寄存器實現(xiàn),該寄存器對應(yīng)所述空閑輸入引腳,通過查閱雙核芯片數(shù)據(jù)手冊找到。所述在DSP實時操作系統(tǒng)上實現(xiàn)中斷機制的方法為:屏蔽全局中斷;綁定中斷事件與中斷向量;綁定中斷向量與中斷服務(wù)例程;允許外部中斷;開啟上述全局中斷和中斷向量。所述中斷服務(wù)例程的函數(shù)末尾清除中斷狀態(tài)標(biāo)志寄存器。本發(fā)明具有以下優(yōu)點:1.硬件設(shè)計簡單。不需要額外的電路或芯片支持,具有規(guī)范的接口。2.程序設(shè)計簡單。只需要編寫DSP端程序,省去了ARM端和ARM與DSP通信的繁雜過程。3.實時性好。直接由DSP響應(yīng)中斷,進(jìn)而執(zhí)行中斷服務(wù)函數(shù),省去了雙核通信和協(xié)同工作等細(xì)節(jié),減小了響應(yīng)延遲。能夠滿足數(shù)控系統(tǒng)實時性要求。4.魯棒性強。來自總線通信板卡的信號是周期性的,而且是穩(wěn)定健壯的,DSP有穩(wěn)定的中斷處理機制,且中斷響應(yīng)延遲遠(yuǎn)遠(yuǎn)小于信號源周期,這樣增加了數(shù)控系統(tǒng)的健壯性。5.通用性強。上位機(主控板)雙核芯片很多引腳都可以做芯片的中斷引腳,用戶可以根據(jù)自己需要定制引腳。且代碼不僅支持雙核架構(gòu)芯片,對單核DSP芯片也具有較好的可擴(kuò)展性。附圖說明圖1為本發(fā)明方法應(yīng)用的數(shù)控系統(tǒng)結(jié)構(gòu)圖;圖2為本發(fā)明一個實施例的硬件功能結(jié)構(gòu)圖;圖3為PC平臺I/O中斷處理;圖4為消息隊列模式處理中斷;圖5為本發(fā)明實施例中雙核芯片(OMAP3530芯片)硬件結(jié)構(gòu);圖6為本發(fā)明實施例中雙核結(jié)構(gòu)芯片ARM+DSP的功能結(jié)構(gòu)圖;圖7(a)為本發(fā)明實施例的硬件平臺功能模塊圖;圖7(b)為本發(fā)明實施例的硬件平臺電氣連接圖;圖8為本發(fā)明中斷機制實現(xiàn)配置流程。具體實施方式下面結(jié)合附圖及實施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。硬件上采用具有雙核架構(gòu)芯片的主控板,采用GPMC作為總線通信板卡與上位機(或主控板)通訊的接口,上位機(或主控板)通過GPMC讀寫總線通信板卡上的存儲器件,完成上位機(或主控板)命令的發(fā)送以及總線反饋數(shù)據(jù)的接收;上位機(或主控板)ARM端采用Linux操作系統(tǒng),并針對數(shù)控領(lǐng)域做了實時性擴(kuò)展,出于GPMC配置和控制需求,對Linux內(nèi)核源碼進(jìn)行修改。上位機(或主控板)DSP端采用BIOS實時操作系統(tǒng)。硬件平臺平面結(jié)構(gòu)如圖7(a),硬件平臺立體結(jié)構(gòu)如圖7(b)。由于DSP端執(zhí)行運動控制算法,算法的插補周期來自底層SSB-III總線控制板卡的周期性中斷信號,DSP需要實時對該信號進(jìn)行響應(yīng),執(zhí)行運動控制算法,因此,可以將底層總線控制板卡的信號直接定位到從處理器DSP核,不再由主處理器ARM核通過消息隊列雙核通信方式轉(zhuǎn)交給DSP核,這樣,可以減輕ARM端任務(wù)負(fù)載,同時減少了中斷信號傳遞時間,大大減小了響應(yīng)延遲,增強了系統(tǒng)的實時性能。連接底層SSB-III總線控制板卡FPGA芯片中斷輸出引腳和上位機(主控板)上的雙核架構(gòu)芯片中斷輸入引腳之間連接一根導(dǎo)線,將上位機(主控板)芯片中斷輸入引腳指定為OMAP芯片Camera子模塊中I/O范圍內(nèi)的某個引腳。中斷信號從SSB-III總線控制板卡FPGA芯片沿導(dǎo)線進(jìn)入上位機(主控板)雙核芯片。中斷信號觸發(fā)源為周期性中斷信號,該中斷信號由底層SSB-III總線控制板卡提供;通過針對DSP的編程使上位機(主控板)雙核芯片的DSP核響應(yīng)來自SSB-III的總線控制板卡的周期性的中斷信號,從而驅(qū)動DSP核上的運行運動控制算法,如粗插補計算任務(wù)和刀具補償任務(wù)。針對DSP的編程包括對焊版的配置,GPIO引腳的輸入輸出使能,引腳防抖動處理,中斷檢測方式,中斷服務(wù)函數(shù)注冊,中斷服務(wù)函數(shù)與中斷向量綁定,開啟并允許外部中斷事件,開啟全局中斷,開啟對應(yīng)中斷向量。如圖2所示,為本發(fā)明方法所涉及的數(shù)控系統(tǒng)硬件功能結(jié)構(gòu)圖,由OMAP3530主控板和SSB-III總線通信板卡構(gòu)成。OMAP3530主控板包括以下模塊:OMAP3530處理器、以太網(wǎng)接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA等;SSB-III總線通信板卡主要由FPGA芯片、GPMC、以太網(wǎng)接口等構(gòu)成。兩板之間通過GPMC接口進(jìn)行通信。本發(fā)明所應(yīng)用的現(xiàn)場總線為SSB-III(SynchronousSerialBus-III,第三代同步串行總線)數(shù)控總線。編程模型采用DSP編程模式和使用DSP自帶BIOS實時操作系統(tǒng)函數(shù)接口,包括四部分:GPIO引腳配置,中斷觸發(fā)方式配置,系統(tǒng)中斷函數(shù)接口的使用,中斷服務(wù)函數(shù)編程。涉及焊版的配置,GPIO引腳的輸出使能,引腳防抖動處理,中斷檢測方式,中斷服務(wù)函數(shù)注冊,中斷服務(wù)函數(shù)與中斷向量綁定,開啟允許外部中斷事件,開啟全局中斷,開啟對應(yīng)中斷向量等過程。中斷機制實現(xiàn)配置流程如圖8。實現(xiàn)中斷機制的這四個部分,涉及若干步驟具體實施方法如下:[1]GPIO引腳配置(1)焊板,應(yīng)該在為底層SSB-III總線控制板卡FPGA芯片中斷輸出引腳和上位機(主控板)上的雙核架構(gòu)芯片指定中斷輸入引腳之間建立物理連接基礎(chǔ)上,將雙核架構(gòu)芯片指定該引腳的CONTROL_PADCONF_CAM_D5配置為模式4,并作輸入使能。(2)引腳輸入,根據(jù)OMAP3530芯片手冊確認(rèn)選用的芯片引腳可以配置為輸入模式,再將GPIO_OE配置為輸入模式。(3)DSP檢測中斷使能,由ARM響應(yīng)再通過消息隊列方式發(fā)送給DSP的方案中斷響應(yīng)延遲時間長,實時性差。因此,直接配置DSP端中斷檢測使能,設(shè)置寄存器GPIO_SETIRQENABLE2,由DSP檢測中斷信號。(4)消去抖動,防止因為電平毛刺導(dǎo)致沿檢測失效,配置GPIO_DEBOUNCENABLE為使能狀態(tài)。寄存器配置方法就是依照0~191號對引腳編號,32個引腳為一組,由一個對應(yīng)的寄存器管理,分為6組,有六個寄存器管理。對應(yīng)的寄存器的一位對應(yīng)這32個引腳中的某一個,例如使用的105號引腳,105=32*3+9,則應(yīng)設(shè)置第4個寄存器的bit9(第十位)。[2]中斷觸發(fā)方式配置,采用下降沿檢測觸發(fā)中斷(1)沿檢測,配置了下降沿GPIO_FALLINGDETECT有效,上升沿GPIO_RISINGDETECT無效;(2)電平檢測,因為我們促發(fā)方式是沿檢測機制,因此配置高電平檢測GPIO_LEVELDETECT1無效,配置低電平檢測無效GPIO_LEVELDETECT1無效。[3]DSP實時操作系統(tǒng)函數(shù)接口使用(1)屏蔽全局中斷。使用BIOS系統(tǒng)接口函數(shù)HWI_disable()屏蔽全局中斷。(2)中斷事件與中斷向量綁定。使用BIOS系統(tǒng)的接口函數(shù)HWI_eventMap()綁定中斷事件與中斷向量。(3)中斷向量與中斷服務(wù)例程綁定,使用BIOS系統(tǒng)的接口函數(shù)HWI_dispatchPlug()。(4)激活WUGEN,不屏蔽外部中斷,設(shè)置WUGEN_MEVTCLR0寄存器。(5)開啟對應(yīng)的中斷向量和全局中斷。使用C64_enableIER()。[4]中斷服務(wù)函數(shù)的編寫,將耗費系統(tǒng)資源多、計算量大、實時性要求高的運動控制算法放入中斷服務(wù)函數(shù)中,由于中斷函數(shù)被調(diào)用執(zhí)行周期等于系統(tǒng)插補周期,它和底層SSB-III總線控制板卡的周期性的中斷信號同步。修改GPIO_IRQSTATUS2寄存器清理GPIO引腳中斷標(biāo)志。中斷服務(wù)函數(shù)的執(zhí)行時間需要小于總線通信板卡的信號周期。