基于單片機(jī)的CPLD/FPGA被動(dòng)串行下載配置的實(shí)現(xiàn)
現(xiàn)將以上所提及的各個(gè)子程序的用途簡(jiǎn)介如下:
下載配置子程序的作用是將從串口接收的配置數(shù)據(jù)直接寫(xiě)到目標(biāo)器件中,即直接寫(xiě)到可編程邏輯器件(CPLD/FPGA)中。
在編寫(xiě)該子程序時(shí),必須注意目標(biāo)器件的寫(xiě)入時(shí)序。必須根據(jù)目標(biāo)器件生產(chǎn)廠家提供的時(shí)序圖,用單片機(jī)語(yǔ)言編程將其配置時(shí)序準(zhǔn)確地描述出來(lái),只有這樣才能正確地將配置數(shù)據(jù)寫(xiě)入到目標(biāo)器件中。例如,我們?nèi)粢_配置ALTERA公司生產(chǎn)的FLEX 10k系列器件,就必須嚴(yán)格遵守以下時(shí)序圖,如圖4所示。
寫(xiě)E2PROM子程序的作用是將從串口接收的配置數(shù)據(jù)直接寫(xiě)到AT24C256串行E2PROM中保存起來(lái),以備需要時(shí)可以用這些保存的數(shù)據(jù)重新配置器件。讀E2PROM子程序的作用是從AT24C256中將配置數(shù)據(jù)讀出,同時(shí)將這些配置數(shù)據(jù)寫(xiě)到目標(biāo)器件中,以實(shí)現(xiàn)對(duì)目標(biāo)器件的重新配置。
在編寫(xiě)這兩個(gè)子程序時(shí),必須注意AT24C256的數(shù)據(jù)寫(xiě)入和數(shù)據(jù)讀出時(shí)序,只有嚴(yán)格遵守該時(shí)序圖,才能正確地對(duì)該存儲(chǔ)器進(jìn)行讀寫(xiě)操作。其讀寫(xiě)時(shí)序如圖5所示。
通用延時(shí)子程序可以靈活地設(shè)定延時(shí)時(shí)間間隔。當(dāng)程序中需要延時(shí)的時(shí)候只要先給該子程序提供一個(gè)延時(shí)時(shí)間常數(shù),再調(diào)用延時(shí)子程序即可。例如,通常在系統(tǒng)復(fù)位時(shí)為了讓處理器復(fù)位后系統(tǒng)中其他器件能可靠復(fù)位而調(diào)用的上電延時(shí)子程序就可以采用該通用延時(shí)子程序來(lái)實(shí)現(xiàn)。
5結(jié)語(yǔ)
本系統(tǒng)可用于配置所有ALTERA公司生產(chǎn)的基于SRAM架構(gòu)的CPLD器件和XILINX公司生產(chǎn)的基于SRAM架構(gòu)的FPGA器件以及其他主流器件制造公司生產(chǎn)的基于SRAM架構(gòu)的器件,具有很強(qiáng)的通用性。由于該電路使用的元器件非常少,也可以將其制作成面積很小、便于攜帶的通用下載配置板使用。該下載配置電路經(jīng)本人實(shí)際制作、調(diào)試、使用,其工作穩(wěn)定可靠,具有很好的應(yīng)用前景。
參考文獻(xiàn)
[1]ALTERAApplication Note 59:Configuring FLEX 10k DevicesAugust 1998
[2]ALTERAApplication Note 208:Configuring Stratix Stratix GX DevicesNovember 2002
[3]何立民鋇テ機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,2000
評(píng)論