新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM7平臺下基于VxWorks的網絡接口設計

        ARM7平臺下基于VxWorks的網絡接口設計

        作者: 時間:2012-11-10 來源:網絡 收藏
        操作系統以其高度的可靠性、優秀的實時性、靈活的可裁減性等優勢在嵌入式系統中備受關注,廣泛應用于許多行業;而隨著網絡技術的發展,嵌入式技術與網絡技術的結合已成必然。是最早在其內核中加入TCP/IP協議的嵌入式實時操作系統。如何設計基于,是擺在嵌入式開發人員面前的首要課題。本設計以三星公司的ARM7()為核心CPU,開發了VxWorks下的,包括硬件設計和軟件實現兩個部分。

        1 硬件設計

          核心CPU采用三星公司的采用ARM7TDMI內核,它通過提供全面的、通用的片上外設,大大減少了系統電路除處理器以外的元器件配置,降低了系統成本。 芯片采用Realtek公司生產的RTL8019AS。它是一款高度集成的以太網控制器,不僅集成了MAC(介質訪問控制)子層和物理層的性能,而且與NE2000兼容,具有軟件可移植性強以及價格低廉等優點。

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

        RTL8019AS共有32個輸入/輸出地址,對應地址偏移量為0x00~0x1f?,F分別說明如下:

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

         ?、?x10~0xl7的8個地址,為數據讀寫端口地址。它們都是一樣的,每個都可以用來做數據讀寫端口,只要用其中一個就可以了。

          ③0x18~0x1f的8個地址,為復位端口。它們的功能都是一樣的。但需要注意,實際上只有0x18、0x1a、0x1c、0xle這幾個復位端口是有效的,其他不要使用;因為有些兼容卡不支持0xl9、0xlb、Oxld等奇數地址的復位。

        在軟件設計時,尤其要注意以下兩點:

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

          ②RTL8019AS使用EXINT1中斷,且上升沿觸發。

        2 軟件實現

        2.1 VxWorks的網絡協議棧和MUX接口

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

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

        tcp/ip相關文章:tcp/ip是什么



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉林省| 井研县| 象山县| 双鸭山市| 永泰县| 蛟河市| 彭山县| 四子王旗| 吉隆县| 宜兴市| 邹城市| 刚察县| 安平县| 清丰县| 即墨市| 民权县| 辰溪县| 郁南县| 隆林| 峨山| 蓝田县| 西昌市| 周口市| 安泽县| 金沙县| 新昌县| 永登县| 资兴市| 卢湾区| 和平区| 政和县| 任丘市| 崇左市| 左云县| 株洲市| 读书| 娄烦县| 密山市| 福州市| 江陵县| 小金县|