基于DSP的上網(wǎng)方案的軟硬件設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2007/8/23 0:00:00 訪問次數(shù):410
來源:電子技術(shù)應(yīng)用 作者:范 卿 韓崇昭 衛(wèi)(羽中)華
摘要:介紹了TMS320VC33芯片與RTL8019網(wǎng)卡的硬件接口電路的設(shè)計(jì)以及網(wǎng)卡驅(qū)動(dòng)程序的開發(fā),并將TCP/IP協(xié)議嵌入到TMS320VC33芯片中;討論了TCP/IP協(xié)議簇的分層次實(shí)現(xiàn),并根據(jù)應(yīng)用的需要對(duì)DSP中實(shí)現(xiàn)的TCP/IP協(xié)議進(jìn)行了必要的簡化,實(shí)現(xiàn)了DSP的上網(wǎng)功能。
關(guān)鍵詞:TCP/IP協(xié)議 DSP 嵌入式系統(tǒng)
隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的發(fā)展,嵌放式系統(tǒng)如單片機(jī)、DSP等系統(tǒng)對(duì)接入網(wǎng)絡(luò)的需求日益增加,例如具有遠(yuǎn)程抄表功能的電表系統(tǒng)、楞以進(jìn)行遠(yuǎn)程控制的信息電系統(tǒng)等。本文采用TI公司的TMS320VC33 DSP芯片設(shè)計(jì)與Realtek公司的RTL8019網(wǎng)卡的硬件接口電路,并在DSP中用軟件實(shí)現(xiàn)TCP/IP協(xié)議,使DSP芯片具備上網(wǎng)功能,從而可以用計(jì)算機(jī)通過網(wǎng)卡與DSP電路板進(jìn)行大量數(shù)據(jù)交換并對(duì)其進(jìn)行控制。
1 硬件設(shè)計(jì)
DSP與網(wǎng)卡的硬件接口電路圖如圖1所示。
DSP的數(shù)據(jù)總線低16位接ISA網(wǎng)卡的16位數(shù)據(jù)線,ISA網(wǎng)卡的IOCS16線接高電平,設(shè)置網(wǎng)卡為16位的模式。
網(wǎng)卡共有20根地址線。將A7~A8、A10~A19接地,A0~A6和A9分別接DSP的A0~A7,用到的網(wǎng)卡地址為0240H~025FH,映射到DSP的Page3空間,地址映射為C000C0H~C000DFH。
DSP的Reset信號(hào)用于復(fù)位網(wǎng)卡,由于DSP的Reset信號(hào)低有效,而網(wǎng)卡的Reset信號(hào)高有效,故中間應(yīng)接非門。
DSP的Page3和R/W信號(hào)用于選能網(wǎng)卡的讀寫信號(hào)IOR、IOW,實(shí)現(xiàn)的邏輯關(guān)系如圖2所示。
IORQ是網(wǎng)卡的中斷9,通過非門后接DSP的INT1引腳。
RTL8019網(wǎng)卡有三種工作方式:
第一種為跳線方式,網(wǎng)卡的I/O和中斷由跳線決定;
第二種為即插即用方式,由軟件進(jìn)行自動(dòng)配置plug and play;
第三種為免跳線方式,網(wǎng)卡的I/O和中斷由外接的93C46里的內(nèi)容決定。
計(jì)算機(jī)上一是即插即用方式,為了降低軟件編程的復(fù)雜度,將網(wǎng)卡設(shè)置為跳線方式。
上述所有的譯碼邏輯都在EPM7129中實(shí)現(xiàn)。
74ALVC16425是總線驅(qū)動(dòng)芯片,可實(shí)現(xiàn)3.3V到5V的電平轉(zhuǎn)換。由于TMS320VC33和EPM7128是3.3V的器件,而ISA總線是5V的,所以信號(hào)線不能直接連接,需要通過74ALVC164245進(jìn)行電平轉(zhuǎn)換和隔離。
2 軟件設(shè)計(jì)
2.1 網(wǎng)卡硬件驅(qū)動(dòng)程序的設(shè)計(jì)
網(wǎng)卡驅(qū)動(dòng)程序主要包括以下幾部分:
(1)NIC的初始化
NIC是網(wǎng)絡(luò)接口控制芯片,它負(fù)責(zé)網(wǎng)絡(luò)上數(shù)據(jù)的接收和發(fā)送。為了能夠使NIC啟動(dòng)并處于準(zhǔn)備接收或準(zhǔn)備發(fā)送數(shù)據(jù)的狀態(tài),必須對(duì)相關(guān)的寄存器進(jìn)行初始化。這些寄存器包括CR、DCR、RBCR、PSTART、PSTOP、ISR、IMR、PAR0~PAR5、MAR0~MAR7、CURR、TCP、RCR等。
(2)中斷服務(wù)程序
中斷服務(wù)程序一般完成兩項(xiàng)任務(wù):一是設(shè)置中斷標(biāo)志,以使相關(guān)程序能以此發(fā)現(xiàn)發(fā)生了中斷;二取得中斷狀態(tài)寄存器的值,并將引起中斷的具體原因提交給相應(yīng)的程序,這一過程也是通過設(shè)置中斷原因標(biāo)志完成的。需要注意 的,中斷服務(wù)程序開始的時(shí)候要保護(hù)中斷現(xiàn)場,待程序處理完成后要恢復(fù)中斷現(xiàn)場;中斷服務(wù)程序應(yīng)盡可能短小,以便在盡可能短的時(shí)間內(nèi)執(zhí)行完成,因此需要將一些不民要的工作交給其它程序來完成。
(3)幀發(fā)送程序
在網(wǎng)絡(luò)中,幀傳輸?shù)倪^程是:發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,然后通過網(wǎng)卡將幀發(fā)送到網(wǎng)絡(luò)的傳輸線上;接收方根據(jù)接收到的幀的目的地址研究是否將該幀提交給上層應(yīng)用程序。幀的發(fā)送是指將待發(fā)送的數(shù)據(jù)以幀的形式發(fā)送到網(wǎng)絡(luò)傳輸線上,因此,幀 的發(fā)送過程應(yīng)該包括以下幾個(gè)步驟:
①裝幀;
②將幀送入NIC的發(fā)送緩沖區(qū);
③初始化發(fā)送控制寄存器;
④啟動(dòng)NIC將該幀發(fā)送到網(wǎng)絡(luò)傳輸線上。
(4)幀接收程序
幀接收是指將網(wǎng)絡(luò)上的數(shù)據(jù)幀接收并緩存于網(wǎng)卡的接收緩沖環(huán)中,然后由主機(jī)程序?qū)⒕彺嬗诮邮站彌_環(huán)的幀讀走并存入內(nèi)存中以備程序使用。從中可以看出,幀的接收過程分成兩卡;
①第一步由NIC通過本地DMA將幀存入接收緩沖環(huán);
②第二卡是通過遠(yuǎn)程DMA并在主機(jī)的配合下將接收緩沖環(huán)中的幀讀入內(nèi)存。
2.2 TCP/IP協(xié)議的實(shí)現(xiàn)
2.2.1 DSP中與PC機(jī)中實(shí)現(xiàn)TCP/IP協(xié)議不同
TCP/IP協(xié)議最先是在UNIX系統(tǒng)中實(shí)現(xiàn)的,后來在LINUX、DOS和WINDOWS系統(tǒng)中也實(shí)現(xiàn)了TCP/IP。但是,在UNIX上實(shí)現(xiàn)的TCP/IP協(xié)議的源代碼并不能直接移植到DSP上來,這是因?yàn)镻C機(jī)和DSP存在著巨大的差異。
PC機(jī)的運(yùn)算速度非?,一般都有一個(gè)多任務(wù)的操作系統(tǒng),可以多任務(wù)并行執(zhí)行,通過硬中斷與中斷、消息隊(duì)列和各種插口實(shí)現(xiàn)ATCP/IP各協(xié)議層之間的通信和整個(gè)網(wǎng)
來源:電子技術(shù)應(yīng)用 作者:范 卿 韓崇昭 衛(wèi)(羽中)華
摘要:介紹了TMS320VC33芯片與RTL8019網(wǎng)卡的硬件接口電路的設(shè)計(jì)以及網(wǎng)卡驅(qū)動(dòng)程序的開發(fā),并將TCP/IP協(xié)議嵌入到TMS320VC33芯片中;討論了TCP/IP協(xié)議簇的分層次實(shí)現(xiàn),并根據(jù)應(yīng)用的需要對(duì)DSP中實(shí)現(xiàn)的TCP/IP協(xié)議進(jìn)行了必要的簡化,實(shí)現(xiàn)了DSP的上網(wǎng)功能。
關(guān)鍵詞:TCP/IP協(xié)議 DSP 嵌入式系統(tǒng)
隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的發(fā)展,嵌放式系統(tǒng)如單片機(jī)、DSP等系統(tǒng)對(duì)接入網(wǎng)絡(luò)的需求日益增加,例如具有遠(yuǎn)程抄表功能的電表系統(tǒng)、楞以進(jìn)行遠(yuǎn)程控制的信息電系統(tǒng)等。本文采用TI公司的TMS320VC33 DSP芯片設(shè)計(jì)與Realtek公司的RTL8019網(wǎng)卡的硬件接口電路,并在DSP中用軟件實(shí)現(xiàn)TCP/IP協(xié)議,使DSP芯片具備上網(wǎng)功能,從而可以用計(jì)算機(jī)通過網(wǎng)卡與DSP電路板進(jìn)行大量數(shù)據(jù)交換并對(duì)其進(jìn)行控制。
1 硬件設(shè)計(jì)
DSP與網(wǎng)卡的硬件接口電路圖如圖1所示。
DSP的數(shù)據(jù)總線低16位接ISA網(wǎng)卡的16位數(shù)據(jù)線,ISA網(wǎng)卡的IOCS16線接高電平,設(shè)置網(wǎng)卡為16位的模式。
網(wǎng)卡共有20根地址線。將A7~A8、A10~A19接地,A0~A6和A9分別接DSP的A0~A7,用到的網(wǎng)卡地址為0240H~025FH,映射到DSP的Page3空間,地址映射為C000C0H~C000DFH。
DSP的Reset信號(hào)用于復(fù)位網(wǎng)卡,由于DSP的Reset信號(hào)低有效,而網(wǎng)卡的Reset信號(hào)高有效,故中間應(yīng)接非門。
DSP的Page3和R/W信號(hào)用于選能網(wǎng)卡的讀寫信號(hào)IOR、IOW,實(shí)現(xiàn)的邏輯關(guān)系如圖2所示。
IORQ是網(wǎng)卡的中斷9,通過非門后接DSP的INT1引腳。
RTL8019網(wǎng)卡有三種工作方式:
第一種為跳線方式,網(wǎng)卡的I/O和中斷由跳線決定;
第二種為即插即用方式,由軟件進(jìn)行自動(dòng)配置plug and play;
第三種為免跳線方式,網(wǎng)卡的I/O和中斷由外接的93C46里的內(nèi)容決定。
計(jì)算機(jī)上一是即插即用方式,為了降低軟件編程的復(fù)雜度,將網(wǎng)卡設(shè)置為跳線方式。
上述所有的譯碼邏輯都在EPM7129中實(shí)現(xiàn)。
74ALVC16425是總線驅(qū)動(dòng)芯片,可實(shí)現(xiàn)3.3V到5V的電平轉(zhuǎn)換。由于TMS320VC33和EPM7128是3.3V的器件,而ISA總線是5V的,所以信號(hào)線不能直接連接,需要通過74ALVC164245進(jìn)行電平轉(zhuǎn)換和隔離。
2 軟件設(shè)計(jì)
2.1 網(wǎng)卡硬件驅(qū)動(dòng)程序的設(shè)計(jì)
網(wǎng)卡驅(qū)動(dòng)程序主要包括以下幾部分:
(1)NIC的初始化
NIC是網(wǎng)絡(luò)接口控制芯片,它負(fù)責(zé)網(wǎng)絡(luò)上數(shù)據(jù)的接收和發(fā)送。為了能夠使NIC啟動(dòng)并處于準(zhǔn)備接收或準(zhǔn)備發(fā)送數(shù)據(jù)的狀態(tài),必須對(duì)相關(guān)的寄存器進(jìn)行初始化。這些寄存器包括CR、DCR、RBCR、PSTART、PSTOP、ISR、IMR、PAR0~PAR5、MAR0~MAR7、CURR、TCP、RCR等。
(2)中斷服務(wù)程序
中斷服務(wù)程序一般完成兩項(xiàng)任務(wù):一是設(shè)置中斷標(biāo)志,以使相關(guān)程序能以此發(fā)現(xiàn)發(fā)生了中斷;二取得中斷狀態(tài)寄存器的值,并將引起中斷的具體原因提交給相應(yīng)的程序,這一過程也是通過設(shè)置中斷原因標(biāo)志完成的。需要注意 的,中斷服務(wù)程序開始的時(shí)候要保護(hù)中斷現(xiàn)場,待程序處理完成后要恢復(fù)中斷現(xiàn)場;中斷服務(wù)程序應(yīng)盡可能短小,以便在盡可能短的時(shí)間內(nèi)執(zhí)行完成,因此需要將一些不民要的工作交給其它程序來完成。
(3)幀發(fā)送程序
在網(wǎng)絡(luò)中,幀傳輸?shù)倪^程是:發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,然后通過網(wǎng)卡將幀發(fā)送到網(wǎng)絡(luò)的傳輸線上;接收方根據(jù)接收到的幀的目的地址研究是否將該幀提交給上層應(yīng)用程序。幀的發(fā)送是指將待發(fā)送的數(shù)據(jù)以幀的形式發(fā)送到網(wǎng)絡(luò)傳輸線上,因此,幀 的發(fā)送過程應(yīng)該包括以下幾個(gè)步驟:
①裝幀;
②將幀送入NIC的發(fā)送緩沖區(qū);
③初始化發(fā)送控制寄存器;
④啟動(dòng)NIC將該幀發(fā)送到網(wǎng)絡(luò)傳輸線上。
(4)幀接收程序
幀接收是指將網(wǎng)絡(luò)上的數(shù)據(jù)幀接收并緩存于網(wǎng)卡的接收緩沖環(huán)中,然后由主機(jī)程序?qū)⒕彺嬗诮邮站彌_環(huán)的幀讀走并存入內(nèi)存中以備程序使用。從中可以看出,幀的接收過程分成兩卡;
①第一步由NIC通過本地DMA將幀存入接收緩沖環(huán);
②第二卡是通過遠(yuǎn)程DMA并在主機(jī)的配合下將接收緩沖環(huán)中的幀讀入內(nèi)存。
2.2 TCP/IP協(xié)議的實(shí)現(xiàn)
2.2.1 DSP中與PC機(jī)中實(shí)現(xiàn)TCP/IP協(xié)議不同
TCP/IP協(xié)議最先是在UNIX系統(tǒng)中實(shí)現(xiàn)的,后來在LINUX、DOS和WINDOWS系統(tǒng)中也實(shí)現(xiàn)了TCP/IP。但是,在UNIX上實(shí)現(xiàn)的TCP/IP協(xié)議的源代碼并不能直接移植到DSP上來,這是因?yàn)镻C機(jī)和DSP存在著巨大的差異。
PC機(jī)的運(yùn)算速度非常快,一般都有一個(gè)多任務(wù)的操作系統(tǒng),可以多任務(wù)并行執(zhí)行,通過硬中斷與中斷、消息隊(duì)列和各種插口實(shí)現(xiàn)ATCP/IP各協(xié)議層之間的通信和整個(gè)網(wǎng)
熱門點(diǎn)擊
- 新型固體LBCAST
- 多媒體PCI接口控制芯片SAA7146A及其
- 視頻解碼芯片CXA2075M
- SG6931功率因素校正晶片及在LCD-TV
- 適于語音處理的SDA80D51芯片及其數(shù)字錄
- CD-ROM格式數(shù)據(jù)的軟解碼模塊設(shè)計(jì)
- 用AC4830xC和TCM38C17實(shí)現(xiàn)四路
- 新型數(shù)字CCD相機(jī)及其圖像數(shù)據(jù)傳輸卡設(shè)計(jì)
- ADSP-TS201S芯片的功能和應(yīng)用
- 基于ADSP21161的比相測距雷達(dá)跟蹤控制
推薦技術(shù)資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細(xì)]
- 第8代1800A/1200V
- 1200V CoolSiC嵌入
- PCB嵌入式功率芯片封裝應(yīng)用研究
- 反射傳感器簡化光電開關(guān)設(shè)計(jì)
- 導(dǎo)電性高分子混合鋁電解電容器
- PCIe Gen4 SSD主控芯片
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究