技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于S3C44B0X的嵌入式網(wǎng)絡(luò)通信研究

基于S3C44B0X的嵌入式網(wǎng)絡(luò)通信研究

時(shí)間:2008-06-16 10:14:00來源:ronggang

導(dǎo)語(yǔ):?本文采用該處理器,使用到廣泛應(yīng)用的源代碼公開的uClinux操作系統(tǒng),實(shí)現(xiàn)CPU處理器與RTL8019AS以太網(wǎng)控制器網(wǎng)絡(luò)通信。對(duì)于網(wǎng)絡(luò)通信工程在嵌入式設(shè)備中的應(yīng)用有很好的借鑒意義
摘要:S3C44B0X作為一款以ARM7TDMI為內(nèi)核的微處理器,得到了廣泛的應(yīng)用。本文采用該處理器,使用到廣泛應(yīng)用的源代碼公開的uClinux操作系統(tǒng),實(shí)現(xiàn)CPU處理器與RTL8019AS以太網(wǎng)控制器網(wǎng)絡(luò)通信。對(duì)于網(wǎng)絡(luò)通信工程在嵌入式設(shè)備中的應(yīng)用有很好的借鑒意義。 關(guān)鍵詞:嵌入式系統(tǒng); S3C44B0X;ARM 1.引言   ARM7TDMI是一種高性能,低功耗的RISC處理器核。采用該內(nèi)核的S3C44B0X是一款集成了許多外圍設(shè)備的芯片,同時(shí)其性能價(jià)格比也是非常高的,非常適合做嵌入式產(chǎn)品的處理器。在眾多的嵌入式操作系統(tǒng)中,uClinux由于代碼開放性,適用于多種CPU和多種硬件平臺(tái),以及強(qiáng)大的網(wǎng)絡(luò)功能,在中低端的嵌入式設(shè)備中有廣泛應(yīng)用。   本文采用基于ARM核的S3C44B0X處理器,使用到廣泛應(yīng)用的源代碼公開的uClinux操作系統(tǒng),實(shí)現(xiàn)CPU處理器與RTL8019AS以太網(wǎng)控制器網(wǎng)絡(luò)通信。 2.以太網(wǎng)接口電路的設(shè)計(jì)思路與實(shí)現(xiàn)   從硬件的角度看,以太網(wǎng)接口電路主要由MAC控制器和物理層接口(Physical Layer, PHY)兩大部分構(gòu)成。   RTL8019AS是臺(tái)灣readlted公司生產(chǎn)的以太網(wǎng)控制器,支持IEEE802.3;支持8位或16位數(shù)據(jù)總線;它內(nèi)部集成了兩塊RAM,一塊16KB,地址為0x4000~0x7FFF;一塊32字節(jié),地址為0x0000~0x001F。16K的RAM用作收發(fā)數(shù)據(jù)的緩沖區(qū),一般將0x4000~0x46FF作為發(fā)送緩沖區(qū),0x4700~0x7FFF作為接收緩沖區(qū)。全雙工模式時(shí),收發(fā)同時(shí)達(dá)到10Mbps;支持10Base5、10Base2、10BaseT,并能自動(dòng)檢測(cè)所連接的介質(zhì)。   RTL8019AS與主機(jī)的接口模式有三種,(1)跳線模式 這種模式與早期的網(wǎng)絡(luò)控制器兼容。RTL8019AS的端口基地址、中斷口等都由開關(guān)或跳線器決定。跳線模式簡(jiǎn)單,但配置資源麻煩。(2)PnP模式 與微軟的PnP協(xié)議兼容。在這種模式下,RTL8019AS的端口基地址、中斷口等都由EEPROM93C46設(shè)定,但需要進(jìn)行PnP芯片的識(shí)別,不便與ARM接口。(3)RT模式為了避免PnP模式下的PnP芯片識(shí)別和配置過程, readlted公司提供RT模式。在RT模式下,RTL8019AS的端口基地址、中斷口等也是由EEPROM93C46決定的。   S3C4510B內(nèi)嵌一個(gè)以太網(wǎng)控制器,支持MII和BDI接口,可在半雙工或全雙工模式下提供10M/100Mbps的以太網(wǎng)接入。在半雙工模式下,控制器支持CSMA/CD協(xié)議,在全雙工模式下支持IEEE802.3MAC控制層協(xié)議。因此,S3C4510B內(nèi)部實(shí)際上已包含了以太網(wǎng)MAC控制,但并未提供物理層接口,故需外接一片物理層芯片,以提供以太網(wǎng)的接入通道。   物理層接口(PHY)完成所有輸入輸出數(shù)據(jù)的編碼解碼,10Base-T采用Manchester編碼;100Base-X采用4B/5B編碼;100Base-T4采用8B/6T編碼。在接收數(shù)據(jù)時(shí),MII接收從前綴到末尾CRC的原始數(shù)據(jù)包。在發(fā)送數(shù)據(jù)時(shí),MII給數(shù)據(jù)包加上前綴和末尾的CRC。MAC層同時(shí)還產(chǎn)生填充數(shù)據(jù)并傳給PHY。
圖1 以太網(wǎng)接口電路
  網(wǎng)絡(luò)電路如圖1所示,S3C44B0X使用nGCS2和數(shù)據(jù)地址總線訪問rtl8019的內(nèi)部寄存器和緩沖區(qū)。TS6121是隔離變壓器,RJ45是網(wǎng)絡(luò)接口。 3. 協(xié)議分析   Linux下的TCP/IP網(wǎng)絡(luò)協(xié)議棧的各層之間是通過一系列互相連接層的軟件來實(shí)現(xiàn)Internet地址族的。INET socket為基于IP的協(xié)議TCP和UDP管理傳輸端點(diǎn)。UDP(用戶數(shù)據(jù)報(bào)協(xié)議)是一個(gè)無連接協(xié)議,而TCP(傳輸控制協(xié)議)是一個(gè)可靠的端對(duì)端協(xié)議。傳輸U(kuò)DP包的時(shí)候,Linux不知道也不關(guān)心它們是否安全到達(dá)了目的地。TCP則不同。在TCP連接的兩端都需要加上一個(gè)編號(hào),以保證傳輸?shù)臄?shù)據(jù)被正確接收。在IP層,實(shí)現(xiàn)了Internet協(xié)議代碼,這些代碼要給傳輸?shù)臄?shù)據(jù)加上一個(gè)IP頭,并且知道如何把傳入的IP包送給TCP或者UDP協(xié)議。在IP層以下,就是網(wǎng)絡(luò)設(shè)備來支持所有的Linux網(wǎng)絡(luò)工作,結(jié)構(gòu)層次圖如圖2所示。
