當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]本設(shè)計(jì)以三星公司的ARM7(S3C44B0)為核心CPU,開發(fā)了VxWorks下的網(wǎng)絡(luò)接口,包括硬件設(shè)計(jì)和軟件實(shí)現(xiàn)兩個(gè)部分。

    VxWorks操作系統(tǒng)以其高度的可靠性、優(yōu)秀的實(shí)時(shí)性、靈活的可裁減性等優(yōu)勢(shì)在嵌入式系統(tǒng)中備受關(guān)注,廣泛應(yīng)用于許多行業(yè);而隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,嵌入式技術(shù)與網(wǎng)絡(luò)技術(shù)的結(jié)合已成必然。VxWorks是最早在其內(nèi)核中加入TCP/IP協(xié)議的嵌入式實(shí)時(shí)操作系統(tǒng)。如何設(shè)計(jì)基于VxWorks的網(wǎng)絡(luò)接口,是擺在嵌入式開發(fā)人員面前的首要課題。本設(shè)計(jì)以三星公司的ARM7(S3C44B0)為核心CPU,開發(fā)了VxWorks下的網(wǎng)絡(luò)接口,包括硬件設(shè)計(jì)和軟件實(shí)現(xiàn)兩個(gè)部分。

1 硬件設(shè)計(jì)

    核心CPU采用三星公司的S3C44B0。S3C44B0采用ARM7TDMI內(nèi)核,它通過提供全面的、通用的片上外設(shè),大大減少了系統(tǒng)電路除處理器以外的元器件配置,降低了系統(tǒng)成本。 網(wǎng)絡(luò)接口芯片采用Realtek公司生產(chǎn)的RTL8019AS。它是一款高度集成的以太網(wǎng)控制器,不僅集成了MAC(介質(zhì)訪問控制)子層和物理層的性能,而且與NE2000兼容,具有軟件可移植性強(qiáng)以及價(jià)格低廉等優(yōu)點(diǎn)。

    S3C4480與RTL8019AS的硬件接口原理如圖1所示。從圖1中可以看出,RTL8019AS的使能端連到S3C44B0的nGCS3,因此它的地址映射在系統(tǒng)的Bank3上,基地址為0x06000000。RTL8019AS支持8位/16位數(shù)據(jù)總線,在本電路中采用16位方式。

    RTL8019AS共有32個(gè)輸入/輸出地址,對(duì)應(yīng)地址偏移量為0x00~0x1f?,F(xiàn)分別說明如下:

①0x00~0x0f的16個(gè)地址,為寄存器地址。

②0x10~0xl7的8個(gè)地址,為數(shù)據(jù)讀寫端口地址。它們都是一樣的,每個(gè)都可以用來做數(shù)據(jù)讀寫端口,只要用其中一個(gè)就可以了。

③0x18~0x1f的8個(gè)地址,為復(fù)位端口。它們的功能都是一樣的。但需要注意,實(shí)際上只有0x18、0x1a、0x1c、0xle這幾個(gè)復(fù)位端口是有效的,其他不要使用;因?yàn)橛行┘嫒菘ú恢С?xl9、0xlb、Oxld等奇數(shù)地址的復(fù)位。

    在軟件設(shè)計(jì)時(shí),尤其要注意以下兩點(diǎn):

①RTL8019AS的地址線從SA0~SA4依次連到S3C4480的ADDR1~ADDR5上,因此,RTL8019的寄存器地址要左移1位。

②RTL8019AS使用EXINT1中斷,且上升沿觸發(fā)。

2 軟件實(shí)現(xiàn)

2.1 VxWorks的網(wǎng)絡(luò)協(xié)議棧和MUX接口

    VxWorks中的網(wǎng)絡(luò)協(xié)議棧叫作"SENS(Scalable En-hanced Network Stack)",即可裁減增強(qiáng)網(wǎng)絡(luò)協(xié)議棧。SENS是基于4.4BSDTCP/IP協(xié)議棧發(fā)展而來的。它包含了許多4.4BSDTCP/IP協(xié)議棧沒有的協(xié)議;而且SENS在實(shí)現(xiàn)一些協(xié)議功能時(shí)增加了許多新特性。如在IP協(xié)議實(shí)現(xiàn)時(shí)增加了多播功能。SENS協(xié)議棧層次如圖2所示。

    SENS的基本特征與傳統(tǒng)的TCP/IP網(wǎng)絡(luò)協(xié)議棧相似,但從圖2中可以看出,SENS最大的特點(diǎn)是在數(shù)據(jù)鏈路層和網(wǎng)絡(luò)協(xié)議層之間多了MUX層。在SENS中網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序叫作"END(Enhanced Network Driver)",即增強(qiáng)型網(wǎng)絡(luò)驅(qū)動(dòng)程序,它處于數(shù)據(jù)鏈路層。IP層和TCP/UDP層合稱為"網(wǎng)絡(luò)協(xié)議層"。在數(shù)據(jù)鏈路層和網(wǎng)絡(luò)協(xié)議層之間有應(yīng)用程序接口(API),這個(gè)接口在SENS中叫作"MUX(Multiplexer)接口"。MUX接口如圖3所示。MUX接口起到隔離網(wǎng)絡(luò)驅(qū)動(dòng)程序與網(wǎng)絡(luò)協(xié)議的作用。在老式的BSD4.3的驅(qū)動(dòng)模式下,網(wǎng)絡(luò)驅(qū)動(dòng)程序和協(xié)議是緊密聯(lián)結(jié)的,無(wú)論協(xié)議還是驅(qū)動(dòng)程序都需要了解對(duì)方的數(shù)據(jù)結(jié)構(gòu)。而在新的基于MUX的模式下,驅(qū)動(dòng)程序和協(xié)議并不需要了解對(duì)方。它們通過MUX接口來通信。例如,在收到一個(gè)包后,網(wǎng)絡(luò)驅(qū)動(dòng)程序并不直接訪問協(xié)議的數(shù)據(jù)結(jié)構(gòu);相反,當(dāng)準(zhǔn)備將數(shù)據(jù)傳給協(xié)議層時(shí),它調(diào)用一個(gè)MUX提供的函數(shù),該函數(shù)處理把數(shù)據(jù)傳給協(xié)議層的細(xì)節(jié)。這使得添加一個(gè)新的驅(qū)動(dòng)程序或協(xié)議十分容易。MUX實(shí)現(xiàn)了下面的一套函數(shù)集:muxBind()、muxUn-bind()、muxDevLoad()、muxDevUnload()、muxReceive()、muxError()、muxSend()、muxTxRestartRtn()、muxM castAddrDel()、muxMcastAddrGet()、mux-PollSend()、muxMcastAddrAdd()、muxPollReceive()、muxIoctrl()。網(wǎng)絡(luò)驅(qū)動(dòng)程序和協(xié)議都要調(diào)用上面的函數(shù),不需要為它們添加任何附加代碼。

