基于PCIE/104總線的高速數(shù)據(jù)接口設(shè)計(jì)
1.1.2 PCIE/104總線標(biāo)準(zhǔn)介紹
PC/104是最早由瑞士邏輯提出的一種工業(yè)總線標(biāo)準(zhǔn),它由最早的PC/104總線發(fā)展到PC/104+總線,直到目前的PC/104 Express,分別對(duì)應(yīng)ISA總線、PCI總線和PCIE總線。由于它是一種堆棧型的嵌入式總線,所以將PCIE總線應(yīng)用在這個(gè)標(biāo)準(zhǔn)上與普通的PCIE金手指有一些不同。為了滿足PC/104的嵌入式堆棧結(jié)構(gòu),使其能夠?qū)崿F(xiàn)從板子上、下都可以連接,必須采用PCIE Switch芯片,這里使用的是PERICOM公司
制造的PI2PCIE2412款Switch芯片。電路原理圖如圖3所示。本文引用地址:http://cafeforensic.com/article/150347.htm
圖3中接受、發(fā)送和差分時(shí)鐘這3對(duì)差分信號(hào)線通過轉(zhuǎn)接芯片變成了6對(duì)差分信號(hào)線。由主機(jī)板卡發(fā)出選擇信號(hào)(cpu_dir),分別控制設(shè)備板卡是在主機(jī)板卡的上面還是下面。同時(shí)采用MAX6306芯片來鏈接PEX8311的復(fù)位端和PCIE接插件的復(fù)位端,同時(shí)實(shí)現(xiàn)了手動(dòng)復(fù)位和LOCAL端的復(fù)位。
1.1.3 PEX8311的外圍電路配置與LOCAL端接口的控制
PEX8311有幾個(gè)類別的模式選擇,分別是根聯(lián)合體模式(Rootcomplex)與終端模式(Endpoint),根據(jù)需要這里選擇了終端模式。此外PEX 8311還區(qū)分C模式,J模式,M模式。這三種模式解釋如下:C模式的地址線與數(shù)據(jù)線是分開的,J模式下地址線與數(shù)據(jù)線是復(fù)用的,而M模式是針對(duì)了Motor的本地端CPU設(shè)置的。三種模式通過模式選擇管腳選擇,這里選擇C模式作為工作模式。PEX8311有1.5 V,2.5 V,3.3 V三種電源供電以及一個(gè)模擬電源1.5VPLL。在配置寄存器方面,PEX8311有兩個(gè)配置寄存器,分別是采用Spi-Compatible接口的PCIE配置寄存器和采用了Micro-Wire-Compatibel接口的本地配置寄存器。采用了Spartan-3an 1400 k來提供控制接口與高速緩存,選擇這款FPGA主要因?yàn)樗怯袃?nèi)部FLASH,不用再加外部的E2PROM。
由于PC/104是一種嵌入式的板卡,體積比較小,所以用這款FPGA是可以節(jié)省板上的空間。FPGA內(nèi)部程序的編寫是關(guān)鍵之一。這里采用Verilog,實(shí)現(xiàn)對(duì)PEX8311的控制,當(dāng)上位機(jī)響應(yīng)了中斷后,對(duì)PEX8311發(fā)出讀數(shù)信號(hào)。PEX8311通過LHOLD申請(qǐng)控制本地總線,待收到FPGA發(fā)出的LHOLDA響應(yīng)信號(hào)后獲得本地總線的控制權(quán),并立即啟動(dòng)4 B突發(fā)模式。FPGA在收到有效的LW/R讀信號(hào)和ADS地址選通信號(hào)后,發(fā)出Ready本地準(zhǔn)備好應(yīng)答信號(hào)。PEX8311開始從雙口中讀取數(shù)據(jù),傳輸最后一個(gè)數(shù)據(jù)時(shí),PEX8311發(fā)出BLAST信號(hào),雙口RAM使得讀使能和輸出使能無效。
1.2 系統(tǒng)軟件部分的實(shí)現(xiàn)
該系統(tǒng)的軟件部分是在Linux下實(shí)現(xiàn)的,在Linux中所有的設(shè)備都被看成文件來對(duì)待。在Linux內(nèi)核中,設(shè)備驅(qū)動(dòng)作為文件系統(tǒng)的一個(gè)模塊存在。它向下負(fù)責(zé)與硬件系統(tǒng)的交互,向上通過一個(gè)通用的接口掛接到文件系統(tǒng)上面。從而和系統(tǒng)的內(nèi)核鏈接起來。設(shè)備驅(qū)動(dòng)為應(yīng)用程序屏蔽了很多細(xì)節(jié)。使得應(yīng)用程序?qū)ν庠O(shè)的操作就和操作普通的文件是一個(gè)樣子的。利用PLX公司提供的開發(fā)工具,驅(qū)動(dòng)的開發(fā)是比較方便的,本文系統(tǒng)中主要用到的是要編寫一個(gè)中斷服務(wù)程序:系統(tǒng)在收到中斷,保存現(xiàn)場(chǎng)。進(jìn)入中斷服務(wù)程序。首選讀取標(biāo)志位,再馬上清中斷,之后讀取響應(yīng)RAM中的數(shù)據(jù)。最后恢復(fù)現(xiàn)場(chǎng),完成操作。
2 系統(tǒng)PCB設(shè)計(jì)和高速信號(hào)的完整性分析
由于PCIE的傳輸速率較高,單向速率達(dá)到2.5 Gb/s。所以對(duì)板子的布線有嚴(yán)格的要求。疊層這里選用了8層PUCB板,有4個(gè)電源層,使得每個(gè)信號(hào)都能夠屏蔽在電源層與地層中間。從而減少了信號(hào)的電磁輻射。對(duì)于PCIE的差分線部分:微帶線要求差分線寬5 mil,間距小于12 mil,差分線間距離大于20 mil,同時(shí)與地層間距為3.5~5.5 mil。帶狀線要求線寬4 mil,間距小于11 mil,間距大于20 mil。且對(duì)于收發(fā)差分線,差分線長(zhǎng)差距不能大于5 mil。這些都是為了能達(dá)到PCIE規(guī)范的要求,即單端阻抗55 Ω,差分阻抗100 Ω(偏差10%)而設(shè)置的。
評(píng)論