用DSP實(shí)現CPLD多方案現場(chǎng)可編程配置
1 總體描述
系統中的DSP采用TI公司的定點(diǎn)數字信號處理器TMS320C5402。它采用4總線(xiàn)4級流水線(xiàn)的增強型哈佛結構,處理速度為100MIPS;具有片內4K×16位的ROM和16K×16位的DARAM, 2個(gè)多通道緩沖串行口(McBSP),1個(gè)直接存儲控制器(DMA)等片內外圍電路;外部可擴展至1M×16位存儲空間,芯片采用3.3V電源電壓。
TMS320C5402的多通道緩沖串行口(multi-channel buffercd scrial port)具備標準串行口的所有功能,可設定收發(fā)數據格式(8位~32位);在8位不擴展模式下,可選擇高位(MSB)先送或低位(LSB)先送。直接存儲控制器(DMA)可以實(shí)現數據在串行口McBSP和內部DARAM間的直接交換, 提高工作效率, 節省運行時(shí)間。
CPLD采用Altera公司FLEX10K系列的EPFl0KIOA7C144-1??捎觅Y源有576個(gè)邏輯單元(LE)、72個(gè)邏輯陣列塊(LAB)、3個(gè)嵌入式陣列塊(EAB)和102個(gè)I/O引腳,電源電壓為3.3V。
FLEX1OK的配置由Altera的專(zhuān)用串行配置PROM(EPCI)或系統控制器提供的數據宋完成,也由編程硬件通過(guò)下載電纜 (BytcBlastcrMV)進(jìn)行在線(xiàn)配置。依據控制配置過(guò)程的器件不同, 可將配置分為主動(dòng)配置和被動(dòng)配置兩類(lèi);依據配置數據流的格式不同,可將配置分為串行配置和并行配置兩類(lèi)。本文采用的是在微處理器控制下的被動(dòng)串行配置(passivc serial)模式。配置連接示意如圖1所示。
其中,DSP的XF作為輸出控制CPLD的nCONFIG,INTO和INT1作為輸入監控CPLD的nSTATUS和1NT DONE,緩沖串行口的BCLKX0和BDX0分別接CPLD的DCLK和DATA0,BCLKR0 作為輸入端檢測CONF DONE的信號。TMS320C5402和EPFl0KIOATC144-1都采用3.3V電源電壓。
2 配置數據的獲取和存儲
對CPLD的配置設計完成以后,MAX+PLUS II的編譯器在編譯過(guò)程中自動(dòng)產(chǎn)生一個(gè)存儲器目標文件(*.sof)。它包括一個(gè)專(zhuān)用數據頭和二進(jìn)制配置數據,供下載電纜(BvtcBlastcrMV)對器件進(jìn)行被動(dòng)申行配置時(shí)使用。在存儲器目標文件(*.sof)的基礎上,可以生成其它類(lèi)型配置文件。我們所用到的是十六進(jìn)制文件(*.hex),是ASCII形式的配置數據文件。使用MAX+PLUSII生成十六進(jìn)制文圖2十六進(jìn)制文件(*.hex)的生成過(guò)程件(*hex)的過(guò)程,如圖2所示。
?、偻瓿删幾g之后,從“FILE”菜單中選擇“ConvertSRAM Object Files|…”(圖中a);
?、谶x擇相應的配置文件*.sof(圖中b);
?、墼O定輸出文件格式為.hex(圖中c);
?、苓x擇對應輸出文件•.hex(圖中d);
?、蔹c(diǎn)擊“OK”確認(圖中e)。
然后,在MAx+PLUSII環(huán)境下打開(kāi)生成的十六進(jìn)制文件(*.hex),便可獲取到ASCIl格式的配置數據。將配置數據通過(guò)DSP的開(kāi)發(fā)軟件轉化成二進(jìn)制數據,通過(guò)DSP存入其外部大容量數據存儲器(flash memory)中。
EPF10K10ATCl44_1的二進(jìn)制配置數據大小約為120000位,即14.6KB。TMS320C5402的內部DARAM為16K×16位,外部存儲空間為lM×1 6位,故可存儲數十個(gè)配置文件。
1NT—DONE一狀態(tài)指示端,配置時(shí)為低,配置數據初始化完成后釋放,漏極開(kāi)路;
DCLK一配置時(shí)鐘信號端;
DATA0——配置數據輸入端。
被動(dòng)串行配置(PS模式)的時(shí)序如圖3所示。
圖3中關(guān)鍵的時(shí)序參數如表1所列。
3.2配置過(guò)程描述
參照被動(dòng)串行配置時(shí)序,DSP控制下CPLD現場(chǎng)配置的實(shí)現過(guò)程如下所述。
首先,DSP將一個(gè)方案的配置數據從外部數據存儲器中讀入內部DARAM。然后,在DCONFIG上產(chǎn)生一個(gè)由低到高的跳變,使CPLD進(jìn)入配置狀態(tài),等待CPLD釋放nSTATUS。nSTATuS變高之后,通過(guò)McBSP在時(shí)鐘(DCLK)上升沿將配置數據逐位送到DATA0上,時(shí)鐘(DCLK)頻率選為10MHz。因為配置要求每字節數據的最低位(LSB)先送出,故在初始化McBSP時(shí),設定發(fā)送控制寄存器(XCRl和XCR2),使McBSP工作于8位不擴展傳送模式和低位(LsB)先發(fā)模式,DMA完成數據從DARAM到
McBSP口的直接傳送。CPLD接收完所有配置數據 (120 000字節)后,會(huì )釋放CONF_DONE,變成高電平,之后DSP仍須在DCLK上輸出脈沖來(lái)初始化CPLD器件,直到INT_DONE被釋放變成高電平,表示CPLD器件初始化完畢,進(jìn)入用戶(hù)狀態(tài),配置過(guò)程結束。在配置的過(guò)程中,沒(méi)有握手信號。一旦CPLD檢測到出錯,會(huì )將nSTATus拉低,此時(shí)會(huì )產(chǎn)生DSP外部中斷。DSP響應中斷后,在nCONFIG上產(chǎn)生一個(gè)由低到高的跳變,重新開(kāi)始配置,或者DSP檢測到配置出錯,也要強制重新開(kāi)始配置。
配置結束后,DSP和CPLD將工作于該方案模式下。當需要進(jìn)入其它方案模式時(shí),DSP按照需求讀入新的配置方案數據,對CPLD重新進(jìn)行配置。由于 DSP的高處理速度(100MIPS)和配置時(shí)鐘的高頻率(10MHz),使得CPLD的配置時(shí)間小于20ms,因此可以快速、靈活地實(shí)現各配置方案間的現場(chǎng)實(shí)時(shí)切換。
結語(yǔ)
在繼電保護測試裝置中,要求測試端的輸入輸出特性隨被測試線(xiàn)圈阻抗的變化而改變。CPLD作為測試端的核心器件,基于DSP實(shí)現其多方案現場(chǎng)可編程配置,實(shí)現了多種類(lèi)型繼電保護裝置通用測試器的設計。本設計的思路及方法也適用于其它DSP+CPLD/FPGA或MCU+CPLD/FPGA系統。利用系統中現有的DSP/MCU和大容量通用數據存儲器,省去專(zhuān)用的配置PROM,方便靈活地實(shí)現對CPLD的現場(chǎng)可編程配置。
評論