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

?

基于RTL8019AS單片機在以太網(wǎng)通信中的應用

2014-04-22 06:31汪文濤巨永龍施良偉
科技視界 2014年24期
關(guān)鍵詞:精簡以太網(wǎng)數(shù)據(jù)包

汪文濤 徐 貴 巨永龍 施良偉 湯 超

(安徽工程大學電氣工程學院,安徽 蕪湖 241000)

0 引言

隨著網(wǎng)絡技術(shù)的迅速發(fā)展,網(wǎng)絡用戶呈指數(shù)增長,在使用計算機進行網(wǎng)絡連互的同時,小至各類家電、儀器儀表設(shè)備大至工業(yè)生產(chǎn)過程中數(shù)據(jù)采集、控制設(shè)備都在逐步趨向網(wǎng)絡化。網(wǎng)絡數(shù)據(jù)傳輸技術(shù)具有傳輸距離遠、傳輸速率高、信息共享程度高等優(yōu)點,因此對嵌入式設(shè)備增加網(wǎng)絡功能有著深遠的意義。

目前在工業(yè)控制領(lǐng)域底層的儀器儀表、各類傳感器的參數(shù)等數(shù)據(jù)幾乎都是通過現(xiàn)場總線的方式進行上傳,但是現(xiàn)場總線的協(xié)議并不是統(tǒng)一的,故而在生產(chǎn)過程中帶來極大的不便。由于TCP/IP協(xié)議在行業(yè)內(nèi)已有統(tǒng)一的標準,故而利用嵌入式芯片內(nèi)嵌TCP/IP精簡協(xié)議與以太網(wǎng)接口芯片RTL8019AS協(xié)同工作便能很好地解決這個問題。這種方法的顯著優(yōu)點就是成本低、實現(xiàn)簡單。可以說通過以太網(wǎng)進行通信是工業(yè)控制領(lǐng)域一大趨勢。

本文以遠程數(shù)據(jù)傳輸和控制指令傳輸為應用背景,設(shè)計了一套基于嵌入式系統(tǒng)的以太網(wǎng)通信模塊。

1 系統(tǒng)簡介

本系統(tǒng)采用的核心嵌入式控制芯片是C8051F020,該單片機使用美國Cygnal公司的CIP-51微控制器內(nèi)核。它采用PQFP-100的封裝形式,內(nèi)部集成了ADC、DAC、PCA、模擬比較器以及多種節(jié)電休眠和停機方式,工作頻率高達25MHz。

以太網(wǎng)接口芯片是采用采用RealTek公司生產(chǎn)的RTL8019AS,它符合EthernetII與IEEE802.3標準;全雙工,收發(fā)可同時進行,內(nèi)置16KB的SRAM,用于收發(fā)緩沖,降低了對處理器的速度要求;支持8/16位的數(shù)據(jù)總線;采用了100腳PQFP封裝。

系統(tǒng)主要是由單片機C8051F020來驅(qū)動以太網(wǎng)接口芯片RTL8019AS,完成遠程數(shù)據(jù)的交換和控制指令的交換,從而由單片機發(fā)出指令使執(zhí)行機構(gòu)進行相應的指令操作。系統(tǒng)結(jié)構(gòu)簡圖如圖1所示:

圖1 系統(tǒng)結(jié)構(gòu)簡圖

從信號采集裝置采集而來的模擬信經(jīng)過單片機C8051F020內(nèi)部的AD裝換器變成后續(xù)器件能夠處理的數(shù)字信號,之后將其按照系統(tǒng)所需要的TCP/IP精簡協(xié)議規(guī)范要求,逐層進行封裝,得到一個標準的以太網(wǎng)數(shù)據(jù)幀送往 RTL8019AS,然后數(shù)據(jù)幀便會按照 IEEE802.3標準經(jīng)過以太網(wǎng)絡發(fā)送到目的地址。接收數(shù)據(jù)的過程與發(fā)送數(shù)據(jù)過程類似,不再詳述。

2 硬件設(shè)計

由圖1系統(tǒng)結(jié)構(gòu)簡圖易知,硬件設(shè)計的主要部分是單片機及其模數(shù)信號相互轉(zhuǎn)換以及以太網(wǎng)通信部分組成。

2.1 嵌入式控制器

