- 相關(guān)推薦
在TMS320VC5402上實(shí)現(xiàn)的嵌入式TCP/IP協(xié)議棧
摘要:實(shí)現(xiàn)一個(gè)運(yùn)行在16位數(shù)字信號(hào)處理器TMS320VC5402上的小型嵌入式TCP/IP協(xié)議棧。對(duì)TCP/IP協(xié)議中的IP協(xié)議、ARP協(xié)議、UDP協(xié)議進(jìn)行分析,完成基于TCP/IP協(xié)議的嵌入式網(wǎng)絡(luò)系統(tǒng)。引言
隨著嵌入式系統(tǒng)應(yīng)用范圍的不斷擴(kuò)展及網(wǎng)絡(luò)應(yīng)用的日益普及,使得越來(lái)越多的嵌入式系統(tǒng)需要支持網(wǎng)絡(luò)功能。TCP/IP是目前一種被廣泛采用的網(wǎng)絡(luò)協(xié)議。TCP/IP是一套把因特網(wǎng)上的各種系統(tǒng)互連起來(lái)的協(xié)議組,已成為事實(shí)上最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之一。本文對(duì)TCP/IP協(xié)議中的IP協(xié)議、ARP協(xié)議和UDP協(xié)議進(jìn)行了分析,利用DSP的專用匯編語(yǔ)言實(shí)現(xiàn)了自己的通信協(xié)議。由此可使DSP直接對(duì)Ethernet發(fā)來(lái)的數(shù)據(jù)包解分析,并能按照TCP/IP協(xié)議正確打包和發(fā)送,最終實(shí)現(xiàn)DSP與PC機(jī)的數(shù)據(jù)通信,成功地完成了語(yǔ)音數(shù)據(jù)的采集和發(fā)送,實(shí)現(xiàn)了DSP與PC機(jī)的語(yǔ)音數(shù)據(jù)傳輸。
1 TCP/IP協(xié)議分析
一般在嵌入式系統(tǒng)中實(shí)現(xiàn)的TCP/IP協(xié)議都是面向數(shù)據(jù)采集和傳輸?shù),所以大部分?shí)現(xiàn)都是IP協(xié)議、ARP協(xié)議、UDP協(xié)議或者是TCP協(xié)議。本文完成的是IP協(xié)議、ARP協(xié)議和UDP協(xié)議。一般認(rèn)為TCP/IP為四層協(xié)議,實(shí)現(xiàn)的協(xié)議棧結(jié)構(gòu)如圖1所示。
DSP程序自下而上實(shí)現(xiàn)以下協(xié)議:
①媒介訪問(wèn)控制MAC(Media Access Control),向以太網(wǎng)收發(fā)數(shù)據(jù)。傳送的數(shù)據(jù)格式為Ethernet數(shù)據(jù)幀格式。Ethernet幀的長(zhǎng)度是可變的,但都大于64字節(jié),小于1518字節(jié)。它包括頭部、數(shù)據(jù)和尾部三部分。8字節(jié)的前導(dǎo)用于幀同步,CRC域用于幀校驗(yàn)。目的地址和源端地址是指網(wǎng)卡的物理地址(MAC地址),具有唯一性。
②地址解析協(xié)議ARP(Address Resolution Protocol),使得物理地址和IP地址可以對(duì)應(yīng)起來(lái)。在Ethernet上,使用地址解析協(xié)議ARP協(xié)議來(lái)實(shí)現(xiàn)IP地址到MAC地址的動(dòng)態(tài)轉(zhuǎn)換。ARP Request(ARP請(qǐng)求)和ARP Response(ARP響應(yīng))類型都是0X0806。ARP報(bào)文格式包括硬件類型、協(xié)議類型、硬件地址長(zhǎng)度、協(xié)議地址長(zhǎng)度、操作字段、源端物理地址、源端IP地址、目的物理地址和目的IP地址。
③Internet網(wǎng)核心協(xié)議IP(Internet Protocol),實(shí)現(xiàn)IP網(wǎng)絡(luò)上的數(shù)據(jù)傳輸?shù)幕A(chǔ)。IP協(xié)議提供了一種高效、不可靠和無(wú)連接的傳輸方式。IP報(bào)文是IP協(xié)議的基本處理單元,是由報(bào)頭和數(shù)據(jù)兩部分組成的。IP報(bào)頭包括20字節(jié)的固定部分和變長(zhǎng)的選項(xiàng)部分。20字節(jié)的固定部分包括IP協(xié)議的版本號(hào)、IP首部長(zhǎng)度、服務(wù)類型、報(bào)文總長(zhǎng)度、標(biāo)識(shí)符、片偏移、報(bào)文生存時(shí)間、首部校驗(yàn)和以及源端IP地址和目的端IP地址。
④用戶數(shù)據(jù)報(bào)協(xié)議UDP(User Datagram Protocol),提供不可靠的數(shù)據(jù)傳輸功能。它不對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行緩沖,直接把從應(yīng)用層收到的數(shù)據(jù)加上UDP首部發(fā)送出去。UDP不會(huì)把應(yīng)用層多、次發(fā)送的數(shù)據(jù)合并成為一個(gè)包發(fā)送出去。這對(duì)于編寫(xiě)簡(jiǎn)單的請(qǐng)求/響應(yīng)模式的應(yīng)用是很方便的,而且利用UDP協(xié)議對(duì)傳輸速率也沒(méi)有太大的影響。UDP協(xié)議的數(shù)據(jù)報(bào)格式包括源端口口、目的端口號(hào)、數(shù)據(jù)報(bào)長(zhǎng)度、UDP校驗(yàn)和以及UDP數(shù)據(jù)。
⑤上層應(yīng)用協(xié)議,對(duì)語(yǔ)音數(shù)據(jù)打包傳輸,實(shí)現(xiàn)DSP與PC機(jī)的語(yǔ)音數(shù)據(jù)傳輸。
2 硬件接口電路
硬件接口電路如圖2所示。
微處理器采用的是TI公司生產(chǎn)的TMS320VC5402數(shù)字信號(hào)處理器。它采用了改進(jìn)的哈佛結(jié)構(gòu),操作速率達(dá)到了100MIPS。以太網(wǎng)控制芯片采用RTL8019AS,是臺(tái)灣Realtek公司生產(chǎn)的一種高度集成的以太網(wǎng)控制器。它實(shí)現(xiàn)了以太網(wǎng)媒介訪問(wèn)層(MAC)和物理層(PHY)的全部功能。譯碼、電平變換及向功能由XC95144xl完成。它是Xilinx公司生產(chǎn)的低功耗CPLD器件。HR61001G是中山漢仁電子有限公司生產(chǎn)的10BASE-T接口器件,起低通濾波和隔離變壓等作用。
3 軟件設(shè)計(jì)
3.1 DSP上嵌入式TCP/IP協(xié)議的匯編程序設(shè)計(jì)
由于DSP的資源有限,所以網(wǎng)絡(luò)協(xié)議根據(jù)嵌入式應(yīng)用進(jìn)行了裁減。本設(shè)計(jì)中完成了ARP、IP、UDP等部分協(xié)議,既能夠保證DSP接入以太網(wǎng),又使DSP資源能夠滿足嵌入式系統(tǒng)應(yīng)用的要求。
首先介紹一下所設(shè)計(jì)的DSP接收和發(fā)送以太網(wǎng)數(shù)據(jù)包所使用的數(shù)據(jù)結(jié)構(gòu)。作者選擇了聯(lián)合體結(jié)構(gòu)作為DSP接收和發(fā)送以太網(wǎng)數(shù)據(jù)包的緩沖區(qū)。聯(lián)合體允許大小和類型不同的定義臨時(shí)存儲(chǔ)在同一存儲(chǔ)器空間。這樣的好處是各層協(xié)議之間數(shù)據(jù)的傳遞,實(shí)質(zhì)上是數(shù)據(jù)指針在傳遞,而不是數(shù)據(jù)拷貝傳遞。而且各層協(xié)議可以直接使用該緩沖區(qū),因?yàn)榫彌_區(qū)內(nèi)的結(jié)構(gòu)體完全是按照各個(gè)協(xié)議的幀格式設(shè)計(jì)的。在聯(lián)合體databuf中有四個(gè)結(jié)構(gòu)體成員—ethernetpkt、ippkt、udppkt、arppkt,分別對(duì)應(yīng)著以太網(wǎng)數(shù)據(jù)幀、IP協(xié)議、UDP協(xié)議、ARP協(xié)議的幀格式。這4個(gè)結(jié)構(gòu)體成員是按照它們各自協(xié)議的幀格式進(jìn)行定義的。值得注意的是,因?yàn)閐atabuf中存儲(chǔ)的是RTL8019AS發(fā)送的以太網(wǎng)數(shù)據(jù)幀,聯(lián)合體的成員共用databuf緩沖區(qū),所以在各個(gè)結(jié)構(gòu)體中要預(yù)留低層協(xié)議報(bào)頭存儲(chǔ)空間。例如,IP協(xié)議的結(jié)構(gòu)體ippkt就要在結(jié)構(gòu)體定義中留下ethernetpkt報(bào)頭的存儲(chǔ)空間,即ippkt定義中前9個(gè)整型空間不能使用,從第10個(gè)整型空間開(kāi)始才是IP數(shù)據(jù)報(bào)的內(nèi)容。
下面分4層介紹所完成的嵌入式TCP/IP協(xié)議。
①物理層:主要完成以太網(wǎng)控制器RTL8019AS的復(fù)位,寄存器的初始化,并設(shè)置RTL8019AS的工作方式、中斷響應(yīng)、DMA通道接收緩沖區(qū)的地址設(shè)置等。
初始化程序如下:
WRITE 0x21,CR /*設(shè)置命令寄存器,選中第0頁(yè)*/
WRITE 0x4c,PSTART/*頁(yè)起始地址寄存器初始化,設(shè)定接收緩沖區(qū)起始頁(yè)地址*/
WRITE 0x80,PSTOP /*頁(yè)停止地址寄存器初始化,設(shè)定接收緩沖區(qū)終止頁(yè)地址*/
【在TMS320VC5402上實(shí)現(xiàn)的嵌入式TCP/IP協(xié)議!肯嚓P(guān)文章:
基于精簡(jiǎn)TCP/IP協(xié)議棧的信息家電網(wǎng)絡(luò)服務(wù)器03-18
TCP/IP安全性研究03-08
嵌入式TCP/IP協(xié)議單片機(jī)技術(shù)在網(wǎng)絡(luò)通信中的應(yīng)用03-07
HPI自舉在TMS320VC5402芯片上的實(shí)現(xiàn)03-18
Syn Flood攻擊是利用TCP/IP協(xié)議的什么漏洞03-20
具有TCP/IP協(xié)議的智能開(kāi)關(guān)控制器的研究03-08
IP協(xié)議設(shè)計(jì)實(shí)現(xiàn)—重裝模塊(一)03-07
基于混合TCP-UDP的HTTP協(xié)議實(shí)現(xiàn)方法03-18
基于MSP430的簡(jiǎn)單IPv6協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)11-22