<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DM9000A的DSP以太網(wǎng)接口設計與實(shí)現

基于DM9000A的DSP以太網(wǎng)接口設計與實(shí)現

作者: 時(shí)間:2014-03-12 來(lái)源:網(wǎng)絡(luò ) 收藏
nt-family: 宋體, Georgia, verdana, serif; background-color: rgb(255, 255, 255); ">初始化流程如圖4所示。

本文引用地址:http://dyxdggzs.com/article/241677.htm

完成上述初始化步驟后,就處于正常工作狀態(tài),可以收發(fā)數據包。若有異常發(fā)生,就需要重復上述步驟,重啟以使芯片恢復到正常狀態(tài)。

3.1.2 數據幀發(fā)送

內部有16 KB的SRAM作為接收/發(fā)送數據的緩存區,其中前3 KB的空間,地址從0x0000H~0x0BFFH,用來(lái)緩存需要發(fā)送的數據。

數據發(fā)送的具體步驟如下:

(1)利用寫(xiě)操作寄存器MWCMD(F8H),將需要發(fā)送的數據幀寫(xiě)入DM9000A的發(fā)送緩存區。

(2)將數據幀長(cháng)度寫(xiě)入長(cháng)度寄存器TXPLL(FCH)和TXPLH(FDH)。

(3)設置發(fā)送控制寄存器TCR(02H),TXREQ=1,數據幀開(kāi)始發(fā)送。

(4)檢查網(wǎng)絡(luò )狀態(tài)寄存器NSR(01H)的TX2END和TX1END位,判斷此幀數據是否發(fā)送完。

數據幀發(fā)送流程圖如圖5所示。

3.1.3 數據幀接收

當DM9000A數據接收使能后,DM9000A就會(huì )自動(dòng)接收數據。DM9000A接收到的數據先保存在地址從0x0C00~0x3FFF的13 KB內部SRAM緩存空間中,它是一個(gè)環(huán)形結構。

利用寄存器MRCMDX(FOH)和寄存器MRCMD(F2H)可獲取緩存中的數據幀信息。接收到的數據幀格式如圖6所示。

其中第1個(gè)字節是接收數據標志字節,表征接收到數據幀是否有效。第2個(gè)字節是接收數據幀的狀態(tài)字節,其中的內容與接收狀態(tài)寄存器RSR中的內容相同,可以用來(lái)判斷所接收的數據幀是否正常。第3,4個(gè)字節是接收到數據的長(cháng)度字節,其中低位在前,高位在后。從第5個(gè)字節開(kāi)始的數據才是真正數據幀內容。

數據接收過(guò)程如下:

(1)檢查中斷狀態(tài)寄存器:ISR(FEH),若PRS位為1,說(shuō)明有新的數據幀接收,寫(xiě)1清除PRS位;若為0,說(shuō)明無(wú)數據,直接返回。

(2)讀取第1個(gè)字節,即接收數據標志字節。如果該字節為01,則表示接收下來(lái)的是有效數據幀;如果該位為00則表示沒(méi)有數據到達,或數據已經(jīng)接收完成;如果既不是01又不是00,則認為有異常發(fā)生,這時(shí)就要將DM9000A芯片重啟以使芯片恢復到正常狀態(tài)。

(3)讀取第2個(gè)字節,即接收狀態(tài)字節。根據接收狀態(tài)字節判斷所接收的數據幀是否正常。

(4)讀取第3,4字節,即數據幀長(cháng)度字節。

(5)讀取真正的數據幀內容。

(6)根據獲取的長(cháng)度信息,判斷是否讀完一幀。如果讀完,接著(zhù)讀下一幀,直到遇到首字節是00H的幀,說(shuō)明接收數據已讀完。

數據幀接收流程如圖7所示。

3.2 上層通信協(xié)議程序設計

TCP/IP協(xié)議模型可以分為四個(gè)層次,從下到上依次為:鏈路層、網(wǎng)絡(luò )層、傳輸層和應用層。每一層都有不同的功能,低一層為高一層提供服務(wù)。

標準的TCP/IP協(xié)議棧對處理器的計算、存儲要求比較高,然而,系統的計算資源和存儲資源通常是非常有限,在中實(shí)現標準的TCP/IP協(xié)議棧將占用大量系統資源,不利于其他方面的應用,因此必須對它進(jìn)行簡(jiǎn)化并優(yōu)化,盡可能做到代碼精簡(jiǎn),降低存儲開(kāi)銷(xiāo)。本系統設計和實(shí)現了TCP/IP通信協(xié)議的必要部分,包括:ARP,IP,ICMP,TCP,UDP等協(xié)議。

ARP(地址解析協(xié)議)為IP地址到對應的硬件地址之間提供動(dòng)態(tài)映射。IP協(xié)議是TCP/IP協(xié)議的核

雙絞線(xiàn)傳輸器相關(guān)文章:雙絞線(xiàn)傳輸器原理


關(guān)鍵詞: DM9000A DSP 以太網(wǎng)接口

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>