嵌入式控制器模塊核心采用美國Cygnal公司生產(chǎn)的高性能片上處理系統(tǒng)C8051F020,單個芯片上集成了大量的模擬、數(shù)字設(shè)備資源,主要包括8路12位逐次逼近型ADC,具有100kbps的最大可編程轉(zhuǎn)換速率和2.4V的內(nèi)部電壓基準,也可以選用外部電壓基準;具有多達64個數(shù)字I/O端口,支持TTL信號電平;具有多于5個16位定時器/計數(shù)器資源;內(nèi)部集成64KB的 flash程序存儲器;片內(nèi)集成了符合IEEE1149.1標準的JTAG編程掃描和調(diào)試電路,即使不用仿真器,也可以實現(xiàn)全速、非侵入式在系統(tǒng)程序調(diào)試。這些單片機資源,降低了成本,并簡化了系統(tǒng)設(shè)計的復雜性。

2.2 RTL8019AS與C8051F20的連接

一方面在嵌入式系統(tǒng)中以太網(wǎng)芯片是不允許經(jīng)常插拔的;另一方面為了精簡系統(tǒng)、降低成本和減少連線,所以本設(shè)計方案中使RTL8019AS工作于跳線工作方式,在這種模式下通過連接RTL8019AS的一些引腳來設(shè)定其工作方式,省去了要通EEPROM中的內(nèi)容來決定其工作方式,從而使控制程序變得精簡。如圖2所示其具體實現(xiàn)方式如下:

(1)讓JP腳接高電平,使其工作在跳線工作方式下;

(2)C8051F20的數(shù)據(jù)總線與芯片RTL8019AS的 SD0-SD7口相連,用于8位數(shù)據(jù)交換;

(3)地址線A0-A4與芯片RTL8019AS的SA0-SA4地址線相連,用于單片機訪問不同的寄存器;

(4)RD、WR分別為讀、寫信號,RST是芯片RTL8019AS的復位操作,AEN接地,使地址信號有效;

(5)INT0為定時器中斷,用于通知C8051F20讀取RTL8019AS緩沖中的數(shù)據(jù);

(6)最后是RTL8019AS經(jīng)過網(wǎng)絡濾波芯片LPT連接到RJ45接頭。

圖2 RTL8019AS與C8051F20的連接電路圖

3 軟件設(shè)計

軟件部分主要由兩個部分組成,其中包括 TCP/IP精簡協(xié)議[1]的實現(xiàn)和RTL8019AS的驅(qū)動程序。

3.1 TCP/IP精簡協(xié)議的實現(xiàn)

TCP/IP實質(zhì)上是一系列協(xié)議的總稱,是實現(xiàn)Internet通訊必不可少的部分,其中包括十幾個協(xié)議標準,在本研究課題中僅僅只需要實現(xiàn)嵌入式芯片連機通信,故而只需要選用其中部分即可,選用的標準是使代碼最簡,執(zhí)行效率最高。以下作出了詳細的介紹。

OSI七層網(wǎng)絡模型理論[3-4]中指出,物理層是提供相鄰設(shè)備的比特流傳輸;數(shù)據(jù)鏈路層負責在兩個相鄰節(jié)點間線路上無差錯地傳送以幀為單位的數(shù)據(jù),采用IEEE802.3標準的以太網(wǎng)協(xié)議;網(wǎng)絡層主要負責處理數(shù)據(jù)包在網(wǎng)絡中的協(xié)議封裝,該層選用IP協(xié)議,同時選用ARP協(xié)議實現(xiàn)IP地址到MAC物理地址的轉(zhuǎn)換;傳輸層主要為兩臺主機上的應用程序提供端到端的通信,選用TCP傳輸層協(xié)議,但針對底層的采集裝置進行適當?shù)暮喕赃m應嵌入式要求;應用層則定義了運行在不同端系統(tǒng)上的應用程序進程如何相互傳遞報文,根據(jù)本系統(tǒng)的實際需求選用應用層協(xié)議中的DNS、FTP以及SNMP三個協(xié)議。

3.2 RTL8019AS 的驅(qū)動程序

