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