彭良鵬 史玉明
引言:隨著社會的的發(fā)展,網(wǎng)絡(luò)在日常生產(chǎn)生活中應(yīng)用更加廣泛,設(shè)備聯(lián)網(wǎng),計算機操作已經(jīng)成為自動化的必然趨勢,預(yù)示著我國進入到信息時代。常規(guī)的網(wǎng)絡(luò)接入一般采用以太網(wǎng),隨著技術(shù)的升級與改良,以太網(wǎng)類型更加多樣,嵌入式以太網(wǎng)通信技術(shù)在設(shè)備連接與通信中發(fā)揮了重要作用。本文主要針對嵌入式以太網(wǎng)通信技術(shù)進行分分析,探討嵌入式以太網(wǎng)的實現(xiàn)原理與技術(shù)。
隨著經(jīng)濟的發(fā)展,我國的計算機產(chǎn)業(yè)與網(wǎng)絡(luò)技術(shù)也亦步亦趨,設(shè)備聯(lián)網(wǎng)成為行業(yè)共識,但是在設(shè)備聯(lián)網(wǎng)與網(wǎng)絡(luò)接入的過程中也產(chǎn)生了明顯的問題,鑒于時代對網(wǎng)絡(luò)的需求,接入網(wǎng)絡(luò)設(shè)備不斷增加,信息流通量大等導致網(wǎng)絡(luò)接入不穩(wěn)定,網(wǎng)絡(luò)堵塞與故障頻發(fā),于是新的嵌入式以太網(wǎng)通信技術(shù)應(yīng)用而生,在網(wǎng)絡(luò)連接中發(fā)揮了重要作用。嵌入式以太網(wǎng)技術(shù)作為一種新的網(wǎng)絡(luò)通信連接技術(shù),一經(jīng)產(chǎn)生,廣受好評。本文主要針對S3C4510號嵌入式以太網(wǎng)技術(shù)進行分析,探討其實現(xiàn)原理。
一、嵌入式以太網(wǎng)通信系統(tǒng)硬件分析
以太網(wǎng)分為硬件系統(tǒng)與軟件系統(tǒng),其中以太網(wǎng)通信硬件系統(tǒng)包括以太網(wǎng)控制器與以太網(wǎng)接口,系統(tǒng)采用的以太網(wǎng)專用控制器能夠?qū)崿F(xiàn)嵌入式處理器S3C4510B內(nèi)置MAC接口,除了以太網(wǎng)控制器與以太網(wǎng)接口外還有物理層收發(fā)器芯片,物理層收發(fā)器是擁有串行網(wǎng)絡(luò)接口的單端高速物理收發(fā)器,兼具了所有的物理層功能,主要包括物理編碼電子層,物理介質(zhì)接入、基于雙絞線物理媒介子層等。如果嵌入式以太網(wǎng)要完成信息的接收與發(fā)送,必須通過DMA讀寫內(nèi)部的16KBRAM,該RAM具有雙端口性,所謂的雙端口指的是兩套總線共同連接到該RAM上,其中一套總線讀或?qū)懺揜AM,主要是本地DMA,另一套總線是CPU,也負責讀或?qū)慠AM,其為遠程DMA。通過網(wǎng)卡接收DMA上傳的數(shù)據(jù),然后借助網(wǎng)卡將信息數(shù)據(jù)發(fā)送到以太網(wǎng),RemoteDMA里的數(shù)據(jù)在完成啟動命令后,在網(wǎng)卡內(nèi)自動完成,然后提取數(shù)據(jù)到RAM中。
二、嵌入式以太網(wǎng)軟件通信系統(tǒng)軟件設(shè)計分析
我們前面介紹了嵌入式以太網(wǎng)的硬件系統(tǒng)設(shè)計,其實在嵌入式以太網(wǎng)功能的正常發(fā)揮中,軟件系統(tǒng)也起著重要的作用,是嵌入式以太網(wǎng)進行正常連接與工作的關(guān)鍵技術(shù)部分。一般來說,嵌入式以太網(wǎng)的軟件系統(tǒng)設(shè)計分為幾種,主要有以太網(wǎng)驅(qū)動程序配置、以太網(wǎng)Socket編碼設(shè)置等,下面我們針對每一種驅(qū)動進行具體分析。
(一)嵌入式以太網(wǎng)通信驅(qū)動程序配置
在以太網(wǎng)正常的功能發(fā)揮中,特別是實現(xiàn)遠程的傳輸功能,我們首先要對以太網(wǎng)驅(qū)動程序進行必要的設(shè)置,該系統(tǒng)中采用的板子與S3C4510處理器采用的是ne2000兼容的網(wǎng)卡芯片,因此對于控制流程不需要做任何改動,在必要的時候只需要修改芯片中的寄存器訪問操作,或者是對一些生產(chǎn)廠家所設(shè)計的網(wǎng)卡芯片最初設(shè)計定義。就目前嵌入式以太網(wǎng)的網(wǎng)卡驅(qū)動程序來說采用的都是ne2000的驅(qū)動程序,其接入實現(xiàn)方式主要將接收緩沖區(qū)置于發(fā)送緩沖區(qū)之后。
(二)使用Socket編程實現(xiàn)網(wǎng)絡(luò)通信
嵌入式以太網(wǎng)可以借助Socket編程實現(xiàn)網(wǎng)絡(luò)通信,其中Socket編程一半被翻譯成套接字,簡而言之就是網(wǎng)絡(luò)進程中的固定ID。目前比較常用的Socket編程有兩種,一種是流式,一種是數(shù)據(jù)報式。這兩種形式的主要區(qū)別在于采用不同的網(wǎng)絡(luò)協(xié)議,其中前者采用的是TCP協(xié)議,而后者采用的是UDP協(xié)議。如果在準確性完整性要求比較高的情況下,建議選擇流式編程技術(shù)。流式編程技術(shù)由Socket函數(shù)調(diào)來進行創(chuàng)建。在調(diào)用時一般采用bind函數(shù)作為其分配地址之一。
網(wǎng)絡(luò)應(yīng)用程序包括兩大部分,其中一部分是服務(wù)器端的應(yīng)用程序,主要負責對客戶端提出的連接請求、客戶端信息進行接受與分析,在分析的基礎(chǔ)上多客戶端提出的傳輸請求進行處理并解決,向客戶端傳達一定的應(yīng)答信息。其中一部分是客戶端的應(yīng)用程序,主要作用是對申請連接到服務(wù)器、面向服務(wù)器進行信息請求傳輸,處理服務(wù)器發(fā)回來的結(jié)果信息等信息資料進行分析并處理。
(三)嵌入式以太網(wǎng)的服務(wù)器端程序設(shè)計分析
在系統(tǒng)中使用GNUC對流式套接字進行編程處理,需要輔助函數(shù)庫。在服務(wù)器程序中使用其通用接口函數(shù)編碼完成。服務(wù)器的程序流程主要遵循這樣的過程。首先將服務(wù)器的程序啟動,創(chuàng)建出監(jiān)聽套接字,發(fā)出監(jiān)聽端口請求,監(jiān)聽請求被接聽,創(chuàng)建出子進程處理請求,在產(chǎn)生了子進程處理請求后,父進程繼續(xù)監(jiān)聽端口,此時子進程創(chuàng)建出新的套接字,實現(xiàn)客戶端與服務(wù)端之間的數(shù)據(jù)通信,此時連接被斷開,雙方程序關(guān)閉,子進程結(jié)束。在此過程中,如果出現(xiàn)建立連接失敗的現(xiàn)象,一般會有函數(shù)提出錯誤信息,如果連接成功,雙方可以借助send與recv函數(shù)調(diào)進行發(fā)送與接收數(shù)據(jù),完成嵌入式以太網(wǎng)的安裝連接。如果有斷開連接的需求,我們可以調(diào)用函數(shù)cbse進行真正釋放,也可以對套接字相關(guān)的系統(tǒng)資源進行調(diào)用處理。
結(jié)束語
以太網(wǎng)已經(jīng)有20多年的發(fā)展歷程,在互聯(lián)網(wǎng)的連接中發(fā)揮著重要作用,是當今互聯(lián)網(wǎng)中底層連接不可缺少的組成部分。目前來說,嵌入式以太網(wǎng)與IP協(xié)議已經(jīng)成為使用最為廣泛的協(xié)議。與嵌入式以太網(wǎng)比較起來,其他形式的總線協(xié)議,如RS485、RS232等都適用于局部的系統(tǒng)中,其現(xiàn)有的傳輸距離與應(yīng)用范圍與嵌入式以太網(wǎng)相比差距十分明顯。在我國目前控制領(lǐng)域中,遠程控制成為重要的控制方式,在控制領(lǐng)域占據(jù)重要地位?,F(xiàn)有的各種控制一般是以單片機為實際的控制中心,構(gòu)建嵌入式系統(tǒng)的網(wǎng)絡(luò)實現(xiàn)了網(wǎng)絡(luò)與Internet的有效性連接,對于局域網(wǎng)的完善提供了系統(tǒng)保障。
參考文獻
[1]劉滬平.嵌入式以太網(wǎng)通信技術(shù)及其在中低壓微機保護測控裝置中的應(yīng)用研究[D].東南大學,2006.
[2]劉曉燕.嵌入式以太網(wǎng)的通信技術(shù)研究[D].貴州大學,2007.
[3]張帆.基于嵌入式以太網(wǎng)的變電站自動化網(wǎng)絡(luò)通信研究[D].蘭州理工大學,2009.
[4]任雁銘,操豐梅,秦立軍,楊奇遜.基于嵌入式以太網(wǎng)的變電站自動化系統(tǒng)通信網(wǎng)絡(luò)[J].電力系統(tǒng)自動化,2001,17:36-38.