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