關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > Windows CE6.0的DM9000A流接口驅(qū)動開發(fā)

Windows CE6.0的DM9000A流接口驅(qū)動開發(fā)

作者: 時間:2012-05-23 來源:網(wǎng)絡 收藏

3 DM流驅(qū)動程序的實現(xiàn)

DM支持IEEE802.3x全雙工模式流控制,提供IP/TCP/UDP校驗、產(chǎn)生及檢測功能;內(nèi)部集成10/100M自適應PHY,同時具有13 KB的接收緩沖區(qū)和3 KB的發(fā)送緩沖區(qū),支持8位和16位數(shù)據(jù)接口。

d.JPG

S3C6410與DM的接口電路如圖3所示。在流驅(qū)動程序中是將DM9000A內(nèi)部寄存器地址空間映射到S3C6410內(nèi)部劃分的SROM的BANK1空間上,物理基地址是0x18000000。在 CE 6.0系統(tǒng)下對硬件寄存器的訪問首先需要進行地址映射,將寄存器物理地址映射為系統(tǒng)可訪問的虛擬地址。最為簡單的方法就是從系統(tǒng)目錄(C:\wince600\platform\studk6410\src\inc)下找到基于OEM層的地址配置表(oemaddrt ab_cfg.inc),從文件中找到所使用的SROM的BANK1的虛擬地址,在驅(qū)動程序中直接訪問該地址(如同訪問芯片的寄存器地址)。

流接口驅(qū)動的實現(xiàn)將集中體現(xiàn)在對初始化接口函數(shù)和I/O控制接口函數(shù)的操作,函數(shù)主要代碼如下:

其中,0x94000000正是從地址配置表文件中獲取的虛擬地址,dwEthernetIOBase經(jīng)映射后則如同DM9000A內(nèi)部寄存器的首地址。由于硬件線路上是使用S3C6410的地址線中的位2作為DM9000A的數(shù)據(jù)/地址訪問信號(高電平為訪問數(shù)據(jù)),故以“dwEthernetIOBase+4”作為訪問數(shù)據(jù)的基地址。

e.JPG

其中,參數(shù)Handle為流接口設備的句柄;dwIoControICode為I/O控制碼,可以根據(jù)需要自由定義;pInBuf為傳入數(shù)據(jù)指針;nInBufSize為數(shù)據(jù)長度。除了初始化函數(shù)和I/O控制函數(shù)外的其他流驅(qū)動接口函數(shù)無需任何處理,直接給出返回值即可。

f.JPG



關鍵詞: Windows 9000A CE6

評論


相關推薦

技術專區(qū)

關閉