顧六平
(常州輕工職業(yè)技術(shù)學院,江蘇常州 213164)
隨著科學技術(shù)的不斷發(fā)展,以太網(wǎng)技術(shù)也變得越來越普及化、成熟化,因為以太網(wǎng)技術(shù)自身具有開放性的特點,這也使得其在工業(yè)自動化領(lǐng)域被逐步使用到。同時嵌入式系統(tǒng)也取得了非常大的發(fā)展,很多的嵌入式設(shè)備都裝置了以太網(wǎng)接口,所以,就可以通過使用以太網(wǎng)把嵌入式系統(tǒng)有機的聯(lián)系起來,達到可以通過瀏覽器訪問設(shè)備的目的,從而為用戶提供一種通信方便、速度快、時間短的即時通信方式。
首先使用專門的網(wǎng)絡(luò)把幾個嵌入式設(shè)備聯(lián)系起來,然后在把此專用網(wǎng)絡(luò)和計算機連接起來,通過電腦把接受到的數(shù)據(jù)進行轉(zhuǎn)化,并傳至互聯(lián)網(wǎng)中,達到資源共享的目的。在專用網(wǎng)中,每一個嵌入式設(shè)備的應用程序中都有一個單獨存在的通信任務(wù)。嵌入式設(shè)備線提前對每個變量進行定義,并把定義結(jié)果反饋到服務(wù)器中,并且,嵌入式設(shè)備可以對服務(wù)器所發(fā)布的命令進行執(zhí)行,對設(shè)備中的變量進行調(diào)整和控制。
此方案的優(yōu)缺點:(1)優(yōu)點。此方案對于MCU的系統(tǒng)工程師來說,網(wǎng)絡(luò)協(xié)議和接口都是非常熟悉的,不需要再對其進行專門的熟悉,同時MCU 芯片在運轉(zhuǎn)時,對存儲器的大小和設(shè)備的運行速度沒有特別的要求,軟件設(shè)計過程中,不需要設(shè)計過多的接口程序,降低了軟件設(shè)計的工作量。(2)缺點。此方案需要利用計算機對網(wǎng)關(guān)數(shù)據(jù)協(xié)議進行轉(zhuǎn)化,當嵌入式設(shè)備分布范圍比較大的時候,會導致網(wǎng)絡(luò)通信布線的難度加大。并且,需要在計算機上面安裝專用的協(xié)議轉(zhuǎn)換軟件,軟件需要從第三方開發(fā)商手中購買,價格非常貴。
在RTOS 操作平臺上利用32為的高檔單片機開發(fā)軟件,實現(xiàn)嵌入式系統(tǒng)自動進行TCP/IP 協(xié)議的處理,當前我國經(jīng)常使用到的操作系統(tǒng)主要有Linux、windowsCE、pSOS、vxworks、QNX、Nueleus 等。這些RTOS 操作平臺都各自具有不同的特點,其中windowsCE 和Linux 有比較好的圖形操作界面。此方案具有下面幾個缺點:(1)因為使用高檔單片機價格比較的貴,系統(tǒng)的開發(fā)時間也很長。(2)RTOS 開發(fā)軟件價格非常的貴,而且需要專業(yè)能力過硬的開發(fā)人員。(3)RTOS 開發(fā)軟件和TCP/IP 協(xié)議是互通的,沒有比較高的針對性,會出現(xiàn)代碼冗余的情況。
此方案主要的核心主要是由嵌入式系統(tǒng)中固定TCP/IP 協(xié)議和MCU 構(gòu)成。系統(tǒng)可以直接連入以太網(wǎng),硬件電路也不復雜,不過需要容量比較大的存儲器,假如,使用TCP/IP 協(xié)議的軟件是固化的,就也要求MCU的運行速度足夠快。
這一方案可以說是真正的達到了單片機系統(tǒng)和以太網(wǎng)連接的目的,完全可以直接使用計算機通過互聯(lián)網(wǎng)對單片系統(tǒng)進行控制,同時單片機系統(tǒng)也可以直接把一些數(shù)據(jù)信息通過互聯(lián)網(wǎng)發(fā)送到計算機上。比如,單片機系統(tǒng)可以通過互聯(lián)網(wǎng)利用瀏覽網(wǎng)頁的方式對數(shù)據(jù)進行遠程交換,可以對嵌入式設(shè)備實現(xiàn)實時監(jiān)控的效果。關(guān)于這一技術(shù)的使用有很多的例子,就不一一列舉了。
使用EMIT 以太網(wǎng)技術(shù)和MCU所使用的emnet 協(xié)議進行結(jié)合,然后通過emGateway 和以太網(wǎng)進行連接,EmGateway 這一網(wǎng)絡(luò)軟件可以在電氣服務(wù)器、電視機頂盒、電腦上面安裝,它對TCP/IP 協(xié)議是支持的,各個嵌入式設(shè)備中的應用程序中都單獨存在一個通信任務(wù)。同時還可以對emGateway中的命令進行識別。可以對設(shè)備中的變量進行調(diào)整,對設(shè)備的一些操作進行控制等。
使用網(wǎng)絡(luò)適配器和嵌入式微處理器結(jié)合的方法,可以使中低速微控制器為重心的嵌入式系統(tǒng)連入以太網(wǎng),使用這種方法,只需要網(wǎng)絡(luò)接口芯片和微處理器進行連接即可,系統(tǒng)就可以和以太網(wǎng)進行通信。嵌入式控制器的的種類很多,既可以是DSP 芯片,也可以是各類中高檔單片機。網(wǎng)絡(luò)接口芯片通常使用可以和網(wǎng)絡(luò)適配器兼容的專用芯片,且不同的芯片接口標準不同。
嵌入式設(shè)備想要和以太網(wǎng)進行連接,第一個要解決的問題就是系統(tǒng)和以太網(wǎng)之間的接口問題。如何將電腦上的網(wǎng)絡(luò)接口和嵌入系統(tǒng)連接起來就成了實現(xiàn)這一目的核心要點。因此,本文主要以DSP 芯片作為控制平臺,然后使用RTL8019為網(wǎng)絡(luò)適配器來實現(xiàn)嵌入式系統(tǒng)連入以太網(wǎng)的目的。
音頻信號采集前端是由前置放大濾波、MIC 音頻輸入、抗混疊被等電路構(gòu)成,音頻模擬信號通過使用DSP的AD 收集通道進行輸入。音頻信號通過DSP 對其進行頻譜分析,然后把多次的諧波頻譜分析數(shù)據(jù)儲存到DARAM中。以太網(wǎng)適配器93C46、RTL8011、信道隔離濾波器、RJ45機構(gòu)構(gòu)成了網(wǎng)絡(luò)接口模塊。系統(tǒng)使用8位數(shù)據(jù)總線93C46用來對嵌入式系統(tǒng)中的物理地址、子網(wǎng)掩碼、IP 地址進行儲存。
以太網(wǎng)適配器芯片選擇Realtek 公司生產(chǎn)的RTL8019AS 芯片,在10M的ISA 總線結(jié)構(gòu)構(gòu)成的以太網(wǎng)芯片中被普遍使用。和NE2000兼容,支持即插即用。具備三級電源盒全雙工的控制特點。
RTLSO19是經(jīng)常使用的網(wǎng)絡(luò)接口芯片,包含了24位地址接口和16位數(shù)據(jù)接口,其在使用過程中,可以在物理幀上使用幀起始定界符、幀頭、校驗和等。Realtek 公司生產(chǎn)的控制器因為具有價格低、性能好的特點,而被普遍使用。其性能主要體現(xiàn)在:(1)在IEEE802.3、10BaseT、Ethemet11、10Bases中被普遍使用。(2)可以支持16位、8為數(shù)據(jù)總線(3)全雙工,在進行收發(fā)時,速度可以達到10MBPs,同時又睡眠模式,可以減少功耗。(4)內(nèi)部置有16K的SRAM,可以使用其來進行緩沖的收發(fā),減低對處理器速率的要求。(5)可以和雙絞線和同軸電纜進行連接,同時可以對所連介質(zhì)進行自行檢測。(6)100腳的TQFP 封裝,縮小PCB 尺寸。
RTL8019是由接受CRC 校驗、發(fā)送cRc 校驗、接收邏輯控制器、發(fā)送邏輯控制器、I/O 緩沖區(qū)、內(nèi)部總線構(gòu)成的,不同的模塊都通過相對應的寄存器來進行控制。構(gòu)成原理圖如圖1所示。

