www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 智能硬件 > 智能硬件
[導讀]摘要:提出了一種雙通道大容量數(shù)據(jù)接收存儲顯示系統(tǒng)的實現(xiàn)方案。闡述了以PLX9054為核心、以異步FIFO為數(shù)據(jù)緩沖通道的PC104(Plus)接口電路的設計方法,同時給出了FPGA控制邏輯設計與Linux系統(tǒng)下基于Qt/Embedded和Fra

摘要:提出了一種雙通道大容量數(shù)據(jù)接收存儲顯示系統(tǒng)的實現(xiàn)方案。闡述了以PLX9054為核心、以異步FIFO為數(shù)據(jù)緩沖通道的PC104(Plus)接口電路的設計方法,同時給出了FPGA控制邏輯設計與Linux系統(tǒng)下基于Qt/Embedded和Framebuffer工控機存儲顯示程序的實現(xiàn)方法。
關(guān)鍵詞:PC104(Plus);Qt/Embedded;Framebuffer;實時存儲;同步顯示;工控機

0 引言
    在現(xiàn)代數(shù)字信號處理領域,對于大容量高速數(shù)據(jù)的存儲和顯示是進行后續(xù)相關(guān)處理的基礎,也是信息處理系統(tǒng)的關(guān)鍵組成部分。隨著數(shù)字視頻視覺技術(shù)和視頻采集技術(shù)的發(fā)展,很多應用場合都需要對接收到的模擬數(shù)據(jù)進行模數(shù)轉(zhuǎn)換,然后再進行數(shù)據(jù)的實時存儲和同步顯示。為此,本文介紹了對模數(shù)轉(zhuǎn)換后的數(shù)字信號所進行的處理,提出了一種基于PC104 (Plus)總線的雙通道大容量高速數(shù)據(jù)的接收、存儲和顯示系統(tǒng)的設計方法。該系統(tǒng)通過FPGA-PC104(Plus)接口對數(shù)據(jù)進行接收和預處理,再通過FIFO數(shù)據(jù)傳輸通道來上傳數(shù)據(jù),最后由工控機的軟件來實現(xiàn)數(shù)據(jù)的實時存儲和同步顯示。其中工控機軟件采用Linux(2.6內(nèi)核)下Qt/Embedded的GUI來設計,并用Framebuffer的顯示技術(shù)來提供良好的人機界面交互和快速的存儲顯示操作。

1 系統(tǒng)結(jié)構(gòu)
    本系統(tǒng)由數(shù)據(jù)接收模塊、FPGA控制模塊和工控機顯示存儲模塊組成,其系統(tǒng)結(jié)構(gòu)如圖1所示。圖中的FPGA選用Xilinx Spartan3系列的XC3S2000F456,其最大用戶IO為333個,系統(tǒng)門達到200萬門,并內(nèi)置576KB的RAM塊;FIFO選用IDT公司的IDT72V36110,該芯片容量為512KB,可支持36位輸入、輸出數(shù)據(jù),最高工作頻率可達166MHz;另外,PLX9054是PLX公司的總線橋接芯片,它支持多種工作模式,本系統(tǒng)采用C模式。在該模式下的DMA傳輸時,PLX9054對PC104(Plus)總線和本地總線都是主控制器;工控機選用Senbo公司的LX-3072PC/104 CPU模塊,該模塊搭載的AMD Geode LX800 CPU,其工作頻率高達500MHz,遵從PC/104+標準,并提供有PC104(Plus)總線,同時集成了PS/2、RT、IDE、USB2.0和10M/100M網(wǎng)口等接口,而且功耗低,可靠性高,可廣泛適用于數(shù)據(jù)采集、通信等領域。為了保證系統(tǒng)的實時性和穩(wěn)定性,本工控機上運行的是Linux操作系統(tǒng)。


    數(shù)據(jù)接收模塊的兩路輸入通道分別連向FPGA的IO端口,在FPGA模塊的控制下,兩路輸入數(shù)據(jù)同時分別進入各自的FIFO進行緩存。為了避免PLX9054控制本地端時的總線競爭以及簡化時序設計,可將兩片F(xiàn)IFO的輸出端復用,且經(jīng)由FPGA的IO端口連向PLX9054的本地數(shù)據(jù)端,進而在FIFO產(chǎn)生相應狀態(tài)響應的時候,由FPGA控制模塊向PLX9054發(fā)出讀取FIFO的中斷請求,PLX9054在響應中斷后,即將數(shù)據(jù)以DMA的方式經(jīng)由PC104(Plus)總線上傳至上位機,上位機通過PCI驅(qū)動讀取DMA傳輸?shù)臄?shù)據(jù),然后進行數(shù)據(jù)分析,再分別進行存儲和顯示。

