以太網(wǎng)通信接口的設計與實現(xiàn)
AD〔00..31〕是PCI總線的共享地址和數(shù)據(jù)線,每一次PCI傳送都分為地址周期和數(shù)據(jù)周期。在地址周期,采用0型讀寫時,AD〔00..31〕的內(nèi)容如下,AD〔00〕和AD〔01〕總為“00”,因為配置讀寫是以雙字為單位的,AD〔02〕~AD〔07〕是要讀寫的PCI配置空間的寄存器號AD〔08〕~AD〔10〕是設備的功能號在一塊PCI卡上有多個功能設備時,為了進一步區(qū)分不同的設備就要用到這幾位,由于Realtek8029是單功能設備,故這幾位全為0,AD〔11〕~AD〔31〕是設備選擇位,其中必須有且僅有一位為“1”,如圖2所示,這在物理上表現(xiàn)為總線的AD〔11〕~AD〔31〕中有一根為高電平如果輸出高電平的這根線與某塊PCI卡的PCI IDSEL引腳相連,這塊卡就會被激活,這樣,在緊接著的數(shù)據(jù)周期中,它就會將其PCI配置空間相應寄存器中的內(nèi)容放到總線上以供讀取。
(3) PCI_FRAME、PCI_DEVSEL、PCI_IRDY、PCI_TRDY引腳的處理
上述四個引腳均是低電平有效,因此需要接上拉電阻,以保證在設備未驅(qū)動該引腳時處于穩(wěn)定的無效狀態(tài),上拉電阻的阻值在1kΩ~10kΩ范圍內(nèi),阻值越小,則將該信號驅(qū)動為有效的時間越短,但太小又會導致電流過大,所以,要權(quán)衡考慮,本設計選用4.7kΩ。
上述三點對脫機情況下PCI設備的互連具有較普遍的參考意義,除此之外,本設計還有以下比較特殊的幾點:
●應將TM1300的PCI,INTA引腳配置為輸入,以便接收Realtek8029的中斷;
●PCI時鐘由TM1300提供;
●Realtek8029的復位信號也就是TM1300的復位信號,該信號由外部電路提供;
●TM1300的PCI STOP、 PCI SERR引腳懸空,表示Realtek8029不具備相應的附加功能。另外,TM1300的PCI INTB、PCI INTC、PCI INTD引腳可以用作用戶中斷。
3 軟件設計
該接口設計的軟件結(jié)構(gòu)框圖如圖3所示。其中TM1300運行于pSOS,它是一個簡單的實時多任務嵌入式操作系統(tǒng),帶有pNA+網(wǎng)絡組件,其pNA+相當于TCP/IP協(xié)議棧的擴展,它向上可提供應用程序編程的socket接口,向下可定義一個與網(wǎng)絡接口層交互的接口,其中包括8個函數(shù),分別是:ni_init(接口芯片初始化)、ni_broad-cast(發(fā)送廣播分組)、ni_send(發(fā)送普通分組)、ni_getpkb(申請發(fā)送緩沖區(qū))、ni_retpkb(歸還接收緩沖區(qū))、ni_ioctl(I/O控制操作)、ni_pool(統(tǒng)計量查詢)、Announce(網(wǎng)絡接口驅(qū)動調(diào)用它把接收到的數(shù)據(jù)包提交給pSOS)。其中網(wǎng)絡接口層在本應用中就是Realtek8029的驅(qū)動程序,它通過硬件抽象層來驅(qū)動Realtek8029(硬件抽象層是PCI總線的配置讀寫和I/O讀寫指令集的總稱)。
評論