《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > μC/-II在數(shù)字微波監(jiān)控系統(tǒng)中的應(yīng)用
μC/-II在數(shù)字微波監(jiān)控系統(tǒng)中的應(yīng)用
摘要: 本文給出一種數(shù)字微波設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì),該系統(tǒng)引入μC/OS-II之后,系統(tǒng)的開發(fā)效率得到提高,整個系統(tǒng)的健壯性得到增強(qiáng),文中對軟件設(shè)計(jì)應(yīng)用中遇到的關(guān)鍵問題作了深入討論并給出了相應(yīng)的解決方案。
關(guān)鍵詞: μC/OS-II 微波監(jiān)控 LPC2214
Abstract:
Key words :

  隨著嵌入式系統(tǒng)開發(fā)的普及和深入,在更加復(fù)雜的應(yīng)用中傳統(tǒng)軟件開發(fā)手段難以滿足需求,嵌入式操作系統(tǒng)在開發(fā)中扮演著越來越重要的角色,已經(jīng)被廣泛應(yīng)用于手機(jī)、移動計(jì)算機(jī)設(shè)備、網(wǎng)絡(luò)設(shè)備和工控仿真等領(lǐng)域。嵌入式操作系統(tǒng)μC/OS-II源碼是公開的,而且它是可移植、可固化、可裁減及可剝奪型的多任務(wù)實(shí)時內(nèi)核,可用于各類8位、16位和32位單片機(jī)和DSP,目前得到廣泛應(yīng)用。本文給出一種數(shù)字微波設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì),該系統(tǒng)引入μC/OS-II之后,系統(tǒng)的開發(fā)效率得到提高,整個系統(tǒng)的健壯性得到增強(qiáng),文中對軟件設(shè)計(jì)應(yīng)用中遇到的關(guān)鍵問題作了深入討論并給出了相應(yīng)的解決方案。 

  1 數(shù)字微波設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì) 

  微波通信是一種利用微波傳輸信息的通信手段,數(shù)字微波采用數(shù)字信號處理技術(shù),利用微波信道傳輸數(shù)字信號,以下給出一種數(shù)字微波通信系統(tǒng)中監(jiān)控系統(tǒng)的設(shè)計(jì)。由兩個端站組成一條微波鏈路,每個端站含一個室內(nèi)單元IDU(In-Door Unit)、一個室外單元ODU(Out-Door Unit)、連接室內(nèi)單元和室外單元的同軸電纜、以及微波天線。本文主要討論IDU監(jiān)控部分CPU相關(guān)內(nèi)容的軟硬件設(shè)計(jì)。 

  1.1 微波監(jiān)控IDU部分硬件設(shè)計(jì) 

  IDU組成框圖如圖1所示,主要由業(yè)務(wù)接口、輔助業(yè)務(wù)、復(fù)分接、微波幀分復(fù)接、中頻調(diào)制解調(diào)、中頻分合路器、電源、CPU及相關(guān)接口組成。 

