基于CPLD的TMS320F2812硬件平臺(tái)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
TMS320F2812是美國(guó)德州儀器公司推出的C2000 家族中最新一代產(chǎn)品。先進(jìn)的內(nèi)部和外設(shè)結(jié)構(gòu)使得該處理器主要用于大存儲(chǔ)設(shè)備管理、高性能的控制場(chǎng)合。在F2812構(gòu)成的應(yīng)用系統(tǒng)中,需要設(shè)計(jì)一些邏輯控制電路來(lái)保證系統(tǒng)正常有序地工作。這里,我們采用CPLD 來(lái)設(shè)計(jì)外圍電路的譯碼及邏輯控制,使DSP 系統(tǒng)達(dá)到小型化、集成化和高可靠性。
2 CPLD在TMS320F2812系統(tǒng)中的應(yīng)用
2.1 TMS320F2812介紹
TMS320F2812 數(shù)字信號(hào)處理器是在F24X的基礎(chǔ)上開發(fā)的高性能定點(diǎn)芯片。能夠運(yùn)行24x 開發(fā)的代碼程序,并且F2812 采用32bit 操作大大提高了處理能力。它的主要特點(diǎn)如下:
● 采用高性能的靜態(tài)CMOS 技術(shù),主頻可以工作在150 MHZ(時(shí)鐘周期可達(dá)6.67ns);
● 高性能的 32 位中央處理器,可以進(jìn)行16 位X16 位以及32 位X32 位的乘且累加操作;
● 片內(nèi)大容量存儲(chǔ)器,128 K×16 bits 的Flash 和18 K×16 bits 的數(shù)據(jù)/程序存儲(chǔ)器;
● 高速外設(shè)接口,最多可擴(kuò)展1.5 M×16 bit 存儲(chǔ)器;
● 3 個(gè)32-bit CPU 定時(shí)器,其中CPU 定時(shí)器1 和CPU 定時(shí)器2 被保留用作實(shí)時(shí)操作系統(tǒng)OS。CPU 定時(shí)器0 可供用戶使用,作為獨(dú)立的,全局性的定時(shí)中斷控制;
● 具有 12-bit 的 ADC 流水線變換時(shí)間最小60 ns,單變換200 ns;可選擇兩個(gè)時(shí)間管理器觸發(fā)功能;
● 改進(jìn)的 eCAN 2.0B 接口模塊;
● 多種串行通信接口(2 個(gè)UART、1 個(gè)SPI 及1 個(gè)MCBSP);
● 高性能低功耗,采用1.8V 內(nèi)核電壓和3.3V外圍接口電壓;
2.2 硬件結(jié)構(gòu)介紹
我們采用 Alter 公司的EPM7064S 芯片來(lái)完成內(nèi)部邏輯管理及與總線接口工作。該芯片采用快閃存儲(chǔ)技術(shù)(FastFLASH),功耗較低。宏單元數(shù)達(dá)到64 個(gè),完全滿足設(shè)計(jì)的邏輯要求。引腳到引腳的延時(shí)為4ns,計(jì)數(shù)器頻率可達(dá)151MHZ。其輸出電壓為3.3V 或5V,可以通過(guò)設(shè)置VCCIO 引腳來(lái)選擇不同的輸出電壓。I/O 引腳可接受5V、3.3V 和2.5V 的混合電壓輸入,在多電源混合系統(tǒng)中,這一特性非常有用,可以節(jié)省大量的電平轉(zhuǎn)換器。
TMS320F2812 應(yīng)用系統(tǒng)需要外擴(kuò)一些必要的電路,包括支持內(nèi)部程序運(yùn)行的RAM 和EEROM,以及D/A 轉(zhuǎn)換電路等,其系統(tǒng)結(jié)構(gòu)框圖如圖1 所示:
2.2.1 數(shù)模轉(zhuǎn)換器的應(yīng)用
在 TMS320F2812 中,片外擴(kuò)展是通過(guò)TMS320F2812 中的外設(shè)接口XINTF 來(lái)實(shí)現(xiàn)的。
它類似于C240X 的外部接口,但也做了改進(jìn):
?。?)在C240X中,程序存儲(chǔ)空間、數(shù)據(jù)存儲(chǔ)空間和I/O 空間映射在相同的地址(0000~FFFF),對(duì)它們的訪問通過(guò)控制線( DS , PS , IS )來(lái)區(qū)分;而在F2812 中,外部存儲(chǔ)器接口分成了5個(gè)固定的存儲(chǔ)映像區(qū)域,可尋址1MB 的片外存儲(chǔ)器空間,具有獨(dú)立的地址,沒有了控制線( DS , PS , IS )。
?。?) 每個(gè) F2812 的XINTF 區(qū)都有一個(gè)片選信號(hào)。其中,有的區(qū)域的片選信號(hào)在內(nèi)部是“與”在一起的,組成了一個(gè)共享的芯片選擇,比如XZCS0 和XZCS1共享一個(gè)片選信號(hào)XZCS0AND1,XZCS6和XZCS7共享一個(gè)片選信號(hào)XZCS6AND7。在這種方式下,同一個(gè)存儲(chǔ)器可被連到兩個(gè)區(qū)或者我們可以用外部譯碼邏輯來(lái)區(qū)分這兩個(gè)區(qū)。
(3)5 個(gè)固定的存儲(chǔ)映像區(qū)域的每一個(gè)區(qū)還可以分別指定等待狀態(tài)數(shù),選通信號(hào)的建立時(shí)間,激活時(shí)間和保持時(shí)間。這些特征使得接口與外部存儲(chǔ)器及外設(shè)脫離了聯(lián)系,可以靈活獨(dú)立地進(jìn)行外部擴(kuò)展。在本次設(shè)計(jì)中,除了液晶除了液晶顯示模塊和鍵盤外,所有的外擴(kuò)寄存器和存儲(chǔ)器全部映射在XINTFZONE 2(0x080000~0x0FFFFF)譯碼的空間內(nèi)。我們使用了DAC7625 作為數(shù)模轉(zhuǎn)換芯片,該芯片為4 通道12 位雙緩沖的DAC 芯片,工作電壓可以是+5V 或-5V~+5V 的模擬電壓。
輸出電壓是0~3.3V 的直流電壓。功能框圖如圖2 所示:
其中,DAC7625 芯片中LDAC 引腳為載入DAC 引腳,當(dāng)為低電平時(shí),所有寄存器為透明,保持寄存器里的數(shù)據(jù)送到轉(zhuǎn)換器輸出通道;A1、A0 引腳為寄存器選擇引腳,CPLD根據(jù)地址總線譯碼選通不同的A1、A0 組合,從而將1 ~ 4 通道的保持寄存器映射到0xC0000~0xC0003 的地址空間。此外,我們還設(shè)計(jì)了傳送寄存器(DACTLR),映射地址為0xC0004,這個(gè)寄存器的所有數(shù)據(jù)位都無(wú)效,既不可讀也不可寫。對(duì)這個(gè)寄存器執(zhí)行任何讀或?qū)懖僮鞫紩?huì)產(chǎn)生一個(gè)內(nèi)部信號(hào),將LDAC 引腳置為低電平,啟動(dòng)轉(zhuǎn)換器工作。其中,整個(gè)譯碼邏輯都是由CPLD 芯片完成。下面介紹譯碼邏輯的部分VHDL 語(yǔ)言描述:[!--empirenews.page--]
process(reset,xzcs2)
begin
if(reset=’0’) then
daccs<=’1’;daca0<=’1’daca1<=’1’; --復(fù)位狀態(tài)
--選通0xC0000~0xC0003
elsif(xzcs2='0' and a18='1' and a17=’0’ and a16=’0’ and a3=’0’ and a2=’0’) then
daccs<='0';
case a1_a0(1downto 0) is
when "00"=>dac_a1_a0<="00";--選擇A,B,C,D 數(shù)據(jù)保持通道
when "01"=>dac_a1_a0<="01";
when "10"=>dac_a1_a0<="10";
when "11"=>dac_a1_a0<="11";
when thers=>null;
end case;
--選通傳送寄存器
elsif(xzcs2='0' and a18='1' and a3=’0’ and a2=’1’and a1_a0=”00”) then
daccs<='0';
ldac<=’0’;
end if;
end if;
end if;
end process;
2.2.2 串行非易失型存儲(chǔ)器X25650芯片的應(yīng)用
在這里,我們外擴(kuò)了SPIOER 寄存器來(lái)控制DSP 與X25650 的SPI 接口,它的作用是連A18-A0XZCS2XWETMS320F2812XR/WD11-D0CSA0A1LDACDAC7625R/WDB11-DB0CPLD 譯碼邏輯daccsdaca0daca1DACTLR ldac圖 2通或割斷DSP 與X25625 的連接。當(dāng)需要F2812 的SPI 接口與SPI515(SPI 接口型)仿真器連接,實(shí)現(xiàn)仿真操作時(shí),可以通過(guò)寄存器屏蔽SPI 對(duì)X25650 的操作。SPIOER 控制寄存器的地址為0xC0002,使用了外部總線來(lái)對(duì)其進(jìn)行讀寫,它的使用:
SPIOE 位:當(dāng)SPIOE 位為“1”時(shí),DSP 與X25650 各引腳接通;當(dāng)為“0”時(shí)各個(gè)引腳斷開,此時(shí),DSP 上的SPI 引腳為高阻態(tài),可以連接其他設(shè)備。上電復(fù)位時(shí)為“1”。該寄存器由CPLD 內(nèi)部編程構(gòu)成。
在 F2812 中,SPI 模塊支持125 種不同的波特率,通過(guò)向波特率寄存器(SPIBRR)寫入設(shè)定值,可以與不同速率要求的外設(shè)通信。其波特率設(shè)定如下:
當(dāng) SPIBRR=3-127 時(shí), SPI 波特率=LSPCLK/(SPIBRR+1)。當(dāng)SPIBRR=0,1,2 時(shí), SPI波特率=LSPCLK/4在這里:LSPCLK=設(shè)備的低速外圍時(shí)鐘頻率。SPIBRR=主SPI 設(shè)備中SPIBRR 的內(nèi)容。
這里,通過(guò)配置低速外設(shè)時(shí)鐘預(yù)定標(biāo)器寄存器(LOSPCP)和SPI 波特率寄存器(SPIBRR)中的內(nèi)容,使DSP 的波特率達(dá)到5MHZ,滿足X25650 的要求。
2.2.3 字符型液晶顯示器的應(yīng)用
本系統(tǒng)將字符型液晶顯示器MDL(S)16263 作為DSP 的一個(gè)慢速顯示設(shè)備,映射在XZCS6 區(qū)域。該模塊共有11 條信號(hào)線,RS 是寄存器選擇,低電平選擇指令寄存器,高電平選擇數(shù)據(jù)寄存器。R/W 是讀寫控制端,低電平寫顯示模塊,高電平讀顯示模塊。E 為允許輸入信號(hào)線(數(shù)據(jù)讀寫操作允許信號(hào)),高電平有效。DB0~DB7 為數(shù)據(jù)線。
但是相比較 DSP 而言,LCD 是慢速設(shè)備,在設(shè)計(jì)器件時(shí)要考慮時(shí)序匹配問題,加入合適的等待狀態(tài)。該液晶模塊讀寫周期Tcyc 最小為1000ns,脈沖寬度Pw 最小為450ns,讀寫操作數(shù)據(jù)保持時(shí)間最小為10ns,而F2812 的XINTF 外設(shè)接口的讀寫訪問默認(rèn)情況下為最大值,為26 個(gè)XTIMCLK 周期(XTIMCLK 默認(rèn)為SYSCLK/2,13ns.),也就是說(shuō)最大讀寫周期為346ns,其中讀或?qū)懺L問的建立階段默認(rèn)為6 個(gè)XTIMCLK 周期、激活階段默認(rèn)為14 個(gè)XTIMCLK 周期、跟蹤階段默認(rèn)為6 個(gè)XTIMCLK 周期。因此,讀寫周期需要加入等待狀態(tài)。
當(dāng)對(duì)DSP 的XREADY 引腳采樣為低電平時(shí),激活階段將擴(kuò)展一個(gè)XTIMCLK 周期,在下一個(gè)XTIMCLK 周期期間,XREADY 再次被采樣。這一個(gè)過(guò)程一直被采樣,直至XREADY采樣為高,正常地完成訪問。這里,我們利用CPLD 芯片將DSP 的XREADY 信號(hào)置為低電平,保持50 個(gè)XTIMCLK 周期,從而產(chǎn)生合適的等待狀態(tài)。如圖3 所示:
3 結(jié)論
本系統(tǒng)的開發(fā)采用了 DSP+CPLD 的結(jié)構(gòu),這種結(jié)構(gòu)將DSP 較強(qiáng)的數(shù)據(jù)運(yùn)算能力與CPLD 的高集成性、硬件可重復(fù)編程性結(jié)合在一起,使系統(tǒng)的設(shè)計(jì)過(guò)程更加的合理、緊湊和簡(jiǎn)化。并且,該系統(tǒng)經(jīng)過(guò)擴(kuò)展后可以應(yīng)用在工業(yè)控制的多種場(chǎng)合,具有一定的實(shí)際參考價(jià)值。