小视频免费在线观看_夜夜b_男女隐私免费视频_国产一级性生活视频_久久综合入口_精品国内视频

技術頻道

PCI 9052及其在通用網絡控制卡設計中的應用

摘 要:本文簡要介紹了PCI協議從模式接口芯片PCI9052特點,并說明了EEPROM配置注意事項。最后結合51單片機將其應用于通用網絡控制卡設計課題,介紹了控制卡工作原理,并給出了軟硬件結構設計。

關鍵詞:PCI總線,PCI接口芯片9052,WDM

1、前言

  PCI(Peripheral Compornent Interconnect,即外圍部件互連)總線是一種能為主CPU及外設提供高性能數據總線的局部總線。目前已經成為最流行的、也是最有發展前途的計算機系統局部總線[1]。相應的,計算機應用領域的各種功能擴展卡也必將逐步發展為PCI標準的擴展插卡。以INTEL為首的多家集團開始設計的PCI總線,其V2.0規范于1993年4月正式發布。PCI總線具有嚴格的規范,這就保證了它具有良好的兼容性,符合PCI規范的擴展卡可插入任何PCI系統可靠地工作。一個PCI接口包括一系列的寄存器,這些寄存器中的信息允許計算機自動配置PCI卡。

  目前,實現PCI接口大體有兩種方式:使用可編程器件或專用芯片。由于PCI總線協議非常復雜。開發PCI擴展板若使用可編程邏輯陣列芯片來完成PCI協議的執行,其工作量和難度都是巨大的,一般都會選用PCI專用接口芯片。下面介紹PCI9052接口芯片及其在通用網絡控制器中的應用。

2、PCI9052芯片簡介

  PCI9052是PLX技術公司為擴展適配板卡推出的能提供一種混合的高性能PCI總線目標(從)模式的接口芯片。其主要特點如下:

  (1)遵照PCI2.1規范的從接口芯片,支持低成本從屬適配器;(2)雙向FIFO,可實現高性能的零等待突發式數據傳輸;(3)最多可達5個局部地址空間和4個芯片組。(4) 支持Big/Little Endian編碼字節的轉換; (5)支持復用或非復用模式的8、16或32位的局部總線;(6)局部總線與PCI時鐘異步。(7)串行EEPROM提供PCI總線和局部總線部分重要配置信息; (8)PCI鎖定機制,PCI主控設備可以通過鎖定信號獨占對PCI9052的訪問。(9)PCI總線傳輸速率達132Mb/s。(10)低功耗CMOS,160腳PQFP封裝。

  PCI9052為適配板提供了簡明、高性能的PCI總線從接口,能快速、廉價的將ISA器轉換為PCI總線。同時,PCI9052能加快適配板上的數據傳輸率,由ISA的8MHz、5Mb/s提高到33MHz、132Mb/s。可與多種局部總線相連,并且支持相對較慢的局部總線。