圖2 結(jié)構(gòu)層次
4 socket編程   常用的socket類型有兩種:流式socket和數(shù)據(jù)報(bào)式socket。兩者的區(qū)別在于:前者對(duì)應(yīng)于TCP服務(wù),后者對(duì)應(yīng)于UDP服務(wù),主要包括以下函數(shù):  ?。?) socket函數(shù)   Int socket( int family, int type, int protocol )   family指明協(xié)議族;type是套接口的類型; protocol通常設(shè)置為0;函數(shù)成功時(shí)返回一個(gè)小的非負(fù)整數(shù)值。  ?。?)connect函數(shù)   Int connect( int sockfd, const struct sockaddr* servaddr, socklen_t addrlen )   Sockfd由socket函數(shù)返回?cái)?shù)值,servaddr是一個(gè)套接口地址結(jié)構(gòu)的指針,addrlen是該結(jié)構(gòu)的大小,該結(jié)構(gòu)必須含有服務(wù)器的IP地址和端口號(hào)。  ?。?)bind函數(shù)   Int bind( int sockfd, const struct sockaddr* myaddr, socklen_t addrlen )   myaddr指向特定于協(xié)議地址結(jié)構(gòu)的指針,addrlen是該地址結(jié)構(gòu)的長(zhǎng)度。對(duì)于TCP,調(diào)用函數(shù)bind可以指定一個(gè)端口,指定一個(gè)IP地址??梢詢烧叨贾付?,也可以一個(gè)也不指定。  ?。?)listen函數(shù)   Int listen( int sockfd, int backlog )   backlog規(guī)定了內(nèi)核為此套接口排隊(duì)的最大連接個(gè)數(shù),函數(shù)listen將未連接的套接口轉(zhuǎn)換成被動(dòng)套接口,指示內(nèi)核應(yīng)接受指向此套接口的連接請(qǐng)求。根據(jù)TCP狀態(tài)轉(zhuǎn)換調(diào)用函數(shù)listen導(dǎo)致套接口從CLOSED狀態(tài)轉(zhuǎn)換到LISEN狀態(tài)。   (5)accept函數(shù)   int accept( int sockfd, struct sockaddr* cliaddr, socklen_t* addrlen )   cliaddr是返回的客戶端的協(xié)議地址, addrlen返回套接口地址結(jié)構(gòu)的長(zhǎng)度   accept函數(shù)由TCP服務(wù)器調(diào)用,從已完成連接隊(duì)列頭返回下一個(gè)已完成連接。若已完成連接隊(duì)列為空,則進(jìn)程睡眠。   系統(tǒng)流程圖如圖3所示:
圖3 系統(tǒng)流程圖
5.結(jié)束語(yǔ)   本文理論聯(lián)系實(shí)際,主要介紹了RTL8019AS與S3C44B0X的網(wǎng)絡(luò)接口硬件電路的搭建,并實(shí)現(xiàn)了嵌入式系統(tǒng)下的軟件程序的設(shè)計(jì),且通過驗(yàn)證是正確的。對(duì)于在嵌入式設(shè)備中,特別是Linux的系統(tǒng)中網(wǎng)絡(luò)通信應(yīng)用有重要的參考意義。 本文作者創(chuàng)新點(diǎn):   1.硬件電路中采用RTL8019作為網(wǎng)絡(luò)接口,并實(shí)現(xiàn)了Linux下的網(wǎng)卡程序設(shè)計(jì),且通過驗(yàn)證是正確的   2.軟件系統(tǒng)模塊化,有很好的可移植性和擴(kuò)展性。 參考文獻(xiàn):   [1] 李崴巍.基于圖像的虛擬現(xiàn)實(shí)技術(shù)在駕駛模擬器中的應(yīng)用[J]. 微計(jì)算機(jī)信息.2006,第9-2期. P230-232.   [2] 姜沫歧,林偉. Protel2004原理圖與PCB設(shè)計(jì)實(shí)例[M]. 機(jī)械工業(yè)出版社,2005.   [3] 吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].人們郵電出版社,2004.

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:一起220kV母差保護(hù)故障分析

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)