2 系統(tǒng)設計
2.1 數(shù)據(jù)接收模塊設計
    本系統(tǒng)中的數(shù)據(jù)接收模塊采用J18型37針視頻通信接口,該接口協(xié)議可根據(jù)實際需求自行定義,但最大為32位。由于輸入數(shù)據(jù)為高速數(shù)字信號,因此,為防止輸入FPGA的信號產(chǎn)生過沖,可在視頻通信接口的后端對32位數(shù)據(jù)分別進行RC端接,并串聯(lián)33Ω的電阻和0.01μF的電容。
2.2 FPGA控制模塊設計
    本系統(tǒng)的數(shù)據(jù)傳送采用DMA結(jié)合中斷的方式。該方式不僅能保證數(shù)據(jù)傳輸?shù)乃俾?,而且能提高系統(tǒng)的工作效率。接收高速數(shù)據(jù)時,要使用緩沖區(qū)對數(shù)據(jù)進行緩存,但是,如果等緩沖區(qū)全部存滿以后再進行DMA傳輸,那么,在數(shù)據(jù)流速率比較高的時候,就會造成數(shù)據(jù)的丟失。因此,在FIFO半滿時就必須進行數(shù)據(jù)的DMA傳輸,這樣可使工控機從FIFO讀取數(shù)據(jù)和FPGA從外部接收數(shù)據(jù)能同時進行。
    FPGA控制模塊是本系統(tǒng)的硬件核心,其主要功能是完成系統(tǒng)復位,接收數(shù)據(jù)進行緩存,控制讀取兩個FIFO數(shù)據(jù)的邏輯順序,并控制DMA傳輸。FPGA控制模塊電路如圖2所示。


    在圖2電路中,為了保證FPGA與FIFO同步工作,應將兩片F(xiàn)IFO的各自讀寫時鐘連接在一起,且分別由FPGA輸入到時鐘驅(qū)動芯片以后獲得。
    為了滿足PLX9054上電啟動速度的要求,其時鐘應由晶振直接提供。
    系統(tǒng)上電后,PLX9054NFPGA發(fā)出復位命令,同時由FPGA對FIFO進行復位,并完成對FIFO的初始化,以使其處于工作狀態(tài)。在FP-GA接收數(shù)據(jù)時,存儲數(shù)據(jù)通道和顯示數(shù)據(jù)通道的數(shù)據(jù)同時進入FPGA,為了使工控機軟件能夠區(qū)分兩路數(shù)據(jù),可在FPGA內(nèi)部根據(jù)數(shù)據(jù)同步信號分別對兩路數(shù)據(jù)加上幀頭,然后同時寫入FIFO1的D1[0…31]和FIFO2的D2[0…31]。數(shù)據(jù)半滿后,F(xiàn)PGA要根據(jù)兩片F(xiàn)IFO的半滿信號和對其進行讀取控制。FIFO的讀取控制主要由實現(xiàn)。在實際應用中,存儲數(shù)據(jù)一般要求能夠優(yōu)先上傳,且數(shù)據(jù)連續(xù),而對同步顯示的要求相對較低,顯示數(shù)據(jù)的速率也較低,只要能夠滿足顯示刷新率的要求即可,因此,本設計中存儲數(shù)據(jù)緩沖區(qū)FIFO1的半滿信號的優(yōu)先級高于。具體實現(xiàn)方法是對進行邏輯運算,圖3所示是其運算邏輯圖。


    運算后可得到化簡結(jié)果,然后令;之后再在FPGA內(nèi)部將、做與運算,可得到,然后判斷,若為低,則FPGA向PLX9054發(fā)出中斷。這樣就能保證兩片F(xiàn)IFO的數(shù)據(jù)根據(jù)優(yōu)先級不斷向上發(fā)送。
    PLX9054響應中斷后,即可通過LHOLD申請對本地總線進行控制,F(xiàn)PGA則通過LHOLDA作出應答,進而由PLX9054獲得本地總線控制權(quán)并啟動DMA傳輸周期。FPGA收到讀信號和地址選通信號后,產(chǎn)生信號,并在最后一個數(shù)據(jù)傳送信號有效之前一直保持有效。在此期間,F(xiàn)PGA將根據(jù)圖3所示的運算邏輯結(jié)果,并按照優(yōu)先級讀取相應FIFO的數(shù)據(jù)進行上傳。具體的控制及數(shù)據(jù)傳輸時序如圖4所示。
由圖4可見,當同時有效時,其FIFO1的優(yōu)先級高于FIFO2,故可滿足設計要求。


