基于PC104(Plus)總線的數(shù)據(jù)接收存儲顯示系統(tǒng)設(shè)計
為了滿足PLX9054上電啟動速度的要求,其時鐘應由晶振直接提供。
系統(tǒng)上電后,PLX9054NFPGA發(fā)出復位命令,同時由FPGA對FIFO進行復位,并完成對FIFO的初始化,以使其處于工作狀態(tài)。在FP-GA接收數(shù)據(jù)時,存儲數(shù)據(jù)通道和顯示數(shù)據(jù)通道的數(shù)據(jù)同時進入FPGA,為了使工控機軟件能夠區(qū)分兩路數(shù)據(jù),可在FPGA內(nèi)部根據(jù)數(shù)據(jù)同步信號分別對兩路數(shù)據(jù)加上幀頭,然后同時寫入FIFO1的D1[0…31]和FIFO2的D2[0…31]。數(shù)據(jù)半滿后,F(xiàn)PGA要根據(jù)兩片F(xiàn)IFO的半滿信號和對其進行讀取控制。FIFO的讀取控制主要由實現(xiàn)。在實際應用中,存儲數(shù)據(jù)一般要求能夠優(yōu)先上傳,且數(shù)據(jù)連續(xù),而對同步顯示的要求相對較低,顯示數(shù)據(jù)的速率也較低,只要能夠滿足顯示刷新率的要求即可,因此,本設(shè)計中存儲數(shù)據(jù)緩沖區(qū)FIFO1的半滿信號的優(yōu)先級高于。具體實現(xiàn)方法是對進行邏輯運算,圖3所示是其運算邏輯圖。本文引用地址:http://butianyuan.cn/article/202466.htm
運算后可得到化簡結(jié)果,然后令;之后再在FPGA內(nèi)部將、做與運算,可得到,然后判斷,若為低,則FPGA向PLX9054發(fā)出中斷。這樣就能保證兩片F(xiàn)IFO的數(shù)據(jù)根據(jù)優(yōu)先級不斷向上發(fā)送。
PLX9054響應中斷后,即可通過LHOLD申請對本地總線進行控制,F(xiàn)PGA則通過LHOLDA作出應答,進而由PLX9054獲得本地總線控制權(quán)并啟動DMA傳輸周期。FPGA收到讀信號和地址選通信號后,產(chǎn)生信號,并在最后一個數(shù)據(jù)傳送信號有效之前一直保持有效。在此期間,F(xiàn)PGA將根據(jù)圖3所示的運算邏輯結(jié)果,并按照優(yōu)先級讀取相應FIFO的數(shù)據(jù)進行上傳。具體的控制及數(shù)據(jù)傳輸時序如圖4所示。
由圖4可見,當同時有效時,其FIFO1的優(yōu)先級高于FIFO2,故可滿足設(shè)計要求。
評論