在 TMS320F2812 中,片外擴(kuò)展是通過TMS320F2812 中的外設(shè)接口XINTF 來實(shí)現(xiàn)的。
它類似于C240X 的外部接口,但也做了改進(jìn):
(1)在C240X中,程序存儲(chǔ)空間、數(shù)據(jù)存儲(chǔ)空間和I/O 空間映射在相同的地址(0000~FFFF),對(duì)它們的訪問通過控制線( DS , PS , IS )來區(qū)分;而在F2812 中,外部存儲(chǔ)器接口分成了5個(gè)固定的存儲(chǔ)映像區(qū)域,可尋址1MB 的片外存儲(chǔ)器空間,具有獨(dú)立的地址,沒有了控制線( DS , PS , IS )。
(2) 每個(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ū)或者我們可以用外部譯碼邏輯來區(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ù)位都無效,既不可讀也不可寫。對(duì)這個(gè)寄存器執(zhí)行任何讀或?qū)懖僮鞫紩?huì)產(chǎn)生一個(gè)內(nèi)部信號(hào),將LDAC 引腳置為低電平,啟動(dòng)轉(zhuǎn)換器工作。其中,整個(gè)譯碼邏輯都是由CPLD 芯片完成。下面介紹譯碼邏輯的部分VHDL 語言描述:

?
2.2.2 串行非易失型存儲(chǔ)器X25650芯片的應(yīng)用
在這里,我們外擴(kuò)了SPIOER 寄存器來控制DSP 與X25650 的SPI 接口,它的作用是連A18-A0XZCS2XWETMS320F2812XR/WD11-D0CSA0A1LDACDAC7625R/WDB11-DB0CPLD 譯碼邏輯daccsdaca0daca1DACTLR ldac圖 2通或割斷DSP 與X25625 的連接。當(dāng)需要F2812 的SPI 接口與SPI515(SPI 接口型)仿真器連接,實(shí)現(xiàn)仿真操作時(shí),可以通過寄存器屏蔽SPI 對(duì)X25650 的操作。SPIOER 控制寄存器的地址為0xC0002,使用了外部總線來對(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 種不同的波特率,通過向波特率寄存器(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)容。
這里,通過配置低速外設(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.),也就是說最大讀寫周期為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è)過程一直被采樣,直至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ì)過程更加的合理、緊湊和簡(jiǎn)化。并且,該系統(tǒng)經(jīng)過擴(kuò)展后可以應(yīng)用在工業(yè)控制的多種場(chǎng)合,具有一定的實(shí)際參考價(jià)值。
評(píng)論