圖1 RTL8019的構(gòu)造圖
在進行數(shù)據(jù)接收和傳送前首先要對RTL8019AS 芯片進行檢查,并對其進行數(shù)據(jù)初始化操作。從而使其可以進入到需要的工作模式。對網(wǎng)卡進行初始化操作就等于對寄存器進行了初始化操作,從而建立出網(wǎng)絡(luò)接口收發(fā)的條件。接收緩沖區(qū)的數(shù)據(jù)起始/結(jié)束頁的地址、設(shè)置數(shù)據(jù)寄存器DCR的數(shù)據(jù)長度和FIFO 等、接收/發(fā)送配置寄存器、頁邊界指針BNRY、終端屏蔽寄存器IMR 是初始化數(shù)據(jù)的主要工作。同時初始化還有一個非常關(guān)鍵的作用是用來對網(wǎng)卡的物理地址進行設(shè)置。
中端服務(wù)程序和數(shù)據(jù)接收程序是相互聯(lián)系的,需要兩者相互搭配著運行,在網(wǎng)絡(luò)中有數(shù)據(jù)傳送過來時,在RTL8019AS 網(wǎng)絡(luò)控制芯片把首幀以太網(wǎng)數(shù)據(jù)包全部接收后,就會自動開始CRC 校驗,以此來提升中斷程序的處理效率。當網(wǎng)卡完整的接收到一幀數(shù)據(jù)互,網(wǎng)卡接收計數(shù)器會增加1,同時向DSP 發(fā)送中斷請求。DSP 收到網(wǎng)卡的中斷申請后,進入中斷服務(wù)程序,并對數(shù)據(jù)進行接收。如果CRC 產(chǎn)生錯誤,就會把收到的數(shù)據(jù)拋棄,同時不向DSP發(fā)送中斷請求。
在主程序?qū)W(wǎng)卡進行檢查時,如果接收計數(shù)器的數(shù)據(jù)不是0時,就會把數(shù)據(jù)接收程序調(diào)用到網(wǎng)卡內(nèi)部的緩存中,對一幀的數(shù)據(jù)進行讀取,并把數(shù)據(jù)接收到主機中對其進行處理。幀的接收過程主要有下面兩個環(huán)節(jié)。首先使用本地DMA 吧幀存放到接收緩存中,然后DMA 會遠程的把緩存中所接收到的數(shù)據(jù)讀取到內(nèi)存中,也就是說對網(wǎng)絡(luò)上面的數(shù)據(jù)幀進行接收,同時把網(wǎng)卡中的緩存也接收到緩存中,最后再通過程序?qū)彺嬖诰彺嬷械膸M行讀取,并將其存到內(nèi)存里面。
因為網(wǎng)卡在對數(shù)據(jù)進行傳送時,首先要保證網(wǎng)卡的發(fā)送狀態(tài)為空閑時才可以進行。通過使用在程序的主循環(huán)中的各個循環(huán)中多傳送一個數(shù)據(jù)包的辦法,來提升程序的工作效率。數(shù)據(jù)包在傳送的過程中,主要有以下三個步驟:首先對數(shù)據(jù)包進行封裝,然后遠程DMA 會把數(shù)據(jù)包傳送到網(wǎng)卡中的數(shù)據(jù)發(fā)送緩沖區(qū),最后使用網(wǎng)卡上面的本地DMA 把數(shù)據(jù)傳送到FIFO,并將其輸送出去,使用網(wǎng)卡把數(shù)據(jù)輸送到數(shù)據(jù)傳送線上。
綜上所述,文章通過在嵌入式系統(tǒng)上建立一個比較簡單的網(wǎng)絡(luò)應用來實現(xiàn)以太網(wǎng)接入的目的,同時通過詳細的對此設(shè)計進行介紹,對嵌入式系統(tǒng)的網(wǎng)絡(luò)連接原理、組成結(jié)構(gòu)、實施方法進行詳細的講解并應用,證明了嵌入式系統(tǒng)接入以太網(wǎng)是可行的。本文首先在開頭介紹幾類比較常見的網(wǎng)絡(luò)接入方法,然后詳細的對各種接入方法進行探討研究,分析了各種方法的利和弊。然后根據(jù)嵌入式系統(tǒng)協(xié)議的特點,選擇了正確的TCP/IP 協(xié)議實現(xiàn)辦法。最后對方案中提出的以RTL8019為核心芯片的接入方法進行了詳細的介紹,以及對軟件的詳細設(shè)計方法進行了介紹。證明了嵌入式系統(tǒng)接入以太網(wǎng)的可行性,是應該被大力推廣的。
[1]徐曉光,李永勝,孫駟洲.基于以太網(wǎng)的遠程數(shù)據(jù)采集系統(tǒng)[J].自動化與儀器儀表.2008(02).
[2]何梓濱,段發(fā)階,呂曉明,賈建祿,嚴海領(lǐng).基于DSP 網(wǎng)的嵌入式視覺系統(tǒng)[J].計量技術(shù).2008(02).
[3]陳道喜,陳冬火,張廣泉.TCP 協(xié)議的安全性和活性驗證[J].蘇州大學學報(自然科學版).2008(01).