IDU組成框圖

  主業(yè)務(wù)數(shù)據(jù)通過業(yè)務(wù)接口電路復(fù)接后,與公務(wù)、輔助數(shù)據(jù)信號等一起進(jìn)入微波幀復(fù)接模塊,復(fù)接成微波幀信號,由調(diào)制模塊完成調(diào)制,通過中頻分合路器送往ODU。從ODU送來的中頻信號經(jīng)過中頻分合路器送往解調(diào)模塊解調(diào)出數(shù)據(jù),送到微波幀分接電路,分接出主業(yè)務(wù)、公務(wù)以及輔助數(shù)據(jù)信息,通過主業(yè)務(wù)接口電路分接出各支路主業(yè)務(wù)數(shù)據(jù)。CPU對所傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)進(jìn)行監(jiān)視和控制,監(jiān)視所傳數(shù)據(jù)的狀態(tài)、性能等信息,可設(shè)置所傳數(shù)據(jù)的各種參數(shù),通過輔助業(yè)務(wù)接口可提取和插入各種控制信息。 

  CPU采用PHILIPS公司的32位ARM芯片LPC2214,該芯片接口豐富,硬件設(shè)計(jì)時CPU相關(guān)接口完成功能如下:輸入接口提供按鍵設(shè)置掃描電路,輸出接口通過液晶、告警燈及蜂鳴器輸出信息,通過I2C接口CPU可實(shí)現(xiàn)對串行E2PROM、時鐘芯片的存取,CPU本身提供SPI接口,通過該接口實(shí)現(xiàn)本端與遠(yuǎn)端控制信息的交換。串行接口提供一種監(jiān)控手段,可實(shí)現(xiàn)CPU與PC機(jī)的通信,完成狀態(tài)讀取和各種命令的設(shè)置,以太網(wǎng)接口通過擴(kuò)展以太網(wǎng)接口芯片實(shí)現(xiàn),通過以太網(wǎng)接口建立與網(wǎng)管中心的通信,可實(shí)現(xiàn)網(wǎng)絡(luò)化的管理。OOK(On/Off—Keying)調(diào)制解調(diào)電路完成IDU與ODU之間的通信,通過該電路,IDU可對ODU進(jìn)行設(shè)置發(fā)功率、收發(fā)頻率、監(jiān)視ODU的工作狀態(tài)等。 

  1.2 軟件結(jié)構(gòu) 

  軟件總體分為應(yīng)用程序和μC/OS-II兩部分,應(yīng)用程序是用戶代碼部分,采用C語言編寫,完成對整個系統(tǒng)的監(jiān)控;μC/OS-II為一種嵌入式多任務(wù)實(shí)時操作系統(tǒng),其大部分程序使用C語言編寫,還有一小部分和處理器密切相關(guān)的代碼使用匯編語言編寫,μC/OS-II包括了三部分,即μC/OS-II核心代碼、配置代碼和移植代碼。 

  其中,核心代碼:包括10個C程序文件和一個頭文件,主要實(shí)現(xiàn)了系統(tǒng)調(diào)度、任務(wù)管理、內(nèi)存管理、信號量、消息郵箱和消息隊(duì)列等系統(tǒng)功能,而這些功能的實(shí)現(xiàn)與處理器類型無關(guān)。 

  配置代碼:包括2個頭文件,用于裁剪和配置μC/OS-II,這部分代碼根據(jù)用戶的實(shí)際需求來配置μC/OS-II系統(tǒng)。 

  移植代碼:這部分主要包括1個匯編文件、1個C程序文件和一個頭文件,這部分根據(jù)具體的處理器移植μC/OS-II系統(tǒng)的需要修改,它和處理器關(guān)系密切。 

  2 μC/OS-II在微波監(jiān)控系統(tǒng)中的應(yīng)用 

  2.1 應(yīng)用程序中任務(wù)的設(shè)計(jì)與劃分 

  根據(jù)實(shí)際的需要,應(yīng)用軟件劃分為7個任務(wù):液晶顯示、按鍵接收和告警、時間標(biāo)志處理、遠(yuǎn)端信息處理、數(shù)據(jù)處理、串口任務(wù)處理,如圖2所示。

應(yīng)用程序中任務(wù)的劃分