2.2 END設(shè)備驅(qū)動(dòng)程序裝載過程

    在VxWorks中,END設(shè)備驅(qū)動(dòng)程序裝載過程可以分為3個(gè)步驟,即指定END設(shè)備,裝載END設(shè)備和啟動(dòng)END設(shè)備。END設(shè)備的指定是通過數(shù)組endDevTbl[ ]來完成的,該數(shù)組描述了系統(tǒng)中的所有網(wǎng)絡(luò)設(shè)備的裝載人口點(diǎn)及其相關(guān)參數(shù)。系統(tǒng)調(diào)用MUX設(shè)備裝載函數(shù)mux-DevLoad()來裝載END設(shè)備,調(diào)用MUX設(shè)備啟動(dòng)函數(shù)muxDevStart()來啟動(dòng)END設(shè)備。網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的裝載過程如圖4所示。系統(tǒng)通過usrRoot()函數(shù)來調(diào)用usrNetInit()函數(shù)完成MUX的初始化,裝載網(wǎng)絡(luò)設(shè)備表endDevTbl[ ]中描述的所有設(shè)備,并將IP協(xié)議綁定到網(wǎng)絡(luò)引導(dǎo)設(shè)備上等。

    當(dāng)網(wǎng)絡(luò)設(shè)備產(chǎn)生中斷時(shí),VxWorks調(diào)用驅(qū)動(dòng)程序先前注冊(cè)的中斷服務(wù)程序。中斷服務(wù)程序應(yīng)做盡可能少的工作,以完成將數(shù)據(jù)包從本地網(wǎng)絡(luò)設(shè)備送出/取出的操作。
 
2.3 文件配置

    由于RTL8019兼容NE2000網(wǎng)卡芯片,只需要在其基礎(chǔ)上完成必要的修改。首先將Tornado2.2\target\src\drv\end目錄下的ne2000End.c和Tornado2.2\target\h\dry\end目錄下的ne2000End.h拷貝到bsp目錄下,然后修改以下文件。

(1) 修改ne2000End.C

①修改頭文件包含目錄;
②sysIntConnect修改為intConnect;
③sysLanIntEnable修改為intEnable,并修改返回類型void為STATUS。

(2) 修改ne2000End.h

    將寄存器地址左移1位,如:

#define ENE_RSTART(0x01<<1)

(3) 修改config.h

添加網(wǎng)絡(luò)宏定義:

①#define INCLUDE_NETWORK
②#define INCLUDE_END
③#ifdef INCLUDE_END
#undef INCLUDE_SNGKS32C_END
#define INCLUDE_NE2000_END
#endif/*INCLUDE_END*/

(4) 修改configNet.h

在endDevTbl[ ]表中添加新的裝載函數(shù)(其函數(shù)命名格式為xxLoad( ))入口點(diǎn)及相關(guān)參數(shù)。

(5) 修改Makefile
添加MACH_EXTRA=ne2000End.o

(6) 修改sysLib.c

①添加MAC地址定義:

unsigned char ne2000EnetAddr[]=ETHERNET_MAC_ADRS;

②添加 sysInByte、sysOutByte、syslnWordString和sysOutWordString函數(shù)。

③在sysHwInit()中添加CPU端口初始化:

④在sysHwInit()中添加RTL8019芯片的復(fù)位和初始化函數(shù)。相關(guān)代碼如下(有關(guān)寄存器的宏定義請(qǐng)參照RTL8019數(shù)據(jù)手冊(cè)):




結(jié) 語(yǔ)

    本文在VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)下,提出了網(wǎng)絡(luò)接口的解決方案,即以ARM7(S3C44B0)為核心CPU,控制網(wǎng)絡(luò)控制器TRL8019實(shí)現(xiàn)網(wǎng)絡(luò)通信。本文首先簡(jiǎn)單介紹了幾款主要芯片,給出了硬件原理圖;然后簡(jiǎn)要分析了VxWorks下的網(wǎng)絡(luò)協(xié)議和驅(qū)動(dòng)裝載過程;最后,針對(duì)此網(wǎng)絡(luò)接口,詳細(xì)列出了VxWorks下文件配置過程,提供了部分軟件源程序,對(duì)開發(fā)人員有一定的參考價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