国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實(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í)時操作系統(tǒng)的移植也成為計(jì)算機(jī)這個行業(yè)的熱點(diǎn)。本文選用能夠管理多任務(wù)的嵌入式實(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í)時操作系統(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í)時操作系統(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)“這個概念源于80年代初的微型機(jī)時代,主要適用于某些對應(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)滲透到我們生活中的各個領(lǐng)域。

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

實(shí)時操作系統(tǒng)uC/OS-II作為一個微內(nèi)核,具有代碼量小、實(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芯片具有多個串口資源,這些串口資源用于實(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ì)列中,這個隊(duì)列屬于FIFO類型;接收的高性能GPS接收機(jī)數(shù)據(jù)存入同一隊(duì)列;當(dāng)已經(jīng)有數(shù)據(jù)存入該發(fā)送數(shù)據(jù)隊(duì)列時,為進(jìn)行數(shù)據(jù)的發(fā)送,需要通過一個二值信號量來啟動串口發(fā)送任務(wù),在發(fā)送完一幀數(shù)據(jù)后結(jié)束發(fā)送過程[2],如圖1所示為數(shù)據(jù)流向示意圖。

針對串口接收任務(wù)、串口發(fā)送任務(wù)、組幀任務(wù)等不同功能創(chuàng)建不同的任務(wù),這里應(yīng)用程序是基于嵌入式實(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ù)據(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è)備通用的通信協(xié)議,除了筆記本電腦以外,大多數(shù)計(jì)算機(jī)以及很多GPIB兼容的設(shè)備包含基于RS-232的串口,同時,在獲取遠(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)故障時,整個系統(tǒng)都會處于癱瘓狀態(tài),所以系統(tǒng)的可靠性不高。

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

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

主控CPU是ARM7處理器LPC2365,在嵌入式實(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ù)據(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)的糾錯能力,硬件系統(tǒng)框圖如圖2所示。

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

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

uC/OS-II作為一種完整的占先式實(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)用程序時嚴(yán)格遵守其編程規(guī)范才能成功使用uC/OS-II嵌入式實(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ù)據(jù)傳輸時數(shù)據(jù)幀全部發(fā)送完畢后,這個時候只能觸發(fā)正常的接收中斷。由于通信幀的長度不定,此時可在等待信號量函數(shù)設(shè)置超時參數(shù),當(dāng)數(shù)據(jù)接收完畢時,所接收的數(shù)據(jù)是穩(wěn)定不變的狀態(tài)。具體可通過以下代碼來識別中斷服務(wù)程序和接收數(shù)據(jù)任務(wù)程序片段[8]:

在一個全局?jǐn)?shù)組中存放串口0和串口1接收到的數(shù)據(jù),結(jié)合硬件系統(tǒng)框圖和所要完成的任務(wù)分別創(chuàng)建串口0和串口1接收任務(wù),在全局?jǐn)?shù)組的相應(yīng)位置上放置兩個接收任務(wù)接收到的數(shù)據(jù)。這兩個串口接收到的數(shù)據(jù)組幀發(fā)送出去的速率是每秒一幀,而普通性能GPS接收機(jī)與串口0相連且每秒發(fā)送一幀數(shù)據(jù)(即串口0的接收速率是每秒一幀),則可以由串口0接收任務(wù)中的信號量來控制啟動發(fā)送幀數(shù)據(jù)的組裝和寫入隊(duì)列任務(wù),這樣下傳的GPS幀數(shù)據(jù)因計(jì)時誤差而產(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ì)列的共享資源,此時所有需要訪問這個共享資源的任務(wù)的優(yōu)先級低于互斥訪問發(fā)送隊(duì)列的優(yōu)先級繼承值,從而完成數(shù)據(jù)的存入。當(dāng)這兩個串口任務(wù)將接收到的數(shù)據(jù)寫入數(shù)據(jù)隊(duì)列時,需要獲取互斥型信號量以完成對數(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者對于嵌入式非常感興趣,研一時候主要學(xué)習(xí)ARM和STM32,為了對自己的研究方向有所幫助,所以筆者選擇了這門實(shí)時操作系統(tǒng)課程,在這門課程上學(xué)習(xí)到很多有意思的知識,不同于本科學(xué)的單片機(jī)或者DSP那么簡單易懂,比如消息郵箱和消息隊(duì)列的知識,然后就是實(shí)時操作系統(tǒng)強(qiáng)調(diào)實(shí)時控制需要定時,重難點(diǎn)主要是對于優(yōu)先級的理解然后調(diào)度算法和調(diào)度方式,總的來說,學(xué)習(xí)實(shí)時操作系統(tǒng)這門課程給予筆者今后的研究很大的啟發(fā)。

最后實(shí)驗(yàn)結(jié)果顯示,在ARM7處理器LPC2365芯片移植實(shí)時操作系統(tǒng)uC/OS-II后再進(jìn)行多串口通信可以減化硬件設(shè)計(jì),通過在該嵌入式系統(tǒng)中編寫相應(yīng)的多串口通信應(yīng)用程序,提高系統(tǒng)的實(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í)時操作系統(tǒng)FreeRTOS的Lwip協(xié)議的移植研究[D].昆明理工大學(xué),2013.

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

[4]Jean J Labrosse. 嵌入式實(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í)時操作系統(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é)
辦公自動化系統(tǒng)的設(shè)計(jì)
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實(shí)踐及啟示
面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
安岳县| 临湘市| 嘉祥县| 长汀县| 峨边| 沈丘县| 西和县| 山西省| 青浦区| 塔河县| 赣州市| 沂源县| 兰西县| 屯留县| 陆良县| 田东县| 赣州市| 壶关县| 平安县| 巴南区| 应城市| 商南县| 湖州市| 紫云| 阳山县| 三江| 应城市| 延安市| 穆棱市| 蓬莱市| 平安县| 页游| 连云港市| 泗阳县| 铜陵市| 临朐县| 大悟县| 花垣县| 金乡县| 桃江县| 邵东县|