在TMS320VC5402上實現(xiàn)的嵌入式TCP/IP協(xié)議棧
摘要:實現(xiàn)一個運行在16位數(shù)字信號處理器tms320vc5402上的小型嵌入式tcp/ip協(xié)議棧。對tcp/ip協(xié)議中的ip協(xié)議、arp協(xié)議、udp協(xié)議進行分析,完成基于tcp/ip協(xié)議的嵌入式網(wǎng)絡(luò)系統(tǒng)。 關(guān)鍵詞:dsp tms320vc5402 tcp/ip協(xié)議棧 嵌入式系統(tǒng)引言隨著嵌入式系統(tǒng)應(yīng)用范圍的不斷擴展及網(wǎng)絡(luò)應(yīng)用的日益普及,使得越來越多的嵌入式系統(tǒng)需要支持網(wǎng)絡(luò)功能。tcp/ip是目前一種被廣泛采用的網(wǎng)絡(luò)協(xié)議。tcp/ip是一套把因特網(wǎng)上的各種系統(tǒng)互連起來的協(xié)議組,已成為事實上最常用的網(wǎng)絡(luò)標(biāo)準(zhǔn)之一。本文對tcp/ip協(xié)議中的ip協(xié)議、arp協(xié)議和udp協(xié)議進行了分析,利用dsp的專用匯編語言實現(xiàn)了自己的通信協(xié)議。由此可使dsp直接對ethernet發(fā)來的數(shù)據(jù)包解分析,并能按照tcp/ip協(xié)議正確打包和發(fā)送,最終實現(xiàn)dsp與pc機的數(shù)據(jù)通信,成功地完成了語音數(shù)據(jù)的采集和發(fā)送,實現(xiàn)了dsp與pc機的語音數(shù)據(jù)傳輸。1 tcp/ip協(xié)議分析一般在嵌入式系統(tǒng)中實現(xiàn)的tcp/ip協(xié)議都是面向數(shù)據(jù)采集和傳輸?shù)?,所以大部分實現(xiàn)都是ip協(xié)議、arp協(xié)議、udp協(xié)議或者是tcp協(xié)議。本文完成的是ip協(xié)議、arp協(xié)議和udp協(xié)議。一般認(rèn)為tcp/ip為四層協(xié)議,實現(xiàn)的協(xié)議棧結(jié)構(gòu)如圖1所示。dsp程序自下而上實現(xiàn)以下協(xié)議:①媒介訪問控制mac(media access control),向以太網(wǎng)收發(fā)數(shù)據(jù)。傳送的數(shù)據(jù)格式為ethernet數(shù)據(jù)幀格式。ethernet幀的長度是可變的,但都大于64字節(jié),小于1518字節(jié)。它包括頭部、數(shù)據(jù)和尾部三部分。8字節(jié)的前導(dǎo)用于幀同步,crc域用于幀校驗。目的地址和源端地址是指網(wǎng)卡的物理地址(mac地址),具有唯一性。②地址解析協(xié)議arp(address resolution protocol),使得物理地址和ip地址可以對應(yīng)起來。在ethernet上,使用地址解析協(xié)議arp協(xié)議來實現(xiàn)ip地址到mac地址的動態(tài)轉(zhuǎn)換。arp request(arp請求)和arp response(arp響應(yīng))類型都是0x0806。arp報文格式包括硬件類型、協(xié)議類型、硬件地址長度、協(xié)議地址長度、操作字段、源端物理地址、源端ip地址、目的物理地址和目的ip地址。③internet網(wǎng)核心協(xié)議ip(internet protocol),實現(xiàn)ip網(wǎng)絡(luò)上的數(shù)據(jù)傳輸?shù)幕A(chǔ)。ip協(xié)議提供了一種高效、不可靠和無連接的傳輸方式。ip報文是ip協(xié)議的基本處理單元,是由報頭和數(shù)據(jù)兩部分組成的。ip報頭包括20字節(jié)的固定部分和變長的選項部分。20字節(jié)的固定部分包括ip協(xié)議的版本號、ip首部長度、服務(wù)類型、報文總長度、標(biāo)識符、片偏移、報文生存時間、首部校驗和以及源端ip地址和目的端ip地址。
④用戶數(shù)據(jù)報協(xié)議udp(user datagram protocol),提供不可靠的數(shù)據(jù)傳輸功能。它不對要發(fā)送的數(shù)據(jù)進行緩沖,直接把從應(yīng)用層收到的數(shù)據(jù)加上udp首部發(fā)送出去。udp不會把應(yīng)用層多、次發(fā)送的數(shù)據(jù)合并成為一個包發(fā)送出去。這對于編寫簡單的請求/響應(yīng)模式的應(yīng)用是很方便的,而且利用udp協(xié)議對傳輸速率也沒有太大的影響。udp協(xié)議的數(shù)據(jù)報格式包括源端口口、目的端口號、數(shù)據(jù)報長度、udp校驗和以及udp數(shù)據(jù)。⑤上層應(yīng)用協(xié)議,對語音數(shù)據(jù)打包傳輸,實現(xiàn)dsp與pc機的語音數(shù)據(jù)傳輸。2 硬件接口電路硬件接口電路如圖2所示。微處理器采用的是ti公司生產(chǎn)的tms320vc5402數(shù)字信號處理器。它采用了改進的哈佛結(jié)構(gòu),操作速率達(dá)到了100mips。以太網(wǎng)控制芯片采用rtl8019as,是臺灣realtek公司生產(chǎn)的一種高度集成的以太網(wǎng)控制器。它實現(xiàn)了以太網(wǎng)媒介訪問層(mac)和物理層(phy)的全部功能。譯碼、電平變換及向功能由xc95144xl完成。它是xilinx公司生產(chǎn)的低功耗cpld器件。hr61001g是中山漢仁電子有限公司生產(chǎn)的10base-t接口器件,起低通濾波和隔離變壓等作用。3 軟件設(shè)計3.1 dsp上嵌入式tcp/ip協(xié)議的匯編程序設(shè)計由于dsp的資源有限,所以網(wǎng)絡(luò)協(xié)議根據(jù)嵌入式應(yīng)用進行了裁減。本設(shè)計中完成了arp、ip、udp等部分協(xié)議,既能夠保證dsp接入以太網(wǎng),又使dsp資源能夠滿足嵌入式系