3、PCI9052芯片在通用網絡控制卡中的應用

  PCI9052接口芯片作為通用PCI接口,其應用場合和范圍是廣泛的。隨著PC機中ISA擴展槽數量的逐漸減少直至取消,PCI擴展槽已成為PC機主板配置的主流。本文設計的通用網絡控制卡,主要由一片自制雙口RAM(由6264和ISPL1032E組成)、PCI9052、51單片機以及一些外圍器件構成。該控制卡的核心功能是:由RS-485進來的數據通過PCI卡,送微機進行數據處理,需顯示部分通過RS-232由51單片機控制液晶實現顯示功能。

  3.1工作原理

  在本設計中,采用控制能力較強的單片機來執行數據流的控制,高速的PC機進行數據處理。由于PCI9052對PCI總線沒有直接的主控能力,對內部寄存器的操作是通過PCI總線上的主機或串行EEPROM來實現的。9052通過EEPROM(93CS46)讀取配置信息,初始化內部寄存器。在9052和89C51通信過程中,自制雙口RAM將89C51接收到的數據交給PC機處理,同時,PC機需要顯示或通信的數據也通過雙口RAM送給89C51。考慮到成本以及本卡的體積,本設計采用Lattice芯片ispLSI1032E自制雙口RAM及控制接口。當9052和89C51訪問共用RAM6264時,用ispLSI1032E實現總線隔離,將數據、地址總線和讀寫及片選信號隔離,同時設計仲裁電路以保證對存儲器的分時訪問,避免由于雙方同時訪問造成總線競爭。本設計電路中采用利用中斷口(9052 LINT1、89C51 INT0)來完成競爭仲裁電路。LATTICE實現總線隔離、地址鎖存及分時復用89C51的單個串口,從而控制RS232或RS485與外界通信。

  3.2 EEPROM配置

  配置空間的可靠、穩定實現是PCI擴展卡設計的核心問題。一次設計的成功與否,配置空間起著關鍵性的作用。它決定了用戶擴展卡能否被操作系統識別、能否“即插即用”,決定著軟件驅動程序開發的方便程度。

  可以使用三種方法配置PCI9052的EEPROM, 方法一:燒寫串行EEPROM方法。使用燒寫器,將數據寫入串行EEPROM,適當修改9052數據手冊EEPROM默認值以滿足實際需要。方法二:熱配置方法。從PCI總線通過PCI9052芯片使用方法一的相同數據來燒寫串行EEPROM。方法三:使用由PLX公司提供的軟件PLXMON來直接配置。

  在硬件調試過程中,某方面的考慮不全,都能引起硬件調試失敗,本設計配置注意事項:

  1.由于和51單片機協同工作,PCI9052設置為不支持突發方式,其局部總線被設置成非總線復用(MODE引腳接地)和8位寬度(在LASXBRD控制寄存器中設置)。

  2.PCI9052必須設置為Little Endian模式,而且LRDY#輸入必須被使能,而BTERM和BURST必須被禁止(通過LASXBRD控制寄存器實現)。

  3. 空間0分配給LOCAL端的內存存取,空間1分配給LOCAL端的I/O存取。其基地址和空間范圍根據實際配置(通過CSXBASE控制寄存器實現)。

  4.提供的地址和I/O空間可根據實際需要通過CS相應選擇。

  5.串行EEPROM一定要選用支持連續讀寫的芯片型號,9052才能實現正確讀寫。

  3.3硬件設計

  控制器硬件電路結構圖如圖1所示。


圖1 電路結構示意圖

  電路分為四部分。第一部分是9052與PCI插槽間的連接信號線。這些信號包括地址數據復用信號AD[31:0],總線命令信號C/BE[3:0]#和PCI協議控制信號PAR、FRAME#、STOP#、TRDY#、IDSEL、DEVSEL#、PERR#、SERR#、INTA。尤需注意的是PSNT1、PSNT2必須至少有一根接地,這樣系統才能找到PCI卡,在本設計中本地芯片沒有提供TRDY#信號,9052的對應腳IRDY#必須接地,否則系統就會死機,永遠等待那個IRDY#信號有效才讀取數據。第二部分是與串行EEPROM的連線。這里有四根信號線:EESK、EEDO、EEDI和EECS。第三部分是9052與應用電路的連接。在本設計中主要用到的是本地端局部總線信號,有數據線LAD[7:0],地址線LBE[1:0]、LA[12:2],讀寫信號線WR#、RD#,本地端準備好輸入信號線LRDYI#,由于本設計中本地芯片無需申請總線控制,9052的LHOLD信號接地。第四部分是雙口RAM與C51電路的連接。本設計ispLSI1032E不僅提供隔離總線的I/0口,還實現了地址鎖存、控制功能,極大地提高了設計的靈活性。89C51的P1.1控制6264的總線,當P1.1為1時,89C51占用總線,這時PC機可以通過讀偏移量為3FFFH單元上的內容來產生一個中斷信號來向89C51申請6264的總線控制權;而P1.1為0時,PC機占用6264的總線,89C51可以通過P1.2申請PC機中斷,以使9052釋放6264總線控制權或直接置P1.1為1占用6264總線。P1.0通過設計ispLSI1032來實現控制89C51的串口的分時復用問題的,P1.3控制RS584的收發轉換。

  3.4軟件設計

  完成通用網絡控制卡硬件方面的設計,為了實現該卡與計算機的通信,還需要開發PCI設備驅動程序。WDM (Windows Driver Model)是 NT3 . 51和NT4. 0內核模式設備驅動程序模型的擴展形式 ,是為基于 Win98和 Win2000的設備驅動程序提供的一種新的開發模型。本設計使用開發工具WINDRIVER大大簡化了驅動程序的開發。通過DiverWizard開發者很容易生成驅動程序框架,同時,WINDRIVER和VC++有很好的接口。生成驅動框架后在Microsoft Visual C++ 6.0中就可以通過在工程項目中加入9052_lib.c, 在應用程序開頭#include"9052_lib.h",并添加特定的驅動代碼完成驅動編寫。下面是驅動程序主函數的部分代碼:

  …

  if (!PCI_Get_WD_handle(&hWD)) return 0;

  WD_Close (hWD); //確定驅動是否裝上

  hMy9052 = PMy9052_LocateAndOpenBoard(0x10b5, 0x9050, fUseInt); //打開9052設備

  PMy9052_ADDR ad_sp = P9052_ADDR_SPACE0;

  ad_sp =*PMy9052_GetAddrRangeName(PMy9052_ADDR addrSpace);//得到有效的映射空間

  data = MYDIVER_ReadByte(hMYDIVER, ad_sp, Offset); //讀特定存儲位置的值

  MYDIVER_WriteByte(hMYDIVER, ad_sp, Offset,data); //data值寫入存儲空間

  …//數據處理

  WD_Close (hWD); //結束

  為了使用WDM驅動程序 ,需要在開始→設置→控制面板→添加 /刪除硬件向導中選擇“下一步”,然后選擇“添加新設備” ,在查找新硬件頁中選擇“否 ,我想從列表中選擇硬件” ,在硬件類型頁中選擇“其它設備” ,在選擇一個設備驅動程序頁中選擇“從磁盤安裝”按鈕 ,接著選擇設計好的INF文件即可。INF文件負責復制WDM驅動程(MY9052.SYS)到Windows 98路徑下的SYSTEM\DRIVERS文件夾 ,并根據INF文件中的設定分配硬件資源。本地端89C51采用匯編語言控制液晶顯示,卡外數據采集及其與PC機的通信。總體主程序流程圖如圖2所示。


