• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      實(shí)時(shí)操作系統(tǒng)uC/OS—II串口通信的設(shè)計(jì)與實(shí)現(xiàn)

      2017-07-12 11:51夏鑫
      價(jià)值工程 2017年19期
      關(guān)鍵詞:嵌入式系統(tǒng)

      夏鑫

      摘要: 隨著電子技術(shù)、信息技術(shù)和通訊技術(shù)的快速發(fā)展以及互聯(lián)網(wǎng)的廣泛應(yīng)用,計(jì)算機(jī)產(chǎn)品開始逐漸轉(zhuǎn)移到信息產(chǎn)品,而硬件技術(shù)的發(fā)展促進(jìn)了計(jì)算機(jī)往微型化和專業(yè)化的趨勢發(fā)展,人們對于信息產(chǎn)品的功能要求越來越高,嵌入式系統(tǒng)開始逐漸走入人們的視線,實(shí)時(shí)操作系統(tǒng)的移植也成為計(jì)算機(jī)這個(gè)行業(yè)的熱點(diǎn)。本文選用能夠管理多任務(wù)的嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II,以及嵌入式網(wǎng)絡(luò)協(xié)議Lwip,該協(xié)議能夠?qū)崿F(xiàn)嵌入式設(shè)備與互聯(lián)網(wǎng)之間的連接,分析了以微處理器LPC2365、閃存FLASH、LED、蜂鳴器和PC為硬件平臺嵌入移植了uC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)的相關(guān)設(shè)計(jì)方法,以實(shí)現(xiàn)在此嵌入式系統(tǒng)上進(jìn)行主從結(jié)構(gòu)幀結(jié)構(gòu)傳輸?shù)拇谕ㄐ拧?/p>

      Abstract: With the rapid development of electronic technology, information and communication technology, and the wide application of Internet, computer products gradually transferred to information products, with the development of hardware technology and requirements of people to the improvement of information product functional, embedded system has become hotspot in this field, at the same time in the field of computer itself, miniaturization and specialization is a new trend of development. This paper expounds on the ARM7 microprocessor LPC2365 transplant uC/OS-II main content and the realization of the related function of design method. Choose embedded real-time operating system uC/OS-II that manage multiple tasks, and used embedded network protocol called Lwip to implement the connection between embedded devices and the Internet. With microprocessor LPC2365, FLASH, LED, buzzer and PC as the hardware platform, transplant the embedded real-time operating system uC/OS-II, and on the embedded system realize the master-slave structure frame structure transmission and serial communication function.

      關(guān)鍵詞: 嵌入式系統(tǒng);uC/OS-II實(shí)時(shí)操作系統(tǒng);Lwip協(xié)議;LPC2365

      Key words: embedded system;uC/OS-II real-time operating system;Lwip protocol;LPC2365

      中圖分類號:TP316.8 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2017)19-0090-04

      0 引言

      近年來,隨著計(jì)算機(jī)技術(shù)中、網(wǎng)絡(luò)通信技術(shù)及微電子技術(shù)的快速發(fā)展,嵌入式技術(shù)這門新興學(xué)科開始進(jìn)入研究人員的視線并且在其相應(yīng)的技術(shù)支持下所衍生的信息產(chǎn)品逐漸向微型化和智能化發(fā)展。在人們的日常生活中隨處可見嵌入式設(shè)備,比如手機(jī)、MP3,單片機(jī)的提出對于用于交通、科技、生活、工業(yè)生產(chǎn)和通信等的各種各樣的產(chǎn)品通過內(nèi)嵌集成電路芯片來優(yōu)化其性能,基于此提出了嵌入式系統(tǒng)的概念,而這些內(nèi)置芯片的產(chǎn)品初步具備嵌入式的應(yīng)用特點(diǎn)。而“嵌入式系統(tǒng)“這個(gè)概念源于80年代初的微型機(jī)時(shí)代,主要適用于某些對應(yīng)用系統(tǒng)成本、功能、功耗和體積要求很苛刻的專業(yè)計(jì)算機(jī)系統(tǒng),基于計(jì)算機(jī)技術(shù)、圍繞應(yīng)用并且能夠?qū)崿F(xiàn)軟硬件裁剪而提出。憑借成本低廉、設(shè)備體積小、可靠性高等特點(diǎn),嵌入式系統(tǒng)已經(jīng)滲透到我們生活中的各個(gè)領(lǐng)域。

      隨著人們?nèi)找嬖鲩L的物質(zhì)文化需要,對嵌入式系統(tǒng)功能的要求也越來越高。這就意味著嵌入式操作系統(tǒng)單一任務(wù)傳統(tǒng)模式己經(jīng)遠(yuǎn)遠(yuǎn)不能滿足需求,嵌入式必然的發(fā)展趨勢是對操作系統(tǒng)的引入。移植了實(shí)時(shí)操作系統(tǒng)的嵌入式系統(tǒng)具有的實(shí)時(shí)任務(wù)管理、合理的內(nèi)存分配、操作系統(tǒng)內(nèi)核的時(shí)鐘管理和完善的任務(wù)進(jìn)程間的任務(wù)同步通信機(jī)制等優(yōu)點(diǎn)推動(dòng)其進(jìn)一步發(fā)展。計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展使得網(wǎng)絡(luò)技術(shù)在各個(gè)領(lǐng)域都有所應(yīng)用,包括航空、工業(yè)、農(nóng)業(yè)、教育、醫(yī)學(xué)等。在這些領(lǐng)域中網(wǎng)絡(luò)成為重要的主導(dǎo)因素,全球網(wǎng)絡(luò)化時(shí)代是必然趨勢,嵌入式系統(tǒng)也逐步朝著網(wǎng)絡(luò)化方向發(fā)展。

      實(shí)時(shí)操作系統(tǒng)uC/OS-II作為一個(gè)微內(nèi)核,具有代碼量小、實(shí)時(shí)性強(qiáng)、支持的處理器多等優(yōu)點(diǎn),使得其在國內(nèi)外嵌入式領(lǐng)域得到了廣泛的應(yīng)用[1]。在嵌入式系統(tǒng)資源受限的前提下,開發(fā)的輕量級的網(wǎng)絡(luò)協(xié)議Lwip能夠很好地適用于該系統(tǒng),能夠很好地減少系統(tǒng)的RAM運(yùn)行、支持TCP/IP協(xié)議、操作系統(tǒng)模擬層、網(wǎng)絡(luò)接口和API接口等。

      1 設(shè)計(jì)的基本原理

      ARM7處理器LPC2365芯片具有多個(gè)串口資源,這些串口資源用于實(shí)時(shí)接收數(shù)據(jù),這些數(shù)據(jù)包括數(shù)據(jù)采集板數(shù)據(jù)、普通性能GPS接收機(jī)數(shù)據(jù)和高性能GPS接收機(jī)數(shù)據(jù),按要求對采集板數(shù)據(jù)與普通性能GPS數(shù)據(jù)進(jìn)行組幀,根據(jù)所收到的互斥型信號量,存入發(fā)送數(shù)據(jù)隊(duì)列中,這個(gè)隊(duì)列屬于FIFO類型;接收的高性能GPS接收機(jī)數(shù)據(jù)存入同一隊(duì)列;當(dāng)已經(jīng)有數(shù)據(jù)存入該發(fā)送數(shù)據(jù)隊(duì)列時(shí),為進(jìn)行數(shù)據(jù)的發(fā)送,需要通過一個(gè)二值信號量來啟動(dòng)串口發(fā)送任務(wù),在發(fā)送完一幀數(shù)據(jù)后結(jié)束發(fā)送過程[2],如圖1所示為數(shù)據(jù)流向示意圖。

      針對串口接收任務(wù)、串口發(fā)送任務(wù)、組幀任務(wù)等不同功能創(chuàng)建不同的任務(wù),這里應(yīng)用程序是基于嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II編寫完成的。

      2 設(shè)計(jì)完成的工作

      2.1 數(shù)據(jù)以幀結(jié)構(gòu)傳輸

      對于固定長度的短字節(jié)幀數(shù)據(jù),通過設(shè)置合適的字節(jié)觸發(fā)深度,一次中斷完成數(shù)據(jù)接收任務(wù);對于變長的長字節(jié)幀數(shù)據(jù),則通過多次中斷和等待延時(shí)的方法判斷數(shù)據(jù)穩(wěn)定并完成幀數(shù)據(jù)的接收;對于大量數(shù)據(jù)的接收和發(fā)送采用建立FIFO數(shù)據(jù)隊(duì)列的方法。通過這些措施較好地完成了多串口較大數(shù)據(jù)量的通信任務(wù)。

      2.2 uC/OS-II的串口通信

      通過數(shù)據(jù)信號線、控制線和地線等在計(jì)算機(jī)和外設(shè)間進(jìn)行按位傳輸數(shù)據(jù)的通信方式稱為串口通信,這種通信方式具有使用數(shù)據(jù)線少節(jié)約成本的優(yōu)點(diǎn),但相對于并行傳輸其傳輸速度低[3]。

      串口是計(jì)算機(jī)上一種非常通用的設(shè)備通信協(xié)議同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議,除了筆記本電腦以外,大多數(shù)計(jì)算機(jī)以及很多GPIB兼容的設(shè)備包含基于RS-232的串口,同時(shí),在獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)方面,串口通信協(xié)議也起到非常重要的作用。

      2.3 主從結(jié)構(gòu)

      主從式結(jié)構(gòu)是一種多用戶結(jié)構(gòu),其特點(diǎn)是單主機(jī)帶有多終端、數(shù)據(jù)易于管理與維護(hù),但是當(dāng)終端用戶數(shù)目增加到一定程度后,主機(jī)會因?yàn)槿蝿?wù)過分繁重使系統(tǒng)性能大幅度下降[4],而且當(dāng)主機(jī)出現(xiàn)故障時(shí),整個(gè)系統(tǒng)都會處于癱瘓狀態(tài),所以系統(tǒng)的可靠性不高。

      在主從式結(jié)構(gòu)中,主機(jī)完成所有的處理任務(wù),連接主機(jī)的終端各個(gè)用戶共享數(shù)據(jù)資源,并發(fā)地存取數(shù)據(jù),這得益于主機(jī)上存放的數(shù)據(jù)庫系統(tǒng),該系統(tǒng)主要包括數(shù)據(jù)、應(yīng)用程序和DBMS。

      3 硬件設(shè)計(jì)

      主控CPU是ARM7處理器LPC2365,在嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II中F1ash存儲器和SRAM用于運(yùn)行和存儲相關(guān)的應(yīng)用程序,全雙工UART串口用于與數(shù)據(jù)采集板、GPS接收機(jī)等進(jìn)行通信[5]。

      高性能GPS接收機(jī)的數(shù)據(jù)量占空比高達(dá)85%,輸出數(shù)據(jù)時(shí)其數(shù)據(jù)量為305字節(jié)/幀、比特率為57600 bps、速率為20Hz,為完成數(shù)據(jù)的傳輸任務(wù),考慮到還需要下傳其他參數(shù)信息,應(yīng)選用波特率更高的數(shù)傳模塊。

      EL806數(shù)傳模塊擁有先進(jìn)的調(diào)頻擴(kuò)頻技術(shù),這款由美國GE MDS公司生產(chǎn)的數(shù)傳模塊在無線數(shù)據(jù)通信上具有較好的可靠性、完整性和較強(qiáng)的糾錯(cuò)能力,硬件系統(tǒng)框圖如圖2所示。

      4 軟件設(shè)計(jì)

      4.1 實(shí)時(shí)操作系統(tǒng) uC/OS-II的移植

      uC/OS-II作為一種完整的占先式實(shí)時(shí)多任務(wù)內(nèi)核,具有可移植、可固化、可裁剪和源代碼公開等特點(diǎn),它可移植到包括8位、16位、32位單片機(jī)、DSP以及64位的微處理器等多種不同架構(gòu)的微處理器上[6]。

      為了將該操作系統(tǒng)移植到相應(yīng)CPU體系結(jié)構(gòu)中以確保該系統(tǒng)能在原先準(zhǔn)備的硬件環(huán)境中運(yùn)行,進(jìn)行源代碼的編寫和修改,按照相應(yīng)的移植步驟就可以得到移植的操作系統(tǒng)[7]。

      4.2 應(yīng)用程序的編寫

      編寫應(yīng)用程序時(shí)嚴(yán)格遵守其編程規(guī)范才能成功使用uC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng),任務(wù)間的數(shù)據(jù)交換主要使用二值信號量和互斥型信號量,重點(diǎn)在于編寫串口中斷服務(wù)程序和數(shù)據(jù)收發(fā)任務(wù)。

      通信幀數(shù)據(jù)是否為固定長度是在編寫串口中斷服務(wù)程序需要關(guān)注的問題。本應(yīng)用程序的中斷服務(wù)程序以及任務(wù)編程所需的數(shù)據(jù)全部通過串口1進(jìn)行傳輸。該串口的接收和發(fā)送的數(shù)據(jù)幀長度固定且較短,傳輸過程比較簡單;而串口0和2接收到的數(shù)據(jù)幀需要考慮是否為觸發(fā)深度的整數(shù)倍,故其長度較長且不固定。

      當(dāng)通信幀的長度正好為中斷觸發(fā)深度的整數(shù)倍時(shí),數(shù)據(jù)傳輸時(shí)數(shù)據(jù)幀全部發(fā)送完畢后,這個(gè)時(shí)候只能觸發(fā)正常的接收中斷。由于通信幀的長度不定,此時(shí)可在等待信號量函數(shù)設(shè)置超時(shí)參數(shù),當(dāng)數(shù)據(jù)接收完畢時(shí),所接收的數(shù)據(jù)是穩(wěn)定不變的狀態(tài)。具體可通過以下代碼來識別中斷服務(wù)程序和接收數(shù)據(jù)任務(wù)程序片段[8]:

      在一個(gè)全局?jǐn)?shù)組中存放串口0和串口1接收到的數(shù)據(jù),結(jié)合硬件系統(tǒng)框圖和所要完成的任務(wù)分別創(chuàng)建串口0和串口1接收任務(wù),在全局?jǐn)?shù)組的相應(yīng)位置上放置兩個(gè)接收任務(wù)接收到的數(shù)據(jù)。這兩個(gè)串口接收到的數(shù)據(jù)組幀發(fā)送出去的速率是每秒一幀,而普通性能GPS接收機(jī)與串口0相連且每秒發(fā)送一幀數(shù)據(jù)(即串口0的接收速率是每秒一幀),則可以由串口0接收任務(wù)中的信號量來控制啟動(dòng)發(fā)送幀數(shù)據(jù)的組裝和寫入隊(duì)列任務(wù),這樣下傳的GPS幀數(shù)據(jù)因計(jì)時(shí)誤差而產(chǎn)生的跳變或重復(fù)就可以避免。

      前面我們提到在同一發(fā)送數(shù)據(jù)隊(duì)列中需要存入串口0及串口1接收到的數(shù)據(jù)組幀和串口2接收到的高性能GPS接收機(jī)數(shù)據(jù),這里涉及到發(fā)送隊(duì)列的共享資源分配問題。通過互斥信號量存入發(fā)送數(shù)據(jù)隊(duì)列中,這里主要利用了互斥信號量能夠處理優(yōu)先級反轉(zhuǎn),實(shí)現(xiàn)互斥訪問發(fā)送隊(duì)列的共享資源,此時(shí)所有需要訪問這個(gè)共享資源的任務(wù)的優(yōu)先級低于互斥訪問發(fā)送隊(duì)列的優(yōu)先級繼承值,從而完成數(shù)據(jù)的存入。當(dāng)這兩個(gè)串口任務(wù)將接收到的數(shù)據(jù)寫入數(shù)據(jù)隊(duì)列時(shí),需要獲取互斥型信號量以完成對數(shù)據(jù)隊(duì)列進(jìn)行互斥訪問,為了不影響其他任務(wù)對該隊(duì)列的共享資源的使用,在串口寫完數(shù)據(jù)后應(yīng)立即釋放信號量。

      針對接收的關(guān)鍵指令或低優(yōu)先級任務(wù)進(jìn)行響應(yīng),在主函數(shù)main()中建立串口3接收并優(yōu)先執(zhí)行的數(shù)據(jù)任務(wù)。在其它任務(wù)被創(chuàng)建的過程中,系統(tǒng)會始終等待串口3接收數(shù)據(jù),判斷接收到的數(shù)據(jù)并執(zhí)行指令。以下是該部分的程序代碼[9]:

      5 總結(jié)

      因?yàn)楣P者對于嵌入式非常感興趣,研一時(shí)候主要學(xué)習(xí)ARM和STM32,為了對自己的研究方向有所幫助,所以筆者選擇了這門實(shí)時(shí)操作系統(tǒng)課程,在這門課程上學(xué)習(xí)到很多有意思的知識,不同于本科學(xué)的單片機(jī)或者DSP那么簡單易懂,比如消息郵箱和消息隊(duì)列的知識,然后就是實(shí)時(shí)操作系統(tǒng)強(qiáng)調(diào)實(shí)時(shí)控制需要定時(shí),重難點(diǎn)主要是對于優(yōu)先級的理解然后調(diào)度算法和調(diào)度方式,總的來說,學(xué)習(xí)實(shí)時(shí)操作系統(tǒng)這門課程給予筆者今后的研究很大的啟發(fā)。

      最后實(shí)驗(yàn)結(jié)果顯示,在ARM7處理器LPC2365芯片移植實(shí)時(shí)操作系統(tǒng)uC/OS-II后再進(jìn)行多串口通信可以減化硬件設(shè)計(jì),通過在該嵌入式系統(tǒng)中編寫相應(yīng)的多串口通信應(yīng)用程序,提高系統(tǒng)的實(shí)時(shí)性要求并且運(yùn)行穩(wěn)定可靠。

      參考文獻(xiàn):

      [1]陶德桂,王成軍,劉關(guān)心.LPC2365的μC/OS-Ⅱ下多串口通信編程[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(08):26-29.

      [2]余曉光.基于實(shí)時(shí)操作系統(tǒng)FreeRTOS的Lwip協(xié)議的移植研究[D].昆明理工大學(xué),2013.

      [3]洪偉.基于ARM的GPS接收機(jī)導(dǎo)航解算模塊設(shè)計(jì)[D].哈爾濱工程大學(xué),2010.

      [4]Jean J Labrosse. 嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II[M].邵貝貝等譯.二版.北京:北京航天航空大學(xué)出版社,2006.

      [5]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航天航空大學(xué)出版社,2006.

      [6]周立功.ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程(一)[M].北京:北京航天航空大學(xué)出版社,2005.

      [7]趙娟,曾強(qiáng),李改利,等.基于ARM的遠(yuǎn)距離便攜式無線傳輸系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(8):25-27.

      [8]胡宏?duì)N,喻濤.uC/OS-II下的ARM7中斷過程分析及優(yōu)化方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,10(9):77-78.

      [9]周航慈.基于嵌入式實(shí)時(shí)操作系統(tǒng)的程序設(shè)計(jì)技術(shù)[M].二版.北京:北京航天航空大學(xué)出版社,2011.

      [10]李寧.ARM開發(fā)工具Realview MDK使用入門[M]. 北京:北京航天航空大學(xué)出版社,2008.

      [11]莊嚴(yán),王曉,湯建敏.嵌入式C/C++系統(tǒng)工程師實(shí)訓(xùn)教程 [M].北京:清華大學(xué)出版社,2011.

      [12]周立功.ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)[M].二版.北京:北京航天航空大學(xué)出版社,2005.

      猜你喜歡
      嵌入式系統(tǒng)
      Teaching Research on IoT and—Embedded System of Software Engineering
      面向應(yīng)用的智能專業(yè)嵌入式系統(tǒng)教學(xué)
      辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)
      嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實(shí)踐及啟示
      面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
      大姚县| 阿巴嘎旗| 香港| 丹东市| 丰都县| 鄂尔多斯市| 兰西县| 淮阳县| 吴忠市| 突泉县| 枣庄市| 德江县| 石楼县| 米易县| 芷江| 丹东市| 句容市| 广宗县| 雅安市| 长沙县| 革吉县| 赤壁市| 治多县| 洛扎县| 河西区| 闽清县| 新宾| 锦屏县| 买车| 岳阳县| 辛集市| 岳阳市| 漠河县| 沁水县| 岳西县| 霍城县| 西峡县| 安龙县| 琼中| 遂溪县| 乌恰县|