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