2.3 工控機顯示存儲模塊設計
    本系統(tǒng)利用PLX9054和Linux的DMA技術(shù)來實現(xiàn)大量數(shù)據(jù)的高速傳輸,同時使用Qt/Ernbedded進行人機界面設計和Framebuffer的幀緩沖顯示,以對視頻數(shù)據(jù)進行存儲和顯示控制。整個軟件的功能圖如圖5所示。


    PLX9054的PCI設備驅(qū)動是DMA傳輸?shù)年P(guān)鍵,驅(qū)動程序利用PLX9054芯片的DMA功能可將FPGA控制模塊中的數(shù)據(jù)快速傳輸?shù)絃inux操作系統(tǒng)的內(nèi)核內(nèi)存中。要實現(xiàn)對PLX9054的DMA操作并設置DMA控制寄存器,設備驅(qū)動程序需要做兩件事:一是檢測PCI設備并初始化:二是建立DMA操作環(huán)境。在Linux2.6內(nèi)核中,PCI設備檢測和初始化可通過專門的注冊函數(shù)pci_regis-ter-driver來實現(xiàn)。內(nèi)核根據(jù)pci_device_id結(jié)構(gòu)中的預設ID來對pci_devices鏈表進行搜索,一旦找到目標PCI設備,pci_register_driver函數(shù)將調(diào)用設備探測函數(shù)(probe)并向該函數(shù)傳遞該設備的pci_dev變量,然后由設備探測函數(shù)完成對設備的初始化。建立DMA操作環(huán)境的工作包括DMA緩沖區(qū)的分配和中斷處理。本系統(tǒng)使用流式DMA映射(dma_map_single())來申請適當大小的DMA緩沖區(qū)。當一個緩沖區(qū)被流式映射后,只有將其unmap除掉以后,驅(qū)動程序才能安全地訪問里面的數(shù)據(jù)內(nèi)容,并通過request_irq函數(shù)實現(xiàn)中斷處理程序的注冊。這里有兩個問題需要注意:一是PCI設備注冊中斷時,必須使用共享中斷方式,并應在中斷處理程序中增加對中斷源的檢查;二是PLX9054的中斷信號一旦產(chǎn)生就一直有效,它必須通過代碼清除中斷。
    本系統(tǒng)采用Qt/Embedded(4.5)進行GUI設計,以便為系統(tǒng)用戶提供一個高性能、高可靠的GUl支持。Qt/Embedded是著名的Qt庫開發(fā)商Trolltech公司開發(fā)的、面向嵌入式系統(tǒng)的Qt版本,許多基于Qt的X Window程序都可以非常方便地移植到Qt/Embedded上,而且與X11版本的Qt在最大程度上接口兼容,因而延續(xù)了在XWindow上的強大功能,并在底層徹底摒棄了X lib,而僅采用Framebuffer作為底層圖形接口。同時,使用Qt的多線程設計則使人機交互、視頻顯示和數(shù)據(jù)存儲能夠同時進行。
    本系統(tǒng)采用Framebuffer幀緩沖技術(shù)來實現(xiàn)視頻數(shù)據(jù)的快速顯示。Framebuffer機制模仿的是顯卡的功能,它將顯卡硬件結(jié)構(gòu)抽象掉,可通過Framebuffer的讀寫直接對顯存進行操作。內(nèi)核編譯時可選上對Framebuffer的支持。進入Framebuffer可以在系統(tǒng)啟動時向內(nèi)核傳送vga= modenumber的參數(shù)來激活Framebuffer設備(如:vga=791)。Framebuffer的設備文件一般是/dev/fb0、/dev/fb1等。
    在應用程序中,一般可將Framebuffer設備映射到進程地址空間的方式使用,比如利用下面的程序就可以打開/dev/fb0設備,并通過mmap系統(tǒng)調(diào)用進行地址映射,隨后用memset將屏幕清空(這里假設顯示模式是1024x768-32位色模式和線性內(nèi)存模式):

    在子函數(shù)initFb中,對映射過的內(nèi)存地址(即顯存)再進行分行映射,即把原來的一維線性地址轉(zhuǎn)換為二維線性空間,這樣,映射后的fbp[x][y]就可以在屏幕上表示水平位置為y、垂直位置為x的像素。


    利用該映射能夠?qū)︼@示區(qū)域中的某一行進行操作,也可以對顯示數(shù)據(jù)包的每一幀進行行分析,進而對每一行進行控制和顯示。這樣既可保證顯示的靈活性,又具有良好的顯示速度。

3 結(jié)束語
    本文給出了一種基于FPGA控制邏輯的高速數(shù)據(jù)接收存儲顯示系統(tǒng)的硬件設計方案,同時詳細介紹了Linux系統(tǒng)下基于Qt/Embedded和Fr-amebuffer的工控機存儲顯示程序的實現(xiàn)方法。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