新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 高速PCI信號采集卡設(shè)計與實現(xiàn)綜合實例之:系統(tǒng)工作原理分析

高速PCI信號采集卡設(shè)計與實現(xiàn)綜合實例之:系統(tǒng)工作原理分析

作者: 時間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/201706/348787.htm

13.2系統(tǒng)工作原理分析

如前所述,一個完整的信號采集系統(tǒng),除了具備信號輸入單元、信號處理單元和信號輸出單元外,還需要緩沖區(qū)、時鐘以及電源等相關(guān)系統(tǒng)。如圖13.2所示是本案例信號采集系統(tǒng)的結(jié)構(gòu)框圖。

圖13.2信號采集系統(tǒng)結(jié)構(gòu)框圖

該結(jié)構(gòu)圖中,方塊表示對應(yīng)的功能部件,連線表示互聯(lián)關(guān)系。它清晰地表示了系統(tǒng)的組成結(jié)構(gòu)及相互關(guān)系。首先將分別從3組總線,即來認識系統(tǒng)各主要模塊之間的關(guān)系,再來分析系統(tǒng)的控制機制和工作原理。

13.2.1

是系統(tǒng)中傳送數(shù)據(jù)的鏈路,也是信號采集系統(tǒng)中最重要的鏈路。各功能部件的性能指標決定了數(shù)據(jù)總線的寬度及頻率。如圖13.3所示是本系統(tǒng)數(shù)據(jù)總線的連接示意圖。

圖13.3數(shù)據(jù)總線連接示意圖

從圖中可以看到,數(shù)據(jù)總線是雙向的,也就是說具備了信號輸入和信號輸出兩種用途。

首先看信號輸入鏈路。TTL單端信號通過VME_DIS擴展接口進入系統(tǒng),可支持32路單端信號同時采集。LVDS差分信號通過3個DS90LV047接收器進入系統(tǒng),可支持12路差分信號同時采集。兩種信號經(jīng)過整理后傳輸至SDRAM中進行緩存,最終根據(jù)PCI9054的傳輸機制將數(shù)據(jù)傳送至主機內(nèi)存中。

再看信號輸出鏈路。信號輸出鏈路其實是信號輸入鏈路的逆向過程。信號采集系統(tǒng)可以根據(jù)主機端的請求,將存儲于主機上的數(shù)據(jù)通過PCI總線傳輸至PCI9054,再經(jīng)過控制、整理、轉(zhuǎn)發(fā)至LVDS驅(qū)動器DS90LV048輸出接口或TTL單端輸出接口VME_DIS上。

13.2.2

用于對緩沖區(qū)SDRAM以及PCI9054的控制。在FPGA中,可以將這兩部分作為兩個模塊,一個是SDRAM控制器,另一個是PCI本地控制器。通過這兩個控制器模塊,實現(xiàn)FPGA與它們協(xié)調(diào)地工作。

SDRAM控制器是FPGA內(nèi)部用于控制外部SDRAM讀寫及刷新等操作的邏輯單元。SDRAM控制器的控制總線連接示意圖如圖13.4所示。

控制器左邊的控制總線包含時鐘信號CLK、復(fù)位信號RESET、命令信號CMD、命令應(yīng)答信號CMDACK以及數(shù)據(jù)有效信號DM等。

控制器右邊的控制總線包含時鐘信號CLK、SDRAM片選信號CS_N、時鐘時能信號CKE、行選擇信號RAS_N、列選擇信號CAS_N以及寫使能信號WE_N等。通過SDRAM控制器,用戶可以根據(jù)需要發(fā)送相應(yīng)的名字對外部的SDRAM進行控制。

PCI本地控制器是FPGA內(nèi)部用于控制PCI9054進行參數(shù)配置和數(shù)據(jù)傳輸?shù)倪壿媶卧?。PCI本地控制器的控制總線連接示意圖如圖13.5所示。

圖13.4SDRAM控制器控制總線連接示意圖圖13.5PCI本地控制器控制總線連接示意圖

