關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于PC104(Plus)總線的數(shù)據(jù)接收存儲顯示系統(tǒng)設計

        基于PC104(Plus)總線的數(shù)據(jù)接收存儲顯示系統(tǒng)設計

        作者: 時間:2011-03-28 來源:網(wǎng)絡 收藏

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

        本文引用地址:http://www.104case.com/article/202466.htm

        s.JPG


        PLX9054的I設備驅(qū)動是DMA傳輸?shù)年P鍵,驅(qū)動程序利用PLX9054芯片的DMA功能可將FPGA控制模塊中的數(shù)據(jù)快速傳輸?shù)絃inux操作系統(tǒng)的內(nèi)核內(nèi)存中。要實現(xiàn)對PLX9054的DMA操作并設置DMA控制寄存器,設備驅(qū)動程序需要做兩件事:一是檢測I設備并初始化:二是建立DMA操作環(huán)境。在Linux2.6內(nèi)核中,I設備檢測和初始化可通過專門的注冊函數(shù)pci_regis-ter-driver來實現(xiàn)。內(nèi)核根據(jù)pci_device_id結構中的預設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幀緩沖技術來實現(xiàn)視頻數(shù)據(jù)的快速顯示。Framebuffer機制模仿的是顯卡的功能,它將顯卡硬件結構抽象掉,可通過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)存模式):
        x.jpg
        在子函數(shù)initFb中,對映射過的內(nèi)存地址(即顯存)再進行分行映射,即把原來的一維線性地址轉(zhuǎn)換為二維線性空間,這樣,映射后的fbp[x][y]就可以在屏幕上表示水平位置為y、垂直位置為x的像素。
        t.JPG
        u.JPG
        利用該映射能夠?qū)︼@示區(qū)域中的某一行進行操作,也可以對顯示數(shù)據(jù)包的每一幀進行行分析,進而對每一行進行控制和顯示。這樣既可保證顯示的靈活性,又具有良好的顯示速度。

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


        上一頁 1 2 3 下一頁

        關鍵詞: Plus PC 總線

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 交口县| 临夏市| 恩施市| 台东市| 祁阳县| 遵化市| 绵阳市| 苗栗县| 含山县| 新津县| 宿州市| 阜南县| 大足县| 双柏县| 昂仁县| 彭阳县| 临泽县| 措美县| 阳江市| 乐清市| 博湖县| 大冶市| 曲周县| 彰化市| 郁南县| 金湖县| 清原| 山东省| 牙克石市| 浦县| 丰原市| 齐齐哈尔市| 睢宁县| 潜江市| 黄陵县| 敖汉旗| 大安市| 竹溪县| 黄冈市| 威信县| 中卫市|