版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 畢業(yè)設計說明書(論文)</p><p> 作 者: 學 號: </p><p> 院 系: 通信工程學院 </p><p> 專 業(yè): 通信工程(光纖通信) </p><p> 題
2、 目: 現(xiàn)場數(shù)據(jù)網(wǎng)關(guān)設計 </p><p> 指導者: </p><p> 評閱者: </p><p> 2012 年 6月 南 京</p><p><b&
3、gt; 摘要</b></p><p> 隨著以太網(wǎng)技術(shù)的發(fā)展和普及,將以太網(wǎng)技術(shù)用于工業(yè)控制的底層網(wǎng)絡,直接將現(xiàn)場接入工業(yè)以太網(wǎng)進行管理、監(jiān)控和通信已經(jīng)成為必然趨勢。由于大多數(shù)的工業(yè)控制設備是通過現(xiàn)場總線來和主機進行數(shù)據(jù)交換的,而這種方法的傳輸距離和傳輸可靠性都不是很好。因此將各種現(xiàn)場總線的設備通過以太網(wǎng)連接到遠端是一種很好的方法。本文設計了一種基于S3C2440 32 位嵌入式微處理器的工業(yè)網(wǎng)關(guān)
4、。通過實現(xiàn)現(xiàn)場總線和以太網(wǎng)之間的數(shù)據(jù)轉(zhuǎn)換,使工業(yè)控制系統(tǒng)實現(xiàn)網(wǎng)絡數(shù)據(jù)處理能力,遠程控制、監(jiān)控、維護等功能。系統(tǒng)以32 位的ARM 嵌入式微處理器S3C2440 為核心,外圍擴展了串口、以太網(wǎng)控制芯片DM9000、顯示等模塊構(gòu)建的硬件平臺,并在ADS1.2 環(huán)境下移植μC/OS-II,開發(fā)相應的驅(qū)動程序和應用程序來構(gòu)建一個嵌入式工業(yè)網(wǎng)關(guān)軟件系統(tǒng)。該系統(tǒng)通過一定的優(yōu)化和完善可以應用于工業(yè)控制系統(tǒng)中。</p><p>
5、 文中給出了系統(tǒng)原理框圖和有關(guān)程序代碼,對系統(tǒng)軟件的實現(xiàn)做了闡述,分析了對串口和以太網(wǎng)控制芯片的初始化、發(fā)送、接收子程序,以及TCP/IP協(xié)議棧和HDLC鏈路控制協(xié)議的部分實現(xiàn),最后對網(wǎng)關(guān)的系統(tǒng)調(diào)試做了介紹。</p><p> 關(guān)鍵詞:μC/OS-II;以太網(wǎng);TCP/IP協(xié)議;以太網(wǎng)控制器</p><p><b> Abstract</b></p>
6、<p> With the development and popularization of Ethernet technology, the Ethernet technology, which will be used for industrial control at the ground floor of the network, the industrial Ethernet direct access to
7、 manage, control and communication, has become an inevitable trend. Since most of the industrial control equipment is through the field bus and host to exchange data, the distance and transmission reliability by this way
8、 of transmission are not very good. So all kinds of field bus equipment t</p><p> In this paper, you can see the system block diagram and the program code, then the system software implementation has been d
9、iscussed, it also has analyzated on serial and Ethernet control chip, which includes the ways to initialize, to send, and to receive subroutine, after that it is the partial implementation of the TCP/IP protocol stack an
10、d HDLC Link Control Protocol. Finally, there will be a introduction of the gateway system debugging. </p><p> Key word:μC/OS-II;Ethernet;TCP/IP Protocols;Ethernet control chip </p><p><b>
11、 目錄</b></p><p><b> 第一章 緒論1</b></p><p><b> 1.1 引言1</b></p><p> 1.2 以太網(wǎng)的發(fā)展狀況1</p><p> 1.3 論文主要內(nèi)容4</p><p> 1.4 論文
12、章節(jié)安排4</p><p> 第二章 系統(tǒng)方案設計5</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)5</p><p> 2.2 功能結(jié)構(gòu)設計5</p><p> 2.2.1 嵌入式數(shù)據(jù)網(wǎng)關(guān)5</p><p> 2.2.2 以太網(wǎng)接口6</p><p> 2.2.3
13、現(xiàn)場數(shù)據(jù)總線6</p><p> 第三章 硬件設計8</p><p> 3.1 嵌入式系統(tǒng)硬件總體結(jié)構(gòu)設計8</p><p> 3.1.1 嵌入式系統(tǒng)硬件框圖8</p><p> 3.1.2 嵌入式系統(tǒng)硬件功能設計9</p><p> 3.1.3 嵌入式系統(tǒng)硬件體系結(jié)構(gòu)設計9</p>
14、<p> 3.2 嵌入式處理器芯片11</p><p> 3.3 以太網(wǎng)控制器14</p><p> 第四章 軟件設計17</p><p> 4.1 軟件系統(tǒng)模塊設計18</p><p> 4.2 系統(tǒng)初始化模塊設計19</p><p> 4.2.1 串口初始化19<
15、;/p><p> 4.2.2 網(wǎng)口初始化19</p><p> 4.3 核心操作系統(tǒng)μC/OS-II模塊20</p><p> 4.3.1 μC/OS-II嵌入式系統(tǒng)在ARM上的移植20</p><p> 4.3.2 核心操作系統(tǒng)μC/OS-II模塊的建立23</p><p> 4.3 應用模塊設計
16、26</p><p> 4.4.1 TCP/IP網(wǎng)絡協(xié)議處理模塊設計26</p><p> 4.4.2 以太網(wǎng)驅(qū)動模塊設計39</p><p> 4.4.3 RS-232串口數(shù)據(jù)收發(fā)模塊設計41</p><p> 第五章 系統(tǒng)調(diào)試44</p><p> 5.1 系統(tǒng)調(diào)試方法設計44<
17、/p><p> 5.1.1 系統(tǒng)調(diào)試環(huán)境的建立和配置44</p><p> 5.1.2 硬件配置及連接48</p><p> 5.1.3 系統(tǒng)軟件調(diào)試48</p><p> 第六章 結(jié)論與設想53</p><p><b> 致謝54</b></p><p
18、><b> 參考文獻55</b></p><p> 附錄A 以太網(wǎng)現(xiàn)場數(shù)據(jù)通信系統(tǒng)電路圖56</p><p><b> 第一章 緒論</b></p><p><b> 1.1 引言</b></p><p> 以太網(wǎng)技術(shù)的最初進展來自于施樂帕洛阿爾托研究
19、中心的許多先鋒技術(shù)項目中的一個。人們通常認為以太網(wǎng)發(fā)明于1973年,當年羅伯特·梅特卡夫(Robert Metcalfe)給他PARC的老板寫了一篇有關(guān)以太網(wǎng)潛力的備忘錄。但是梅特卡夫本人認為以太網(wǎng)是之后幾年才出現(xiàn)的。在1976年,梅特卡夫和他的助手David Boggs發(fā)表了一篇名為《以太網(wǎng):局域計算機網(wǎng)絡的分布式包交換技術(shù)》的文章。1977年底,梅特卡夫和他的合作者獲得了“具有沖突檢測的多點數(shù)據(jù)通信系統(tǒng)”的專利,多點傳輸系
20、統(tǒng)被稱為CSMA/CD(帶沖突檢測的載波偵聽多路訪問)。從此標志以太網(wǎng)的誕生。</p><p> 計算機和網(wǎng)絡技術(shù)的發(fā)展,引發(fā)了以太網(wǎng)(Ethernet)的技術(shù)變革,隨著科技的進步,網(wǎng)絡技術(shù)得到了飛速的發(fā)展,人們對于信息共享度的要求也在不斷的提高。隨之而來的是,各種家電設備、儀器儀表乃至工業(yè)生產(chǎn)的數(shù)據(jù)采集設備、控制設備在逐步地走向網(wǎng)絡化、集成化和自動化,以便利用快捷的網(wǎng)絡資源,實現(xiàn)分布式遠程監(jiān)控、信息交換與信息
21、共享。鑒于傳統(tǒng)的工業(yè)通訊方式——現(xiàn)場總線,存在傳輸距離短、互操作性差、傳輸速率低等缺點,而在現(xiàn)代大型工業(yè)控制系統(tǒng)中,設備除要完成現(xiàn)場工業(yè)生產(chǎn)要求外,還有個關(guān)鍵的環(huán)節(jié)就是數(shù)據(jù)采集與狀態(tài)監(jiān)控,因此,為了實現(xiàn)生產(chǎn)現(xiàn)場的無人值守和遠程控制,找到一種便捷有效的方式來解決上述的問題,則成為技術(shù)發(fā)展的趨勢。因此,基于以太網(wǎng)和現(xiàn)場總線技術(shù)的應用將越來越廣泛。嵌入式系統(tǒng)與網(wǎng)絡的日益結(jié)合,使在嵌入式實時操作系統(tǒng)中引入TCP/IP協(xié)議棧,以支持嵌入式設備接入
22、網(wǎng)絡,成為嵌入式領域重要的研究方向。而以太網(wǎng)是構(gòu)筑現(xiàn)代網(wǎng)絡的基礎,因此基于以太網(wǎng)的嵌入式現(xiàn)場數(shù)據(jù)網(wǎng)關(guān)具有很高的實用價值。</p><p> 1.2 以太網(wǎng)的發(fā)展狀況</p><p> 以太網(wǎng)(Ethernet)指的是由Xerox公司創(chuàng)建并由Xerox、Intel和DEC公司聯(lián)合開發(fā)的基帶局域網(wǎng)規(guī)范,是當今現(xiàn)有局域網(wǎng)采用的最通用的通信協(xié)議標準。以太網(wǎng)絡使用CSMA/CD(載波監(jiān)聽多路訪
23、問及沖突檢測)技術(shù),并以10M/S的速率運行在多種類型的電纜上。以太網(wǎng)與IEEE802·3系列標準相類似。</p><p> 當今世界網(wǎng)絡技術(shù)的不斷提高促進了國民經(jīng)濟的飛速發(fā)展,而網(wǎng)絡技術(shù)與計算機技術(shù)相結(jié)合也引起工業(yè)控制領域技術(shù)上的飛躍,現(xiàn)場總線網(wǎng)絡在這種背景下發(fā)展了起來。很多不同的廠家生產(chǎn)各種型號的計算機,它們運行完全不同的操作系統(tǒng),但TCP/IP協(xié)議允許它們互相進行通信。TCP/IP起源于60年代
24、末美國政府資助的一個分組交換網(wǎng)絡研究項目,到90年代已發(fā)展成為計算機之間最常用的組網(wǎng)形式。它是一個真正的開放系統(tǒng),因為協(xié)議族的定義及其多種實現(xiàn)可以不用花錢或花很少的錢就可以公開得到。它成為被稱為“全球互聯(lián)網(wǎng)”或“因特網(wǎng)”的基礎,TCP/IP技術(shù)不但遍布于全球的家庭、學校、公司、政府機構(gòu)等,也越來越多的應用于工業(yè)控制領域。 </p><p> 工業(yè)以太網(wǎng),寬泛的是指工業(yè)控制領域中使用的以太網(wǎng),他在技術(shù)上于商用以太
25、網(wǎng)兼容,在產(chǎn)品設計時,在材質(zhì)的選用、產(chǎn)品的強度、實用性,以及實用性、可操作性、可靠性和本質(zhì)安全等方面能滿足工業(yè)現(xiàn)場的需要。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與普及推廣,Ethernet技術(shù)也得到了迅速的發(fā)展,Ethernet傳輸速率的提高和Ethernet交換技術(shù)的發(fā)展,給解決Ethernet通信的非確定性問題帶來了希望,并使Ethernet全面應用于工業(yè)控制領域成為可能。由于以太網(wǎng)具有應用廣泛、價格低廉、通信速率高、軟硬件產(chǎn)品豐富、應用支持技術(shù)成熟
26、等優(yōu)點,目前它已經(jīng)在工業(yè)企業(yè)綜合自動化系統(tǒng)中的資源管理層、執(zhí)行制造層得到了廣泛應用,并呈現(xiàn)向下延伸直接應用于工業(yè)控制現(xiàn)場的趨勢。從目前國際、國內(nèi)工業(yè)以太網(wǎng)技術(shù)的發(fā)展來看,目前工業(yè)以太網(wǎng)在制造執(zhí)行層已得到廣泛應用,并成為事實上的標準。未來工業(yè)以太網(wǎng)將在工業(yè)企業(yè)綜合自動化系統(tǒng)中的現(xiàn)場設備之間的互連和信息集成中發(fā)揮越來越重要的作用。</p><p> 快速以太網(wǎng)與交換式以太網(wǎng)技術(shù)的發(fā)展,給解決以太網(wǎng)的非確定性問題帶來
27、了新的契機,使這一應用成為可能。首先,Ethernet的通信速率從10M、100M增大到如今的1000M、10G,在數(shù)據(jù)吞吐量相同的情況下,通信速率的提高意味著網(wǎng)絡負荷的減輕和網(wǎng)絡傳輸延時的減小,即網(wǎng)絡碰撞機率大大下降。其次,采用星型網(wǎng)絡拓撲結(jié)構(gòu),交換機將網(wǎng)絡劃分為若干個網(wǎng)段。Ethernet交換機由于具有數(shù)據(jù)存儲、轉(zhuǎn)發(fā)的功能,使各端口之間輸入和輸出的數(shù)據(jù)幀能夠得到緩沖,不再發(fā)生碰撞;同時交換機還可對網(wǎng)絡上傳輸?shù)臄?shù)據(jù)進行過濾,使每個網(wǎng)段
28、內(nèi)節(jié)點間數(shù)據(jù)的傳輸只限在本地網(wǎng)段內(nèi)進行,而不需經(jīng)過主干網(wǎng),也不占用其它網(wǎng)段的帶寬,從而降低了所有網(wǎng)段和主干網(wǎng)的網(wǎng)絡負荷。再次,全雙工通信又使得端口間兩對雙絞線(或兩根光纖)上分別同時接收和發(fā)送報文幀,也不會發(fā)生沖突。因此,采用交換式集線器和全雙工通信,可使網(wǎng)絡上的沖突域不復存在(全雙工通信),或碰撞機率大大降低(半雙工),因此使Ethernet通信確定性和實時性大大提高。 </p><p> 近年來,由于不斷
29、增長的視頻流量和更強大服務器架構(gòu)的推動,計算機和網(wǎng)絡應用程序?qū)挼囊笠搽S之增大。在某些關(guān)鍵的互聯(lián)網(wǎng)匯接節(jié)點,已經(jīng)有匯接8路10 Gbps以太網(wǎng)的網(wǎng)絡匯接方案以滿足當前帶寬需求。很顯然,當前的10 Gbps以太網(wǎng)并不能滿足這些匯接節(jié)點的帶寬需求。 </p><p> 在2006年7月,IEEE802.3工作組成立了一個HSSG[1](Higher Speed study Group)研究小組,負責調(diào)查下一代以
30、太網(wǎng)的需求和要求。HSSG的目標是試圖確定在未來3~7年內(nèi)滿足市場的需求的下一代以太網(wǎng)速度。 </p><p> 根據(jù)HSSG的一項調(diào)查結(jié)果顯示,核心網(wǎng)絡(網(wǎng)絡匯接)和服務器網(wǎng)絡(計算I/O)的帶寬增長速率是不同。如圖所示:</p><p> 圖1.1 以太網(wǎng)帶寬需求趨勢</p><p> 要保證以太網(wǎng)能夠更高效更經(jīng)濟地滿足不同應用的需要,IEEE802.3
31、起草了下一代以太網(wǎng)技術(shù)標準IEEE802.3ba,其中包含了40 Gbps和100 Gbps兩種速度,主要針對服務器和網(wǎng)絡方面不同的需求。40 Gbps主要針對計算應用,而100 Gbps則主要針對核心和匯接應用。</p><p> 由于以太網(wǎng)技術(shù)的迅猛發(fā)展,如何實現(xiàn)一個功能全,可靠性高的以太網(wǎng)網(wǎng)關(guān)變得尤為重要,這不僅僅關(guān)系到不同體系結(jié)構(gòu)或協(xié)議的網(wǎng)絡之間進行互通時,還有其提供協(xié)議轉(zhuǎn)換、路由選擇、數(shù)據(jù)交換等網(wǎng)絡兼
32、容功能的實現(xiàn),可見一個功能齊全的網(wǎng)關(guān),在以太網(wǎng)和其他網(wǎng)絡之間數(shù)據(jù)交換起到舉足輕重的作用。</p><p> 1.3 論文主要內(nèi)容</p><p> 本課題分為三塊來實現(xiàn),一是以太網(wǎng)現(xiàn)場數(shù)據(jù)通信系統(tǒng)的硬件結(jié)構(gòu),包括S3C2440芯片、以太網(wǎng)控制芯片DM9000和RS232、RJ45接口。并對硬件整體數(shù)據(jù)流向做相應的描述。二是系統(tǒng)軟件功能模塊的設計。主要是S3C2440芯片對串口的控制,
33、以太網(wǎng)控制芯片對以太網(wǎng)數(shù)據(jù)的幀傳輸,單片機對數(shù)據(jù)封包和解包.三是系統(tǒng)調(diào)試,包括調(diào)試步驟和結(jié)果分析。</p><p> 本文所做的主要是針對以arm單片機為硬件平臺、基于以太網(wǎng)現(xiàn)場數(shù)據(jù)通信系統(tǒng)硬件環(huán)境下,用arm 編程語言開發(fā)實現(xiàn)現(xiàn)場數(shù)據(jù)在以太網(wǎng)上的傳送和控制的軟件設計與調(diào)試。主要包括系統(tǒng)控制、傳輸控制、協(xié)議數(shù)據(jù)封包與解包程序。</p><p> 1.4 論文章節(jié)安排</p>
34、;<p> 第一章緒論,簡單的介紹了以太網(wǎng)現(xiàn)場數(shù)據(jù)通信系統(tǒng)的概念、以太網(wǎng)控制網(wǎng)絡、工業(yè)控制的發(fā)展情況。</p><p> 第二章是闡述整個系統(tǒng)的硬件架構(gòu),包括以太網(wǎng)技術(shù),TCP/IP參考模型,詳細分析以太網(wǎng)幀、IP包、UDP包格式,軟件通信程序?qū)崿F(xiàn)方面的總體思路,μC /OS-II系統(tǒng)移植方面的知識,包括其內(nèi)核架構(gòu),主要調(diào)試環(huán)境ADS1.2介紹。</p><p> 第三
35、章主要介紹以太網(wǎng)和現(xiàn)場數(shù)據(jù)網(wǎng)程序的實現(xiàn),HDLC幀結(jié)構(gòu),封幀解幀的思路,以太網(wǎng)配置。</p><p> 第四章則是介紹了ADS調(diào)試環(huán)境,程序燒錄方法。 </p><p> 第五章主要就本次實驗遇到的問題和問題的解決做出一個總結(jié)。</p><p> 第二章 系統(tǒng)方案設計</p><p> 2.1 系統(tǒng)總體結(jié)構(gòu)</p>
36、<p> 本次系統(tǒng)設計的總體思想是,當RS-232接口收到來自現(xiàn)場總線數(shù)據(jù)設備的數(shù)據(jù),在單片機的控制下,根據(jù)TCP/IP分層模型,依次為數(shù)據(jù)添加UDP包頭和IP層包頭以及數(shù)據(jù)鏈路層報頭,而后發(fā)送這些經(jīng)過封裝的數(shù)據(jù)報給以太網(wǎng)控制芯片DM9000,由控制芯片DM9000自動給這些數(shù)據(jù)報添加以太網(wǎng)所需要的相關(guān)信息,通過物理接口傳送到以太網(wǎng)上。反向同理。數(shù)據(jù)傳送簡圖如圖2.1所示:</p><p> 圖2.
37、1 數(shù)據(jù)傳送簡圖</p><p> 2.2 功能結(jié)構(gòu)設計 </p><p> 2.2.1 嵌入式數(shù)據(jù)網(wǎng)關(guān)</p><p> 嵌入式網(wǎng)關(guān)硬件環(huán)境以TQ2440開發(fā)板為基礎,使用的是S3C2440芯片
38、和DM9000以太網(wǎng)控制芯片,實現(xiàn)RJ45接口和RS232接口的數(shù)據(jù)傳輸。</p><p> 嵌入式單片機型號為三星公司出品的S3C2440單片機,它是一款支持實時仿真和跟蹤的16/32位ARM920T的RISC處理器,處理器時鐘高達400MHz,ARM920T實現(xiàn)了MMU、AMBA BUS和Harvard高速緩沖體系結(jié)構(gòu),0.13um的CMOS標準宏單元和存儲器單元,其功耗低,簡單,且全靜態(tài)設計特別適合于對成
39、本和功率敏感型的應用,它采用了新的總線架構(gòu),Advanced Micro controller Bus Architecture(AMBA)。</p><p> 2.2.2 以太網(wǎng)接口</p><p> 在以太網(wǎng)端采用DM9000作為網(wǎng)絡接口控制器進行網(wǎng)絡編程時,主要是通過ADS1.2上uC/OS-II的移植實現(xiàn)對DM9000進行控制來實現(xiàn)的。這些控制主要包括對接口芯片的初始化,網(wǎng)絡
40、接口芯片的DMA讀寫,及發(fā)送和接收網(wǎng)絡數(shù)據(jù)包。其中,發(fā)送和接收網(wǎng)絡數(shù)據(jù)主要是對TCP/IP協(xié)議棧的處理。 </p><p> 網(wǎng)卡接口中使用了20F001N芯片,20F001N是雙絞線驅(qū)動/接收器,內(nèi)部也有2個傳輸變壓器。其作用為隔離網(wǎng)絡兩邊的信號,防止相互干擾和燒壞元件,實現(xiàn)帶電的插拔功能。</p><p> 2.2.3 現(xiàn)場數(shù)據(jù)總線</p><p> 連
41、接智能現(xiàn)場設備和自動化系統(tǒng)的全數(shù)字、雙向、多站的通信系統(tǒng)。主要解決工業(yè)現(xiàn)場的智能化儀器儀表、控制器、執(zhí)行機構(gòu)等現(xiàn)場設備間的數(shù)字通信以及這些現(xiàn)場控制設備和高級控制系統(tǒng)之間的信息傳遞問題。在現(xiàn)場數(shù)據(jù)網(wǎng)端采用RS232接口通信,RS232是個人計算機上的通訊接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 所制定的異步傳輸標準接口。通常 RS-232 接口以9個引腳 (DB-9) 或是25
42、個引腳 (DB-25) 的型態(tài)出現(xiàn),一般個人計算機上會有兩組 RS-232 接口,分別稱為 COM1 和 COM2。</p><p> 串行通信接口標準經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在RS-232標準的基礎上經(jīng)過改進而形成的。所以,以RS-232C為主來討論。RS-232C標準是美國EIA(電子工業(yè)聯(lián)合會)與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍
43、內(nèi)的通信。這個標準對串行通信接口的有關(guān)問題,如信號線功能、電器特性都作了明確規(guī)定。由于通信設備廠商都生產(chǎn)與RS-232C制式兼容的通信設備,因此,它作為一種標準,目前已在微機通信接口中廣泛采用。</p><p> MAX232是由德州儀器公司(TI)推出的一款兼容RS232標準的芯片。由于電腦串口RS232電平是-10v +10v,而一般的單片機應用系統(tǒng)的信號電壓是TTL電平0 +5v,MAX232就是用來進行
44、電平轉(zhuǎn)換的,該器件包含2驅(qū)動器、2接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。</p><p><b> 第三章 硬件設計</b></p><p> 3.1 嵌入式系統(tǒng)硬件總體結(jié)構(gòu)設計</p><p> 3.1.1 嵌入式系統(tǒng)硬件框圖</p><p> 硬件框圖是簡單的將每個功能模塊列出,也是
45、一個基本的模塊組合,可以簡潔的每個模塊的功能體現(xiàn)出來。</p><p> 其中包括了電源模塊,處理模塊,串口模塊以及網(wǎng)口模塊。</p><p> 電源模塊主要的用途是負責給整塊開發(fā)板進行供電,保證每個模塊都可以正常工作。</p><p> 處理模塊主要的用途是負責協(xié)議的轉(zhuǎn)換,數(shù)據(jù)的處理等,以保障通信的暢通。</p><p> 串口模塊
46、以及網(wǎng)口模塊主要的用途是負責各網(wǎng)絡相關(guān)數(shù)據(jù)信息的收發(fā)。</p><p> 硬件框圖見圖3.1。</p><p><b> 圖3.1 硬件框圖</b></p><p> 3.1.2 嵌入式系統(tǒng)硬件功能設計</p><p> 本網(wǎng)關(guān)硬件環(huán)境以單片機S3C2440芯片和DM9000以太網(wǎng)控制芯片為主,實現(xiàn)RJ45接口
47、和RS232接口的數(shù)據(jù)傳輸。內(nèi)容包括硬件環(huán)境的初始化,數(shù)據(jù)的收發(fā)控制,封包解包設計,操作系統(tǒng)的移植等。</p><p> 圖3.2 硬件功能框圖</p><p> 3.1.3 嵌入式系統(tǒng)硬件體系結(jié)構(gòu)設計</p><p> 一個嵌入式系統(tǒng)裝置一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置組成,嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應用軟件層
48、組成。執(zhí)行裝置也稱為被控對象,它可以接受嵌入式計算機系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務。執(zhí)行裝置可以很簡單,如手機上的一個微小型的電機,當手機處于震動接收狀態(tài)時打開;也可以很復雜,如SONY 智能機器狗,上面集成了多個微小型控制電機和多種傳感器,從而可以執(zhí)行各種復雜的動作和感受各種狀態(tài)信息。</p><p><b> 體系主要組成包括:</b></p><p&g
49、t;<b> 1. 硬件層</b></p><p> 硬件層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設備接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式處理器基礎上添加電源電路、時鐘電路和存儲器電路,就構(gòu)成了一個嵌入式核心控制模塊。其中操作系統(tǒng)和應用程序都可以固化在ROM中。</p><p><b> 2. 中間
50、層</b></p><p> 硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關(guān),上層軟件開發(fā)人員無需關(guān)心底層硬件的具體情況,根據(jù)BSP 層提供的接口即可進行開發(fā)。該層一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操
51、作和硬件設備的配置功能。</p><p> 這里談到的BSP具有以下兩個特點。 </p><p> 硬件相關(guān)性:因為嵌入式實時系統(tǒng)的硬件環(huán)境具有應用相關(guān)性,而作為上層軟 件與硬件平臺之間的接口,BSP需要為操作系統(tǒng)提供操作和控制具體硬件的方法。 </p><p> 操作系統(tǒng)相關(guān)性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式
52、。</p><p><b> 3. 系統(tǒng)軟件層</b></p><p> 系統(tǒng)軟件層由實時多任務操作系統(tǒng)(Real-time Operation System,RTOS)、文件系統(tǒng)、圖形用戶接口(Graphic User Interface,GUI)、網(wǎng)絡系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發(fā)平臺。</p><p>&
53、lt;b> 4. 功能層</b></p><p> 功能層主要由實現(xiàn)某種或某幾項任務而被開發(fā)運行于操作系統(tǒng)上的程序組成。</p><p> 嵌入式體系結(jié)構(gòu)如圖3.3</p><p> 圖3.3 嵌入式體系結(jié)構(gòu)框圖</p><p> 時下嵌入式和以太網(wǎng)的結(jié)合正是一個熱點關(guān)注問題。主要在智能家居,工業(yè)以太網(wǎng)的表現(xiàn)中尤
54、為突出,而嵌入式以太網(wǎng)技術(shù)的主要應用領域便是工業(yè)控制網(wǎng)絡,即工業(yè)以太網(wǎng),具有以太網(wǎng)接口的各種智能化儀器儀表正逐步取代傳統(tǒng)的測控設備。嵌入式以太網(wǎng)技術(shù)為工業(yè)控制網(wǎng)絡的發(fā)展帶來了一個全新的思想和更廣闊的領域,它突破了常規(guī)的框架,使網(wǎng)絡不僅服務于管理層,而且進一步延伸到工業(yè)控制現(xiàn)場設備,以實現(xiàn)現(xiàn)場自動化智能設備之間的多點數(shù)字通信,形成工廠底層網(wǎng)絡系統(tǒng),完成從最底層到最上層的一體化聯(lián)網(wǎng)。</p><p> 3.2 嵌
55、入式處理器芯片</p><p> Samsung 公司推出的 16/32 位 RISC 處理器 S3C2440 為手持設備和一般類型應用提供了高性價比和高性能的微控制器解決方案。為了降低成本,S3C2440 提供了豐富的內(nèi)置部件,包括:16KB 指令cache和16KB數(shù)據(jù)cache,外部存儲控制器 SDRAM,LCD 控制器(最大支持4K色STN和256K色TFT),提供1通道LCD專用DMA,帶4通道DMA
56、并帶有外部請求引腳,3通道UART(IrDA1.0,64字節(jié)Tx FIFO,和64字節(jié)Rx FIFO),2通道SPI,1通道IIC-BUS接口(多主支持)。1.2V內(nèi)核供電,1.8V/2.5V/3.3V存儲器供電,3.3V外部I/O供電,具備16K的I-Cache和16KDCache/MMU微處理器。</p><p> 圖3.4 ARM920T系統(tǒng)結(jié)構(gòu)圖</p><p> S3C24
57、40采用了 ARM920T 內(nèi)核,擁有強大的指令集,0.13um 工藝的 CMOS 標準宏單元和存儲編譯器以及一種新的總線結(jié)構(gòu)它采用了新的總線架構(gòu),Advanced Micro controller Bus Architecture(AMBA)。它的低功耗精簡和出色的全靜態(tài)設計特別適用于對成本和功耗敏感的應用。</p><p> S3C2440的杰出特性是它的CPU核,是由ARM公司設計的16/32位ARM92
58、0T RISC處理器(400MHZ)。它通過提供全面的、通用的片上外設,大大減少了系統(tǒng)電路中除處理器以外的元器件配置,從而最小化系統(tǒng)的成本。</p><p> ARM920T 是ARM920TDMI系列中一款通用性的微處理器,由內(nèi)核、高速緩存和內(nèi)存管理單元(MMU)組成。支持字節(jié)(8位)、半字(16位)、字(32位)3種數(shù)據(jù)類型,其中,字需要4字節(jié)對齊,半字需要2字節(jié)對齊。工作于ARM狀態(tài)時,處理器執(zhí)行32位的
59、,字對齊ARM指令。</p><p> ARM920T體系結(jié)構(gòu)將存儲器看做是從零地址開始的字節(jié)的線性組合。從0字節(jié)到3字節(jié)存放第一個存儲的字數(shù)據(jù),從4字節(jié)到7字節(jié)存放第二個存儲的字數(shù)據(jù),依次類推。作為32位的微處理器,ARM920T體系結(jié)構(gòu)所支持最大的尋址空間是4GB(2332字節(jié)),有2種方法存儲字數(shù)據(jù):大端格式和小端格式。大端格式中字數(shù)據(jù)的高字節(jié)存儲在低地址,字數(shù)據(jù)的低字節(jié)存放在高地址;與大端存儲格式相反,
60、小端存儲格式中,低地址中存放的是字數(shù)據(jù)的低地址,高地址存放的是字數(shù)據(jù)的高字節(jié)。</p><p> S3C2440內(nèi)部結(jié)構(gòu):</p><p> 圖3.5 S3C2440內(nèi)部結(jié)構(gòu)</p><p> 3.3 以太網(wǎng)控制器</p><p> DM9000是一款完全集成的和符合成本效益的,單芯片快速以太網(wǎng)MAC控制器。它有一個一般處理接口,
61、一個10/100M自適應的PHY和4K DWORD值的SRAM。它的目的是在低功耗和高性能進程的3.3V與5V的支持寬容,DM9000還提供了介質(zhì)無關(guān)的接口,來連接所有提供支持介質(zhì)無關(guān)接口功能的家用電話線網(wǎng)絡設備或其他收發(fā)器。該DM9000支持8位,16位和32 -位接口訪問內(nèi)部存儲器,以支持不同的處理器。DM9000物理協(xié)議層接口完全支持使用10MBps下3類、4類、5類非屏蔽雙絞線和100MBps下5類非屏蔽雙絞線。這是完全符合IE
62、EE 802.3u規(guī)格。它的自動協(xié)調(diào)功能將自動完成配置以最大限度地適合其線路帶寬。還支持IEEE 802.3x全雙工流量控制。這個工作里面DM9000是非常簡單的,所以用戶可以容易的移植任何系統(tǒng)下的端口驅(qū)動程序。 </p><p> DM9000是一款完全集成的和符合成本效益單芯片快速以太網(wǎng)MAC控制器與一般處理接口,一個10/100M自適應的PHY和4K DWORD值的SRAM 。它的目的是在低功耗
63、和高性能進程的3.3V與5V的支持寬容。DM9000內(nèi)部可分為遠程 DMA接口、本地 DMA接口、MAC(介質(zhì)訪問控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。</p><p> 遠程 DMA接口是指單片機對DM9000內(nèi)部 RAM進行讀寫的總線,即 ISA總線的接口部分。單片機收發(fā)數(shù)據(jù)只需對遠程 DMA操作。本地 DMA接口是把 DM9000與網(wǎng)線的連接通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。</p>&l
64、t;p> MAC(介質(zhì)訪問控制)邏輯完成以下功能:當單片機向網(wǎng)上發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)通過遠程 DMA通道送到DM9000中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;當 DM9000完成了上幀的發(fā)送后,再開始此幀的發(fā)送。DM9000接收到的數(shù)據(jù)通過MAC比較、CRC校驗后,由 FIFO存到接收緩沖區(qū);收滿一幀后,以中斷或寄存器標志的方式通知主處理器。FIFO邏輯對收發(fā)數(shù)據(jù)作 16字節(jié)的緩沖,以減少對本地 DMA請求的頻率。 </p
65、><p> 網(wǎng)絡控制器DM9000選用DAVICOM公司的快速以太網(wǎng)控制處理器,合成了MAC,PHY,MMU。該處理器配備有標準10 M /100M 自適應,16K 大容量的FIFO,4 路多功能GPIO,掉電,全雙工工作等功能。物理層支持以太網(wǎng)接口協(xié)議。由于數(shù)據(jù)有時是以猝發(fā)形式收到的,因此,DM9000 還集成有接收緩沖區(qū),以便在接收到數(shù)據(jù)時能把數(shù)據(jù)放到這個緩沖區(qū)中,然后由數(shù)據(jù)鏈路層直接從該緩沖區(qū)里取走數(shù)據(jù)。鏈路
66、層通常包括操作系統(tǒng)中的設備驅(qū)動程序和計算機中對應的網(wǎng)絡接口卡,它們一起處理與電纜的物理接口細節(jié)數(shù)據(jù),它的緩沖區(qū)可用來暫時存儲要發(fā)送或接收的幀。它完全支持IEEE802.3u 規(guī)格,支持IEEE802.3x 全雙工的流控制。網(wǎng)絡驅(qū)動功能層次如圖3.6。</p><p> 圖3.6 DM9000網(wǎng)絡驅(qū)動的功能層次</p><p> DM9000還提供了介質(zhì)無關(guān)的接口,來連接所有提供支持
67、介質(zhì)無關(guān)接口功能的家用電話線網(wǎng)絡設備或其他收發(fā)器。該DM9000支持8位,16位和32 -位接口訪問內(nèi)部存儲器,以支持不同的處理器。對DM9000讀寫操作,首先對DM9000正確尋址。AEN(地址允許)是輸入引腳片選信號。SA4~SA9是地址總線4~9位,當AEN低且SA9和SA8高,而SA7、SA6、SA5、SA4為低時,則DM9000被選中。DM9000默認I/0基地址為300H。</p><p> CMD
68、引腳用于設置COMMAND模式,CMD為高時,選擇數(shù)據(jù)端口。CMD為低時,選地址端口。數(shù)據(jù)端口和地址端口的地址碼由下式?jīng)Q定:</p><p> DM9000地址端口=高位片選地址+300H+0H;</p><p> DM9000數(shù)據(jù)端口=高位片選地址+300H+4H;</p><p> DM9000芯片電路引腳見圖3.7</p><p>
69、; 圖3.7 DM9000芯片電路引腳圖</p><p><b> 第四章 軟件設計</b></p><p> 由現(xiàn)場總線端通過RS232口發(fā)送數(shù)據(jù)到以太網(wǎng)的數(shù)據(jù)流向,事先約定好HDLC的幀格式和數(shù)據(jù)傳輸?shù)牟ㄌ芈?。?shù)據(jù)通過串口緩沖區(qū)和以太網(wǎng)控制芯片緩沖區(qū)發(fā)送到網(wǎng)上,經(jīng)過了HDLC解幀,單片機控制封包,添加以太網(wǎng)傳輸時所需的信息等處理。反之則經(jīng)過以太網(wǎng)芯片處
70、理,單片機控制解包,HDLC封幀等步驟。最終實現(xiàn)通信可能。</p><p> 系統(tǒng)軟件數(shù)據(jù)流圖如下:</p><p> 圖4.1 軟件數(shù)據(jù)流圖</p><p> 按協(xié)議內(nèi)容的獨立性和數(shù)據(jù)的存儲傳輸可將軟件設計劃分為四個模塊:串口發(fā)送與接收;HDLC協(xié)議的實現(xiàn);單片機控制實現(xiàn)UDP協(xié)議封包與解包; DM9000芯片對數(shù)據(jù)傳輸?shù)目刂婆c處理。</p>
71、<p> 系統(tǒng)軟件的實現(xiàn)是以μC/OS-II操作系統(tǒng)和TCP/IP協(xié)議棧在單片機上的移植、實時任務的建立為基礎的。而上述各模塊的實現(xiàn)主要在于TCP/IP協(xié)議棧、DM9000的初始化及收發(fā)等內(nèi)容。所以本節(jié)將主要介紹μC/OS-II的移植及TCP/IP協(xié)議棧、DM9000的相關(guān)設計內(nèi)容。</p><p> 圖4.2 軟件功能模塊圖</p><p> 4.1 軟件系統(tǒng)模塊設
72、計</p><p> 本次設計中需要實現(xiàn)的是以太網(wǎng)端的IP分組問題,相繼的是解決現(xiàn)場數(shù)據(jù)總線里高級數(shù)據(jù)鏈路控制HDLC的封幀和解幀,軟件編程實現(xiàn)。首先完成系統(tǒng)的初始化,而后建立了三項任務,分別為以太網(wǎng)接收任務,主要負責接收以太網(wǎng)數(shù)據(jù)幀,定時任務,完成超時重傳,定時傳送,協(xié)議處理任務,完成TCP/IP協(xié)議處理。系統(tǒng)采用模塊化編程的思想,將系統(tǒng)軟件分成以太網(wǎng)驅(qū)動模塊,TCP/IP協(xié)議處理模塊,RS-232串口數(shù)據(jù)收
73、發(fā)模塊。模塊如圖4.3所示:</p><p><b> 圖4.3 系統(tǒng)模塊</b></p><p> (1)以太網(wǎng)驅(qū)動模塊</p><p> 以太網(wǎng)控制器芯片DM9000的驅(qū)動程序。 </p><p> (2)TCP/IP網(wǎng)絡協(xié)議處理模塊</p><p> 實現(xiàn)TCP/IP協(xié)議的一個子集
74、,具體的有ARP和UDP。</p><p> ·ARP協(xié)議:支持ARP請求和ARP應答,支持ARP高速緩存;</p><p> ·UDP協(xié)議:支持點對點、一點對多點的UDP數(shù)據(jù)包通信。</p><p> ?。?)RS-232串口數(shù)據(jù)收發(fā)模塊</p><p> RS-232串口采用中斷方式實現(xiàn)對現(xiàn)場總線數(shù)據(jù)的收發(fā)。&l
75、t;/p><p> 4.2 系統(tǒng)初始化模塊設計</p><p> 在正式創(chuàng)建工程,編譯相關(guān)實現(xiàn)代碼之前,我們需要對系統(tǒng)進行初始化,其中包括對串口、對以太網(wǎng)網(wǎng)口的初始化,地址等進行相關(guān)的配置工作,也包括一些所使用到的宏定義。 </p><p> 4.2.1 串口初始化</p><p> #define rULCON0 (*(vola
76、tile unsigned *)0x50000000)//UART 0 Line control</p><p> #define rUCON0 (*(volatile unsigned *)0x50000004)//UART 0 Control</p><p> #define rUFCON0 (*(volatile unsigned *)0x50000008)
77、//UART 0 FIFO control</p><p> #define rUMCON0 (*(volatile unsigned *)0x5000000c)//UART0Modem control</p><p> #define rUTRSTAT0 (*(volatile unsigned *)0x50000010)//UART 0 Tx/Rx status&
78、lt;/p><p> #define rUERSTAT0 (*(volatile unsigned *)0x50000014)//UART 0 Rx error status</p><p> #define rUFSTAT0 (*(volatile unsigned *)0x50000018)//UART 0 FIFO status</p><p>
79、 #define rUMSTAT0 (*(volatile unsigned *)0x5000001c)//UART 0 Modem status</p><p> #define rUBRDIV0 (*(volatile unsigned *)0x50000028)//UART 0 Baud rate divisor</p><p> //little endian
80、</p><p> #define rUTXH0 (*(volatile unsigned char *)0x50000020)//UART 0 Transmission Hold</p><p> #define rURXH0 (*(volatile unsigned char *)0x50000024)//UART 0 Receive buffer</p><
81、;p> 4.2.2 網(wǎng)口初始化</p><p> #define rEXTINT0 (*(volatile unsigned *)0x56000088)//External interrupt control register 0</p><p> #define rEINTMASK (*(volatile unsigned *)0x560000a4)//Exter
82、nal interrupt mask</p><p> #define rEINTPEND (*(volatile unsigned *)0x560000a8)//External interrupt pending</p><p> 在初始化所需要的的函數(shù)程序后,開始對核心操作系統(tǒng)μC/OS-II進行移植。</p><p> 4.3 核心操作系統(tǒng)μC/O
83、S-II模塊</p><p> 4.3.1 μC/OS-II嵌入式系統(tǒng)在ARM上的移植</p><p> 為了本系統(tǒng)有更為快速的用戶響應,本設計中移植了μC/OS-II。</p><p> μC/OS-II是一款完全公開的源代碼,具有以下幾個特點:</p><p> ?。?)可移植性(Portable)</p><p
84、> 絕大部分 C/OS-II的源碼是用移植性很強的ANSI C寫的。和微處理器硬件相關(guān)的那部分是用匯編語言寫的。匯編語言寫的部分已經(jīng)壓到最低限度,使得 C/OS-II便于移植到其他微處理器上。 C/OS-II可以在絕大多數(shù)8位、16位、32位以至64位微處理器、微控制器 、數(shù)字信號處理器(DSP)上運行。</p><p> ?。?)可固化(ROMable)</p><p> C
85、/OS-II是為嵌入式應用而設計的,這就意味著,只要用戶有固化手段(C編譯、連接、下載和固化), C/OS-II可以嵌入到用戶的產(chǎn)品中成為產(chǎn)品的一部分。 </p><p> ?。?)可裁剪(Scalable)</p><p> 可以只使用 C/OS-II中應用程序需要的那些系統(tǒng)服務。也就是說某產(chǎn)品可以只使用很少幾個 C/OS-II調(diào)用,這樣可以減少產(chǎn)品中的 C/OS-II所需的存儲器空
86、間(RAM和ROM)。這種可剪裁性是靠條件編譯實現(xiàn)的。</p><p><b> ?。?)多任務</b></p><p> C/OS-II可以管理64個任務,然而,目前這一版本保留8個給系統(tǒng)。應用程序最多可以有56個任務 </p><p><b> (5)可確定性 </b></p><p>
87、全部 C/OS-II的函數(shù)調(diào)用與服務的執(zhí)行時間具有可確定性。 </p><p><b> ?。?)任務棧</b></p><p> 每個任務有自己單獨的棧, C/OS-II允許每個任務有不同的??臻g,以便壓低應用程序?qū)AM的需求。</p><p><b> (7)系統(tǒng)服務</b></p><p&
88、gt; C/OS-II提供很多系統(tǒng)服務,例如郵箱、消息隊列、信號量、塊大小固定的內(nèi)存的申請與釋放、時間相關(guān)函數(shù)等。 </p><p><b> (8)中斷管理</b></p><p> 中斷可以使正在執(zhí)行的任務暫時掛起,如果優(yōu)先級更高的任務被該中斷喚醒,則高優(yōu)先級的任務在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達255層。 </p><p&
89、gt; ?。?)穩(wěn)定性與可靠性</p><p> C/OS-II獲得美國航空管理局(FAA)的認可,確定可以用于飛行器中。</p><p> μC/OS-II內(nèi)核介紹:</p><p> μC/OS-II主要有一個內(nèi)核,只有任務管理和任務調(diào)度,無文件系統(tǒng)、界面系統(tǒng)、外設管理系統(tǒng)等。其特點是小巧、源代碼公開、注解詳細、實時性強、可移植性好、多任務、基于優(yōu)先級的可
90、剝奪型調(diào)度。μC/OS-II是專門為單片機嵌入式系統(tǒng)應用而設計的,主體代碼用標準的ANSIC語言編寫而成,十分易于移植。</p><p> μC/OS-II 是一種基于優(yōu)先級的搶占式多 任務實時操作系統(tǒng), 包含了實時內(nèi)核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息 隊列)和內(nèi)存管理等功能。它可以使各個任務獨立工作,互不干涉,很容易實現(xiàn)準時而且無誤執(zhí)行,使實時應用程序的設計和擴展變得容易,使應用程序的
91、設計過程 大為減化。</p><p> μC/OS-II的內(nèi)核總共有16個文件,其中11個文件與微處理器類型無關(guān),移植后無需修改,可直接使用;3個文件與CPU類型相關(guān),在移植時需要根據(jù)CPU情況進行修改;2個文件與具體應用有關(guān)。如圖4.4:</p><p> 圖4.4 μC/OS-II內(nèi)核文件</p><p> 多任務的并發(fā)執(zhí)行通常依賴于一個多任務操作系統(tǒng),
92、多任務操作系統(tǒng)的核心是系統(tǒng)調(diào)度器,它使用任務控制塊(TCB)來管理任務調(diào)度功能。TCB用來保存任務的當前狀態(tài)、優(yōu)先級、要等待的事件或資源、任務程序代碼的起始地址、初始堆棧指針等信息。實時應用程序設計的關(guān)鍵就是確定如何把問題分割成多個任務,以及如何確定每個任務的優(yōu)先級和任務之間的通信。</p><p> 典型地,每個任務都是一個無限的循環(huán),每個任務都處在休眠態(tài)、就緒態(tài)、運行態(tài)、掛起態(tài)(等待某一事件發(fā)生)和被中斷態(tài)
93、等五種狀態(tài)之一。</p><p> 一旦有更高優(yōu)先級的任務準備就緒,當前正在運行的低優(yōu)先級任務的CPU使用權(quán)就立即被剝奪,該任務轉(zhuǎn)為就緒態(tài)或掛起態(tài),CPU的使用權(quán)移交給那個更高優(yōu)先級的任務。這種類型的內(nèi)核就是可剝奪型內(nèi)核。</p><p> 使用可剝奪型內(nèi)核,準備就緒的最高優(yōu)先級任務總能得到CPU的使用權(quán)。如果中斷服務使得一個高優(yōu)先級任務準備就緒,那么中斷服務完成后,被中斷的任務將被掛
94、起,高優(yōu)先級的任務繼續(xù)運行。同樣,若中斷期間有高優(yōu)先級任務準備就緒,中斷服務完成以后,可剝奪型內(nèi)核運行說明如下:</p><p> 低優(yōu)先級任務正在運行時,有一個異步事件發(fā)生,中斷打入。</p><p> 若此時中斷是開放的,則CPU轉(zhuǎn)入中斷服務子程序。</p><p> 假設中斷服務子程序使一個更高優(yōu)先級的任務進入就緒態(tài)。</p><p&
95、gt; 中斷服務完成后,應用程序不再返回到原來被中斷的任務,而是執(zhí)行準備就緒的高優(yōu)先級任務。中斷返回到哪個任務,則由一個內(nèi)核函數(shù)決定的。</p><p> 高優(yōu)先級任務開始處理中斷服務子程序所標識的異步事件。</p><p> 高優(yōu)先級任務執(zhí)行完畢以后掛起,內(nèi)核進行任務切換。值得注意的是:若高優(yōu)先級的任務不自我掛起,低優(yōu)先級的任務就永遠都沒有運行的機會。</p><
96、;p> 若此時沒有比原來被中斷的那個任務優(yōu)先級更高的任務準備就緒,則被中斷的任務將重新獲得CPU的使用權(quán);若有更高優(yōu)先級的任務準備就緒,那么CPU將運行這個更高優(yōu)先級的任務,原被中斷的任務還是得不到執(zhí)行,直到?jīng)]有比它更高優(yōu)先級的任務準備就緒,才能重新獲得CPU的控制權(quán)。</p><p> 對于可剝奪型內(nèi)核,CPU的使用權(quán)是可預測的和可確定的,可使任務級響應得以優(yōu)化。</p><p&g
97、t; 由于μC/OS-II的源代碼完全公開的原因,因此現(xiàn)在很多單片機開發(fā)板都能很輕易的移植μC/OS-II。本次設計中,所用的開發(fā)板是基于ARM9的TQ2440,也完美的移植了μC/OS-II操作系統(tǒng)。移植的程序本身就實現(xiàn)幾個簡單的功能函數(shù),但實現(xiàn)的功能與本次設計沒有相關(guān)。在此不作過多解釋。</p><p> 4.3.2 核心操作系統(tǒng)μC/OS-II模塊的建立</p><p> 設計
98、中所使用的操作系統(tǒng)μC/OS-II移植后,建立設計流程,實現(xiàn)相關(guān)功能。本次設計中,以太網(wǎng)和現(xiàn)場數(shù)據(jù)網(wǎng)之間的系統(tǒng)程序設計目的是需要實現(xiàn)RS232和RJ45兩種接口之間的數(shù)據(jù)交換,程序流程如下圖:</p><p> 圖4.5 系統(tǒng)流程圖</p><p> 在建立了主要的流程后,開始對μC/OS-II系統(tǒng)程序的建立。</p><p> 圖4.6 應用程序?qū)崿F(xiàn)<
99、/p><p> 用戶任務的定義方法如下:</p><p> void MyTask( void *pdata) //定義用戶任務</p><p><b> {</b></p><p><b> for(;;)</b></p><p><b>
100、 {</b></p><p><b> ...</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b>
101、;</p><p> TargetInit(); //初始化目標板</p><p> OSInit (); //初始化uCOS-II</p><p> OSTimeSet(0); //初始化系統(tǒng)時基</p><p> OSTaskCreate (MainTask,(void *)0, &Ma
102、inTaskStk[MainTaskStkLengh - 1], MainTaskPrio); //創(chuàng)建系統(tǒng)初始任務</p><p> OSStart (); //開始任務</p><p><b> return 0;</b></p><p><b> }</b></p>
103、<p> 值得注意的是,μC/OS-II中用戶應用程序必須使用空閑任務OSTaskldle(),而且這個任務是不能用軟件來刪除的。</p><p> 4.3 應用模塊設計</p><p> 4.4.1 TCP/IP網(wǎng)絡協(xié)議處理模塊設計</p><p> 本系統(tǒng)中從網(wǎng)絡上過來的以太網(wǎng)數(shù)據(jù),是按照TCP/IP協(xié)議標準打包的,從現(xiàn)場總線過來的數(shù)據(jù)我們
104、在這簡單地看成是透明數(shù)據(jù),所以從RS-232串口送來的數(shù)據(jù),我們只要按照TCP/IP協(xié)議進行封包,而反過來則將以太網(wǎng)協(xié)議數(shù)據(jù)進行解包即可。這就涉及到TCP/IP協(xié)議棧的問題。</p><p> 網(wǎng)關(guān)設計的主體部分是以TCP/IP協(xié)議棧在單片機上的實現(xiàn)為基礎的,即完成原始數(shù)據(jù)的封包與解包,實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換。而涉及到的協(xié)議主要包括UDP協(xié)議、IP協(xié)議、ARP協(xié)議。</p><p> TC
105、P/IP協(xié)議叫做傳輸控制/網(wǎng)際協(xié)議,它是Internet國際互聯(lián)網(wǎng)絡的基礎。TCP/IP是網(wǎng)絡中使用的基本的通信協(xié)議。 </p><p> TCP/IP協(xié)議的基本傳輸單位是數(shù)據(jù)包(datagram),TCP協(xié)議負責把數(shù)據(jù)分成若干個數(shù)據(jù)包,并給每個數(shù)據(jù)包加上包頭(就像給一封信加上信封),包頭上有相應的編號,以保證在數(shù)據(jù)接收端能將數(shù)據(jù)還原為原來的格式,IP協(xié)議在每個包頭上再加上接收端主機地址,這樣數(shù)據(jù)找到自己要去的
106、地方,如果傳輸過程中出現(xiàn)數(shù)據(jù)丟失、數(shù)據(jù)失真等情況,TCP協(xié)議會自動要求數(shù)據(jù)重新傳輸,并重新組包??傊?,IP協(xié)議保證數(shù)據(jù)的傳輸,TCP協(xié)議保證數(shù)據(jù)傳輸?shù)馁|(zhì)量。TCP/IP協(xié)議數(shù)據(jù)的傳輸基于TCP/IP協(xié)議的四層結(jié)構(gòu):應用層、傳輸層、網(wǎng)絡層、接口層,數(shù)據(jù)在傳輸時每通過一層就要在數(shù)據(jù)上加個包頭,其中的數(shù)據(jù)供接收端同一層協(xié)議使用,而在接收端,每經(jīng)過一層要把用過的包頭去掉,這樣來保證傳輸數(shù)據(jù)的格式完全一致。 </p><p&g
107、t;<b> 封包解包協(xié)議分析</b></p><p><b> 1. IP </b></p><p> IP層接收由更低層(網(wǎng)絡接口層例如以太網(wǎng)設備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層UDP層;相反,IP層也把從UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的。IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機
108、的地址(目的地址)。</p><p> 表4.1 IP包頭</p><p> 我們用單片機實現(xiàn)TCP/IP協(xié)議要作一些簡化,不考慮數(shù)據(jù)分片和優(yōu)先權(quán)。因此,在此我們不討論服務類型和標志偏移域,只需填“0” 即可。協(xié)議“版本”為4,“頭長度”單位為32Bit,“總長度”以字節(jié)為單位,表示整個IP數(shù)據(jù)報 長度?!皹俗R”是數(shù)據(jù)包的ID號,用于識別不同的IP數(shù)據(jù)包?!吧鏁r間” TTL是個數(shù)量
109、級的概念,防止無用數(shù)據(jù)包一直存在網(wǎng)絡中。一般每經(jīng)過路由器時減1,因此通過TTL 可以算出數(shù)據(jù)包到達目的地所經(jīng)過的路由器個數(shù)?!皡f(xié)議”域表示創(chuàng)建該數(shù)據(jù)包的高級協(xié)議類型。如 1表示ICMP協(xié)議,6表示TCP協(xié)議,17表示 UDP協(xié)議等。IP數(shù)據(jù)包為簡化數(shù)據(jù)轉(zhuǎn)發(fā)時間,僅采用頭校驗的方法,數(shù)據(jù)正確性由高層協(xié)議保證。</p><p><b> 2. UDP</b></p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)挖掘畢業(yè)設計
- 數(shù)據(jù)采集畢業(yè)設計
- 工程現(xiàn)場施工管理畢業(yè)設計論文
- 畢業(yè)設計試驗數(shù)據(jù).xlsx
- 畢業(yè)設計---高速數(shù)據(jù)采集系統(tǒng)設計
- 工業(yè)現(xiàn)場嵌入式網(wǎng)關(guān)設計.pdf
- usb數(shù)據(jù)采集系統(tǒng)設計畢業(yè)設計
- 數(shù)據(jù)采集系統(tǒng)畢業(yè)設計
- 畢業(yè)設計試驗數(shù)據(jù).xlsx
- 智能電網(wǎng)關(guān)鍵技術(shù)與探討畢業(yè)設計
- 基于ipsec協(xié)議的linuxvpn網(wǎng)關(guān)平臺畢業(yè)設計
- 畢業(yè)設計---公司數(shù)據(jù)存儲實現(xiàn)
- 數(shù)據(jù)恢復方法畢業(yè)設計
- 建筑工程現(xiàn)場施工管理畢業(yè)設計
- 淺談現(xiàn)場施工管理-畢業(yè)設計開題報告
- 畢業(yè)設計(論文)淺談施工現(xiàn)場管理
- 畢業(yè)設計(論文)--hotlink數(shù)據(jù)發(fā)送模塊設計
- 畢業(yè)設計----多路數(shù)據(jù)采集系統(tǒng)設計
- 畢業(yè)設計論文--數(shù)據(jù)挖掘技術(shù)
- vfp數(shù)據(jù)庫畢業(yè)設計
評論
0/150
提交評論