摘要:1.2TMS320LF2407A2407A是TI公司為滿足工業(yè)控制應用,尤其是電機控制而設計的。把一個高性能的DSP核和許多外圍設備集成到單片內。2407A的40MIPS的處理速度可以滿足快速地處理大量數據和算法的需要。2407A具有豐富的外設模塊:3K字的Flash程序存儲器、1.5K字的數據/程序RAM、544字雙口RAM(DARAM)和2K字的單口RAM(SARAM)、2個事件
1.2 TMS320LF2407A
2407A是TI公司為滿足工業(yè)控制應用,尤其是電機控制而設計的。把一個高性能的 DSP核和許多外圍設備集成到單片內。2407A的40 MIPS的處理速度可以滿足快速地處理大量數據和算法的需要。
2407A具有豐富的外設模塊: 3K字的Flash程序存儲器、1.5K字的數據/程序RAM、544字雙口RAM(DARAM)和2K字的單口RAM(SARAM)、2個事件管理器EVA和EVB、16通道輸入的A/D轉換器,具有看門狗定時器 模塊(WDT)、串行通信接口(SCI)、16位的串行外設接口模塊(SPI)、控制器局域網絡(CAN)2.0B模塊、基于鎖相環(huán)的時鐘發(fā)生器、高達40個可單獨編程或復用的通用輸入/輸出引腳、5個外部中斷。由此可 以看出,2407A確實有著很強的實時處理能力,不失為高性能伺服驅動控制的理想器件之一[3]。
1.3 硬件接口設計與SPI通信的實現
SPI通信設備在硬件連接上只需要將主機的發(fā)送與從機的接收相連,將主機的接收與從機的發(fā)送相連,將主機產生的時鐘信號輸出至從機的時鐘引腳上。
單片機MSP430F149作為串行通信的主機, DSP 2407A則作為從機(slave)。其中,SPICLK為SPI時鐘引腳, SPISIMO為SPI從動輸入/主動輸出,SPISOMI為從動輸出/主動輸入,SPISTE為從動發(fā)送使能。
SPI通過一根時鐘引線將主機和從機同步,因此,它的串行數據交換不需要增加起始位、停止位等用于同步的格式位,直接將要傳送的數據寫入主機的SPI發(fā)送數據寄存器。這個寫入過程自動啟動主機的 發(fā)送過程,即在同步時鐘SPICLK的節(jié)拍下把SPITXBUF的內容一位一位地移到引腳SPISIMO;對于從機,同樣在SPICLK的節(jié)拍下將出現在引腳SPISIMO上的數據一位一位地移到從機的移位寄存器,當接收完 一個完整的數據塊后,設置中斷標志通知從機這個數據塊已接收完畢,并同時將移位寄存器接收到的內容復制到從機的SPI接收數據寄存器SPIRXBUF.可以看出,用戶編程只需在發(fā)送數據時寫數據到SPI 發(fā)送數據寄存器,在接收數據時讀SPI接收數據寄存器,其余的工作都由SPI模塊自動完成[4].
2 軟件設計
MSP430F149和DSP都允許用戶用C語言和匯編語言進行編程。系統(tǒng)中DSP對電機實現實時控制,對運行速度要求嚴格,所以程序采用匯編語言實現。MSP430實現按鍵顯示、數據管理和指令傳輸等功能,對運 行速度要求不高,所以采用C語言實現。
軟件設計的主要任務是:初始化相應的寄存器;單片機在相應的界面發(fā)送數據;DSP及時接收到達串口的數據,識別并保存數據。
2.1 通信協議的設置
兩個設備之間要實現相互通信,首先必須規(guī)定用以傳輸數據的協議。一般來說,主機發(fā)送命令和配置信息給從機,而從機則向主機發(fā)送反饋信息。系統(tǒng)主要實現的是單片機向DSP發(fā)送數據信息,單片機首 先發(fā)送指令數據表示主機發(fā)送數據的過程開始。如果發(fā)送的是0,則標志著該過程的開始。為了避免誤操作指令數據發(fā)送兩次,DSP接收的兩個數據都是0時進行相應的操作,否則重新傳輸指令數據。然后 把單片機需要傳輸的數據存放在一個數組里面依次傳送,比如要傳輸3個數據,則定義數組a[0]和a[1]存放指令數據,a[2]到a[4]存放需要傳送的數組。