精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ARM芯片LPC2214和μC/OS-II實現數字微波監控系統的設計

牽手一起夢 ? 來源:微計算機信息 ? 作者:劉釗遠 , 許振文 ? 2020-10-04 17:40 ? 次閱讀

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

1 數字微波設備監控系統的設計

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

1.1 微波監控IDU部分硬件設計

IDU組成框圖如圖1所示,主要由業務接口、輔助業務、復分接、微波幀分復接、中頻調制解調、中頻分合路器、電源、CPU及相關接口組成。

基于ARM芯片LPC2214和μC/OS-II實現數字微波監控系統的設計

主業務數據通過業務接口電路復接后,與公務、輔助數據信號等一起進入微波幀復接模塊,復接成微波幀信號,由調制模塊完成調制,通過中頻分合路器送往ODU。從ODU送來的中頻信號經過中頻分合路器送往解調模塊解調出數據,送到微波幀分接電路,分接出主業務、公務以及輔助數據信息,通過主業務接口電路分接出各支路主業務數據。CPU對所傳輸的業務數據進行監視和控制,監視所傳數據的狀態、性能等信息,可設置所傳數據的各種參數,通過輔助業務接口可提取和插入各種控制信息。

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

1.2 軟件結構

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

其中,核心代碼:包括10個C程序文件和一個頭文件,主要實現了系統調度、任務管理、內存管理、信號量、消息郵箱和消息隊列等系統功能,而這些功能的實現與處理器類型無關。

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

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

2 μC/OS-II在微波監控系統中的應用

2.1 應用程序中任務的設計與劃分

根據實際的需要,應用軟件劃分為7個任務:液晶顯示、按鍵接收和告警、時間標志處理、遠端信息處理、數據處理、串口任務處理,如圖2所示。

圖2 應用程序中任務的劃分

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

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

(3) Task_TIME_FLG:實現設置時間標志,以使其它任務完成定時任務,因為有許多的定時任務,所以設立了一個單獨的任務來設置或取消時間標志。

(4) Task_SPI_OP:通過SPI接口完成遠端信息交換處理以及數據鏈路各接口環回等設置。

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

(6) Task_COMM1:主要是完成出串口與其它設備間通信數據的收發。

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

2.2 任務的創建

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

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

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

2.4 任務優先級的劃分

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

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

從以上分析可以把任務的優先級進行如下分配: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 任務的調度

μC/OS-II調度的依據是任務就緒隊列表,系統從處于就緒隊列的任務中選擇一個優先級最高的來運行,它可以管理多達64個任務。對于多任務的管理,μC/OS- II 是通過調度器完成。其中任務級的調度是由函數OSSched()完成, 而中斷級的調度是由函數OSIntExiT()完成。

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

2.6 中斷的設置與使用

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

μC/OS-II響應中斷的過程:當系統接收到中斷請求后,并且CPU處于中斷開放狀態,系統就會終止當前運行的任務,按照中斷向量的指向運行中斷服務子程序;當中斷運行結束后,系統就會返回到被中止的任務繼續運行,或者轉向運行另一個更高優先級的就緒任務。

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

2.7 堆棧的設置與使用

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

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

3 軟件的調試環境與下載

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

4 結束語

μC/OS-II應用于數字微波監控系統軟件開發之后,系統的軟件結構更加簡潔實用,系統的實時性和穩定性得到提高,設備在實際應用中表現穩定可靠,并取得一定的經濟效益,μC/OS-II在嵌入式系統中具有廣泛的應用推廣價值。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電源
    +關注

    關注

    184

    文章

    17594

    瀏覽量

    249516
  • 芯片
    +關注

    關注

    454

    文章

    50430

    瀏覽量

    421866
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10826

    瀏覽量

    211160