控制器左邊的控制總線包含時鐘信號LCLK、控制輸入信號CNT_IN和控制輸出信號CNT_OUT等。控制輸入輸出信號是根據(jù)與PCI9054之間的交互產(chǎn)生的,實現(xiàn)了FPGA其他模塊與PCI9054的交互控制。

控制器右邊的總線則包含了PCI9054提供的本地端配置總線(圖中未畫出)以及交互時需要使用的控制線。包括了總線操作起始信號ADS#、傳輸結(jié)束信號BLAST#、本地總線占用請求信號LHOLD、總線占用應(yīng)答信號LHOLDA、本地中斷信號LINTi#、總線準備好信號READY#、總線讀寫信號LWR#、時鐘信號LCLK以及本地復(fù)位信號RESET#。

13.2.3

是存儲器件控制器用于對存儲空間進行尋址操作的總線,同時也可以實現(xiàn)編碼器和譯碼器的作用,區(qū)分不同操作類別。如圖13.6所示是本系統(tǒng)地址總線的連接示意圖。

其中,SDRAM控制器通過接收其他模塊產(chǎn)生的地址SDRAM_ADDR,產(chǎn)生SDRAM的行地址SA和列地址BA,實現(xiàn)對SDRAM的存儲空間的尋址。這種情況下,地址的變化由FPGA控制。

而PCI本地控制器則通過對PCI9054的本地總線地址線LA進行譯碼,結(jié)合PCI本地控制器的控制總線來區(qū)分PCI總線與FPGA之間的不同交互方式。這種情況下,PCI9054完成了地址的映射和增減變化工作。

13.2.4信號采集系統(tǒng)控制機制

首先,將需要采集的信號通過相應(yīng)的接口接入本系統(tǒng),形成一組LVTTL信號進入FPGA。由于這一組信號的寬度未定,在將之存入具有32位數(shù)據(jù)寬度的SDRAM之前,往往需要進行總線寬度的控制。

一般在數(shù)據(jù)傳輸?shù)慕涌诳刂浦?,常常采用FIFO或者DPRAM進行數(shù)據(jù)寬度控制。首先由于兩種器件都具備兩個數(shù)據(jù)端口,可以方便地調(diào)整前后兩級邏輯的數(shù)據(jù)寬度。

其次,伴隨數(shù)據(jù)寬度調(diào)整將產(chǎn)生時鐘域變換問題。一般直接使用邏輯門搭建的數(shù)據(jù)寬度轉(zhuǎn)換(串并/并串轉(zhuǎn)換)還需要另外進行時鐘系統(tǒng)的分配,且難以得到精確同步的時鐘。而使用FIFO或DPRAM可以使用獨立的時鐘對兩個數(shù)據(jù)端口進行控制。

再次,這兩種器件均可以使用FPGA內(nèi)部的邏輯資源搭建,無需使用分立元器件,不僅降低了成本也提高了系統(tǒng)的穩(wěn)定性。

因此在本信號采集系統(tǒng)中使用了DPRAM對數(shù)據(jù)寬度進行轉(zhuǎn)換。轉(zhuǎn)換得到的32位寬度數(shù)據(jù)總線被傳輸至SDRAM中,完成信號輸入單元和信號緩存單元的協(xié)調(diào)對接。

基于PCI的信號采集系統(tǒng)一般采用的是基于中斷的DMA傳輸。由于PCI總線的發(fā)起、占用直至釋放需要一定的時間,因此信號采集系統(tǒng)需要一個緩沖區(qū)來保證正在采集的信號被存儲起來,直至下一次的PCI總線傳輸?shù)絹矶彌_區(qū)不溢出,即數(shù)據(jù)不丟失。

本系統(tǒng)中,當SDRAM中緩存的數(shù)據(jù)達到一定的量級時,F(xiàn)PGA將向PCI9054發(fā)出本地中斷,請求發(fā)起DMA傳輸。主機端捕獲中斷后,將啟動PCI9054的DMA傳輸,經(jīng)由PCI本地控制器向SDRAM控制器發(fā)送命令,將數(shù)據(jù)從SDRAM中取出,并傳輸至PCI9054,最終進入主機內(nèi)存中。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