圖2 主程序流程圖

4、結論

  實踐證明,本課題開發的網絡控制卡,實用性強,可靠性好,并具有良好的可擴展性。在設計電路中,采用LATTICE自制雙口RAM及控制仲裁電路,減少了許多相應的外圍器件,使成本有了大幅度的降低。本文使用驅動開發工具Windriver 5.05 ,并借用了VC++6.0集成環境,設計的驅動程序與Windows 98操作系統完全兼容 ,工作正常且穩定。利用此WDM驅動程序,可以實現Windows 98環境下網絡控制卡采集數據的正確處理。

參考文獻

  [1] Tom Shanley Don Anderson 著 劉暉等 譯 PCI系統結構(第四版). [M]. 北京:電子工業出版社,2000:C1-C4.

  [2] PLXTechnology.9052 Data Book[M].Version 2.0. 09,2001.

  [3] 李貴山.PCI局部總線開發者指南 [M ]. 西安:西安電子科技大學出版社,1997:1-200 .

  [4] [美 ]Chris Cant Windows WDM設備驅動程序開發指南[M] 孫義,馬波,國雪飛等 北京:機械工業出版社,2000

文章版權歸西部工控xbgk所有,未經許可不得轉載。

主站蜘蛛池模板: 美女福利视频 | 精品久久久久久亚洲精品 | 91综合在线 | 日韩欧美一区二区三区在线视频 | 欧美一区二区三区视频 | 亚洲免费在线看 | 最新日韩精品在线观看 | 国产伦精品一区二区三区精品视频 | 欧美黑人xxxxx | 日本国产欧美 | 亚洲生活片 | 免费在线成人av | 91九色网 | 91这里只有精品 | 欧美一区二区三区免费观看 | 日韩午夜视频在线观看 | 日韩精品电影 | 男女的隐私视频网站 | 精品国产乱码久久久久久牛牛 | 麻豆久久久久久 | 免费aaaaaa少妇动态图美女 | www.99re| 日韩精品一二三区 | 俺去俺来也在线www色官网 | 精品视频久久久 | 亚洲成人精品一区 | 精品久久99| 成人黄色在线观看 | 一区二区三区欧美日韩 | 天堂av一区 | 欧美xxxx黑人又粗又长精品 | 欧美日韩99 | 国产在线视频不卡 | 九色jiuse | 亚洲精品一区二区三 | 在线久 | 亚洲精品高潮 | 天堂在线中文资源 | 国产第一页在线 | av成人在线播放 | 视频精品一区二区三区 |