基于MPC8313E和FPGA的雙口RAM驅(qū)動開發(fā)
3 雙口RAM讀寫設(shè)備驅(qū)動設(shè)計
介于以上第二部分的分析,雙口RAM設(shè)備選擇為塊設(shè)備,以便傳輸任意數(shù)量的數(shù)據(jù)。同時該驅(qū)動設(shè)備基于Linux2.6.23內(nèi)核開發(fā),以模塊的方式加載至內(nèi)核中,其結(jié)構(gòu)如圖2所示。本文引用地址:http://butianyuan.cn/article/189627.htm
代碼編寫好后在正式編譯前還要準(zhǔn)備好內(nèi)核頭文件和庫函數(shù),這需要先編譯一遍相應(yīng)的內(nèi)核,在2.6. 23內(nèi)核源代碼中將MPC8313RDB的配置文件用作默認(rèn)配置,編譯內(nèi)核。完成后書寫驅(qū)動的Makefile,然后連接目標(biāo)扳,在NFS下調(diào)試設(shè)備驅(qū)動和應(yīng)用程序。用戶可以使用通過交叉編譯得到的.ko文件通過insmod動態(tài)加載至內(nèi)核中,也可以通過修改啟動腳本文件,加電后自啟動將驅(qū)動加載到內(nèi)核中。
4 處理結(jié)果
經(jīng)過打包處理的圖像數(shù)據(jù)通過MPC8313E的服務(wù)器上傳至上位機后,按照圖像格式進行拼圖,每包數(shù)據(jù)含有42 240 Byte數(shù)據(jù),每幀圖像數(shù)據(jù)總量為1 280×1 024 Byte的圖像像素點信息和附加區(qū)信息,共接收35包數(shù)據(jù)后就可還原一幅完整的圖像。上位機在拼圖時裁剪掉一部分?jǐn)?shù)據(jù),最終合成1 024×1 024 Byte的圖像,如圖3所示。
5 結(jié)束語
雙口RAM驅(qū)動程序是整個存儲系統(tǒng)的核心模塊,它對存儲數(shù)據(jù)的上傳速度和準(zhǔn)確提取圖像信息有重要的影響,通過對MPC8313E寄存器的配置和讀寫以及中斷函數(shù)對硬件的控制來實現(xiàn)對RAM的讀寫,利用MPC8313E現(xiàn)有的接口和傳輸算法,最終實現(xiàn)圖像信息的高速上傳,驗證得出上傳數(shù)據(jù)最快可達104 Mbit·s-1,滿足設(shè)計要求。
fpga相關(guān)文章:fpga是什么
linux相關(guān)文章:linux教程
評論