新聞中心

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

TMS320F240型DSP的SPI口的擴(kuò)展

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

1 引 言

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

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

2 dsp之間的擴(kuò)展

在多個(gè)dsp構(gòu)成的串行通訊網(wǎng)絡(luò)中,dsp分為主模式dsp和從模式dsp。主模式dsp的數(shù)據(jù)在spisimo引腳上輸出并從spisomi上鎖存,從模式dsp的數(shù)據(jù)在spisomi引腳上輸出并從spisimo上鎖存。主模式spi為整個(gè)網(wǎng)絡(luò)提供串行時(shí)鐘spiclk,并通過(guò)寫入spidat寄存器的數(shù)據(jù)啟動(dòng)spiclk信號(hào)從而啟動(dòng)數(shù)據(jù)傳送,當(dāng)預(yù)先設(shè)定的1到8位串行位流傳送完畢后,spiclk信號(hào)中止,傳送結(jié)束。對(duì)于從控制器和主控制器,數(shù)據(jù)在spiclk的一個(gè)沿從移位寄存器移出,在負(fù)跳沿鎖存到移位寄存器。可以通過(guò)spi的兩個(gè)時(shí)鐘模式位選擇四種不同的時(shí)鐘模式,使得兩個(gè)控制器的發(fā)送和接收同時(shí)進(jìn)行,由軟件決定數(shù)據(jù)是有意義的還是啞數(shù)據(jù)。當(dāng)清除從設(shè)備控制寄存器的talk位時(shí),數(shù)據(jù)發(fā)送被禁止并且輸出線(spisomi)處于高阻態(tài)。這種情況下允許許多從設(shè)備在網(wǎng)絡(luò)上連在一起,但每次只有一個(gè)從設(shè)備被允許講。圖1是spi用于兩個(gè)控制器(一個(gè)主控制器和一個(gè)從控制器)之間通訊的典型連接方式。

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


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



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

3 擴(kuò)展eeprom

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

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

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

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

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

寫子程序如下:








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

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

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

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

5 結(jié)束語(yǔ)

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



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

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

關(guān)閉