用單片機(jī)配置CPLD器件
ALTERA公司的可編程序邏輯器件APEX20K、FLEX10K和FLEX6000雖應(yīng)用廣泛,但由于其內(nèi)部采用SRAM存儲配置數(shù)據(jù),每次系統(tǒng)上電時(shí),必須用配置芯片對其進(jìn)行配置,只有在配置正確的情況下,系統(tǒng)才能正常工作。配置芯片是一個(gè)能產(chǎn)生配置時(shí)序的ROM,分為一次編程型和可擦除型兩種,一次編程型芯片只能寫入一次,不適合開發(fā)階段反復(fù)調(diào)試和修改,可擦除型芯片價(jià)格昂貴且擦寫次數(shù)有限(100次左右),增加了開發(fā)成本。而且,由于ALTERA公司提供的配置芯片容量有限,對于容量很大的可編程邏輯器件,需要一片以上的配置芯片組成菊花鏈形進(jìn)行配置,這無疑加大了設(shè)計(jì)復(fù)雜度和開發(fā)成本。
目前,在可編程邏輯器件的開發(fā)階段多采用可擦寫的配置芯片,例如EPC2LC20,最終產(chǎn)品采用不可擦寫的配置芯片,例如EPC1441PC8。至今還沒有低成本的可擦寫配置芯片出現(xiàn),而我們采用單片機(jī)與外部串行EEROM組成的配置板可實(shí)現(xiàn)對一次編程型和可擦除型配置芯片的無縫替代。它可以代替不同型號、不同容量芯片,可實(shí)現(xiàn)反復(fù)擦寫(1000K次)且用戶無須增加任何附加電路(實(shí)現(xiàn)無縫替代),并支持多電壓配置。
PS配置方式分析
配置方式分為主動、被動以及邊界掃描配置方式。我們主要討論被動配置方式,被動配置方式又可分為被動串行(PS)、被動異步串行(PSA)、被動同步并行(PPS)和被動異步并行(PPA)。無論哪種方式均是由配置器件控制配置時(shí)序,并在控制信號的作用下向目標(biāo)器件傳送串行/并行數(shù)據(jù)流。不同的配置方式有不同的配置時(shí)序,可針對不同系列的CPLD器件。
對于FLEX10系列芯片,比較常用的是采用PS方式進(jìn)行配置,PS方式配置時(shí)的管腳及控制信號的功能如下:
MSEL1, MSEL0: 選擇配置方式。均接地,為PS方式。
CONF_DONE: 此信號需經(jīng)1K電阻上拉。配置過程中,10K電阻將此信號拉低,成功配置完畢后,芯片釋放端口,由上拉電阻將其電平抬高。
nSTATUS: 配置狀態(tài)的監(jiān)測信號。此信號需經(jīng)1K電阻上拉。配置過程中,出現(xiàn)低電平表明配置過程出現(xiàn)錯(cuò)誤,需重新配置。
DATA0:串行配置數(shù)據(jù)流的輸入。
DCLK:串行配置的時(shí)鐘輸入,用于鎖存外部數(shù)據(jù)。
NCONFIG:啟動配置的信號。
被動串行工作過程:當(dāng)NCONFIG產(chǎn)生下降沿脈沖時(shí)啟動配置過程。在DCLK出現(xiàn)上升沿時(shí),芯片將一位數(shù)據(jù)傳入內(nèi)部,直至所有數(shù)據(jù)都被移入。在配置過程中,系統(tǒng)需要實(shí)時(shí)監(jiān)測,一旦出現(xiàn)錯(cuò)誤,NSTATUS被拉低,系統(tǒng)必須能識別這個(gè)信號,并重新啟動配置過程。配置數(shù)據(jù)全部正確的移入芯片內(nèi)部后,CONF_DONE信號跳變?yōu)楦?此后,DCLK必須再提供10個(gè)周期的時(shí)鐘,確保芯片被正確初始化,進(jìn)入用戶工作模式。時(shí)序圖如圖1。
配置文件的異同
用ALTERA的MAX+PLUS II或Qnaitus開發(fā)工具對設(shè)計(jì)項(xiàng)目進(jìn)行編譯后,會產(chǎn)生幾種配置或編譯文件,用于不同配置方式的配置系統(tǒng)。而對于不同系列的目標(biāo)器件,配置數(shù)據(jù)的大小也不同。每種文件都可以從另外一種文件生成,搞清楚各種文件的異同對于上電配置是非常關(guān)鍵的。
* SRAM目標(biāo)文件(.Sof):用于PS方式,直接配置目標(biāo)器件,文件中前81字節(jié)為頭信息,為ASIIC代碼記錄用戶的使用信息。其它文件都是從SOF文件中生成的,在數(shù)據(jù)流的格式和用途上有所區(qū)別。
*編程目標(biāo)文件(.pof):用作配置文件裝入配置器件(如EPC2、EPC1、EP1441)中。
*二進(jìn)制文件(.rbf):包含全部配置數(shù)據(jù),用于微處理器做配置時(shí)的數(shù)據(jù)流,rbf 文件決定了配置該器件所需數(shù)據(jù)量的大小。
*文本文件(.Ttf):包含全部配置數(shù)據(jù),用于微處理器做配置時(shí)的數(shù)據(jù)流。Ttf文件存放了最原始的配置數(shù)據(jù),即數(shù)據(jù)不含有任何附加的文件格式(頭尾標(biāo)識字節(jié)),可以直接復(fù)制到單片機(jī)程序最后,用偽指令DB做成數(shù)據(jù)表TAB,配合指令MOV DPTR,#TAB和MOVC A,@A+DPTR 進(jìn)行查表取數(shù)據(jù)。
* HEX文件(.hex): Intel 16進(jìn)制格式下為ASCII文件。包含全部配置數(shù)據(jù),用于微處理器做配置時(shí)的數(shù)據(jù)流。第一行為7個(gè)字節(jié)的頭信息,每一行開頭4個(gè)字節(jié),結(jié)尾1個(gè)字節(jié),為標(biāo)識字節(jié),中間部分與*.ttf的數(shù)據(jù)相同,為有用的配置數(shù)據(jù)。最后一行是4個(gè)字節(jié)的尾信息。
用單片機(jī)配置的設(shè)計(jì)思路
和實(shí)現(xiàn)
把配置管腳與單片機(jī)的I/O口(如P1口)相連,對單片機(jī)編程仿真PS方式配置時(shí)序,由于配置數(shù)據(jù)的數(shù)據(jù)量較大,可將其存入外部ROM,在這里選用ATMEL的AT24C256串行EEPROM,體積小(8PIN)存儲量大(256K bit),可重復(fù)擦寫1000K次以上。
在實(shí)際使用中,把配置板插在PS方式下載線的十針插頭上,所以配置板的電源由目標(biāo)板提供,由于不同的系統(tǒng)采用的電壓不同,所以要求配置板必須可以適應(yīng)多電壓。所以要求我們選取的單片機(jī)和串行EEPROM必須支持多電壓工作。
在配置過程中,單片機(jī)必須嚴(yán)格控制信號的時(shí)序。nCONFIG的啟動低脈沖寬度至少為2ms。
DCLK的第一個(gè)上升沿在nCONFIG的上升沿后延遲5ms。DCLK的周期至少為60ms。
以同樣原理還可以同時(shí)配置多個(gè)目標(biāo)器件,原理圖如圖3。
第一個(gè)器件的信號nCEo,在配置完畢后跳變?yōu)榈?從而激活第二個(gè)器件。所有待配置器件的CONF_DONE需連接在一起,使所有器件同時(shí)初始化完畢,同時(shí)進(jìn)入用戶模式。
設(shè)計(jì)優(yōu)化
實(shí)驗(yàn)過程中我們用80C51系列的單片機(jī),但它體積大,不適合代替專用芯片用于設(shè)計(jì)開發(fā)的產(chǎn)品中,而且80C51單片機(jī)不支持多電壓運(yùn)行。綜合考慮后,我們選用MSP430系列的F1121型單片機(jī),它是一種FLASH型超低功耗16位單片機(jī),20個(gè)管腳,表貼封裝,體積非常小,內(nèi)部具有數(shù)控晶振,看門狗定時(shí)器, 不用附加任何外圍電路即可工作,有效的節(jié)省了配置電路板的面積,且在體積減小的同時(shí)資源卻比80C51單片機(jī)豐富,帶有3個(gè)捕捉/比較寄存器的16位定時(shí)器,2個(gè)具有中斷功能的8位并行端口,4KB ROM, 256B RAM。F1121單片機(jī)支持多電壓工作,可以使配置板適應(yīng)不同的電壓。F1121的FLASH型主存儲器,通過JTAG控制器可以實(shí)現(xiàn)程序代碼的下載,實(shí)現(xiàn)運(yùn)行控制和對現(xiàn)場進(jìn)行觀察與修改,方便、直觀。
結(jié)語
我們最終設(shè)計(jì)的配置板PCB尺寸為2cm×3cm,根據(jù)要配置的CPLD的型號(即容量)來選取容量適中的EEPROM,由于MSP430單片機(jī)和EEPROM工作電壓范圍很寬,配置板可以支持5V和3.3V系統(tǒng)的配置。通過我們對Altera不同型號芯片和不同電壓系統(tǒng)的試驗(yàn),我們開發(fā)的配置板完全可以在不改動原有電路的基礎(chǔ)上對Altera的配置器件進(jìn)行無縫替代。目前,已有很多人使用過我們的配置板,對于不同型號的芯片和不同電壓的系統(tǒng)都達(dá)到了成功配置?!?/P>
參考文獻(xiàn):
1. ALTERA Digital Library 2000 Version 6.
2. MSP430系列FLASH型超低功耗16位單片機(jī) 北京航天航空大學(xué)出版社 胡大可.
圖1 PS方式配置時(shí)序圖
圖2 配置單個(gè)器件
圖3 配置多個(gè)器件
評論