《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于S3C2440與WinCE平臺上的FIQ驅動程序的實現
基于S3C2440與WinCE平臺上的FIQ驅動程序的實現
來源:微型機與應用2012年第24期
開元海1,汪 超2,鄭 勇3
(1.貝加萊工業自動化西安分公司,陜西 西安710075; 2.臺州職業技術學院 機電工程學院,浙江
摘要: 在簡述WinCE系統中普通IRQ中斷處理過程的基礎上,針對采用普通IRQ中斷的驅動程序實時性能不高的問題,提出使用ARM處理器的FIQ中斷在實時性能要求較高的場合中的應用方法。系統硬件部分使用ARM S3C2440處理器作為主控部分,軟件部分開發出WinCE5.0操作系統下使用FIQ中斷針對步進電機驅動器的驅動程序。實踐證明,驅動程序使用FIQ中斷是穩定的且能獲得比IRQ中斷更好的實時性能。
Abstract:
Key words :

摘  要: 在簡述WinCE系統中普通IRQ中斷處理過程的基礎上,針對采用普通IRQ中斷的驅動程序實時性能不高的問題,提出使用ARM處理器的FIQ中斷在實時性能要求較高的場合中的應用方法。系統硬件部分使用ARM S3C2440處理器作為主控部分,軟件部分開發出WinCE5.0操作系統下使用FIQ中斷針對步進電機驅動器的驅動程序。實踐證明,驅動程序使用FIQ中斷是穩定的且能獲得比IRQ中斷更好的實時性能。
關鍵詞: WinCE;S3C2440;FIQ

    Microsoft Windows CE 是一個32 位、緊湊、高效、可擴展的操作系統,適用于各種嵌入式系統和產品。它擁有多線程、多任務、確定性的實時、完全搶占式優先級的操作系統環境,專門面向只有有限資源的硬件系統。同時,它的模塊化設計方式使得系統開發人員和應用開發人員能夠為多種多樣的產品來定制它,可以選擇、組合和配置Windows CE 的模塊和組件來創建用戶版的操作系統[1]。良好的用戶界面使其在導航儀等消費類電子中得到了廣泛的應用。在工業控制方面,有少數廠家以它作為內核開發工業控制器,也有一些廠家只是作為終端顯示設備。在外圍沒有CPLD、FPGA或DSP協同工作的情況下,對于實時性較高的應用場合一般不會選擇WinCE。
    本文以步進電機驅動程序為例,針對普遍使用的IRQ中斷,提出用ARM處理器的FIQ中斷在實時性能要求高的場合中的應用方法,可以大大提高控制系統實時處理能力,進而可以替代某些場合中使用的專用芯片或PLD芯片來滿足性能要求,以節約成本,降低功耗。
1 IRQ中斷過程簡述
    對于一個硬件中斷,系統內核在捕獲之后,會交給 OEMInterruptHandler 函數處理,這個函數就是實現中斷處理的中心函數。函數可以從CPU的寄存器里獲得中斷的信息,這些信息可以指出是哪個中斷源觸發了中斷。
    在得到觸發中斷源信息后,最簡單的中斷處理辦法就是在OEMInterruptHandler中直接對中斷源進行判斷,然后調用服務程序。
    另一種中斷處理辦法是應用程序建立中斷服務線程(IST),然后申請一個系統邏輯中斷號(SYSINTR),創建一個事件(Event) ,使用InterruptInitialize函數將 Event 與 SYSINTR 綁定,隨后 IST阻塞在等待Event上面。當硬件中斷發生后,OEMInterruptHandler只給系統返回一個 SYSINTR,用來標記需要哪個程序來服務中斷,系統根據綁定關系激活相應的Event,使得隨后的 IST得以運行。在中斷處理完成之后需要調用 InterruptDone,參數為該中斷的SYSINTR,用來通知系統中斷處理完成,系統重新使能該中斷。這種處理方法可以使中斷被關閉、系統被鎖定的時間最短。此外,還需要實現OEMInterruptEnable和OEMInterruptDisable函數來改變處理器中斷屏蔽寄存器[2]。處理過程如圖1所示。

    當使用上文所述IRQ中斷服務程序結構時,為了使實時性更好,采用直接在OEMInterruptHandler中對中斷源進行處理的方式對步進電機驅動器Q2HB44MA和步進電機57BYGHM403進行控制。由于中斷優先級和響應速度的原因,步進電機在旋轉過程中產生劇烈振動,根本無法在實際應用場合中使用。
2 FIQ中斷驅動程序在WinCE系統中的實現
2.1 ARM處理器快速中斷FIQ

    FIQ和IRQ是ARM處理器中兩種不同類型的中斷。FIQ比IRQ有更高優先級,如果FIQ和IRQ同時產生,那么先處理FIQ。當CPU處于FIQ模式處理FIQ中斷的過程中,預取指令異常,未定義指令異常,軟件中斷全被禁止,所有的中斷被屏蔽。所以FIQ會很快被執行,不會被其他異?;蛘咧袛啻驍?。而IRQ不一樣,當ARM處于IRQ模式處理IRQ中斷時,如果來了一個FIQ中斷請求,那么正在執行的IRQ中斷處理程序會被搶斷,ARM切換到FIQ模式去執行該FIQ中斷[3]。
2.2 步進電機加減速實現
    步進電機在啟動或停止時若步進脈沖變化太快,轉子由于慣性而跟隨不上電信號的變化,會產生失步或超步現象。一般來說對于電機起始轉速小于2 r/s時,根據負載情況可能不會出現失步或超步的現象。但在轉速較高、負載較大的情況下,為了避免失步或超步現象,通常采用加減速控制。加減速過程需要設定步進電機的起始頻率、穩定頻率和加速時間,但是在控制中則需要計算出加速過程所需要的脈沖個數。對于加速過程有以下關系式:

2.3 添加步進電機結構和IOCTL接口
    WinCE操作系統設計借鑒了Windows 2000/XP操作系統的設計,從體系結構上,它具有分層結構的特點,從上到下為應用程序層、操作系統層、OEM層和硬件層。OEM層是邏輯上位于硬件和操作系統之間的一層硬件相關代碼。它的主要作用是對具體的硬件進行抽象,抽象出統一的接口,然后WinCE內核可以使用這些接口與硬件進行通信,這樣在移植WinCE到新的硬件平臺時可以減少對操作系統的修改,通俗地說就是為WinCE操作系統抹平MCU的差異,使其能方便地移植到其他MCU上運行。OEM抽象層(OAL)是整個OEM層的主體,它包含了高度硬件相關的代碼,OAL主要負責WinCE內核與硬件交互。
    為了能夠用WinCE的流接口驅動程序操作ARM處理器的FIQ中斷,需要修改WinCE系統OEM層中的OAL部分。在s2440.h文件中定義步進電機數據結構,包括起始頻率、穩定頻率、上升脈沖數、剩余脈沖數、當前上升/下降沿狀態等運行參數和狀態變量。
    在oemioctl.c文件中定義步進電機結構的全局變量。為了使驅動程序可以訪問到此變量,使用WinCE系統的IOCTL接口。在WinCE5.0中,應用程序和驅動程序可以通過調用KernelIoControl()函數來訪問WinCE內核,導致調用OEMIoControl函數,這樣應用程序和驅動程序就可以訪問到OAL中的資源了,可以說OEMIoControl是一個很有用的WinCE內核輸入/輸出函數。在OEMIoControl函數中添加case語句使得驅動程序傳來的運行參數和運行/停止命令可以得到記錄和響應,在更新參數命令處理中把運行的參數賦值給步進電機結構變量;在開始運行命令處理中打開定時器FIQ中斷使能、設置定時器周期、開始定時器運行;在停止命令中記錄停止信息使得在當前脈沖循環完成后停止脈沖的輸出。
2.4 添加中斷處理過程代碼
    由于在IOCTL的開始運行命令處理中打開了定時器的FIQ中斷使能,當定時器時間達到時,中斷服務程序不再是OEMInterruptHandler,而是FIQHandler。由FIQHandler調用OEMInterruptHandlerFIQ函數進行處理。
    在armtrap.s匯編文件中的FIQHandler入口處,調用OEMInterruptHandlerFIQ函數的前后應該使用msr匯編指令添加禁止/使能FIQ中斷的操作。
    在arminit.c文件的OEMInterruptHandlerFIQ函數中添加更新GPIO口輸出電平、脈沖計數、加減速/恒速狀態切換、定時器周期之更新等操作,如果當前發送脈沖為最后一個脈沖的下降沿,則需要關閉FIQ的中斷使能,這樣當脈沖發送完成后會產生普通IRQ中斷來觸發OEMInterruptHandler函數的調用,讓系統通知驅動程序當前運動任務的完成。
    另外,還需要實現OEMInterruptEnable和OEMInter-
ruptDisable函數來改變處理器中斷屏蔽寄存器。
2.5 驅動程序添加
    驅動程序采用WinCE的普通流接口驅動程序,通過KernelIoControl接口對步進電機進行參數設置和啟/??刂?,在設置參數之前應該使用式(2)計算加/減速脈沖個數。
    綜合以上過程,采用FIQ中斷的處理流程圖如圖2所示。

3 試驗測試

 


    文章采用Windows CE5.0嵌入式操作系統,結合ARM處理器的FIQ中斷機制,完成了步進電機驅動程序的實現,在這種機制下,很好地克服了采用普通IRQ中斷的驅動程序實時性能不高的問題,可以在實時性能要求較高的應用場合中應用。在試驗過程中可以看到,使用本文提出的采用FIQ中斷的驅動程序,可以平穩地輸出120 kHz的脈沖,遠遠超過普通步進電機驅動器最高輸入脈沖頻率的20 kHz。
    本文針對采用普通IRQ中斷的驅動程序實時性能不高的問題,實現了使用ARM處理器的FIQ中斷來開發驅動程序。使用普通IRQ中斷的驅動程序來發送脈沖時,由于中斷優先級和響應時間的問題,步進電機產生劇烈振動,導致根本不能在實際應用中使用。實踐證明,驅動程序使用FIQ中斷是穩定的且能獲得比IRQ中斷更好的實時性能,合理采用可以替代某些場合中的專用芯片或PLD芯片,以節約成本,降低功耗。
參考文獻
[1] 盧愛臣,王劍宇,郭偉,等.基于WinCE自動控制臺的設計與實現[J].微計算機信息,2011(2):87-88.
[2] 微軟公司.Windows CE設備驅動程序開發指南[M].北京:北京希望電子出版社,1999.
[3] 杜春蕾.ARM體系結構與編程[M].北京:清華大學出版社,2003.
[4] 何宗鍵.Windows CE嵌入式系統[M].北京:北京航空航天大學出版社,2006.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品美女久久久久久免费| 欧美精品手机在线| 午夜伦欧美伦电影理论片| 久久久久一区二区三区| 久久狠狠一本精品综合网| 欧美一区91| 欧美呦呦网站| 女女同性精品视频| 性欧美在线看片a免费观看| 欧美日韩国产页| 亚洲电影观看| 国产亚洲aⅴaaaaaa毛片| 欧美日韩一区二区三区四区五区| 亚洲伊人伊色伊影伊综合网| 红桃视频成人| 亚洲国产成人av| 欧美国产一区二区在线观看| 欧美在线视频免费播放| 国产精品亚洲综合久久| 鲁大师成人一区二区三区| 久久资源在线| 性8sex亚洲区入口| 亚洲性夜色噜噜噜7777| 久久久久国产精品麻豆ai换脸| 久久亚洲一区二区| 亚洲精品免费观看| 欧美日韩一级大片网址| 亚洲国产另类久久久精品极度| 91久久夜色精品国产网站| 欧美日韩国产在线一区| 国产精品视频网| 欧美在线一级va免费观看| 亚洲伊人一本大道中文字幕| 国产精品色午夜在线观看| 一区二区在线观看视频在线观看| 伊人久久久大香线蕉综合直播| 欧美一区二区女人| 在线不卡中文字幕播放| 欧美国产一区二区在线观看| 亚洲精品美女在线| 久久综合九色综合欧美就去吻| 亚洲国产女人aaa毛片在线| 国产亚洲欧洲997久久综合| 亚洲一区3d动漫同人无遮挡| 久久久av毛片精品| 亚洲图片自拍偷拍| 国产欧美日韩精品一区| 亚洲最新视频在线播放| 国产伦精品一区二区三区| 亚洲日韩中文字幕在线播放| 欧美人与性动交α欧美精品济南到| 欧美午夜激情小视频| 亚洲天堂成人在线观看| 狠狠色综合播放一区二区| 亚洲国产影院| 午夜精品电影| 欧美精品九九99久久| 欧美伦理91i| 久久久之久亚州精品露出| 激情五月***国产精品| 亚洲国产精品精华液2区45| 亚洲欧美另类国产| 91久久香蕉国产日韩欧美9色| 欧美成人福利视频| 夜夜嗨av一区二区三区四季av| 亚洲欧美日韩国产中文| 欧美一区二区三区四区高清| 亚洲欧美日韩中文播放| 久久久久久久久久久一区| 亚洲国产欧美日韩| 1024精品一区二区三区| 亚洲欧美日韩另类| 欧美调教视频| 欧美午夜激情视频| 女同性一区二区三区人了人一| 欧美国产日韩二区| 亚洲精品欧美极品| 国产精品亚洲аv天堂网| 欧美日韩国产成人在线观看| 欧美日韩性视频在线| 麻豆精品一区二区av白丝在线| 欧美精品免费看| 日韩午夜高潮| 欧美视频在线观看免费网址| 激情伊人五月天久久综合| 欧美日韩国产丝袜另类| 亚洲免费高清| 欧美午夜一区二区三区免费大片| 欧美+日本+国产+在线a∨观看| 一区二区不卡在线视频 午夜欧美不卡在| 久热精品视频在线观看一区| 国产精品海角社区在线观看| 欧美精品日韩精品| 尤物yw午夜国产精品视频明星| 亚洲自拍高清| 久久精品国产亚洲一区二区| 国产一区999| 亚洲精品久久7777| 国产精品国产三级国产aⅴ9色| 久久婷婷蜜乳一本欲蜜臀| 怡红院av一区二区三区| 亚洲国产另类久久久精品极度| 午夜视频在线观看一区二区| 国产综合久久| 国产精品日韩在线播放| 亚洲一区二区三区精品在线| 欧美激情性爽国产精品17p| 国产精品视频网站| 欧美伦理一区二区| 国产精品久久网站| 亚洲第一精品在线| 欧美午夜在线观看| 国产精品手机视频| 国产精品极品美女粉嫩高清在线| 久久夜色精品国产欧美乱极品| 欧美精品七区| 亚洲视频欧洲视频| 久久久久.com| 亚洲国产精品一区二区www在线| 国产免费观看久久| 在线欧美三区| 欧美午夜寂寞影院| 亚洲美女毛片| 亚洲欧美春色| 99国内精品久久久久久久软件| 亚洲男人天堂2024| 久久久久九九九| 日韩午夜激情av| 欧美成人中文| 国产精品一区视频网站| 一区二区三区回区在观看免费视频| 欧美专区一区二区三区| 蜜桃久久精品乱码一区二区| 国产一区二区精品| 国产一区二区无遮挡| 亚洲裸体视频| 国产一区二区三区黄视频| 狠狠色综合色综合网络| 亚洲第一色在线| 国产亚洲精品bt天堂精选| 亚洲成在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品午夜av在线| 午夜免费久久久久| 国际精品欧美精品| 国产精品香蕉在线观看| 久久午夜国产精品| 欧美网站在线| 国产亚洲欧洲| 国产人成精品一区二区三| 国产在线视频欧美一区二区三区| 国产精品欧美一区二区三区奶水| 欧美精品在欧美一区二区少妇| 樱花yy私人影院亚洲| 国产精品久久久久99| 欧美在线视频免费观看| 午夜亚洲激情| 久久精品亚洲一区二区三区浴池| 国产一区二区久久精品| 亚洲一区二区三区中文字幕| 国产精品久久一区二区三区| 国产乱理伦片在线观看夜一区| 在线免费观看一区二区三区| 国产一区二区三区丝袜| 国产美女精品一区二区三区| 国内精品久久久久影院色| 欧美韩日精品| 美女视频一区免费观看| 正在播放日韩| 麻豆视频一区二区| 亚洲人屁股眼子交8| 久久亚洲电影| 欧美一区二区三区久久精品茉莉花| 久久久之久亚州精品露出| 亚洲婷婷综合色高清在线| 久久国产日韩| 久久夜色精品国产欧美乱| 久久蜜桃香蕉精品一区二区三区| 亚洲成色www久久网站| 亚洲香蕉成视频在线观看| 欧美日韩中文字幕在线视频| 亚洲午夜激情免费视频| 激情视频一区二区三区| 在线免费观看欧美| 欧美激情在线有限公司| 亚洲人成精品久久久久| 午夜精品国产精品大乳美女| 国产精品免费久久久久久| 国外成人在线视频网站| 国产精品免费网站在线观看| 一区二区三区视频在线看| 欧美精品福利视频| 欧美一区影院| 国内自拍一区| 国产精品一二三| 国产精品丝袜白浆摸在线| 久久亚洲精品中文字幕冲田杏梨| 国产精品男女猛烈高潮激情| 国产模特精品视频久久久久| 麻豆精品一区二区av白丝在线| 亚洲高清免费| 亚洲欧美自拍偷拍| 国产精品日韩欧美一区二区三区| 欧美日韩一区二区三区视频| 欧美中文字幕在线观看| 欧美日韩精品免费| 亚洲久久一区二区| 欧美日韩高清在线观看| 国模一区二区三区| 久久精品夜色噜噜亚洲a∨| 榴莲视频成人在线观看| 久久久久欧美精品| 一区二区三区视频观看| 亚洲第一级黄色片| 老牛影视一区二区三区| 亚洲国产欧美一区二区三区同亚洲| 欧美人妖在线观看| 欧美涩涩网站| 欧美日韩小视频| 亚洲一卡二卡三卡四卡五卡| 久久久久www| 国产日韩专区在线| 亚洲美女中文字幕| 国产精品日韩一区| 国产免费成人| 久久精品视频在线免费观看| 亚洲永久视频| 亚洲日本aⅴ片在线观看香蕉| 韩国av一区二区三区四区| 国产在线精品自拍| 国产农村妇女精品一区二区| 欧美精品1区| 欧美日韩理论| 亚洲一区一卡| 国产精品hd| 欧美精品九九99久久| 国产主播喷水一区二区| 亚洲大片精品永久免费| 国产美女精品免费电影| 欧美午夜无遮挡| 欧美日韩国产综合在线| 亚洲直播在线一区| 国产精品视频yy9099| 欧美一区2区三区4区公司二百| 欧美日韩国产色站一区二区三区| 欧美日韩国产精品一区二区亚洲| 久久亚洲综合| 欧美亚洲色图校园春色| 国产精品免费网站在线观看| 一本一本久久a久久精品综合麻豆| 亚洲免费不卡| 亚洲视频视频在线| 亚洲国产午夜| 国产精品久久久久91| 夜夜爽99久久国产综合精品女不卡| 午夜精品久久久久99热蜜桃导演| 99精品99| 国产欧美日韩在线视频| 亚洲国产精品第一区二区三区| 一本色道88久久加勒比精品| 亚洲毛片在线免费观看| 亚洲视频免费| 国产女优一区| 亚洲成人在线网站| 亚洲高清免费视频| 韩国美女久久| 欧美日韩精品一区二区三区四区| 欧美日韩综合久久| 久久在线免费观看| 性欧美18~19sex高清播放| 午夜精品福利一区二区蜜股av| 国产精品一区二区三区久久久| 亚洲午夜国产一区99re久久| 欧美激情综合色| 亚洲毛片在线免费观看| 久久综合久久久| 国内不卡一区二区三区| 亚洲午夜电影在线观看| 在线观看av不卡| 欧美一区二区啪啪| 久久精品视频在线播放| 国产欧美亚洲一区| 国产亚洲一区二区在线观看| 欧美有码视频| 欧美日韩aaaaa| 亚洲欧洲在线观看| 亚洲精品1区2区| 六月婷婷久久| 欧美日韩视频一区二区| 国产欧美精品va在线观看| 亚洲欧美日韩精品久久亚洲区| 黄网站免费久久| 欧美福利视频网站| 牛牛精品成人免费视频| 国产精品久久久久秋霞鲁丝| 久久综合给合久久狠狠色| 国产欧美日韩另类视频免费观看| 欧美国产精品劲爆| 亚洲日本电影在线| 久久精品一区二区| av成人免费| 亚洲人久久久| 日韩视频永久免费观看| 国产精品视频免费观看| 国产精品99久久不卡二区| 欧美剧在线免费观看网站| 国产精品有限公司| 亚洲欧美综合另类中字| 国精品一区二区三区| 亚洲视频一区| 欧美日韩免费一区二区三区视频| 欧美色精品在线视频| 久久久亚洲精品一区二区三区| 久久aⅴ乱码一区二区三区| 国产在线精品成人一区二区三区| 午夜精品福利一区二区三区av| 欧美国产精品一区| 亚洲精品影院在线观看| 欧美日韩国产a| 欧美日韩国内| 国产欧美日韩三级| 国产一区二区三区在线观看精品| 国产伪娘ts一区| 国产毛片精品视频| 亚洲第一精品在线| 最新国产精品拍自在线播放| 午夜国产精品视频| 欧美一区二区三区男人的天堂|