国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于DSP的上網(wǎng)方案的軟硬件設(shè)計(jì)與實(shí)現(xiàn)

發(fā)布時(shí)間:2010-11-26 18:22    發(fā)布者:designer
關(guān)鍵詞: dsp , 軟硬件 , 上網(wǎ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)絡(luò)的通信.而DSP運(yùn)行速度相對(duì)較慢,缺乏多任務(wù)操作系統(tǒng)的平臺(tái),只能通過順序執(zhí)行加硬件中斷的方式來實(shí)現(xiàn),并且因其還要同時(shí)執(zhí)行數(shù)據(jù)采集、串口中斷等任務(wù),所以中斷程序應(yīng)盡量短,只完成設(shè)置各種狀態(tài)的標(biāo)志位,而將相對(duì)較慢的網(wǎng)絡(luò)數(shù)據(jù)包的處理放在主程序中執(zhí)行,以減少各種任務(wù)之間的沖突.

PC機(jī)的內(nèi)存非常大,現(xiàn)在一般都可達(dá)到32~128M的存儲(chǔ)容量,可以動(dòng)態(tài)地分配和釋放內(nèi)存,很容易實(shí)現(xiàn)存儲(chǔ)器緩存mbuf、網(wǎng)絡(luò)控制塊ncb等鏈狀結(jié)構(gòu),且可隨意增刪;同時(shí)能維護(hù)多條網(wǎng)絡(luò)連接,由于計(jì)算機(jī)處理速度快,幾乎不用考慮緩沖區(qū)溢出的問題.而DSP內(nèi)部RAM一般只有十幾K,加上外部擴(kuò)展的RAM也只能達(dá)到幾十K的容量,一個(gè)最大的以太網(wǎng)數(shù)據(jù)包就有1.5K左右,如果也按PC機(jī)的內(nèi)存管理方式和數(shù)據(jù)結(jié)構(gòu),使用mbuf鏈,RAM肯定不夠用,因此只能在RAM中分配一個(gè)固定的1514字節(jié)的區(qū)段來存放接收到的以太網(wǎng)數(shù)據(jù)包,接收一包處理一包.

PC機(jī)中TCP/IP協(xié)議都是分層次實(shí)現(xiàn)的,相互之間都是通過參數(shù)傳遞進(jìn)行聯(lián)系,這樣有利于提高程序的模塊化和獨(dú)立性.而在DSP中,由于參數(shù)傳遞會(huì)占用過多的程序空間,且降低DSP的執(zhí)行速度,所以應(yīng)盡量減少參數(shù)傳遞,轉(zhuǎn)而使用全局變量和外部變量等來達(dá)到值的傳遞,因此各程序間的依賴程度大,往往會(huì)共享某一些變量和數(shù)據(jù).

PC機(jī)上實(shí)現(xiàn)了比較完整的TCP/IP協(xié)議.而在DSP中,由于運(yùn)算速度和內(nèi)存的限制,不可能支持所有的協(xié)議,一般只實(shí)現(xiàn)需要的部分,不需要的協(xié)議一概都不支持;而且即使需要的協(xié)議也不用像在PC機(jī)上實(shí)現(xiàn)那么復(fù)雜,可以根據(jù)硬件的具體情況和實(shí)現(xiàn)的需求進(jìn)行必要的簡化.

2.2.2 TCP/IP協(xié)議的具體實(shí)現(xiàn)

TCP/IP協(xié)議是一個(gè)協(xié)議簇,包含了很多協(xié)議,在DSP上實(shí)現(xiàn)的所有協(xié)議如圖3所示,通常可分為四層(不包括物理層).

根據(jù)DSP的結(jié)構(gòu)特點(diǎn)和所需要實(shí)現(xiàn)的功能,在DSP中實(shí)現(xiàn)了ARP(地址解析協(xié)議)、IP(網(wǎng)際協(xié)議)、ICMP(Internet控制報(bào)文協(xié)議)、UDP(用戶數(shù)據(jù)報(bào)協(xié)議)和TCP(傳輸控制協(xié)議),并對(duì)它們進(jìn)行了簡化.

2.2.2 TCP/IP協(xié)議的具體實(shí)現(xiàn)

TCP/IP協(xié)議是一個(gè)協(xié)議簇,包含了很多協(xié)議,在DSP上實(shí)現(xiàn)的所有協(xié)議如圖3所示,通常可分為四層(不包括物理層).

根據(jù)DSP的結(jié)構(gòu)特點(diǎn)和所需要實(shí)現(xiàn)的功能,在DSP中實(shí)現(xiàn)了ARP(地址解析協(xié)議)、IP(網(wǎng)絡(luò)協(xié)議)、ICMP(Internet控制報(bào)文協(xié)議)、UDP(用戶數(shù)據(jù)報(bào)協(xié)議)和TCP(傳輸控制協(xié)議),并對(duì)它們進(jìn)行了簡化.

