引言
PCIE總線是由Intel公司提出用來取代現行PCI總線的下一代總線技術,被公認為未來總線的發展方向,目前已經成功應用在了商業機上。相對于目前流行的PCI總線,它具有如下特點:
采用了串行點對點模式,數據總線從并行走回向串行無疑是一個趨勢,如現在流行的SATA總線、PCIE總線和rapidIO總線都是串行總線。現在串行總線在速度上的優勢可以說是毋庸置疑的。PCIE總線在每個方向上都有X1,X2,X4,X8,X16或X32個信號對,用戶可根據不同的需求采用不同的配置。同時串行信號還具有管教更少,便于調試的優點。
PCIE采用了基于數據包的協議來編碼事物,而不是PCI體系結構的總線周期。數據包被串行發送和接受,并被字節拆分來通過物理鏈路。鏈路上實現的通道越多,數據包發送的數據越快,鏈路的帶寬也越寬。同時PCIE還定義了各種類型的數據包,如存儲器讀/寫請求、I/O讀/寫請求、配置讀/寫請求、消息請求和完成數據包等。
PC/104標準是一種嵌入式的總線標準,具有功耗低,尺寸小,堆棧式結構的特點。隨著目前各種應用數據傳輸量的增大,現行的PCI總線在帶寬方面已經略顯疲態,而新近瑞士邏輯提出的PC/104 Express標準,使得PCIE總線技術被成功地應用在了PC/104標準的板卡上。本文采用了PLX公司的PEX8311橋接芯片,完成了PCIE到局部總線接口的轉換,應用PLX公司提供的開發工具在Linux操作系統下實現了板卡的驅動應用。在軟硬件兩方面進行了設計,完成了PCIE/104板卡的功能,升級了系統的總線。
1、 PCIE/104高速信號接口卡的系統
PCIE/104高速信號接口卡的系統設計方案如圖1所示。
外部傳感器采集到的數據通過LVDS,RS 422等電平方式,以固定的不同串口波特率傳到FPGA內部集成的各自對應的雙口RAM中。當寫入了固定字節后,設定標志位stage為1,同時發出中斷信號LINT#給PEX8311。PEX8311產生了assert_INT1信息,并通過PCIE接口發給上位機。上位機保存好現在的任務后,通過PCIE開始發出存儲器讀命令給PEX8311。PEX8311獲得命令后,向FPGA發出本地總線申請信號,FPGA作為本地端的控制器將本地總線控制權交給PEX8311。PEX8311開始讀數據,首先要進行的是讀取標志位,在讀取了標志位后,上位機就知道是哪幾路串口信號需要讀入。然后,把標志位清掉,這樣相當于清掉了中斷信號。接著,中斷服務程序在進入到各個串口的RAM中,來讀取相應的數據。在多路串口信號傳輸過來時,針對該系統,采用的是優先滿足高速串口的原則,也就是采用高速串口的標志位作為中斷信號,每次產生中斷后查詢其他標志位。數據到上位機后待處理。該系統目前實現的是兩路串口,而多路串口原理相同。
1.1 硬件總體概述
主要包括以下幾部分,PEX8311橋接芯片負責完成本地總線和PCIE總線的相互裝換;FPGA選用了spartan-3an 1400K。這里在內部實現了3個模塊,首先完成雙口RAM模塊;其次完成了多路串口數據的接受與協調模塊;最后還要實現PEX8311芯片本地端控制器模塊。
1.1.1 PEX8311芯片介紹
PEX8311是PLX Technology公司推出的一款專用于將DSP,FPGA等處理器總線接口升級為PCIE的橋接器件。利用PEX8311靈活的局部總線可以方便地連接多種存儲器、緩存器及。FPGA,DSP等邏輯芯片,使復雜的PCI-E接口設計簡單化。PEX8311兼容PCI Express 1.0標準,其本地總線和寄存器與PCI9056兼容,能夠提供完整的本地總線到PCI-E的接口,包括地址轉換、包生成與解碼、信號中斷支持及并/串轉換等。
PEX8311的特點如下:
(1)集成了單通道、全雙工2.5 Gb/s傳輸的PCI Express端口;
(2)可配置局部總線寬度,支持8位、16位和32位的總線方式;
(3)支持單路和多路總線操作模式;
(4)高性能的DMA數據傳輸,支持數據塊模式、集散模式、循環隊列管理模式和命令模式;
(5)支持端點和根復合體模式;
(6)芯片小型封裝,適合緊湊的電路板設計;
(7)芯片低功耗設計;
(8)3.3 V的I/O并兼容5 V系統;
(9)啟動配置的串行E2PROM支持(SPI和Microwire接口);
(10)有8 KB的通配共享RAM。
PEX8311的內部結構如圖2所示。
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所示。
圖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%)而設置的。
經過ploar軟件計算,將以上的數據輸入進去,再加入PCB廠家提供的介電常數等參數,最后得出的阻抗完全滿足設計需求。多層板的高速信號設計很有必要進行信號完整性仿真,應用廠家提供的IBIS模型,采用Hyperlynx對板子進行了本地端和時鐘端的信號完整性仿真。并根據仿真對布線提供了約束條件。而針對PCIE的高速差分端總線,因為在高速信號仿真方面IBIS模型還不夠精確,所以,PLX公司對其兩對收發端口提供SPice模型,如圖4所示。
將上訴模型導入HSpice中,同時引入PCIESwitch芯片給出的IBIS模型與板子上面的差分線trace的rglc模型。輸出端的仿真效果圖如下,可以看出差分信號的幅值是可以滿足PCIE規范的電氣要求的。
3、 結語
PC/104作為一種嵌入式總線標準已經被很多控制系統所采用,而PCIE/104接口的提出將未來最為流行的串行差分總線結構,引入到了這種嵌入式總線標準,從而為各種高速、高帶寬的嵌入式系統提供了選擇。目前該系統由于采用了PCIE總線,相比采用PLX9054實現的PCI接口具有明顯的優勢。
責任編輯:gt
-
芯片
+關注
關注
453文章
50406瀏覽量
421820 -
Linux
+關注
關注
87文章
11229瀏覽量
208927 -
操作系統
+關注
關注
37文章
6738瀏覽量
123190
發布評論請先 登錄
相關推薦
評論