基于PCI Express總線的數(shù)據(jù)采集設(shè)備的實(shí)現(xiàn)
PCB布線時(shí)有以下注意點(diǎn):終端阻抗布線盡量降低容性;一組信號(hào),避免在參考層斷續(xù);高速信號(hào)盡量在一層布線,且不打孔,否則要在過(guò)孔處打一個(gè)U形的地孔;微波傳輸帶,差分信號(hào)布線線寬5 mil,間距7 mil;帶狀傳輸線,差分信號(hào)布線線寬5 mil,間距5 mil。信號(hào)之間的間距在20 mil以上,高壓和邊緣尖銳的信號(hào)盡量遠(yuǎn)離差分線,避免干擾。
本文引用地址:http://www.ex-cimer.com/article/195819.htm接口上數(shù)據(jù)采用SSTL2信號(hào)發(fā)送,傳送速率達(dá)到250 MB/s。每組數(shù)據(jù)發(fā)送端需串行一個(gè)25歐姆電阻,數(shù)據(jù)接收端上拉50 Ω電阻,提高信號(hào)的阻抗匹配。TD和RX每組為8位250 MB/s信號(hào),為了減少信號(hào)間的延時(shí)誤差,每組信號(hào)布線時(shí)盡量等長(zhǎng)且減少走線長(zhǎng)度。
3.4 Pipe Core實(shí)現(xiàn)PCIE總線協(xié)議
Xilinx PCI Express Pipe Core符合PCI ExpressBase Specification v1.1規(guī)范協(xié)議和電特性兼容,提供完整的端點(diǎn)解決方案包括物理鏈接與處理及配置管理模塊。支持同步點(diǎn)對(duì)點(diǎn)通信,上行和下行流程控制,與PCI Express處理排序規(guī)則完全兼容。
Pipe Core數(shù)據(jù)管理包括傳輸層、數(shù)據(jù)鏈路層、物理層3個(gè)模塊。這些模塊包括產(chǎn)生和進(jìn)行傳輸包、數(shù)據(jù)流的控制管理、物理接口初始化、并串轉(zhuǎn)換以及其他的接口操作。由Pipe Core組成數(shù)據(jù)通道,并可以構(gòu)成多PCI Express設(shè)備的拓?fù)浣Y(jié)構(gòu)。如圖2所示。
4 基于WinDriver的驅(qū)動(dòng)程序開(kāi)發(fā)
4.1 采集設(shè)備的驅(qū)動(dòng)安裝
將數(shù)據(jù)采集設(shè)備安裝到計(jì)算機(jī)PCI express×1插槽,啟動(dòng)計(jì)算機(jī)時(shí)操作系統(tǒng)會(huì)檢測(cè)到此設(shè)備并提示添加硬件向?qū)?,忽略此提示。然后,從開(kāi)始菜單選擇WinDriver/DriverWizard,新建工程。此時(shí)DriverWizard將會(huì)顯示所有的計(jì)算機(jī)中的即插即用設(shè)備
根據(jù)設(shè)備信息(ID號(hào))選擇所要測(cè)試的設(shè)備,如圖3所示,數(shù)據(jù)采集設(shè)備ID號(hào)為0301,雙擊此設(shè)備,出現(xiàn)設(shè)備測(cè)試對(duì)話(huà)框,向指定的設(shè)備空間寫(xiě)入數(shù)據(jù)測(cè)試設(shè)備是否工作良好。最后由DriverWizard生成簡(jiǎn)單的驅(qū)動(dòng)程序代碼。
4.2 數(shù)據(jù)傳輸模式與配置函數(shù)
驅(qū)動(dòng)程序得到從數(shù)據(jù)采集設(shè)備發(fā)送的數(shù)據(jù),并存儲(chǔ)在指定的內(nèi)存空間,根據(jù)用戶(hù)的選擇可以實(shí)時(shí)顯示或者存儲(chǔ)在磁盤(pán)空間。使用WinDriver編寫(xiě)的驅(qū)動(dòng)程序通過(guò)WinDriver內(nèi)核模塊與硬件進(jìn)行通信,本驅(qū)動(dòng)程序要實(shí)現(xiàn)的主要功能是從設(shè)備讀取指定的數(shù)據(jù)到計(jì)算機(jī),并根據(jù)要求發(fā)送命令到設(shè)備控制寄存器對(duì)設(shè)備的各種狀態(tài)進(jìn)行控制。
設(shè)備與計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳輸有2種模式:PIO模式和DMA(直接內(nèi)存訪問(wèn))模式。PIO模式主要實(shí)現(xiàn)計(jì)算機(jī)和數(shù)據(jù)采集卡之間的命令傳輸;DMA模式主要針對(duì)大塊數(shù)據(jù)傳輸,傳輸過(guò)程中不需要經(jīng)過(guò)CPU,數(shù)據(jù)直接從設(shè)備傳送到內(nèi)存中,數(shù)據(jù)傳輸?shù)乃俾士?,可以充分利用PCIE數(shù)據(jù)帶寬。
為了能從設(shè)備中讀到數(shù)據(jù),首先應(yīng)該獲得設(shè)備的信息,設(shè)備信息主要包括廠家ID號(hào),設(shè)備內(nèi)存映射空間,設(shè)備所在插槽號(hào)以及其他設(shè)備專(zhuān)用配置信息。只有獲得了設(shè)備信息才能實(shí)現(xiàn)對(duì)設(shè)備的訪問(wèn),這些信息通過(guò)下面2個(gè)函數(shù)得到:
void WD_PciScanCards函數(shù)用于檢測(cè)安裝于PCIE總線上的設(shè)備。Void WD_PciGetCardInfo函數(shù)獲取PCI設(shè)備的資源信息,例如內(nèi)存資源,I/O資源,中斷資源等。對(duì)設(shè)備信息的登記是通過(guò)結(jié)構(gòu)WD_CARD_REGISTER來(lái)實(shí)現(xiàn),它包含了硬件的各項(xiàng)信息。這些信息可以通過(guò)第一步中的2個(gè)函數(shù)獲得。在確定WD_CARD_REGISTER結(jié)構(gòu)后調(diào)用函數(shù)WDCardRegister向Windriver Kernel登記設(shè)備。在得到了設(shè)備信息并且向WinDriver注冊(cè)了此設(shè)備后就可以在設(shè)備和計(jì)算機(jī)之間傳輸數(shù)據(jù)。
5 結(jié) 語(yǔ)
采用PCI express總線實(shí)現(xiàn)數(shù)據(jù)采集設(shè)備可以有效地提高數(shù)據(jù)的傳輸帶寬,解決總線帶寬不足瓶頸帶來(lái)的種種問(wèn)題。文中的總線設(shè)計(jì)為1個(gè)通道的PCI express,雙向的讀寫(xiě)速度為250 MB/s。后面的設(shè)計(jì)中會(huì)不斷提高Pcie總線的通道數(shù),以滿(mǎn)足更高的總線設(shè)計(jì)需求。
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論