新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 雙端口RAM在ARM 與DSP通信系統中的應用

        雙端口RAM在ARM 與DSP通信系統中的應用

        作者: 時間:2013-01-04 來源:網絡 收藏

          3 數據通信的軟件實現

          本系統采用中斷控制方式來實現對的讀寫操作。 主要負責圖像數據壓縮工作,壓縮后的數據傳送給.傳送數據時, 向信令字單元3FFF 寫入'55H',在 方產生中斷后, 讀信令字單元3FFF,如果是'55H',說明數據正在傳輸,讀完數據后,向信令字單元3FFE 寫入'AAH',代表讀完數據。 接收到中斷后,讀信令字單元3FFEH,如果為'AAH',表示傳輸數據成功。

          完成整個系統的實時控制,對的圖像數據進行讀取然后經過網絡傳遞給PC 機,因此需要驅動程序來實現雙端口RAM與ARM之間的數據通信。驅動程序是應用程序與硬件之間的接口,用戶可以通過驅動程序來間接的實現對硬件的讀寫控制操作。雙端口RAM 的驅動程序主要任務是讀雙端口RAM 數據到用戶空間、把用戶空間命令寫入雙端口RAM 相應地址以及相應雙端口RAM 產生的中斷。在驅動程序中,最主要的結構便是file_operation,在里面包含了對文件的打開、關閉、讀寫和其他控制函數,file_operation 結構如下:

          在使用設備之前需要對設備進行初始化,包括配置ARM 接口寄存器、注冊設備、申請中斷和分配虛擬地址空間等。配置寄存器和注冊申請工作在加載模塊時實現,分配資源工作在dualram_open 函數內實現。

          配置接口寄存器,AT91RM9200 具有一個EBI 接口,可以方便的連接各種存儲設備,可以使用EBI 接口中的SMC 來控制讀寫,由CS4 接口來控制雙端口RAM 的使能信號,通過向相應寄存器內寫入控制字來實現ARM 對雙端口RAM 的端口初始化工作。

          在初始化函數init_dualram 中,用register_chrdev將雙端口RAM 注冊為一個字符型設備,用request_irq為設備申請相應的中斷資源,函數如下:

          myirq=request_irq(AT91RM_IRQ1,dualport_inter,SA_INTERRUPT,"dualram",NULL)

          在裝載驅動時進行注冊和申請,在卸載模塊時必須進行注銷,即在dualram_exit 內執行unregister_chrdev 和free_irq 來釋放資源。

          Linux 無法直接訪問某一物理地址空間,必須通過虛擬地址空間的映射機制來完成訪問。映射工作在dualram_open 函數內完成,因此每次打開設備都會完成此工作。所要用到的地址資源和數據結構定義如下:

          #define dualram_base_addr 0x60000000

          #define dualram_size ox3fff

          u16 *remaddr

          通過使用函數remaddr = ioremap (dualram_base_addr ,dualram_size);進行虛擬地址映射,此后就可以使用remaddr 來完成對實際雙端口RAM 空間的訪問了。

          為了有效的提高數據傳輸效率,驅動程序與應用程序之間采用異步通知的機制,這樣上層應用程序便可以知道RAM 中的數據量是否達到閾值,而不用采用輪詢的方式,占用處理器資源。異步通知機制分三步完成,首先需要讓內核知道驅動程序與哪個進程通信,當進程使用系統函數fcntl 執行F_SETOWN 命令時,設備文件擁有者(owner)的ID 號會被記錄在flip->f_owner 中,此時內核知道了與驅動進行通信的進程,然后應用程序調用fcntl 的F_SETFL 命令來激活異步通知機制,這樣新數據到達時輸入文件便可發送一個SIGIO 信號到flip->f_owner 中指定的進程。

          圖像數據到達后,Linux 內的應用程序完成對數據的讀寫操作,寫操作函數為:dualram_write,就是利用copy_from_user 把用戶空間的數據寫入到雙端口RAM中,讀操作函數:dualram_read,就是利用copy_to_user把雙端口RAM 中的數據讀入到用戶空間中[5,7].

          4 測試結果

          視頻監控系統的測試環境是ARM 920T 與TMS320C6211 通過網絡與PC 互連構成一個簡單的局域網。通過網絡抓包軟件可以統計網絡的數據流量,通過CCS 分析工具分析系統的實時性。系統的量化階距越高,圖像的壓縮比率越大,所獲得的圖像質量越差,本系統設置的量化階距設置為75.經測試本系統的主要參數如下:圖像的壓縮格式為JPEG,分辨率為BMP(240×160),最大編碼速度為15 幀/秒,數據流量為50-200kbps,網絡采用UDP/IP 協議,網絡接口為RJ-45 100Mbps.

          5 結語

          本文結合了嵌入式圖像數據采集系統的設計,介紹了通過雙端口RAM 實現ARM920T 與 TMS320C6211 DSP 之間的通信。利用雙端口RAM 的強大功能可以實現各種形式的處理器之間的高速數據通信。在信號處理領域和高速數據采集中,利用雙端口RAM的幾種不同仲裁機制,可以完成不同的數據傳送要求。

          用它構成的接口電路具有傳送速率高、實時性好、可靠性高、電路簡單等優點。

        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 潞西市| 南召县| 普兰县| 井陉县| 温宿县| 荥阳市| 云林县| 乌拉特后旗| 项城市| 太白县| 齐齐哈尔市| 桂林市| 桃园县| 行唐县| 河曲县| 遵化市| 临漳县| 民和| 榆中县| 榆树市| 南投县| 镇远县| 永善县| 栖霞市| 晋中市| 体育| 盐津县| 遂昌县| 德令哈市| 遂宁市| 盖州市| 潜江市| 西贡区| 萍乡市| 东乡族自治县| 三门峡市| 伽师县| 隆尧县| 玉田县| 扬中市| 合江县|