該文進行的設(shè)計作為數(shù)控系統(tǒng)大課題中的一個子課題,主要研究利用PCI總線來實現(xiàn)對外圍IO的操作,硬件上包括設(shè)計一塊PCI接口卡并測試通過,軟件上實現(xiàn)了PCI接口卡在Linux下的驅(qū)動和用軟PLC來實現(xiàn)對外圍IO的操作.該文在比較幾種微機總線的基礎(chǔ)上,為了實現(xiàn)數(shù)控系統(tǒng)高速、高精度、低功耗的要求,采用PCI總線進行設(shè)計.隨著可編程邏輯器件的發(fā)展,為在一片PLD芯片內(nèi)實現(xiàn)復(fù)雜的邏輯控制提供了條件.該文在綜合比較開發(fā)PCI卡的幾種方法的基礎(chǔ)上,選擇了使用FPGA來實現(xiàn)PCI接口卡設(shè)計.用VHDL語言對FPGA編程,采用模塊化的設(shè)計方法進行設(shè)計,用狀態(tài)機來控制PCI邏輯的時序.設(shè)計首先在EDA軟件上仿真通過后,制作成PCI板卡并在現(xiàn)場調(diào)試通過.為方便所設(shè)計的PCI卡在數(shù)控系統(tǒng)及其它系統(tǒng)中應(yīng)用,該文設(shè)計了PCI卡在Linux下的設(shè)備驅(qū)動程序,主要包括設(shè)備的注冊與注銷、與Linux內(nèi)核的接口、相關(guān)的入口函數(shù)、驅(qū)動程序的編碼、編譯、加載與卸載等,并編寫了相應(yīng)的測試代碼,在Linux環(huán)境下調(diào)試通過.為了解決數(shù)控系統(tǒng)中PLC的應(yīng)用問題,該文還設(shè)計了PCI卡在軟PLC中的應(yīng)用.采用的軟PLC軟件是Linux下的MatPLC軟件.在詳細討論MatPLC工作原理的基礎(chǔ)上,設(shè)計了一個輸入模塊、一個輸出模塊和一個MatPLC配置文件.輸入模塊通過驅(qū)動程序從PCI卡中讀取數(shù)據(jù),傳送到MatPLC內(nèi)核的全局變量中,輸出模塊從內(nèi)核全局變量讀取數(shù)據(jù)并進行邏輯運算,再輸出到PCI卡.將他們編譯通過,并進行測試,最終實現(xiàn)軟PLC對外圍IO端口的讀寫.該論文受到廣東省科技攻關(guān)項目[2002A1040402]、廣東省科技攻關(guān)項目[2003C101002]、廣州市重大科技攻關(guān)計劃[2002Z1-D0051]的資助.
標(biāo)簽:
FPGA
PCI
接口設(shè)計
上傳時間:
2013-07-18
上傳用戶:szchen2006
本文以一個PDA項目為依托,在項目中,主要是開發(fā)該設(shè)備的軟件。其工作包括:上層應(yīng)用程序的開發(fā)、引導(dǎo)程序的編寫、Linux操作系統(tǒng)的移植和各種外設(shè)驅(qū)動程序的編寫以及文件系統(tǒng)的改進。 本文首先分析了Linux操作系統(tǒng)的虛擬文件系統(tǒng)、高速緩沖區(qū)、MTD以及驅(qū)動程序模塊。接著,本文分析了JFFS2文件系統(tǒng)的不足,以及在大容量閃存設(shè)備中掛載速度過慢的原因。然后,本文結(jié)合JFFS2文件系統(tǒng)在開發(fā)過程中所出現(xiàn)的各種問題,以及在大容量閃存芯片上進行掛載時的性能要求,對JFFS2文件系統(tǒng)作了一些實際的改進。文中的創(chuàng)新性貢獻包括以下幾個方面: (1)在掃描一個擦除塊之前,首先把擦除塊中的所有內(nèi)容讀進內(nèi)存。然后,在內(nèi)存中進行所有的判斷操作以及拷貝,這樣就可以減少I/O操作。另外,由于所有的拷貝操作都在內(nèi)存中進行,所以掛載速度就可以有所提升。 (2)通過加入“空閑區(qū)域管理節(jié)點”對閃存中的空閑區(qū)域進行管理。這樣,在掃描的過程中,一旦發(fā)現(xiàn)該節(jié)點就可以跳過它所描述的空閑區(qū)域,從而加快掛載的速度。 (3)在掃描的階段中對有效數(shù)據(jù)實體進行硬鏈接數(shù)的計算,因此,臨時目錄節(jié)點就不需要創(chuàng)建了,這樣也免除了臨時目錄的刪除步驟,所以對掛載速度也有明顯的提高。 最后,基于以上的研究與改進,結(jié)合本項目的實際要求,對大容量閃存設(shè)備的JFFS2文件系統(tǒng)的掛載過程進行了改進的實踐。
標(biāo)簽:
FLASH
ARM
嵌入式閃存
實踐
上傳時間:
2013-07-26
上傳用戶:damozhi