新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TMS320F240型DSP的SPI口的擴展

TMS320F240型DSP的SPI口的擴展

——
作者:華中科技大學(xué)電氣與電子工程學(xué)院 (武漢430074) 夏 濤 王少榮 程時杰 時間:2007-01-26 來源:《電子工程師》 收藏

1 引 言

dsp芯片,也稱數(shù)字信號處理器,是一種特殊結(jié)構(gòu)的微處理器。dsp芯片內(nèi)部采用程序和數(shù)據(jù)分開的哈佛結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的dsp指令,可以用來快速實現(xiàn)各種數(shù)字信號處理算法。因此,dsp在計算密集的實時控制領(lǐng)域得到了日益廣泛的應(yīng)用。tms320f240是目前應(yīng)用比較廣泛的一款定點dsp,它具有20mips的指令執(zhí)行速度,強大的內(nèi)部事件管理器、i/o端口和其他外圍設(shè)備。其中,串行外設(shè)接口(spi)是一個高速同步串行輸入/輸出(i/o)端口,它允許一個具有可編程長度(1到8位)的串行位流,以可編程的位傳送速率從設(shè)備移入或移出。spi通常用于dsp控制器和外部設(shè)備或其它控制器間的通訊。典型的應(yīng)用包括通過eeprom、移位寄存器、顯示驅(qū)動器和模數(shù)轉(zhuǎn)換器(adc)等設(shè)備進行外設(shè)擴展。

對于某一控制任務(wù)需要多個dsp協(xié)同完成時,dsp之間的數(shù)據(jù)交換將會很頻繁,此時,我們就可以通過spi口進行dsp之間的高速數(shù)據(jù)交換,實現(xiàn)相互間的功能擴展。這種模式的dsp之間的通訊,較通過串行通訊接口(sci)進行通訊時,速率提高近一倍,而且它還可以通過控制寄存器的talk位實現(xiàn)多個dsp之間的數(shù)據(jù)交換。當系統(tǒng)需要預(yù)先從eeprom讀出定值時,也可以通過tms320f240的spi口進行外設(shè)擴展。

2 dsp之間的擴展

在多個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ù)傳送,當預(yù)先設(shè)定的1到8位串行位流傳送完畢后,spiclk信號中止,傳送結(jié)束。對于從控制器和主控制器,數(shù)據(jù)在spiclk的一個沿從移位寄存器移出,在負跳沿鎖存到移位寄存器??梢酝ㄟ^spi的兩個時鐘模式位選擇四種不同的時鐘模式,使得兩個控制器的發(fā)送和接收同時進行,由軟件決定數(shù)據(jù)是有意義的還是啞數(shù)據(jù)。當清除從設(shè)備控制寄存器的talk位時,數(shù)據(jù)發(fā)送被禁止并且輸出線(spisomi)處于高阻態(tài)。這種情況下允許許多從設(shè)備在網(wǎng)絡(luò)上連在一起,但每次只有一個從設(shè)備被允許講。圖1是spi用于兩個控制器(一個主控制器和一個從控制器)之間通訊的典型連接方式。

本文引用地址:http://m.butianyuan.cn/article/20547.htm


splk#0h,spipri
;設(shè)置spi中斷為高優(yōu)先級
splk#07h,spiccr
;上升沿發(fā)送,有時延,字符長度為8
  在程序初始化控制寄存器后,就可以按設(shè)定值進行dsp之間的發(fā)送和接收,下面是主模式和從模式的spi子程序代碼。



為了節(jié)省中斷資源,spi一般采用查詢方式進行數(shù)據(jù)收發(fā)。

3 擴展eeprom

在開發(fā)dsp系統(tǒng)時,某些情況下會讀取或者存儲一些定值,這時我們就需要通過spi接口擴展eeprom。具有spi接口的串行eeprom均可被tms320f240直接邏輯擴展,方便易行。

x5043是xicor公司的最高時鐘速率為3.3mhz的4kbits串行eeprom,它與tms320f240型dsp的連接如圖2所示。

其軟件設(shè)置如下:

設(shè)置各控制寄存器:

tms320f240的spi接口有可選擇的四種不同的時鐘模式,如何選擇時鐘模式是它與各種擴展spi接口器件實現(xiàn)時鐘同步的關(guān)鍵。x5043的數(shù)據(jù)在時鐘下降沿從so引腳上輸出并在時鐘上升沿從si引腳上鎖存。讀操作時,在其從si引腳輸入的最低位地址所對應(yīng)的時鐘下降沿,其so引腳開始輸出數(shù)據(jù)。因此,作為主器件的dsp就選擇‘下降沿、無時延’的時鐘模式。在這種模式下,無操作時鐘時,dsp的spiclk引腳位高,當該引腳由高變低時,啟動發(fā)送。

寫子程序如下:








由于x5043是一個半雙工器件,故,在write子程序中從spibuf中讀出來的數(shù)據(jù)是無效的,同時,在read子程序中寫向spidat的數(shù)據(jù)也是無效的,只起啟動發(fā)送時鐘的作用。這一點不同于spi,spi之間的發(fā)送和接收是全雙工的,可以同時進行。

4 spi擴展在功角測量系統(tǒng)中的應(yīng)用

發(fā)電機功角是電力系統(tǒng)運行的關(guān)鍵狀態(tài)量,是電力系統(tǒng)能否穩(wěn)定運行的重要標志。功角測量系統(tǒng)就是將機端電壓整型后的方波信號前沿,減去代替空載電勢的轉(zhuǎn)子位置脈沖信號前沿,以獲得負載時的上述兩種信號的相位差值,再用空載時兩種信號的相位差減去負載時兩種信號的相位差,即得發(fā)電機的功角值。該系統(tǒng)具有很強的現(xiàn)實意義,其原理圖如圖3所示。

上述系統(tǒng)中,空載相位差是定值,一旦裝置安裝完畢,其值不變。而在實際的電力系統(tǒng)中,轉(zhuǎn)子的極對數(shù)比較多,這些空載相位差值就需要存在相應(yīng)的eeprom里,以便讀取。所以,該系統(tǒng)就通過主芯片的spi口進行串行eeprom的擴展。在系統(tǒng)上電時,dsp將初始的相位差值從eeprom導(dǎo)入內(nèi)存,進行相應(yīng)的計算后通過isa總線將所得的功角值送入主控器。這里的eeprom仍然采用的是x5043,其具體操作在上面第3節(jié)中已作過詳細的說明。

5 結(jié)束語

本文介紹了tms320f240型定點dsp的spi接口的功能擴展,其一般方法同樣適用于其它具有spi接口的dsp。多個dsp通過spi口的相互擴展可實現(xiàn)dsp之間的高速數(shù)據(jù)交換,通過spi口擴展eeprom可實現(xiàn)dsp對定值的存取。某些其它的串行設(shè)備,比如高精度的串行a/d,串行數(shù)字電位器等,也可通過類似方法進行擴展。通過這些擴展可以使dsp的功能變得更加強大,同時,深入了解這些擴展方法對于開發(fā)dsp控制裝置有著重要的意義。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