已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
湖北工業(yè)大學碩士學位論文摘要隨著微處理器技術與信息技術的不斷發(fā)展,嵌入式系統的應用也進入到國防、工業(yè)、能源、交通以及日常生活中的各個領域。嵌入式系統的軟件核心是嵌入式操作系統。然而,國內在嵌入式系統軟件開發(fā)上有很多困難,主要有國外成熟的RTOS大都價格昂貴并且不公開源代碼,用好這些操作系統需對計算機體系結構有深刻理解。針對以上問題,免費公開源代碼的嵌入式操作系統就倍受矚目了,PCOSII就是其中之一。GCOSII是面向中小型應用的、基于優(yōu)先級的可剝奪嵌入式實時內核,其特點是小巧、性能穩(wěn)定、可免費獲得源代碼。本文在深入研究PCOSII內核基礎上,將其運用于實際課題,完成了基于ARM架構的PCOSII移植及實時同步交流采樣的誤差補償研究。本文主要工作內容和研究成果如下J1剖析了PCOSII操作系統內核,重點研究了ITCOSII內核的任務管理與調度算法機理,得出了PCOSII內核優(yōu)點任務調度算法簡潔、高效、實時性較好與LINUX相比1。2介紹了ARM9體系架構,重點講敘了MMU存儲管理單元功能。為了提高交流采樣系統的取指令和讀數據速度,成功將MMU功能應用于本嵌入式系統中。3完成了GCOSII操作系統在目標板上的移植,主要用匯編語言編寫了啟動代碼、開關中斷、任務切換和首次任務切換等函數。4針對國內外提出的同步交流采樣誤差補償算法的局限性,本文從理論上對同步交流采樣的準確誤差進行了研究,并嘗試根據被測信號周期的首尾過零點的三角形相似法,求出誤差參數并對誤差進行補償。此外,考慮到采樣周期丁不均勻,經多次采樣后會產生累積誤差,本文也給出了采樣周期丁的優(yōu)化算法。5完成了系統硬件設計,并根據補償算法和丁優(yōu)化法則,編寫了相應采樣驅動和串口驅動。最后對實驗數據進行了分析和比較,得出重要結論該補償算法實現簡單,計算機工作量小,精度較高。關鍵詞嵌入式系統,RTOS,PCOSII,ARM,同步交流采樣湖北工業(yè)大學碩士學位論文ABSTRACTWIMTHEDEVELOPMENTOFMICROPROCESSORTECHNOLOGYANDINFORMATIONTECHNOLOGY,EMBEDDEDSYSTEMHASBEINGAPPLIEDTONATIONALDEFENSE,INDUSTRY,ENERGY,TRANSPORTATION,ASWELLASALLFIELDSOFDAILYLIFEEMBEDDEDSYSTEMSOFTWAREISTHECOREOFEMBEDDEDOPERATINGSYSTEMHOWEVER,THEREISSTILLMUCHDIFFICULTYINDEVELOPINGEMBEDDEDSYSTEMSOFAR,ANDITMAINLYINCLUDESMOSTOVERSEASSTABLEANDHIGHLYRELIABLEEMBEDDEDRTOSAREVERYEXPENSIVEANDNOTOPENSOURCE,ASWELLASAPPLYINGRTOSWELLNEEDSMASTERINGCOMPUTERSYSTEMSTRUCTUREINVIEWOFTHEABOVEPROBLEMS,FREEOPENSOURCEEMBEDDEDOPERATINGSYSTEMSCANBECONSIDEREDFIRST,ANDPCOSIIISONEOFTHEMASALLEMBEDDEDREALTIMEKERNELBASEDONTASKPRIORITY,PCOSIIHASBEINGMAINLYUSEDINTHEMINITYPEEMBEDDEDAPPLICATIONITHASLOTSOFSTRONGPOINTSUCHASSMALLSIZE,WITHOUTPAYING,HIGHSTABILITYANDRELIABILITYBASEDONDEEPSTUDYOFPCOSIIKERNEL,THISPAPERAPPLIESITTOACTUALPROJECT,ANDCOMPLETESTRANSPLANTINGITTOARMMICROPROCESSORASWELLASRESEARCHONREALTIMESYNCHRONOUSACSAMPLINGERRORCOMPENSATIONTHISPAPERMAINLYCONTAINSASPECTSOFWORKANDRESEARCHASFOLLOWS1LUCOSIIOPERATINGSYSTEMISANALYZEDINDETAILANDESPECIALLYPCOSIITASKMANAGEMENTANDSCHEDULINGALGORITHMMECHANISMISFOCUSED011THEN,ITCOMESTOACONCLUSIONTHATITCOSIICOREHASBETTERADVANTAGESSUCHASSIMPLE,EFFICIENTTASKSCHEDULINGALGORITHM,ANDHIGHREALTIMEQUALITYCOMPAREDWITHLINUXOPERATINGSYSTEM2ARM9ARCHITECTUREISWELLINTRODUCED,ANDAMONGITMMUFUNCTIONMEMORYMANAGEMENTUNITISPRESENTEDPARTICULARLYANDSPECIFICALLYINORDERTOIMPROVETHESPEEDOFINSTRUCTIONSFETCHANDDATAREAD,MMUISAPPLIEDTOTHISEMBEDDEDSYSTEMSUCCESSFULLY3PORTINGITCOSIIOPERATINGSYSTEMTOTARGETBOARDISSUCCESSFULLYCOMPLETEDTHEMAINWORKISTODESIGNBOOTCODE,CLOSEOPENINTERRUPTION,TASKSWITCHINGANDFIRSTTASKSWITCHINGFUNCTIONETCBYUSINGASSEMBLYLANGUAGE4AIMINGATTHELIMITATIONSOFTHESESYNCHRONOUSACSAMPLINGERRORCOMPENSATIONALGORITHMSWHICHHAVEBEENRAISEDATHOMEANDABROAD,THISPAPERCARRIESOUTDEEPRESEARCHONACCURATESYNCHRONOUSACSAMPLINGERRORINTHEORY,TRIESTOWORKOUTERRORPARAMETERSANDTHENCOMPENSATESERRORPRECISELYBASEDONTRIANGLESIMILARLAWWHICHCANBEUSEDINTHETRIANGLESSTANDINGATZEROCROSSINGPOINTNEARBYINAMEASUREDSIGNALCYCLEINADDITION,TAKINGINTOACCOUNTTHEUNEVENSAMPLINGPERIODAT,AFTERMANYTIMESREPEATEDSAMPLINGITWILLRESULTINACUMULATIVEERROR,ANDTHISPAPERALSOGIVESANOPTIMIZATIONALGORITHMTOSAMPLINGPERIODAT5THISPAPERHASCOMPLETEDTHESYSTEMHARDWARESTRUCTUREDESIGN,ANDHASFINISHEDCORRESPONDINGSAMPLEDRIVENANDSERIALPORTDRIVENPROGRAMINACCORDANCEWITHTHEERRORCOMPENSATIONALGORITHMANDATOPTIMIZATIONRULEFINALLYWITHEXPERIMENTALDATAII湖北工業(yè)大學碩士學位論文ANALYZEDANDCOMPARED,ALLIMPORTANTCONCLUSIONISDRAWNTHISKINDOFERRORCOMPENSATIONALGORITHMISEASYTOBEREALIZED,NEEDSLOWERCOMPUTERWORKLOAD,ANDHAS1I曲PRECISIONKEYWORDSEMBEDDEDOPERATINGSYSTEM,RTOS,PCOSII,ARM,SYNCHRONOUSACSAMPLING湖辦二堂大謦學位論文原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明本人鄭重聲明所呈交的學位論文,是本人在導師指導下,獨立進行研究工作所取得的研究成果。除文中已經標明引用的內容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫過的研究成果。對本文的研究做出貢獻的個人和集體,均己在文中以明確方式標明。本聲明的法律結果由本人承擔。學位論文作者簽名楊筆琿日期三的7年6月萬日學位論文版權使用授權書本學位論文作者完全了解學校有關保留、使用學位論文的規(guī)定,即學校有權保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權湖北工業(yè)大學可以將本學位論文的全部或部分內容編入有關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。學位論文作者簽名櫥珥日期加C1年6月玀日湖北工業(yè)大學碩士學位論文11課題意義和目標第1章緒論隨著嵌入式微處理器的發(fā)展,嵌入式操作系統日新月異,而且他們被廣泛地應用于工業(yè)的各個領域。嵌入式實時操作系統的引入,使產品的實時性和可靠性得到顯著提升。作為一名嵌入式開發(fā)者,很有必要掌握一種嵌入式實時操作系統。本課題的意義在于,以源代碼開放的實時操作系統LACOSII為內核【1】,以基于3C2440微處理器進行嵌入式系統的開發(fā)和研究,這對于利用開源代碼【2叫開發(fā)嵌入式實時操作系統具有極好參考價值。另外,本論文對同步交流采樣誤差進行了研究,這對提高交流采樣精度有著重要意義。對于本課題,主要有兩個目標一是掌握實時操作系統原理,以著名的嵌入式實時操作系統GCOSII為研究對象,徹底搞清其實現細節(jié)和運行方式,并實現在微處理器上移植和調通系統。二是搭建一個ARM9嵌入式同步交流采樣系統包括系統的硬件設計,GCOSII的移植,采樣和串口驅動的編寫等,從理論和實踐上對本文提出的同步交流采樣誤差補償進行研究和驗證。12嵌入式系統概述本文是基于嵌入式系統的開發(fā)和研究,所以對嵌入式系統、嵌入式操作系統、實時操作系統、嵌入式實時操作系統要有清楚地認識,以下是它們的定義和介紹。121嵌入式系統和嵌入式操作系統嵌入式系統15J定義為以應用為主體,軟件和硬件均可裁減,適應對功能、可靠性、成本、以及功耗等要求較嚴格的專用計算機系統。嵌入式系統由硬件和軟件兩大部分組成,其中軟件核心是嵌入式操作系統。嵌入式操作系統【61EMBEDDEDOPERATINGSYSTEM是一種支持嵌入式應用的專用軟件。嵌入式操作系統與通用操作系統相比,具有更強的實時性和硬件依賴性。122實時操作系統實時操作系統是指能支持實時控制的專用操作系統軟件。實時的含義并非指速度快,而是指有響應時間的限定,超過一定時間都認為是非法的,所以,實時湖北工業(yè)大學碩士學位論文操作系統具有可預測性和高可靠性。實時操作系統與普通操作系統的主要區(qū)別有任務處理的確定性、響應靈敏度、用戶參與控制、可靠性以及故障保護措施【7兒引。所以在實時操作系統中,任務處理時間是確定的、可預測的,這一點非常關例9】ILOJ。實時操作系統分兩種,一種是“硬實時“,另一種是“軟實時?!坝矊崟r指對任務處理和時間要求上,只能作出承諾或拒絕?!败泴崟r”先對系統完成該任務的能力進行分析和估計,然后由計算出的概率決定任務的執(zhí)行與否。目前對軟實時操作系統的調度算法研究頗多,主要停留在采用經典反饋控制技術的常規(guī)控制算法上【。41。對硬實時方面的調度算法研究,包括速率單調調度法【151RAM、時限調度法DM【16】和最早時限優(yōu)先調度算法EDF【17】。EDF調度總是比固定優(yōu)先級調度取得更高的利用率。相對于速率單調調度法RM和時限調度法DM,EDF的時限是任意的,更適用于實際的實時系統。當前,使用較多的實時操作系統都屬于“軟實時。12,3嵌入式實時操作系統PCOSIL優(yōu)點IACOSII嵌入式實時操作系統,已通過了美國航空航天管理局FAA的安全認證,它的穩(wěn)定性和可靠性均已通過嚴格驗證。LACOSII具有以下優(yōu)點1源代碼公開且免費。2代碼量小,其核心代碼只有8K字節(jié)左右,另外用戶還可以根據自己的需要對它進行裁剪和修改,所以用戶實際系統的代碼量還可以減少。3內核對微處理器以及程序存儲器,數據存儲器的要求不高,能夠適應各種不同的硬件系統。124嵌入式實時操作系統開發(fā)的發(fā)展動向目前,嵌入式實時操作系統及嵌入式開發(fā)環(huán)境的發(fā)展方向分別是1嵌入式實時操作系統正向實時超微內核NANOKEMEL方向發(fā)展。上世紀80年代末期,國外就提出了微內核【18201MICROKERNEL思,想,就是把傳統操作系統的共性抽取出來,作為構成各種操作系統微內核的基礎,而把具體功能放在微內核之外。本文的ITCOSII就是一種微內核。近幾年,國外出現了超微內核211NANOKEMEL。實際上,超微內核是一種更基本的內核代碼層,在它基礎之上可以構造各種嵌入式實時操作系統。這種實時內核具有更好的可重用性,同時可伸縮性【221SCALABILITY也較強,所謂可伸縮性,就是指能支持和滿足多種實時應用的需求。2嵌入式開發(fā)環(huán)境將更開放和更集成化。2湖北工業(yè)大學碩士學位論文在嵌入式開發(fā)中,應用軟件的使用,需要開發(fā)者具有一定深度的操作系統知識。所以,要開發(fā)和設計高性能的操作系統應用軟件,功能強大的交叉開發(fā)工具必不可少。目前,國外的操作系統集成開發(fā)環(huán)境正向高度集成、編譯優(yōu)化、仿真和驗證等方向發(fā)展。13本文的主要工作和安排本文主要的工作內容是1研究和分析了PCOSII源代碼,為GCOSII在目標板上的移植打下基礎。2完成了本采樣系統硬件電路的設計。3PCOSII基于ARM920TS3C2440系統的啟動代碼的設計實現。4編寫ITCOSII到ARM的移植代碼,總結TCOSII移植的關鍵技術等。5編寫串口驅動和采樣驅動代碼,完成應用程序的開發(fā)。6在ADS開發(fā)環(huán)境下,采用ARMULATOR和HJTAG仿真器調試和測試內核及驗證移植的正確性包括驅動程序。7本文從理論上推導出同步交流采樣中誤差的主要來源,提出了同步交流采樣的優(yōu)化算法,在移植了GCOSII的3C2440硬件平臺上加以分析和驗證。論文安排第一章緒論,主要介紹嵌入式實時系統相關的概念。第二章詳細剖析ITCOSII的代碼及工作機理。第三章介紹ARM9的體系結構,包括編程模型和內存管理單元MMU的工作原理。第四章分析移植GCOSII的方法和步驟,特別是針對不同的處理器必須要修改的幾個函數,并把GCOSII移植到3C2440目標板上。第五章從理論上推導出軟件同步交流采樣F231誤差的主要來源,提出同步交流采樣的優(yōu)化算法。第六章進行系統硬件電路設計,同時由誤差補償算法和采樣周期優(yōu)化法則,編寫實時采樣驅動程序和串口驅動程序,并從實驗數據中分析和驗證這種算法的可行性。第七章對本論文進行了總結和展望,說明了本文取得的成果以及不足之處。湖北工業(yè)大學碩士學位論文第2章嵌入式實時操作系統TCOSLI的剖析21引言ILCOSII操作系統的多任務內核,主要包括任務管理、時鐘管理、任務間通信與同步、中斷管理等功能。這些功能是通過內核函數的形式交給任務調用的,且功能函數全部用ANSIC語言編寫。本章對PCOSII操作系統內核進行詳細分析,是為后面ITCOSII在3C2440目標板上的移植打基礎。文中首先簡單介紹了任務的概念,而后圍繞任務狀態(tài)轉換圖說明相關函數的功能,詳細講敘了任務鏈表的原理和作用。任務調度分任務級調度和中斷級調度兩種,任務級調度函數為OSSCHED,中斷級調度函數為OSINTEXT。任務的就緒組OSRDYGRP和就緒表數組OSRDYTBL非常關鍵,它們是判斷任務是否處于就緒態(tài)的重要依據。信號量、消息郵箱、消息隊列是任務間的通訊機制,其中事件控制塊OSEVENT是一種數據結構,它是實現任務間通訊的基礎。時鐘節(jié)拍函數OSTIMETICK是俗稱操作系統心跳函數,是用來判斷任務的延時節(jié)拍是否結束,如果結束就將該任務設置成就緒態(tài),為任務調度作準備。22PCOSII的任務管理與調度221任務、任務優(yōu)先級和任務切換在PCOSII中,任務是一個無限的循環(huán),其程序結構如下VOIDTASKVOID宰PDATAFO“;術用戶代碼球每個任務都賦予一定的優(yōu)先級,數值越小優(yōu)先級越高,每個任務都有它自己的一套CPU寄存器和堆棧空間。每個任務都處于以下5種狀態(tài)中的一種睡眠態(tài)、就緒態(tài)、運行態(tài)、等待態(tài)和中斷態(tài)。圖21是PCOSII控制下的任務狀態(tài)轉換圖,詳細描敘了在調用相關內核函數后,任務從一種狀態(tài)轉換到另一種狀態(tài)的過程。4湖北工業(yè)大學碩士學位論文OSTASKDCL圖21任務狀態(tài)轉換圖在初始化肛COSII時,所有的任務控制塊OSTCB被鏈接成單向空任務鏈表,任務的總數可以根據實際需求選取,最多為64個。事先建立的任務控制塊指針數組數組的每個元素是對應任務控制塊的地址的大小就是任務的總數,各個任務控制塊一種結構體是單向空任務鏈表的一個節(jié)點,圖22是初始化PCOSII時的空任務鏈表。OSTCBTBIOSMAXTASKSOSNSYSTASKS1】0STCBFOSTCBPREVOSTCBPREVOSTCBPREV圖22空任務鏈表下面分析建立任務后的情況,假設現在建立了兩個任務,分別是空閑任務和統計任務,且先建立空閑任務,顯然,OSTCBTBL0空任務控制塊賦給空閑任務,OSTCBTBL1空任務控制塊賦給統計任務,OSTCBFREELIST指向鏈表中的第三個空任務控制塊也就是OSTCBTBL2任務控制塊。同時,關鍵的是己建立任務的前向湖北工業(yè)大學碩士學位論文任務控制塊指針OSTCBPREV發(fā)生了作用,指向上一個任務控制塊,如圖23所示。OSTCBTBLOS_MAX_TASKSOS_N_SYS_TASKSL】OSTCBFREELISTOSTCBNEXT。OSTCBNEXTROSTCBNEXTO統計任務OSTCBPREVNTRRPRPVPR蘆、J、PCOSII是可剝奪型內核,優(yōu)先級最高的任務一旦被時鐘函數或信號量等置于就緒態(tài),就會立即擁有CPU所有權并開始執(zhí)行。PCOSII與LINUX調度法則不同,ITCOSII不支持時間片輪轉調度【2引,另外每個任務的優(yōu)先級不相同并且唯一?!盋OSII的任務調度包括任務級和中斷級兩種,分別由函數OSSCHED和OSINTEXT完成。下面僅分析任務級調度函數OSSCHED。如圖24所示,任務調度都發(fā)生在臨界段代碼區(qū)中中斷關閉,首先是判斷是否在中斷服務程序ISR或調度禁止時調用OSSCHED,如果不是,就從就緒表中找到最高優(yōu)先級的就緒任務,另外還要判斷這個就緒任務是否為當前任務,如果不是當前任務就需要調用函數OSTASKSW進行任務切換,如果這個就緒任務就是當前任務,就直接退出調度函數OSSCHED。肛COSII的任務調度是嚴格按照優(yōu)先級PRIO進行的,肛COSII總是運行優(yōu)先級最高的就緒任務,因此怎樣確定優(yōu)先級最高的就緒任務就非常關鍵了。在LINUX操作系統中,這一調度算法比較復雜,但在LCOSII中卻相當簡單,這主要取決于BCOSII的獨特查表法。如圖25所示,就緒表的每位對應了各個任務的標志,置1表示處于就緒態(tài),清O表示該任務處于等待或者還沒有建立。就緒表有2個變量OSRDYGRP和OSRDYTBL】,其中OSRDYGRP是任務組狀態(tài)變量,每一比特位代表任務組中是否有任務進入就緒態(tài)。如果有任務進入就緒態(tài),OSRDYGRP和OSRDYTBL的相應位6湖北工業(yè)大學碩士學位論文就置1。PCOSII有64個優(yōu)先級,分別取值O“3,可以用圖25左下角的6位二進制表示,高3位“YYY“決定了在OSRDYTBL數組中的第幾個元素,同時也對圃否I退出零界代碼段圖24任務調度函數流程圖應了在OSRDYGRP的第幾位,低3位“XXX”確定了OSRDYTBL數組中對應元素的第幾位。為了說明原理,以優(yōu)先級40為例,優(yōu)先級40用二進制表示為101000,高3位101決定了OSRDYTBL5,低3位000決定了OSRDYTBL5內0BIT的位置。現在要將OSRDYGRP和OSRDYTBL的相應位置位,用數學式表示如下OSRDYGRPIOX20OSRDYTBL5|_0X01由以上的數學式可以看出要想將第M位置1,就需與2M相或。為了方便,ITCOSII把2MMO7的8個值預先裝在數組OSMAPTBL中,如表21所示。7湖北工業(yè)大學碩士學位論文OSRDYGRPOSRDYTBLIOS_LOWEST_PRIO1【0】【1】【2】【3】3【4】【5】【6】【7】最低優(yōu)先級任務IDLETASK任務的優(yōu)先級最高優(yōu)先級任務X765432LO15141312LL109823222120191817163130292827262524Y39383736353433324746454443424140555453525L5049486362616059585756R圖25任務就緒表利用OSMAPTBL,通過優(yōu)先級PRIO來設置OSRDYGRP和OSRDYTBL的數學式如下OSRDYGRPIOSMAPTBLPRIO3OSRDYTBLPRIO3LOSMAPTBLPRIO0X07為了盡快找到優(yōu)先級最高的就緒任務,PCOSII用查表法實現,這個表就是數組OSUNMAPTBFF,詳見參考文獻1。現在要獲知最高優(yōu)先級的就緒任務,可以用如下簡短程序實現YOSUNMAPTBLOSRDYGRPXOSUNMAPTBLOSRDYTBLYOSPRIOHIGHRDYINT8UY20;NSECVADDREND20VADDRSTART20;FORIO;I20I0表示采樣時間超前,S,05。對于SF一05,很顯然,后一種情況不成立。所以只可能SFSHL且S“L05,則SI1SIL05一三,又因為005,根據四舍五入法,第一次采樣時間的計數值改為Z1較合適,另取S,0681一O32,S2O68S,068032O3605,第三次采樣時間的計數值為ZL,且S31041O04,再求S4,如此類推,直到S為止。第F次采樣的理想時間與實際時間的差值,我們定義為同步誤差AE,,則AE,S,痧,當然,這里選擇前一個信號周期的最后采樣點為參考點,這樣被測信號周期的第一個采樣點的同步誤差正好為S,。顯然,對于第I次采樣的同步誤差總有IS,糾O5妒。當待N時,“S矽,事實上這就是整個被測信號的同步誤差,且L“峰050。如果不采用上面S的計算方法,則ACT讓矽或F1一三弦,其中TIL矽為正同步誤差,I1一三渺為負同步誤差。當IN時,正好是NLK或N1一三切,而L脫I和IN1一泐I均遠遠大于O5矽,可見,丁優(yōu)化算法顯著減少了整個信號周期的同步誤差。R優(yōu)化后,采樣周期就變得不是很均勻,也就是說每個丁間可能有一個矽的差距,但是采樣的理想時間與實際時間就更接近了,特別在矽很小就幾乎是同一點。在R優(yōu)化條件下2萬一善Z三一墨一渺等27C一ZL切等晶矽等,而理論周期誤差妒2萬一F2萬一UZ三砌等,所以實際周期誤差和理論周期誤差的偏差矽7一矽S孥,且I氏妒簪IO5妒竽,可見,大大減小了信號周期誤差。55小結本章從理論上推導出了交流采樣正余弦信號的誤差公式,得出誤差C由初相位角口,采樣周期丁,信號周期丁所決定。另外嘗試根據被測信號周期的首尾過零點三角形相似,求出誤差參數R和初相位角口,然后利用理論誤差對被測信號有37湖北工業(yè)大學碩士學位論文效值進行補償。此外,考慮到采樣周期R不均勻,經多次采樣后會產生累積誤差,本文也給出了采樣周期丁的優(yōu)化算法。38湖北工業(yè)大學碩士學位論文61引言第6章系統設計和結果分析本章是系統硬件和系統軟件的設計,以及最后測得結果的數據分析。在系統硬件設計中,主要是電源電路、復位電路、異步串口電路和AD采樣電路的設計。在系統軟件設計中,有采樣驅動和串口驅動程序。最后,結合不同的采樣間隔,運用補償算法與否,得出不同的運算結果。這個結果值,制成表格形式,可直觀地分析和對比,得出重要結論,為以后同步交流采樣的實際工程給出補償算法和實驗依據。62系統硬件設計SAMSUNG公司推出的32位RISC處理器3C2440,是一款高性價比和高性能的嵌入式微處理器。3C2440提供了豐富的硬件資源,包括16KB的數據CACHE、16KB的指令CACHE、內部SRAM、LCD控制器、3通道UART、外部存儲器控制器、具有PWM功能的5通道定時器、8通道10位ADC、60個中斷源、4通道DMA和PLL倍頻器等,這樣可降低系統成本和減少外圍器件。圖61是3C2440的功能引腳。本系統硬件設計包括電源電路、復位電路、UART異步串行接口電路、AD采樣電路。621電源電路設計圖62為電源電路圖。在整個系統中,使用33V直流穩(wěn)壓電源給3C2440供電,外接交流電經過變壓器輸出5V,而后通過LML11733三端穩(wěn)壓集成芯片,在靠近器件的電源引腳處以及各器件的電源和地之間加上了大量濾波電容,以濾除噪聲和提高系統電源的質量。旁邊的二極管是電源指示燈,開關按下接通外界電源時就發(fā)光。622復位電路設計3C2440和HJTAG的復位連在一起,都為NRESET端,這也為了調試方便。當開關按下時,MAX811輸出低電平,系統復位。另外這種芯片也可上電復位,39湖北工業(yè)大學碩士學位論文且復位脈沖寬度大于140MS,是一種可靠性很高的專用復位芯片。如圖63為復位電路。圖61S3C2440的功能引腳圖62電源電路POWERRED623異步串口電路設計RS232是嵌入式應用中較為常見的一種串行通訊協議。3C2440內部集成了三個獨立的異步串行端121,并且都可以用于中斷模式或DMA直接存儲器存儲模湖北工業(yè)大學碩士學位論文圖63復位電路式。串13最高傳輸速率為1152KBPSKILOBITSPERSECOND,每個通用異步收發(fā)串13通道包含2個64位先進先出FIFO隊列。3C2440的串口還支持波特率可編程,可紅外收發(fā),12個停止位,5位8位的數據寬度以及奇偶校驗位。RS232串口通常采用9芯標準接口。RS232C標準所定義的高、低電平信號分別是邏輯“1”指5V15V電平,而邏輯“0”指5V斗15V電平。S3C2440的LVCMOS電路所定義的高、低電平信號分別是邏輯“1“指2V33V電平,而邏輯“0”指OV04V電平。顯然,RS232C和LVCMOS的3C2440間要順利進行通信,電平轉換必不可少。常用的這兩種電平轉換芯片有MAX232、MAX3232等。本系統采用MAX3232芯片完成UART串行接口和3C2440的電平轉換。MAX3232的應用電路如圖64所示。1,D生主VC54圖64異步串行接口電路LO62RSD0O7RCTSOV3RSM0O8RSRTSOOO95LO一624采樣電路設計本系統采樣電路如圖65所示,與函數發(fā)生器的輸出端相連,為交流采樣的被測信號。DC是外加直流電壓,起抬高VI作用,因為3C2440的AD采樣范41湖北工業(yè)大學碩士學位論文圍為033V,VO輸出接3C2440的AIN0端,下面具體分析電路原理圖65采樣電路LM324為集成運算放大器,設LO節(jié)點的電壓為V10,根據“虛斷和“虛短概念,有LK。IF麗IVOCR。61丘蘭匕二旦62一一R47R47尺48將R加R4LR47R481腳代入,解得ZOK在本設計中,DC端直流電壓為2V,號為VO形263系統軟件設計631采樣驅動設計63所以最后輸入到3C2440的采樣電壓信643C2440內部集成了8通道AD轉換器,轉換精度為10位,最大采樣頻率非常高,達500KSPSKILOSAMPLESPERSECOND。本驅動程序的思想是定時器定時時間到即采樣間隔時間,就設置相關寄存器啟動采樣,在采樣中斷中,將采樣數據存入緩沖區(qū),并判斷被測信號的一個周期的采樣是否完成,如果完成了一個周期的采樣就發(fā)送信號量通知任務已有采樣結果,這時會發(fā)生中斷級的任務切換,進入數據處理任務中。數據處理任務負責將采樣的數據進行處理,將測得的最終結果存入新的緩沖區(qū),以便串口發(fā)送。圖66為采樣的程序流程圖。42湖北工業(yè)大學碩士學位論文,C回圖66采樣流程圖另玳圖67為采樣時間的優(yōu)化流程圖,其中ZINT等,三等INT等,矽為定時器的計數周期,丁為采樣周期采樣間隔。是設置的最大采樣點數,超過該值就結束采樣。同時,當一個被測信號周期的采樣點結束后,就發(fā)送信號量,這時會進行中斷級的任務切換。切換到數據處理任務PROCESS中,數據處理任務的流程圖TASK見圖68所示。其中需要注意的是在信號量未到時,任務不是靜止死循環(huán)的等待,而是去執(zhí)行其它就緒態(tài)的任務,等待是形象的說法。另外,這里的N是單個被測信號周期的采樣總點數。從以上結構流程圖看,完成一次采樣并沒有立即發(fā)送信號量,而是等到一個被測信號周期全部采完后才發(fā)送信號量,轉交給采樣任務對所采數據進行處理。可以看出,采樣驅動和采樣時間優(yōu)化實現較簡單,計算機工作量不大。632串口驅動設計在串行通訊中,需要一個緩沖區(qū)來解決外部設備的處理速度和CPU速度不匹配問題。發(fā)送數據時,先把數據寫到緩沖區(qū)中,然后程序會自動地把數據逐個取出并往外串口發(fā)送。接收數據時,先將這些預收的數據存于緩沖區(qū),直到收到若干個滿43當湖北工業(yè)大學碩士學位論文C麴D圖67采樣時間的優(yōu)化流程圖C回圖68數據處理任務流程圖湖北工業(yè)大學碩士學位論文足一定數量的字節(jié)后才交給CPU處理。在實際工程中,需要兩個緩沖區(qū)發(fā)送緩沖區(qū)和接收緩沖區(qū)。當然,這里的緩沖區(qū)一般定義為數組。在GCOSII內核中,信號量是常用的通信與同步的機制,在串121通訊中,可引入信號量對緩沖區(qū)發(fā)送和緩沖區(qū)接收的操作進行同步。當然,這里用到了數據發(fā)送信號量和數據接收信號量。用信號量的串口操作過程如下用戶任務想在緩沖區(qū)中寫數據,但如果緩沖區(qū)滿,任務就在等待信號量,但同時CPU可以不空等待而去運行別的任務,直到信號量到來,這樣可以顯著提高CPU的工作效率。待中斷服務子程序ISR從緩沖區(qū)讀走數據后就立即喚醒此睡H民的任務,然后操作系統就會進行任務切換,去執(zhí)行剛才等待信號量的任務;用戶任務讀數據時,如果緩沖區(qū)為空,也可以等待信號量也叫在信號量上睡眠,待外部設備有數據存進緩沖區(qū)就喚醒信號量,同樣操作系統也會進行任務切換,去執(zhí)行等待信號量的任務,進行讀操作。接收中斷發(fā)生時,中斷服務子程序ISR從串口UART的接收緩沖器中讀出收到的字節(jié),并存入接收緩沖區(qū),待到接收的字節(jié)數滿足要求,就發(fā)送信號量進行任務切換,執(zhí)行用戶讀操作任務程序。在這個過程中,同時查詢緩沖區(qū)是否已滿,如果緩沖區(qū)已滿,就放棄接收到的字符,即不進行接收。這里需要注意的是,無論是接收緩沖區(qū)還是發(fā)送緩沖區(qū),其大小應該合理設置,一方面可以降低數據丟失的幾率,另一方面又可以避免存儲空間的不必要浪費。發(fā)送數據時,發(fā)送緩沖區(qū)的大小和發(fā)送信號量的初始值設成一樣,其含義是表示發(fā)送緩沖區(qū)是空的,如果在發(fā)送過程中,發(fā)送緩沖區(qū)已滿,用戶任務就在信號量上睡眠等待信號量。如果發(fā)送緩沖區(qū)沒有滿,有發(fā)送空間,用戶任務就可以向發(fā)送緩沖區(qū)中寫入數據。如果寫入的字節(jié)是發(fā)送緩沖區(qū)的首字節(jié),那么就允許發(fā)送中斷。這樣,發(fā)送中斷服務子程序ISR從發(fā)送緩沖區(qū)中取出最早寫入的字節(jié),并發(fā)送至UART,這個發(fā)送串口的操作將會觸發(fā)下一次發(fā)送中斷,如此循環(huán)下去,一直到發(fā)送緩沖區(qū)的最后一個字節(jié)被取走并成功發(fā)送,此時發(fā)送中斷需要重新關閉。在中斷服務子程序ISR向串口UART輸出的同時,給任務發(fā)信號量,發(fā)送任務就會根據信號量計數值大小判斷發(fā)送緩沖區(qū)是否可用。以下是相關的串口通訊函數有UARTINITINTBAUD,INTNUMBERSERIAL用于初始化指定的串行13,包括對指定的串行口設定串口通信的波特率及相關寄存器的設置。UARTSENDBYTEUNSIGNEDCHARDATA向己選定的串行121發(fā)送字節(jié)單位的數據。UARTGETBYTE接收已選串行口的數據,并設定超時時間,如果等待超時,返回FALSE。另外,使用前需先建立串行口的兩個信號量,分別用于發(fā)送和接收。45湖北工業(yè)大學碩士學位論文圖69為串口的發(fā)送程序流程圖,同樣在等待信號量的時間里去執(zhí)行其它就緒態(tài)的任務。C圃64實驗數據VQ困圖69串口發(fā)送流程圖在本實驗中,我們用函數發(fā)生器產生標準的正弦電壓“FSIN2萬50T作為被測對象,顯然信號頻率廠為50HZ,幅度U。為1V,用移植了TCOSII的微處理器3C2440對標準信號進行實時采樣,通過測得結果就可算出信號的有效值。然后把這個有效值與理想有效值進行比較,就可知道測量誤差。表61是采樣時間間隔采樣周期丁為005MS,采用和沒有采用以上減小誤差的改進算法時,測出的有效值。表61AT005MS、優(yōu)化和不優(yōu)化下的測量結果MV第N周期傳統方法不計誤差改進方法誤差補償1687710268771136877094688709廣71L0688668771076887118687711968771010687709湖北工業(yè)大學碩士學位論文表62是采樣I日J隔時間丁為05MS,采用和沒有采用以上減小誤差的改進算法時,測出的有效值。表62AT05MS、優(yōu)化和不優(yōu)化下的測量結果MY第N周期傳統方法不計誤差改進方法誤差補償16676862667687366768746686875668686666768676686878667686966768710667687表63是采樣間隔時間丁為3MS,采用和沒有采用以上減小誤差的改進算法時,測出的有效值。表63AT3MS、優(yōu)化和不優(yōu)化下的測量結果MY第N周期傳統方法不計誤差改進方法誤差補償1750743274974237497424750743574874367517437750742875074297497431074874365結果分析從以上測量結果可以看出,通過優(yōu)化算法,以及減小采樣時間間隔,能提高測量精度。標準信號的有效值為U占。0707V707聊V2丁為005MS時采用優(yōu)化算法的測量誤差為47湖北工業(yè)大學碩士學位論文CQ竺二業(yè)二QZX1000282905658707AT為005MS時沒有采用優(yōu)化算法的測量誤差為AC68768870710028289一26874707丁為05MS時采用優(yōu)化算法的測量誤差為AC686687707100一28289一29703707丁為05MS時沒有采用優(yōu)化算法的測量誤差為AC667668707100一55163一56577707丁為3MS時采用優(yōu)化算法的測量誤差為AC“7427437071004950550919707丁為3MS時沒有采用優(yōu)化算法的測量誤差為ACZ蘭Z12ZQ2X1005799262235707至此,可以得出如下重要結論1補償算法能有效減小測量誤差,提高測量精度。但是影響測量誤差的主要因素是采樣的時間間隔,補償算法只能在合適的采樣時間間隔條件下,更進一步地提高測量精度。2在采樣時間間隔選取上,要盡可能地與被測信號周期成倍數關系,這樣可以提高測量精度。66小結本章主要對系統硬件軟件進行了設計,并對實驗測得數據進行了分析和總結。在系統硬件設計中,AD采樣電路是關鍵,2V直流電壓要求非常穩(wěn)定且紋波較小,否則很影響測量精度。在系統軟件設計中,補償算法和丁優(yōu)化是編寫采樣驅動的依據。從實驗結果看,在一定的采樣周期下,補償算法能有效地減小測量誤差,提高測量精度。但采樣周期過大,補償算法效果不明顯。另外,要盡可能地選取采樣時間間隔與被測信號周期成倍數關系,這樣可以提高測量精度。湖北工業(yè)大學碩士學位論文第7章總結與展望PCOSII雖然比較適合于嵌入式操作系統的應用開發(fā),但PCOSII也有一些缺點和不足它僅僅是一個內核,只提供了操作系統的基本功能,沒有用戶接口、網絡功能等,特別在互聯網發(fā)達的今天沒有網絡功能是不能接受的,因此PCOSII內核離廣泛應用還有一定距離;同時PCOSII不是針對特定的硬件,要實現在特定的硬件上運行還必須實現相應的移植程序,這也帶來移植的難度。本文就基于TCOSII的交流采樣研究方面所作的工作有1對實時內核PCOSII進行了詳細的分析,特別對內核的關鍵函數如關中斷函數OSENTERCRITICAL、開中斷函數OSEXITCRITICAL、任務切換函數OSJASK_SW和運行優(yōu)先級最高的就緒態(tài)任務的函數OSSTARTHIGHRDY等作了詳細的分析,并結合目標板的資源對這些函數進行了編寫,這是移植PCOSII最重要的工作,也是最容易出問題的地方。2介紹了ARM9的體系架構,特別對緩存CACHE和MMU的功能和原理進行了分析,編寫了實現虛存和緩存的代碼,提高了整個嵌入式系統快速和高效的性能。3本文從理論上探討了電壓同步交流采樣有效值的誤差公式,提出了一種誤差補償方法。另外,對采樣周期誤差也進行了分析,并給出了采樣周期誤差的優(yōu)化算法。4在ADSL2的開發(fā)環(huán)境下,用ARMULATOR和HJTAG仿真調試和測試內核,編寫了串口驅動和實時采樣驅動程序。通過串口超級終端將最終測得結果顯示在PC機上,分析數據并驗證了誤差補償算法的正確性和可行性。由于初次接觸嵌入式操作系統,操作系統的移植花了很多時間,最后在有經驗的同學的指導下才得以調試通過。雖然本課題取得了較好結果,但仍有一些不足需要繼續(xù)研究1在本實驗中,我們用的是函數發(fā)生器產生的標準正弦信號作為被測信號,被測信號的頻率都選用50HZ,對于不同頻率的信號本文沒有進行實驗。2本文只對正余弦信號進行了測試和驗證,對于不規(guī)則信號的有效值測量,沒有作進一步探討。49湖北工業(yè)大學碩士學位論文參考文獻1JEANJLABROSSE著,邵貝貝譯嵌入式實時操作系統此OSII第二版M,北京航空航天大學出版社,2003,1561582鄭巍大型自由和開源軟件進化研究J,計算機工程與設計,2008,291113WARRENSACK,FRAN90ISED6TIENNE,NICOLASDUCHENEAUT,JEANMARIEBURKHARDT,DI1ANMAHENDRANANDFLOREBARCELLINIAMETHODOLOGICALFRAMEWORKFORSOCIOCOGNITIVEANALYSESOFCOLLABORATIVEDESIGNOFOPENSOURCESOFTWAREJCOMPUTERSUPPORTEDCOOPERATIREWORKCSCW,SPRINGERNETHERLANDS,2006,152292504EHARUVY,APRASADANDSPSETHIHARVESTINGALTRUISMINOPENSOURCESOFTWAREDEVELOPMENTJ,JOURNALOFOPTIMIZATIONTHEORYANDAPPLICATIONS,SPRINGERNETHERLANDS,2003,1183814165DANIELPBOVETANDMARCOCESATI深入理解LINUX內核M,中國電力出版社,20016WRICHARDSTEVENS著,尤晉元譯UNIX環(huán)境高級編程M,機械工業(yè)出版社,20027魏忠,蔡勇,雷紅衛(wèi)嵌入式開發(fā)詳解M北京電子工業(yè)出版社,20038沈緒榜,何立民主編2001嵌入式系統及單片機國際學術交流會論文集,北京航空航天大學出版社,2001年10月9張騰嵌入式實時操作系統內核的研究與實現M,北京郵電大學,200110李仕勇等多任務操作系統在嵌入式系統開發(fā)中的應用J,北方交通大學報,2002,26798211LUC,STANKOVIEJA,TAOG,SONSH,MARLEYMPERFORMANCESPECIFICATIONSANDMERICSFORADAPTIVEREALTIMESYSTEMSIEEEREALTIMESYSTEMSSYMPOSIUM,ORLANDO,FL,DECEMBER2000,273012JCHENYANGLU,JOHNASTANKOVIC,SANGHSONANDGANGTAOFEEDBACKCONTROLREALTIMESCHEDULINGFRAMEWORK,MODELING,ANDALGORITHMSJ,SPRINGENETHERLANDS2002,2385126133ABDELZAHERTF,LUCMODELINGANDPERFORMANCECONTROLOFINTERNETSERVERS,39THIEEECONFERENCEONDECISIONANDCONTROL,SYDNEY,AUSTRALIA,DECEMBER2000,2234一一223914J魏立峰,于海斌一種基于自適應控制的軟實時調度算法研究J,系統仿真學報,2004,16476076415羅玎玎,趙海,孫佩剛等RM算法的運行時開銷研究與算法改進J,通信學報,2008,292798616涂剛,陽富民,盧炎生基于至少滿足弱硬實時限制的調度算法J,華中科技大學學報自然科學版,2006,322676950湖北工業(yè)大學碩士學位論文17洪艷偉,賴娟一種硬實時調度算法的可行性判定及實現U,計算機與信息技術,2006,62118MARKRHECKMAN,CUIZHANG,BRIANRBECKERTOWARDSAPPLYINGTHECOMPOSITIONPRINCIPLETOVERIFYAMICROKERNELOPERATINGSYSTEM,LECTURENOTESINCOMPUTERSCIENCE,SPRINGERBERLINORHEIDELBERG,1996,1125235250193TIANZHOUCHEN,WEIHUANDYILIANPOWEREFFICIENTMICROKERNELOFEMBEDDEDOPERATINGSYSTEMONCHIP,LECTURENOTESINCOMPUTERSCIENCE,SPRINGERBERLINORHEIDELBERG,2006,418647347920KUNYUANHSIEH,YUNGCHIALIN,CHIENCHINHUANGANDJENQKUENLEEENHANCINGMICROKERNELPERFORMANCEONVLIWDSPPROCESSORSVIAMULTISETCONTEXTSWITCHJ,JOURNALOFSIGNALPROCESSINGSYSTEMS,SPRINGERNEWYORK,2008,51
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025車輛貸款抵押合同范本
- 2025年度農副產品食品安全風險評估合同3篇
- 2025年度農業(yè)機械出租與農村電商發(fā)展合作合同3篇
- 二零二五年度大米市場調研與分析服務合同3篇
- 2025二手設備采購合同范本
- 2025年度公司與個人合作推廣健康食品合作協議3篇
- 2025年度養(yǎng)豬場養(yǎng)殖場與電商平臺合作銷售合同3篇
- 2025年度建筑公司合同制員工勞動合同(綜合保障)3篇
- 二零二五年度公路貨物運輸合同風險控制與應急處理協議3篇
- 二零二五年度體育賽事組織兼職教練員聘用協議3篇
- 商業(yè)街價格策略與收益預測
- 浙江省杭州市2023-2024學年六年級上學期期末科學試卷(含答案)1
- 門診護士課件教學課件
- 公文寫作常見錯誤
- 濟南大學《線性代數與空間解析幾何》2023-2024學年第一學期期末試卷
- 《預防未成年人犯罪》課件(圖文)
- 2024年浙江省能源集團應屆生招聘高頻難、易錯點500題模擬試題附帶答案詳解
- ☆問題解決策略:直觀分析 教案 2024-2025學年北師大版七年級數學上冊
- 四種“類碰撞”典型模型研究(講義)(解析版)-2025年高考物理一輪復習(新教材新高考)
- 青島版科學三年級上冊全冊課件教材
- Project項目管理(從菜鳥到實戰(zhàn)高手)
評論
0/150
提交評論