在鏈路層中實(shí)現(xiàn)了ARP.每種網(wǎng)絡(luò)都有自己的尋址機(jī)制,以太網(wǎng)通過以太網(wǎng)地址即通常所說的網(wǎng)卡硬件地址MAX進(jìn)行尋址的,每個(gè)網(wǎng)卡出廠時(shí)都有一個(gè)唯一的MAC地址.IP地址則僅僅是對(duì)于TCP/IP簇有意義的地址,是一種虛擬地址.當(dāng)賦予IP地址的IP包要在以太網(wǎng)中傳播時(shí),必須將IP地址轉(zhuǎn)化為以太網(wǎng)地址才能進(jìn)行正確的傳輸.ARP協(xié)議就是將32位的IP地址動(dòng)態(tài)地映射為48位的以太網(wǎng)地址,從而保證網(wǎng)絡(luò)的正確傳輸.ARP協(xié)議由兩個(gè)文件arpin.c和arpout.c實(shí)現(xiàn).arpin.c負(fù)責(zé)接收網(wǎng)絡(luò)上廣播的arp包,判斷arp包的類型是網(wǎng)絡(luò)上其它機(jī)子的請(qǐng)求包還是返回本機(jī)的響應(yīng)包,判斷其合法性并進(jìn)行相應(yīng)的處理;arpout.c負(fù)責(zé)主機(jī)向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)報(bào)時(shí)發(fā)送arp請(qǐng)求包以及被arpin.c調(diào)用響應(yīng)收到的arp請(qǐng)求包.


在網(wǎng)絡(luò)層中實(shí)現(xiàn)了IP和ICMP.IP協(xié)議是TCP/IP協(xié)議簇中最核心的協(xié)議,它提供無連接的數(shù)據(jù)報(bào)傳送服務(wù),所有上層協(xié)議都要以IP數(shù)據(jù)包格式傳輸.IP協(xié)議由兩個(gè)文件ipin.c和ipout.c實(shí)現(xiàn).Ipin.c負(fù)責(zé)接收IP數(shù)據(jù)包,收到IP包后,首先判斷其版本號(hào)、

數(shù)據(jù)長度、目的地址、檢驗(yàn)和是否正確,再根據(jù)IP首部的協(xié)議類型字段的值交給相應(yīng)的上層協(xié)議處理;ipout.c負(fù)責(zé)發(fā)送IP數(shù)據(jù)包,接收上層協(xié)議傳遞下來的數(shù)據(jù),加上20字節(jié)的IP首部,正確設(shè)置源IP地址和目的IP地址、協(xié)議類型,計(jì)算檢驗(yàn)和,交給下面的鏈路層發(fā)送.PC機(jī)上的IP數(shù)據(jù)包,當(dāng)它的長度超過網(wǎng)絡(luò)的MTU時(shí),允許對(duì)它分段;在DSP中,則不支持IP數(shù)據(jù)包分段,也不支持IP選項(xiàng)字段.ICMP協(xié)議負(fù)責(zé)傳遞差錯(cuò)報(bào)文以及其它需要注意的信息,且由ICMP首部8位的類型字段和8位的代碼字段決定信息的種類.在DSP中只實(shí)現(xiàn)了對(duì)回顯請(qǐng)求(類型代碼為80)報(bào)文的處理,從IP層收到ICMP包后,判斷其類型代碼段是否為80.如果是,將這兩個(gè)字段設(shè)置為00(回顯應(yīng)答),計(jì)算檢驗(yàn)和,再交給IP層發(fā)送;如果不是,則予以丟棄.從而實(shí)現(xiàn)了對(duì)ping功能的支持.




   



在運(yùn)輸層實(shí)現(xiàn)了UDP和TCP.