收藏 人收藏

    評論

    相關推薦

    基于嵌入式微控制器LPC2214的遠程圖像監控系統

    基于嵌入式微控制器LPC2214的遠程圖像監控系統摘要:針對傳統圖像監控系統所存在的缺陷,綜合應用嵌入式
    發表于 12-01 10:23

    基于LPC2214和μC/OS-II的iButton接口

    不利因素對它的干擾問題。本文提供的DS1990A與LPC2214在嵌入式實時操作系統μC/OSII中的接口的軟硬件設計,已在智能點檢機中推廣應用。隨著相關技術的發展,iButton信息識別技術在工業領域的應用會越來越廣泛,其經濟
    發表于 12-17 11:23

    求一種基于LPC2214和uC/OS-II的音頻處理方案

    如何去選擇一款音頻解碼芯片?如何去實現一種VS1003控制協議?一種基于LPC2214和uC/OS-II的音頻處理方案
    發表于 06-08 06:43

    NXP LPC2214 ARM7芯片的引腳無法輸出怎么解決

    NXP LPC2214 ARM7芯片的引腳無法輸出問題:工程是從LPC2138用過來的,增加了P2.3口的控制發現GPIOP2.3 無法輸出高電平/*配置IO管腳映射*/PINSEL0
    發表于 02-07 08:16

    基于μC/OS-II的嵌入式音頻系統設計

    基于μC/OS-II的嵌入式音頻系統設計 Design of Embedded Audio Frequency System Based on μC/
    發表于 03-16 11:10 ?19次下載

    嵌入式μC/OS-IILPC2104上的移植及通信設計

    分析了μC/OS-II 操作系統的特點及其在嵌入式系統應用領域的優勢,探討了μC/OS
    發表于 06-19 09:12 ?16次下載

    μC/OS-IILPC2210上的移植實現

    對嵌入式實時操作系統μC/OS-II 的組成和LPC2210 微處理器進行了簡單介紹。在此基礎上,詳細介紹了將μC/
    發表于 07-08 08:57 ?41次下載

    基于μC/OS-II 的溫濕度測控系統設計與實現

    本文在 ARM7 單片機LPC2294 上移植μC/OS-II 實時操作系統,設計實現了嵌入式實
    發表于 08-12 17:11 ?30次下載

    輕型PPP協議在μC/OS-II操作系統中的實現

    針對實時操作系統μC/OS-II 沒有自己的網絡協議棧,提出了基于ARM7TDMI 處理器的μC/OS-
    發表于 08-13 09:05 ?15次下載

    μC/OS-II在PC機上移植的設計與實現

    本文介紹了μC/OS-II移植到PC機上的過程,使μC/OS-II應用系統程序在PC機上脫離DOS或Windows環境運行。著重介紹了Boo
    發表于 09-02 08:51 ?14次下載

    基于ARM的嵌入式操作系統μC/OS-II的移植

        介紹了μC/OS-II RTOS 的內核結構和任務管理,闡述了ARM 嵌入式芯片的體系結構,給出了基于ARM
    發表于 09-04 09:49 ?28次下載

    基于LPC2214和uC/OS-II的音頻處理方案及電路說明

    基于LPC2214和uC/OS-II的音頻處理方案 基于 LPC2214和uC/OS-II的嵌入式平臺    目前流行的
    發表于 05-24 09:29 ?1210次閱讀

    基于LPC2214的嵌入式系統USB接口模塊設計

    本文為基于LPC2214的 嵌入式系統 USB接口模塊設計,實現了與PC機之間的通信。
    發表于 06-29 15:22 ?61次下載
    基于<b class='flag-5'>LPC2214</b>的嵌入式<b class='flag-5'>系統</b>USB接口模塊設計

    簡述關于LPC2214和μC/OS-II的iButton接口

    本文以DS1990A為例,對其與LPC2214之間一線串行通信方式進行研究。
    的頭像 發表于 03-23 13:55 ?1972次閱讀
    簡述關于<b class='flag-5'>LPC2214</b>和μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b>的iButton接口

    基于ARM控制器LPC2214的稅控收款機的設計方案

    這是一個論文文章,基于ARM控制器LPC2214的稅控收款機系統的設計與實現
    發表于 09-23 17:19 ?0次下載