基于PCI9054的接口卡
2.3 PCI9054與EEPROM接口
PCI9054提供4個引腳EEDI,EED0,EESK,EECS與串行EEPROM-93LC56的4個引腳DI、D0、SK、CS相連,此外93LC56的VCC引腳需要接+3.3 V電源,GND接地。因?yàn)樾枰獙Υ蠩EPROM進(jìn)行寫操作,串行EEPROM需處于可編程而且非保護(hù)狀態(tài),所以PE通過10 kΩ的電阻上拉后接高電平3.3 V電壓,而PRE通過10 kΩ的電阻下拉后接地。EEPROM原理圖如圖4所示。本文引用地址:http://cafeforensic.com/article/187806.htm
連接好PCI9054與PCI總線接口、本地總線接口和串行EEPROM接口后,還需對寄存器進(jìn)行配置,配置時需借助于Windriver工具,寄存器的配置包括PCI配置寄存器的配置、本地配置寄存器的配置及對EEPROM初始化。
配置PCI配置寄存器主要是填寫生產(chǎn)商ID號、器件ID號、子系統(tǒng)生產(chǎn)商ID號和類碼子系統(tǒng)ID號。對于PCI9054,其生廠商ID號,器件ID號,子系統(tǒng)號,子系統(tǒng)ID號等是固定的,可以在PCI9054數(shù)據(jù)手冊中查到。
本地配置寄存器的配置是對本地地址空間及本地總線屬性的配置,這種配置根據(jù)實(shí)際開發(fā)需要進(jìn)行,配置完成后,在主機(jī)CPU要訪問本地地址空間時,可能給出對應(yīng)的PCI總線地址。
PCI9054在加電啟動時,從外部EEPROM讀取初始化數(shù)據(jù)來配置PCI9054的內(nèi)部寄存器,在板卡加電自檢期間,PCI總線的RST#信號復(fù)位,PCI9054內(nèi)部寄存器的默認(rèn)值作為回應(yīng)。PCI9054出本地LRESET#信號并檢測串行EEPROM。
如果串行EEPROM中的前33位不全為1,那么PCI9054確定串行EEPROM非空,用戶可通過向PCI9054的寄存器CNTRL的29位寫1,來加載EEPROM的內(nèi)容到PCI9054的內(nèi)部寄存器,配置的信息可以在P1xSdk的PLXMON下對EEPROM進(jìn)行配置。
3 接口卡軟件設(shè)計(jì)
3.1 CPLD邏輯設(shè)計(jì)
PC39054通過本地總線與本地總線設(shè)備進(jìn)行通信,PCI9054提供2種訪問方式,即單周期訪問和突發(fā)方式訪問。
其中單周期訪問本地總線采用狀態(tài)機(jī)實(shí)現(xiàn)本地總線接口的控制,其狀態(tài)圖如圖5所示。狀態(tài)SO為空閑狀態(tài),當(dāng)ADS#為0時,如經(jīng)本地總線譯碼邏輯譯碼后表明需要訪問本地空間時則轉(zhuǎn)到狀態(tài)S1,否則留在狀態(tài)SO;狀態(tài)S1為單周期訪問開始狀態(tài),當(dāng)BLAST#為1時,停留在狀態(tài)S1,否則轉(zhuǎn)到狀態(tài)S2:狀態(tài)S2為訪問等待狀態(tài),在此狀態(tài)下數(shù)據(jù)在本地總線保持,然后直接轉(zhuǎn)到狀態(tài)S3;狀態(tài)S3數(shù)據(jù)傳送狀態(tài),在此狀態(tài)下數(shù)據(jù)從本地總線上取走(如果需要可以加一個狀態(tài)來延長數(shù)據(jù)讀取時間);當(dāng)ADS#為0時,經(jīng)本地總線譯碼邏輯譯碼后,表明還需要訪問本地空間,轉(zhuǎn)到狀態(tài)S1,否則轉(zhuǎn)為SO,本周期訪問結(jié)束完成數(shù)據(jù)傳送。
將以上狀態(tài)機(jī)用VHDL語言在可編程器件中實(shí)現(xiàn),部分源程序代碼如下:
……
評論