UDP協(xié)議是一種面向無連接的不可靠的協(xié)議,用兩個(gè)文件udpin.c和udpout.c來實(shí)現(xiàn).udpin.c實(shí)現(xiàn)對(duì)udp包輸入的處理,判斷其端口號(hào)、檢驗(yàn)和是否正確,正確則將其數(shù)據(jù)交給相應(yīng)端口的應(yīng)用程序,不正確則丟棄;udpout.c實(shí)現(xiàn)對(duì)udp包輸出的處理,從應(yīng)用程序接收數(shù)據(jù),設(shè)置相應(yīng)的源端口號(hào)和目的端口號(hào),再交給IP層發(fā)送.值得注意的是,計(jì)算UDP包的檢驗(yàn)和與計(jì)算IP包的檢驗(yàn)和是不一樣的,IP包的檢驗(yàn)和只覆蓋了IP包的首部,而UDP包的檢驗(yàn)和則覆蓋了UDP包的首部和所有的數(shù)據(jù).UDP包計(jì)算檢驗(yàn)和時(shí)還引入了一個(gè)12字節(jié)的偽首部,包括4字節(jié)的源IP地址、4字節(jié)的目的IP地址、1字節(jié)的零段、1字節(jié)的協(xié)議段和兩字節(jié)的檢驗(yàn)和,其目的是讓UDP兩次檢查數(shù)據(jù)是否正確地到達(dá)了目的地. TCP協(xié)議與UDP協(xié)議雖然同是運(yùn)輸層協(xié)議,但是它提供一種面向連接的可靠的字節(jié)流服務(wù).TCP協(xié)議是所有協(xié)議中最復(fù)雜、也是最難實(shí)現(xiàn)的一塊,主要由tcpin.c、tcpout.c、tcptimer.c和tcpstatem.c四個(gè)文件分塊實(shí)現(xiàn),并根據(jù)具體應(yīng)用的需要進(jìn)行簡化.TCP的控制塊tcb用結(jié)構(gòu)體來實(shí)現(xiàn),每一個(gè)tcb包含一條TCP連接的所有控制和狀態(tài)信息,全部的tcb形成了一個(gè)雙向鏈表,有利于在所有TCP連接中進(jìn)行搜索.tcptimer.c負(fù)責(zé)管理TCP協(xié)議中的各種狀態(tài)信息,它內(nèi)含前向后向指針,使之形成定時(shí)器超時(shí),PC機(jī)上的TCP協(xié)議包含快慢兩個(gè)定時(shí)器,這里僅僅實(shí)現(xiàn)了一個(gè)500ms的慢速定時(shí)器,因?yàn)闆]有快速定時(shí)器,所以不支持ACK報(bào)文延遲,收到一幀即立即發(fā)送ACK;tcpstatem.c是TCP的狀態(tài)機(jī)函數(shù),根據(jù)TCP連接所處的不同狀態(tài)以及發(fā)生的事件來決定TCP連接的狀態(tài)變遷;tcpout.c負(fù)責(zé)tcp報(bào)文的發(fā)送,典型的發(fā)送過程是當(dāng)接收到上層應(yīng)用程序的數(shù)據(jù)時(shí),首先發(fā)送SYN幀,與目標(biāo)節(jié)點(diǎn)三次握手建立連接,之后加上TCP首部,交給下層IP模塊發(fā)送,并通過重傳定時(shí)器實(shí)現(xiàn)超時(shí)重發(fā)、持續(xù)定時(shí)器發(fā)送窗口探測幀等功能,待所有數(shù)據(jù)發(fā)送完畢并得到確認(rèn)后發(fā)送FIN幀,通過四次握手關(guān)閉連接,tcpout.c還可在不同狀態(tài)和事件下被其它程序調(diào)用發(fā)送ACK幀、RST幀等其它TCP報(bào)文;tcpin.c負(fù)責(zé)接收從下層IP模塊接收到的TCP數(shù)據(jù)包,并根據(jù)TCP連接的狀態(tài)信息以及TCP首部的各個(gè)標(biāo)志位進(jìn)行分支處理,將數(shù)據(jù)交給對(duì)應(yīng)端口的上層應(yīng)用程序,并調(diào)用其它函數(shù)實(shí)現(xiàn)對(duì)TCP包的響應(yīng)和狀態(tài)變遷.在PC機(jī)上往往可以同時(shí)維護(hù)多條TCP連接;但在DSP上,由于DSP速度和RAM容量的限制,只支持一條TCP連接;這樣大大簡化了程序的復(fù)雜度,同時(shí)也滿足了實(shí)際需要,如果今后有需要,還可以進(jìn)行擴(kuò)展. 綜上所述,TCP/IP協(xié)議的具體處理流程如圖4所示.

本文通過DSP與網(wǎng)卡的硬件接口的設(shè)計(jì)及編程,使DSP實(shí)現(xiàn)了基于以太網(wǎng)的TCP/IP通信,從而使DSP可以通過網(wǎng)線進(jìn)行聯(lián)網(wǎng),并可以實(shí)時(shí)地與計(jì)算機(jī)進(jìn)行通信,交換大量的數(shù)據(jù)和控制信息.本文所介紹的技術(shù)已經(jīng)在作者參加的國家"973"項(xiàng)目"復(fù)雜自然環(huán)境時(shí)空定量信息的獲取與融合處理的理論與應(yīng)?quot;的硬件設(shè)計(jì)中得到應(yīng)用,并運(yùn)行良好
本文地址:http://m.qingdxww.cn/thread-42016-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲激情在线播放| 在线观看日韩| 性做久久久久久网站| 芭乐视频免费资源在线观看 | 欧美 亚洲 中文字幕 高清| 日韩成人在线观看| 日本欧美高清全视频| 深夜激情网| 99久久国产露脸精品竹菊传煤| 牛牛在线精品视频(正)| 欧州一级毛片| 日韩中文字幕精品视频在线| 婷婷在线视频观看| 中文字幕一区二区在线播放| 国精产品砖一区二区三区糖心 | 亚洲天堂视频在线播放| 精品午夜视频| 亚洲视频免| 日本欧美高清全视频| 天堂网中文字幕| 俄罗斯12x13x处| 亚洲精品成人a在线观看| 色精品| 深夜毛片| 亚洲欧美日韩中文字幕久久| 国精产品999一区二区三区有限| 一二三四高清中文版视频| 三级黄色免费片| 五月婷婷综合基地| 伊人网在线视频观看| 免费播放美女一级毛片| 欧美成人午夜片一一在线观看| 啪啪网站免费看| 丝瓜视频草莓| 高清欧美videos sexo| 亚洲薄码区| 日本在线观| 深夜精品高中女学生| 啊片色播电影| 亚洲国产欧美另类| 欧美爽爽|