<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è) > 嵌入式系統 > 設計應用 > DSP與PCI網(wǎng)卡接口設計

DSP與PCI網(wǎng)卡接口設計

作者: 時(shí)間:2009-10-21 來(lái)源:網(wǎng)絡(luò ) 收藏
 圖3中,通過(guò)9054來(lái)讀寫(xiě)內存,地址空間由的基地址開(kāi)始。PCI9054作為的從設備和RTL8139的主設備。當PCI寫(xiě)時(shí),接收寫(xiě)信號,返回ready信號直到寫(xiě)FIFO滿(mǎn)為止,并保持ready信號到寫(xiě)FIFO可用。當PCI9054從RTL8139讀出數據時(shí)將保持ready信號,直到BALST信號(表示PCI總線(xiàn)上的最后傳輸)有效,讀周期被終止,沒(méi)有讀出的數據將被FIFO舍棄。

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

  要使嵌入式系統要獨立運行,必須外接EPROM或Flash存儲器用于存放程序。與EPROM相比,Flash芯片功耗低,支持在工作電壓下的擦寫(xiě),可以方便地編寫(xiě)自己的Flash芯片燒錄程序,通過(guò)在片方式完成對Flash芯片的寫(xiě)操作。本采用的是SST公司生產(chǎn)的SST39VF400A,它是一款基于CMOS技術(shù)的高性能、多用途的Flash存儲芯片,其存儲容量達4Mb,功耗低,使用2.7~3.3V單電源供電。為了方便程序的調試,外接了1片64K×16b的SRAM,以用于存放發(fā)送數據和接收數據,以便于對比,及時(shí)地發(fā)現數據傳輸的正確性。邏輯控制部分主要用于主處理器對外設(如PCI橋芯片、網(wǎng)絡(luò )適配芯片、SRAM及Flash等)的讀寫(xiě)控制及地址分配。

3軟件

  軟件主要分為PCI網(wǎng)橋和網(wǎng)絡(luò )二部分。PCI網(wǎng)橋部分主要是對PCI9054進(jìn)行初始化,即對它的PCI端配置寄存器和本地端配置寄存器進(jìn)行正確的編程配置,以實(shí)現DSP與PCI的無(wú)縫連接。網(wǎng)絡(luò )部分的編程包括對RTL8139進(jìn)行復位初始化,數據包的接收和發(fā)送。

  RTL8139已經(jīng)實(shí)現了OSI中的物理層和數據鏈路層的功能,只需再加上高層協(xié)議即可。作為一個(gè)嵌入式系統,為了節省系統資源,需要盡量使用簡(jiǎn)化的協(xié)議。因此IP地址和本機物理地址在初始化RTL8139時(shí)設定,采用本地管理的地址方式,上層協(xié)議進(jìn)行了簡(jiǎn)化,沒(méi)有封裝復雜的TCP協(xié)議。

  簡(jiǎn)化的初始化程序如下:

  #define CMD_RST 0x10 //復位標志

  #define CMD_RE0x08 //接收使能

  #define CMD_TE0x04 //發(fā)送使能

  #define SUCCESS0xFF //初始化成功標志

  Reset_init_rtl8139()

  {

CMD=0x10;//軟復位網(wǎng)卡

while((read_cmd CMD_RST)==0) read_cmd=CMD;

                    //檢查網(wǎng)卡是否復位完成

write_mac_ip();     //設定網(wǎng)卡的MAC地址和IP地址

CMD=CMD_RE | CMD_TE;   //接收發(fā)送使能

set_RxConfig(); //接收配置

set_TxConfig(); //發(fā)送配置

init_rx_addr(); //初始化接收緩沖區地址

Rxmissed=0; //clear 0

CMD=CMD_RE | CMD_TE;

return SUCCESS;

  }

  程序中:CMD為RTL8139的Command寄存器,通過(guò)它來(lái)對芯片復位并檢查復位成功與否;write_mac_ip()是向IDR0~IDR5寫(xiě)入MAC地址,設定IP地址;set_RxConfig()主要是對Receive Configuration Register進(jìn)行設置。此外,網(wǎng)卡初始化程序設定只接收物理地址匹配的包,不接收組播和廣播。

  RTL8139接收緩沖區的大小可選,并設定為16KB。初始化過(guò)程中根據DSP的快慢還需要加一些延時(shí),這一點(diǎn)非常重要。因為許多寄存器的設置都需要時(shí)間,若時(shí)間不夠,某些寄存器的值可能會(huì )設置不正確,從而導致初始化失敗,RTL8139的收發(fā)功能也會(huì )受到影響。

  RTL8139數據的收發(fā)用中斷方式完成。當主處理器要向網(wǎng)上發(fā)送數據時(shí),先將1幀數據通過(guò)DMA通道送到控制器的發(fā)送緩沖區,然后發(fā)出傳送命令,RTL8139按照PCI總線(xiàn)主模式將數據從發(fā)送緩沖區轉移到內部發(fā)送FIFO中。當FIFO中數據包完整時(shí),RTL8139即開(kāi)始包發(fā)送??刂破髟跀祿l(fā)送完成后通過(guò)中斷方式通知主處理器;接收數據時(shí),網(wǎng)上來(lái)的數據包首先被放在接收FIFO中,同時(shí)RTL8139要進(jìn)行組播地址過(guò)濾。當接收FIFO中數據包已達到接收配置寄存器的要求時(shí),RTL8139請求PCI總線(xiàn)按照PCI主模式將數據傳到接收緩沖區,接收滿(mǎn)1幀后,同樣以中斷方式通知主處理器。數據的收發(fā)是通過(guò) DMA通道來(lái)完成的。中斷子程序流程圖如圖4所示。

  數據包的封裝按照IEEE802.3協(xié)議、IP協(xié)議和UDP協(xié)議,其幀格式如圖5所示。

  封裝的過(guò)程依次在源數據前加上UDP頭、IP頭和LLC頭。LLC頭即通常所說(shuō)的以太網(wǎng)包頭,但也可以根據自己的需要加上其他協(xié)議如TCP、ARP或HTTP。不過(guò)在嵌入式系統中,為了節省資源,應盡量減少協(xié)議的使用。在分組語(yǔ)音數據傳輸中,實(shí)時(shí)語(yǔ)音數據可以用UDP,而控制信號可以用TCP。

4 結束語(yǔ)

  本文所提出的DSP與RTL8139的解決方案已在試驗中得到實(shí)現,并已用于IP分組語(yǔ)音數據的以太網(wǎng)傳輸,效果良好。隨著(zhù)ISA總線(xiàn)的淘汰,PCI接口的網(wǎng)絡(luò )控制器必將在嵌入式領(lǐng)域中得到更廣泛的應用。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>