RTL8019AS的驅(qū)動程序[5]主要由初始化、數(shù)據(jù)包的收發(fā)兩個部分組成,初始化是用來具體RTL8019AS的工作方式,設(shè)置一些必要的工作寄存器等;RTL8019AS對于數(shù)據(jù)包的收發(fā)均是采用 IEEE802.3協(xié)議,發(fā)送部分只要把數(shù)據(jù)寫入緩沖區(qū),啟動執(zhí)行命令,芯片會自動發(fā)送。通常情況下會在其內(nèi)部RAM中開辟2個以太網(wǎng)數(shù)據(jù)包的空間作為發(fā)送緩沖區(qū)。數(shù)據(jù)的發(fā)送校驗和總線數(shù)據(jù)包的碰撞檢測與避免都是由芯片自身獨立完成的,只需要配置發(fā)送數(shù)據(jù)的源地址、物理層地址、目的地址、數(shù)據(jù)包類型和發(fā)送的數(shù)據(jù)即可;RTL8019AS在接收到以太網(wǎng)數(shù)據(jù)包后自動將其存在接收緩沖區(qū)并發(fā)出中斷信號,在中斷服務程序中通過DMA就可接收到數(shù)據(jù),即通過遠端DMA把數(shù)據(jù)從以太網(wǎng)接口芯片RTL8019AS的RAM空間讀回單片機中處理。

3.3 部分代碼

由于篇幅有限,本文只附上數(shù)據(jù)發(fā)送子程序。在本程序主要是發(fā)送一個數(shù)據(jù)包的命令,數(shù)據(jù)包的長度最小為60個字節(jié),最大1514個字節(jié),需要發(fā)送的數(shù)據(jù)包要先存放在txdnet緩沖區(qū)中,然后遠端通過DMA從緩沖區(qū)中讀走數(shù)據(jù)。C程序[6]如下所示:

void send packet(union netcard*txdnet,unsigned int length)

{

unsigned char i;

unsigned int j;

page(0); //選擇頁零的寄存器

if(length<60)

length=60;

for(i=0;i<3;i++)

txdnet->etherframe.sourcenodeid[i]=ethernet_address.words[i];

txd_buffer=!txd_buffer;

if(txd_buffer)

reg09=0x40;

else

reg09=0x46;

reg08=0x00;

reg0b=length>>8;

reg0a=length&0xFF;

reg00=0x12;

for(j=4;j

reg10=txdnet->bytes.bytebuf[j];

for(i=0;i<6;i++) //重發(fā)最多6次

{

for(j=0;j<1000;j++)//檢查txp為是否為低

if((reg00&0x04)==0)break;

if((reg04&0x01)!=0)break;//發(fā)送成功

reg00=0x3E;

}

if(txd_buffer)

reg04=0x40;

else

reg04=0x46;

reg06=length>>8;

reg05=length&0xFF;

reg00=0x3E;

}

程序說明:本程序中未定義的變量均在主程序中有所定義。

4 結(jié)論

本文中最大創(chuàng)新之處是通過嵌入式芯片C8051F20內(nèi)嵌TCP/IP精簡協(xié)議以驅(qū)動以太網(wǎng)接口芯片RTL8019AS構(gòu)成以太網(wǎng)通信接口。它只需要將外部的模擬信號直接通過接口就可以實現(xiàn)聯(lián)機上網(wǎng)。這是一個通用型的設(shè)計,它相對于傳統(tǒng)的以太網(wǎng)通信接口模塊而言成本低、實現(xiàn)方便。非常適合工業(yè)控制現(xiàn)場和家電物聯(lián)網(wǎng)等方面的應用,具有良好的應用前景。

[1]蘇錦秀,楊慶江,張廣璐.以太網(wǎng)控制芯片 RTL8019AS詳細配置[J].廣州:現(xiàn)代電子技術(shù)出版社,2007:151-1531.

[2]陳立家,焦戰(zhàn)立,熊文龍.基于精簡TCP/IP協(xié)議棧網(wǎng)絡服務器的實現(xiàn)[J].武漢理工大學學報,2007:565-5681.

[3]W.Richard Stevens.TCP/IP 詳解卷 1:協(xié)議[M].范建華,等,譯.北京:機械工業(yè)出版,2000:15-170.

[4]W.Richard Stevens.TCP/IP 詳解卷 2:實現(xiàn)[M].范建華,等,譯.北京:機械工業(yè)出版社,2001:54-170.

[5]趙建領(lǐng).51 系列單片機開發(fā)寶[M].北京:電子工業(yè)出版社,2007.

[6]譚浩強.C 語言程序設(shè)計[M].3 版.北京:清華大學出版社,2005:29-31.

猜你喜歡
精簡以太網(wǎng)數(shù)據(jù)包
基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
SmartSniff
時常精簡多余物品
一種面向應用的流量監(jiān)測精簡架構(gòu)設(shè)計
談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應用
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應用
應用于SAN的自動精簡配置架構(gòu)設(shè)計與實現(xiàn)
視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
移動IPV6在改進數(shù)據(jù)包發(fā)送路徑模型下性能分析