圖2 應(yīng)用程序中任務(wù)的劃分 

  (1) Task_LCD_OP:主要是處理菜單的顯示,根據(jù)不同的菜單顯示設(shè)備的相關(guān)信息,并且完成將設(shè)置數(shù)據(jù)保存到公共變量中。 

 ?。?) Task_KEY:主要完成外部按鍵信號的掃描,按照不同的按鍵轉(zhuǎn)換為不同的編碼,并把其值保存到公共變量中。 

 ?。?) Task_TIME_FLG:實(shí)現(xiàn)設(shè)置時間標(biāo)志,以使其它任務(wù)完成定時任務(wù),因?yàn)橛性S多的定時任務(wù),所以設(shè)立了一個單獨(dú)的任務(wù)來設(shè)置或取消時間標(biāo)志。 

  ?。?) Task_SPI_OP:通過SPI接口完成遠(yuǎn)端信息交換處理以及數(shù)據(jù)鏈路各接口環(huán)回等設(shè)置。 

 

  (5) Task_DATA_OP:主要完成網(wǎng)絡(luò)數(shù)據(jù)管理、AD轉(zhuǎn)換、公務(wù)的控制,控制微波接口、時鐘芯片的設(shè)置和讀取,完成誤碼率的計(jì)算以及對串行E2PEOM存儲芯片數(shù)據(jù)的存取。 

 ?。?) Task_COMM1:主要是完成出串口與其它設(shè)備間通信數(shù)據(jù)的收發(fā)。 

 ?。?) Task_ODUCOMM0:主要是IDU和ODU設(shè)備的通信。 

  2.2 任務(wù)的創(chuàng)建 

  經(jīng)過分析和設(shè)計(jì)之后,就可以使用μC/OS- II所提供的函數(shù)創(chuàng)建任務(wù),這里給出了如何創(chuàng)建液晶顯示任務(wù)的實(shí)例,其它任務(wù)的創(chuàng)建與之類似,其過程如下: 

  OSTaskCreate (Task_LCD_OP,(void *)0, &LCDopreate[TaskStkLengh - 1],8); 

  Task_LCD_OP是要創(chuàng)建的任務(wù);(void *)0是傳遞給任務(wù)的參數(shù),因?yàn)檫@里所創(chuàng)建的任務(wù)沒有參數(shù),所以其值為0;&LCDopreate[TaskStkLengh - 1]是分配給任務(wù)的堆棧,這在程序中是事先定義好的,最后一個數(shù)字8是分配給該任務(wù)的優(yōu)先級。 

  2.4 任務(wù)優(yōu)先級的劃分 

  為了使整個系統(tǒng)的實(shí)時性能夠得到滿足,所以要以任務(wù)的緊迫性、關(guān)鍵性、頻繁性和中斷的重要性等為依據(jù),對不同的任務(wù)安排不同優(yōu)先級別。在系統(tǒng)優(yōu)先級的分配上,μC/OS-II系統(tǒng)級保留了0和1,用戶程序任務(wù)優(yōu)先級從2開始,最低優(yōu)先級定義為12。 

  在該監(jiān)控系統(tǒng)中,任務(wù)不同,對實(shí)時性要求也不同,通過定時任務(wù)來控制。定時任務(wù)劃分為20ms到5s多個時間級別,在同一個任務(wù)中可以再定時地處理一些事務(wù)。其中,單獨(dú)設(shè)置了一個任務(wù)Task_TIME_FLG來處理這些時間等級的劃分和管理,由于它的運(yùn)行涉及到其它任務(wù)的時間標(biāo)志,是一個關(guān)鍵任務(wù),所以必須將其運(yùn)行優(yōu)先級設(shè)置為用戶程序的最高級別。系統(tǒng)中除了對設(shè)備進(jìn)行設(shè)置外,其余時間主要通過串行接口進(jìn)行信息交互,也是較為重要和緊迫的,這一工作由串口1來承擔(dān),所以在設(shè)置Task_COMM1的優(yōu)先級次之;其次是Task_ODUCOMM0;Task_DATA_OP數(shù)據(jù)操作任務(wù)對實(shí)時性要求不高,級別隨之降低;Task_SPI_OP任務(wù)因其數(shù)據(jù)量小,故不是緊迫任務(wù);Task_KEY按鍵任務(wù)、Task_LCD_OP液晶顯示是實(shí)現(xiàn)人機(jī)交互的,所以實(shí)時性要求也比較低。 

  從以上分析可以把任務(wù)的優(yōu)先級進(jìn)行如下分配:Task_TIME_FLG為2,Task_COMM1為3,Task_ODUCOMM0為4,Task_DATA_OP為5,Task_SPI_OP為6,Task_KEY為7,Task_LCD_OP為8。 

  2.5 任務(wù)的調(diào)度 

  μC/OS-II調(diào)度的依據(jù)是任務(wù)就緒隊(duì)列表,系統(tǒng)從處于就緒隊(duì)列的任務(wù)中選擇一個優(yōu)先級最高的來運(yùn)行,它可以管理多達(dá)64個任務(wù)。對于多任務(wù)的管理,μC/OS- II 是通過調(diào)度器完成。其中任務(wù)級的調(diào)度是由函數(shù)OSSched()完成, 而中斷級的調(diào)度是由函數(shù)OSIntExiT()完成。 

  本系統(tǒng)的任務(wù)中,Task_TIME_FLG時間標(biāo)志處理任務(wù)優(yōu)先級最高,運(yùn)行也最頻繁,它和其它任務(wù)切換是屬于普通的任務(wù)切換,而Task_COMM1和Task_ODUCOMM0的任務(wù)切換是屬于中斷級的切換,只有在發(fā)生中斷時才切換,正常運(yùn)行時和普通任務(wù)的切換方式一樣。其余任務(wù)的切換都作為普通切換方式處理。在任務(wù)切換過程中如果當(dāng)前任務(wù)需要延時判斷,為保證其它任務(wù)的正常運(yùn)行,可通過調(diào)用函數(shù)OSTimeDly(2)掛起當(dāng)前任務(wù),其中鍵顯部分有三級菜單,每一級菜單又有許多選項(xiàng),為了提高按鍵掃描的實(shí)時性,在進(jìn)入每一級菜單后必須調(diào)用該函數(shù)掛起當(dāng)前任務(wù),并掃描有無按鍵,如有則執(zhí)行對應(yīng)處理程序,沒有按鍵則把自己掛起,直到有按鍵方可退出。μC/OS-II如此處理,程序不會死等,按鍵和菜單顯示配合很協(xié)調(diào),只要有按鍵就能得到及時處理。 

  2.6 中斷的設(shè)置與使用 

  在ARM7體系的CPU中,最多可以有32個中斷源。對每個具體的中斷源,可以將其定義為快速FIQ中斷,使其具有最高的優(yōu)先級;也可以定義為向量IRQ中斷,使其具有中等優(yōu)先級,但向量IRQ的總數(shù)不能超過16個。μC/OS-II本身使用一個定時中斷源作為系統(tǒng)節(jié)拍中斷。 

   μC/OS-II響應(yīng)中斷的過程:當(dāng)系統(tǒng)接收到中斷請求后,并且CPU處于中斷開放狀態(tài),系統(tǒng)就會終止當(dāng)前運(yùn)行的任務(wù),按照中斷向量的指向運(yùn)行中斷服務(wù)子程序;當(dāng)中斷運(yùn)行結(jié)束后,系統(tǒng)就會返回到被中止的任務(wù)繼續(xù)運(yùn)行,或者轉(zhuǎn)向運(yùn)行另一個更高優(yōu)先級的就緒任務(wù)。 

 

  本系統(tǒng)中使用了兩個定時中斷源、兩個串口中斷源、一個I2C中斷源。μC/OS-II中斷的設(shè)置和初始化由target.c中的TargetInit函數(shù)完成,通過該函數(shù)實(shí)現(xiàn)了串口、I2C和定時中斷的初始化設(shè)置。其中VICInit實(shí)現(xiàn)過程如下,將中斷服務(wù)子程序的地址寫到相應(yīng)的中斷向量寄存器(VICVectAddrx),并從相應(yīng)的中斷向量控制寄存器(VICVectCntlx)選中相應(yīng)的中斷,將其啟用。當(dāng)CPU接收到中斷請求就能找到對應(yīng)中斷服務(wù)程序的地址,并轉(zhuǎn)到中斷服務(wù)程序去運(yùn)行。 

  2.7 堆棧的設(shè)置與使用 

  堆棧是依據(jù)“后進(jìn)先出(LIFO)”原則組織的連續(xù)存儲空間。為滿足任務(wù)切換、響應(yīng)中斷以及存儲任務(wù)私有數(shù)據(jù)的需要,每個任務(wù)都配有自己的堆棧。 

  由于LPC2214的片內(nèi)Flash是256KB,片內(nèi)RAM是16KB,根據(jù)需要CPU沒有擴(kuò)展外部閃存,故要求代碼精練,RAM分配一定要合理。尤其是在液晶顯示任務(wù)中,由于顯示的菜單項(xiàng)目較多,因此任務(wù)之間切換增加了RAM的需求。如果每個任務(wù)堆棧開辟過小,任務(wù)切換時就會出現(xiàn)私有數(shù)據(jù)丟失,堆棧溢出直至程序運(yùn)行出錯;反之堆棧設(shè)置過大,就會使內(nèi)存RAM空間緊張,因此設(shè)置堆棧空間必須適中。本系統(tǒng)中開始設(shè)置顯示任務(wù)堆棧大小為64個字,調(diào)試運(yùn)行中發(fā)現(xiàn)進(jìn)入多級菜單時會出現(xiàn)程序死鎖的現(xiàn)象,擴(kuò)大對應(yīng)任務(wù)堆棧空間問題就得到解決。 

  3 軟件的調(diào)試環(huán)境與下載 

  該系統(tǒng)需要建立ADS1.2集成仿真環(huán)境,使用了廣州周立功單片機(jī)發(fā)展有限公司提供的專用工程模板。如果硬件沒有擴(kuò)展外部存儲器,就使用LPC2100的工程模板;否則使用LPC2200的工程模板。在調(diào)試過程中選用DebugInFLASH模式燒寫調(diào)試;軟硬件調(diào)試完成,可選用RelInFlash模式燒寫,后一種燒寫方式會加密芯片,使之無法二次燒寫;如果加密之后需要重新燒寫芯片,就必須使用ISP進(jìn)行解密之后方可燒寫,調(diào)試程序時一定要注意這點(diǎn)。 

  4 結(jié)束語 

  μC/OS-II應(yīng)用于數(shù)字微波監(jiān)控系統(tǒng)軟件開發(fā)之后,系統(tǒng)的軟件結(jié)構(gòu)更加簡潔實(shí)用,系統(tǒng)的實(shí)時性和穩(wěn)定性得到提高,設(shè)備在實(shí)際應(yīng)用中表現(xiàn)穩(wěn)定可靠,并取得一定的經(jīng)濟(jì)效益,μC/OS-II在嵌入式系統(tǒng)中具有廣泛的應(yīng)用推廣價(jià)值。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲人成在线观看| 久久精品99无色码中文字幕 | 伊人成综合网伊人222| 国产精品网站视频| 欧美性猛交99久久久久99按摩| 欧美精品亚洲一区二区在线播放| 女主播福利一区| 欧美大片在线观看一区| 欧美xart系列在线观看| 免费视频一区二区三区在线观看| 久久中文欧美| 欧美xxx成人| 欧美精品在线观看| 欧美日韩高清区| 欧美日韩国产免费| 欧美日韩亚洲一区二区| 欧美三区在线观看| 国产精品免费观看视频| 国产精一区二区三区| 国产欧美日韩视频一区二区三区| 国产精品亚洲综合天堂夜夜| 国产乱码精品一区二区三区五月婷| 国产欧美日韩一级| 国产在线欧美| 在线看片欧美| 亚洲精品欧美在线| 一区二区三区四区国产| 亚洲永久免费av| 久久国产主播精品| 亚洲日本中文字幕| 一区二区三区精品视频在线观看| 亚洲一区二区三区视频播放| 午夜精品久久99蜜桃的功能介绍| 欧美在线黄色| 美国成人直播| 欧美日韩另类一区| 国产精品视频999| 国产一二精品视频| 亚洲国产高清自拍| 一本久道久久综合婷婷鲸鱼| 亚洲欧美日韩国产中文在线| 久久黄色小说| 99视频有精品| 欧美一级大片在线观看| 卡通动漫国产精品| 欧美日韩国产麻豆| 国产日韩精品在线| 亚洲国产日韩欧美在线动漫| 亚洲视频精选| 亚洲国产成人av| 国产精品99久久久久久久vr| 欧美一级久久久| 欧美v国产在线一区二区三区| 欧美日韩精品免费看| 国产日韩欧美一区二区三区在线观看| 永久免费视频成人| 在线午夜精品| 亚洲国产美女| 亚洲欧美中文日韩在线| 欧美成年人在线观看| 国产精品国产三级国产专播品爱网| 国产欧美一区二区三区另类精品 | 久久久亚洲影院你懂的| 欧美日产国产成人免费图片| 国产精品视屏| 亚洲国产精品一区二区第一页| 亚洲天堂成人在线视频| 亚洲第一黄色| 亚洲欧美美女| 欧美激情精品久久久久| 国产日韩在线亚洲字幕中文| 日韩一级免费| 亚洲国产精品成人va在线观看| 亚洲男人天堂2024| 欧美成人性生活| 欧美三区不卡| 欧美激情亚洲| 国产日韩欧美一区二区| 日韩视频在线观看国产| 久久爱www| 午夜视频在线观看一区二区三区 | 性色av一区二区三区| 99热在这里有精品免费| 久久久久久成人| 国产精品va在线| 亚洲精品久久久久久久久| 欧美在线看片| 午夜精品视频一区| 欧美精品尤物在线| 在线免费观看成人网| 欧美一区二区免费观在线| 亚洲一区二区三区成人在线视频精品| 免费亚洲网站| 国产亚洲一区二区在线观看| 亚洲午夜精品久久久久久app| 一本大道久久a久久综合婷婷| 久久亚洲综合网| 国产日韩亚洲欧美综合| 妖精视频成人观看www| 日韩视频免费在线观看| 免费一级欧美片在线观看| 国产一二三精品| 午夜久久电影网| 欧美一区二区三区播放老司机| 欧美日韩中文字幕日韩欧美| 亚洲精品黄色| 亚洲人成网站777色婷婷| 久久婷婷国产综合精品青草| 国产亚洲精品一区二555| 亚洲你懂的在线视频| 午夜在线视频观看日韩17c| 国产精品www994| 国产精品99久久久久久宅男| 一区二区三区.www| 欧美日韩的一区二区| 亚洲精品美女在线观看| 亚洲精品综合| 欧美日本精品| 一区二区免费在线播放| 亚洲一区二区在线免费观看| 欧美日韩欧美一区二区| 99riav国产精品| 亚洲午夜精品在线| 欧美色播在线播放| 一区二区三区视频在线看| 亚洲一区二区三区四区视频| 欧美视频三区在线播放| 中国日韩欧美久久久久久久久| 亚洲视频电影图片偷拍一区| 欧美日韩小视频| 亚洲天堂网站在线观看视频| 亚洲女优在线| 国产精品专区h在线观看| 香蕉久久国产| 久久一二三国产| 在线日韩成人| 亚洲视频免费在线| 国产精品另类一区| 欧美亚洲一区二区在线| 久久久中精品2020中文| 在线电影院国产精品| 亚洲精品一区在线| 欧美日韩一区二区免费在线观看| 一区二区三区久久网| 欧美一区二区三区四区夜夜大片 | 亚洲国产美女精品久久久久∴| 欧美激情精品久久久久久久变态| 亚洲三级电影在线观看| 亚洲免费一在线| 国内精品模特av私拍在线观看| 亚洲黑丝在线| 欧美日韩你懂的| 亚洲欧美日韩网| 男同欧美伦乱| 中国成人亚色综合网站| 久久经典综合| 亚洲高清久久久| 这里只有精品在线播放| 国产免费观看久久黄| 亚洲国内欧美| 欧美日韩综合不卡| 性欧美大战久久久久久久免费观看| 美女日韩在线中文字幕| 一本色道**综合亚洲精品蜜桃冫 | 国产精品理论片在线观看| 欧美在线播放| 欧美经典一区二区三区| 亚洲视频精品| 欧美www在线| 亚洲一级片在线观看| 老牛影视一区二区三区| 99riav国产精品| 久久久久免费观看| 99在线视频精品| 久久久久五月天| 亚洲毛片播放| 久久久久久精| 日韩一区二区精品| 久久久久国产一区二区三区四区| 亚洲精品日本| 久久久久国产精品麻豆ai换脸| 日韩亚洲欧美一区| 久久中文字幕导航| 亚洲午夜一区二区三区| 欧美1级日本1级| 亚洲欧美在线网| 欧美日韩精品一区二区天天拍小说| 欧美一区网站| 国产精品久久久| 亚洲精品美女久久久久| 国产日韩久久| 亚洲一区二区免费| 亚洲第一色在线| 久久xxxx精品视频| 99热免费精品在线观看| 麻豆成人在线| 性做久久久久久| 欧美视频一区二区三区在线观看| 91久久夜色精品国产九色| 国产日韩一区二区三区|