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