TMS320F240型DSP的SPI口的擴(kuò)展
以DSP之間的相互擴(kuò)展和擴(kuò)展串行EEPROM為例,討論了TI公司的TMS320F240型DSP的串行外設(shè)接口(SPI)模塊的功能擴(kuò)展。
關(guān)鍵詞:DSP,串行外設(shè)接口,功能擴(kuò)展
1 引 言
DSP芯片,也稱數(shù)字信號處理器,是一種特殊結(jié)構(gòu)的微處理器。DSP芯片內(nèi)部采用程序和數(shù)據(jù)分開的哈佛結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速實(shí)現(xiàn)各種數(shù)字信號處理算法。因此,DSP在計(jì)算密集的實(shí)時控制領(lǐng)域得到了日益廣泛的應(yīng)用。TMS320F240是目前應(yīng)用比較廣泛的一款定點(diǎn)DSP,它具有20MIPS的指令執(zhí)行速度,強(qiáng)大的內(nèi)部事件管理器、I/O端口和其他外圍設(shè)備。其中,串行外設(shè)接口(SPI)是一個高速同步串行輸入/輸出(I/O)端口,它允許一個具有可編程長度(1到8位)的串行位流,以可編程的位傳送速率從設(shè)備移入或移出。SPI通常用于DSP控制器和外部設(shè)備或其它控制器間的通訊。典型的應(yīng)用包括通過EEPROM、移位寄存器、顯示驅(qū)動器和模數(shù)轉(zhuǎn)換器(ADC)等設(shè)備進(jìn)行外設(shè)擴(kuò)展。
對于某一控制任務(wù)需要多個DSP協(xié)同完成時,DSP之間的數(shù)據(jù)交換將會很頻繁,此時,我們就可以通過SPI口進(jìn)行DSP之間的高速數(shù)據(jù)交換,實(shí)現(xiàn)相互間的功能擴(kuò)展。這種模式的DSP之間的通訊,較通過串行通訊接口(SCI)進(jìn)行通訊時,速率提高近一倍,而且它還可以通過控制寄存器的TALK位實(shí)現(xiàn)多個DSP之間的數(shù)據(jù)交換。當(dāng)系統(tǒng)需要預(yù)先從EEPROM讀出定值時,也可以通過TMS320F240的SPI口進(jìn)行外設(shè)擴(kuò)展。
2 DSP之間的擴(kuò)展
在多個DSP構(gòu)成的串行通訊網(wǎng)絡(luò)中,DSP分為主模式DSP和從模式DSP。主模式DSP的數(shù)據(jù)在SPISIMO引腳上輸出并從SPISOMI上鎖存,從模式DSP的數(shù)據(jù)在SPISOMI引腳上輸出并從SPISIMO上鎖存。主模式SPI為整個網(wǎng)絡(luò)提供串行時鐘SPICLK,并通過寫入SPIDAT寄存器的數(shù)據(jù)啟動SPICLK信號從而啟動數(shù)據(jù)傳送,當(dāng)預(yù)先設(shè)定的1到8位串行位流傳送完畢后,SPICLK信號中止,傳送結(jié)束。對于從控制器和主控制器,數(shù)據(jù)在SPICLK的一個沿從移位寄存器移出,在負(fù)跳沿鎖存到移位寄存器??梢酝ㄟ^SPI的兩個時鐘模式位選擇四種不同的時鐘模式,使得兩個控制器的發(fā)送和接收同時進(jìn)行,由軟件決定數(shù)據(jù)是有意義的還是啞數(shù)據(jù)。當(dāng)清除從設(shè)備控制寄存器的TALK位時,數(shù)據(jù)發(fā)送被禁止并且輸出線(SPISOMI)處于高阻態(tài)。這種情況下允許許多從設(shè)備在網(wǎng)絡(luò)上連在一起,但每次只有一個從設(shè)備被允許講。圖1是SPI用于兩個控制器(一個主控制器和一個從控制器)之間通訊的典型連接方式。
splk#0h,SPIPRI
;設(shè)置SPI中斷為高優(yōu)先級
splk#07h,SPICCR
;上升沿發(fā)送,有時延,字符長度為8
在程序初始化控制寄存器后,就可以按設(shè)定值進(jìn)行DSP之間的發(fā)送和接收,下面是主模式和從模式的SPI子程序代碼。
為了節(jié)省中斷資源,SPI一般采用查詢方式進(jìn)行數(shù)據(jù)收發(fā)。
3 擴(kuò)展EEPROM
在開發(fā)DSP系統(tǒng)時,某些情況下會讀取或者存儲一些定值,這時我們就需要通過SPI接口擴(kuò)展EEPROM。具有SPI接口的串行EEPROM均可被TMS320F240直接邏輯擴(kuò)展,方便易行。
X5043是Xicor公司的最高時鐘速率為3.3MHz的4Kbits串行EEPROM,它與TMS320F240型DSP的連接如圖2所示。
其軟件設(shè)置如下:
設(shè)置各控制寄存器:
TMS320F240的SPI接口有可選擇的四種不同的時鐘模式,如何選擇時鐘模式是它與各種擴(kuò)展SPI接口器件實(shí)現(xiàn)時鐘同步的關(guān)鍵。X5043的數(shù)據(jù)在時鐘下降沿從SO引腳上輸出并在時鐘上升沿從SI引腳上鎖存。讀操作時,在其從SI引腳輸入的最低位地址所對應(yīng)的時鐘下降沿,其SO引腳開始輸出數(shù)據(jù)。因此,作為主器件的DSP就選擇‘下降沿、無時延’的時鐘模式。在這種模式下,無操作時鐘時,DSP的SPICLK引腳位高,當(dāng)該引腳由高變低時,啟動發(fā)送。
寫子程序如下:
[!--empirenews.page--]
[!--empirenews.page--]
由于X5043是一個半雙工器件,故,在WRITE子程序中從SPIBUF中讀出來的數(shù)據(jù)是無效的,同時,在READ子程序中寫向SPIDAT的數(shù)據(jù)也是無效的,只起啟動發(fā)送時鐘的作用。這一點(diǎn)不同于SPI,SPI之間的發(fā)送和接收是全雙工的,可以同時進(jìn)行。
4 SPI擴(kuò)展在功角測量系統(tǒng)中的應(yīng)用
發(fā)電機(jī)功角是電力系統(tǒng)運(yùn)行的關(guān)鍵狀態(tài)量,是電力系統(tǒng)能否穩(wěn)定運(yùn)行的重要標(biāo)志。功角測量系統(tǒng)就是將機(jī)端電壓整型后的方波信號前沿,減去代替空載電勢的轉(zhuǎn)子位置脈沖信號前沿,以獲得負(fù)載時的上述兩種信號的相位差值,再用空載時兩種信號的相位差減去負(fù)載時兩種信號的相位差,即得發(fā)電機(jī)的功角值。該系統(tǒng)具有很強(qiáng)的現(xiàn)實(shí)意義,其原理圖如圖3所示。
上述系統(tǒng)中,空載相位差是定值,一旦裝置安裝完畢,其值不變。而在實(shí)際的電力系統(tǒng)中,轉(zhuǎn)子的極對數(shù)比較多,這些空載相位差值就需要存在相應(yīng)的EEPROM里,以便讀取。所以,該系統(tǒng)就通過主芯片的SPI口進(jìn)行串行EEPROM的擴(kuò)展。在系統(tǒng)上電時,DSP將初始的相位差值從EEPROM導(dǎo)入內(nèi)存,進(jìn)行相應(yīng)的計(jì)算后通過ISA總線將所得的功角值送入主控器。這里的EEPROM仍然采用的是X5043,其具體操作在上面第3節(jié)中已作過詳細(xì)的說明。
5 結(jié)束語
本文介紹了TMS320F240型定點(diǎn)DSP的SPI接口的功能擴(kuò)展,其一般方法同樣適用于其它具有SPI接口的DSP。多個DSP通過SPI口的相互擴(kuò)展可實(shí)現(xiàn)DSP之間的高速數(shù)據(jù)交換,通過SPI口擴(kuò)展EEPROM可實(shí)現(xiàn)DSP對定值的存取。某些其它的串行設(shè)備,比如高精度的串行A/D,串行數(shù)字電位器等,也可通過類似方法進(jìn)行擴(kuò)展。通過這些擴(kuò)展可以使DSP的功能變得更加強(qiáng)大,同時,深入了解這些擴(kuò)展方法對于開發(fā)DSP控制裝置有著重要的意義。