IPv6的嵌入式設(shè)計與實現(xiàn)
引言
隨著嵌入式系統(tǒng)應(yīng)用的快速發(fā)展,為實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能,需要將嵌入式設(shè)備連入互聯(lián)網(wǎng),以便于遠(yuǎn)程控制和監(jiān)測。為將嵌入式設(shè)備連入互聯(lián)網(wǎng),需要有通信模塊實現(xiàn)通信協(xié)議。目前嵌入式設(shè)備能夠通過主流的TCP/IP 協(xié)議可直接與外網(wǎng)連接。然而隨著網(wǎng)絡(luò)規(guī)模的日益擴(kuò)大、上網(wǎng)設(shè)備和人數(shù)的激增,目前采用的IPv4逐漸接近其自身發(fā)展的極限,其中比較顯著的問題是IP 地址資源的不足。IPv6[1] 采用長度為128 位的地址,地址空間幾乎可以視為無限,IPv6不僅完全地解決了地址短缺問題,還對在IPv4 中解決不好的其他問題(如,端到端IP連接、服務(wù)質(zhì)量、安全性、移動性等方面)進(jìn)行了改進(jìn)。IPv6成為嵌入式設(shè)備進(jìn)行網(wǎng)絡(luò)互連的首選。
1 嵌入式系統(tǒng)中TCP/IPv6 協(xié)議棧的特點與設(shè)計
1.1 嵌入式系統(tǒng)中TCP/IPv6 協(xié)議棧的特點
嵌入式系統(tǒng)不同于普通系統(tǒng),它在硬件資源的占有量以及處理器的處理能力等方面受到限制,因此TCP/IP 協(xié)議棧在嵌入式系統(tǒng)與其在通用操作系統(tǒng)中的實現(xiàn)有很大不同。對于嵌入式系統(tǒng)而言,考慮到TCP/IP協(xié)議的復(fù)雜性以及嵌入式系統(tǒng)自身資源的有限,對TCP/IP 的實現(xiàn)并不是一件容易的事情[2]。因此就需要對原本復(fù)雜的TCP/IPv6 協(xié)議棧的實現(xiàn)進(jìn)行精簡。嵌入式IPv6 協(xié)議棧獨立于嵌入式設(shè)備的操作,代碼空間小、移植性好,可以在無法承載操作系統(tǒng)的小存儲空間的嵌入式設(shè)備上實施,以實現(xiàn)這些設(shè)備間的基本網(wǎng)絡(luò)功能。
1.2 嵌入式系統(tǒng)中TCP/IPv6 協(xié)議棧的設(shè)計
芯片采用挪威Chipcon 公司推出的符合2.4GHz IEEE802.15.4 標(biāo)準(zhǔn)的射頻收發(fā)器CC2420[3] 。該協(xié)議棧要實現(xiàn)TCP/IPv6 協(xié)議棧的基本功能,運(yùn)行于無線網(wǎng)環(huán)境下。底層協(xié)議采用IEEE 802.15 工作組制定的802.15.4 協(xié)議,802.15.4 協(xié)議是一個短距離的無線通信標(biāo)準(zhǔn)。網(wǎng)絡(luò)層支持TCP、ICMPv6 協(xié)議,不實現(xiàn)UDP 協(xié)議。
1.2.1 網(wǎng)絡(luò)接口層
網(wǎng)絡(luò)接口層是TCP/IPv6 協(xié)議棧與以太網(wǎng)設(shè)備的驅(qū)動程序之間的接口。一方面,它將從網(wǎng)卡接收到的數(shù)據(jù)提交給上層網(wǎng)絡(luò)層協(xié)議軟件處理;另一方面,它將從網(wǎng)絡(luò)層接收來的數(shù)據(jù)傳送給網(wǎng)卡驅(qū)動。接口函數(shù)介紹如下:
(1)初始化函數(shù)
初始化函數(shù)InitNi()負(fù)責(zé)實現(xiàn)網(wǎng)絡(luò)接口層以及下層的物理設(shè)備驅(qū)動程序的初始化。主要包括以太網(wǎng)控制器的上電復(fù)位、MAC 地址的配置、收發(fā)緩沖環(huán)首尾地址的配置以及DMA 的初始化和收發(fā)數(shù)據(jù)格式的定義等。
(2)發(fā)送函數(shù)
在發(fā)送數(shù)據(jù)時,網(wǎng)絡(luò)接口層發(fā)送函數(shù)Send_Ethernet_Frame()負(fù)責(zé)接收IP協(xié)議產(chǎn)生的數(shù)據(jù),將其封裝成以太網(wǎng)數(shù)據(jù)幀后,調(diào)用下層的Send_ Packet()函數(shù)實現(xiàn)發(fā)送。Send_Packet()函數(shù)實現(xiàn)的是把以太網(wǎng)數(shù)據(jù)幀通過遠(yuǎn)程DMA 通道送到RTL8019AS 中的發(fā)送緩存區(qū),然后再啟動本地DMA,將數(shù)據(jù)發(fā)送網(wǎng)上。
評論