![]() |
延時(shí)通道譯碼器將單片機(jī)并口送來(lái)的延時(shí)參數(shù)送入鎖存器,同時(shí)輸出控制電路將移位寄存器對(duì)應(yīng)的延時(shí)階切換到輸出端。從不同的階引出信號(hào)即可獲得不同的延時(shí)量。控制時(shí)鐘和移位寄存器的階數(shù)決定了延時(shí)步進(jìn)調(diào)節(jié)精度和延時(shí)調(diào)節(jié)范圍。如果定時(shí)模塊有N個(gè)信號(hào)通道,每個(gè)定時(shí)模塊集成N個(gè)完全相同的延時(shí)調(diào)節(jié)單元,就可實(shí)現(xiàn)獨(dú)立調(diào)節(jié)各個(gè)通道信號(hào)延時(shí)大小的功能。集成的延時(shí)調(diào)節(jié)單元越多,占用可編程芯片的資源就越多,這可以根據(jù)實(shí)際需要選擇可編程邏輯器件。
FPAG軟件的設(shè)計(jì)采用“自頂向下”、“軟硬兼施”的設(shè)計(jì)方法,主要的各單元設(shè)計(jì)采用VHDL語(yǔ)言描述完成,而整個(gè)多路信號(hào)的延時(shí)功能處理采用圖形輸入設(shè)計(jì)方法。軟件設(shè)計(jì)完成后,根據(jù)電路原理圖進(jìn)行引腳鎖定,然后啟動(dòng)編譯程序來(lái)編譯項(xiàng)目。編譯器將進(jìn)行錯(cuò)誤檢查、網(wǎng)表提取、邏輯綜合和器件適配,然后進(jìn)行行為仿真、功能仿真和時(shí)序仿真。最后通過(guò)編程器方式將POF文件下載到EPROM中。加電后,F(xiàn)PGA將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,完成配置,從而生成硬件電路。
模塊功能調(diào)試實(shí)現(xiàn)
模塊在調(diào)試中出現(xiàn)P89C51RD2有時(shí)上電程序運(yùn)行不正常,讀取程序空間是空的。但是只要上電工作起來(lái),就恢復(fù)正常。懷疑由于上電復(fù)位時(shí)序混亂,造成誤調(diào)用固件擦除芯片子程序。采用專用復(fù)位芯片替換電容電阻加二極管的復(fù)位電路,使問(wèn)題得到了解決。同樣,在單片機(jī)正確送數(shù)情況下,F(xiàn)PGA上電出現(xiàn)不能正;謴(fù)預(yù)設(shè)好的延時(shí)信號(hào),信號(hào)總是零延遲(第一次上電,單片機(jī)數(shù)據(jù)存儲(chǔ)空間內(nèi)沒(méi)有數(shù)據(jù),信號(hào)就處于零延時(shí)狀態(tài)),但在工作狀態(tài)下,能夠很好地實(shí)現(xiàn)延時(shí)調(diào)節(jié)。懷疑這種情況是因存在復(fù)位問(wèn)題而導(dǎo)致,但專用復(fù)位芯片不能解決問(wèn)題。經(jīng)多次檢查程序,發(fā)現(xiàn)硬件語(yǔ)言程序中觸發(fā)語(yǔ)句是電平觸發(fā),改寫為脈沖上升觸發(fā)后問(wèn)題得以解決。
結(jié)束語(yǔ)
采用單片機(jī)和FPGA設(shè)計(jì)的延時(shí)調(diào)節(jié)模塊,硬件結(jié)構(gòu)簡(jiǎn)單,設(shè)計(jì)集成度高。軟件方面,單片機(jī)程序?qū)語(yǔ)言和匯編語(yǔ)言很好地結(jié)合,F(xiàn)PGA充分發(fā)揮了硬件語(yǔ)言易改變電路結(jié)構(gòu)和算法的優(yōu)越性。提高FPGA中移位寄存器的時(shí)鐘頻率,同時(shí)相應(yīng)增加移位寄存器程序輸出階數(shù),可實(shí)現(xiàn)更高精度的延時(shí)步進(jìn)調(diào)節(jié)和增大延時(shí)調(diào)節(jié)范圍。因此可以在不改變模塊硬件結(jié)構(gòu)基礎(chǔ)的上,通過(guò)軟件升級(jí)來(lái)提高模塊的性能,從而擴(kuò)大模塊的應(yīng)用領(lǐng)域。






