CPLD的DSP多SPI端口通信設計
本文介紹一種采用運動(dòng)控制專(zhuān)用DSP芯片DSP56F801設計的超聲波電機運動(dòng)控制裝置。由于該超聲波電機需要采用兩相四路對稱(chēng)PWM信號來(lái)實(shí)現驅動(dòng)控制,而DSP芯片無(wú)法直接產(chǎn)生所需PWM信號,采用軟件方法又會(huì )占用大量的DSP計算時(shí)間,于是設計了基于可編程邏輯器件(CPLD)的對稱(chēng)PWM信號發(fā)生器。該信號發(fā)生器在DSP的控制下,可以實(shí)現輸出兩相PWM控制信號的占空比及相位差調節;同時(shí)采用具有SPI接口的可編程振蕩器LTC6903,實(shí)現在DSP控制下的PWM控制信號頻率調節。由此可見(jiàn),為了實(shí)現DSP對PWM控制信號占空比、相位差及頻率的控制,需要采用適當的通信方式實(shí)現DSP與CPLD及LTC6903之間的控制信息傳遞。DSP56F801芯片具有一個(gè)SPI通信端口。本文在分析SPI數據傳輸時(shí)序關(guān)系的基礎上,設計并實(shí)現了基于CPLD的多SPI接口通信。
本文引用地址:http://dyxdggzs.com/article/150661.htm1 工作原理
SPI是一個(gè)同步協(xié)議接口,所有的傳輸都參照一個(gè)共同的時(shí)鐘。在同一個(gè)SPI端口可以實(shí)現一個(gè)主機芯片與多個(gè)從機芯片的相連,這時(shí)主機通過(guò)觸發(fā)從設備的片選輸入引腳來(lái)選擇從設備,沒(méi)有被選中的從設備將不參與SPI傳輸。SPI主使用4個(gè)信號:主機輸出/從機輸入(MOSI)、主機輸入/從機輸出(MISO)、串行時(shí)鐘信號SCLK和外設芯片選擇信號(SS)。主機和外設都包含一個(gè)串行移位寄存器,主機通過(guò)向它的SPI串行移位寄存器寫(xiě)入一個(gè)字節來(lái)發(fā)起一次傳輸。寄存器是通過(guò)MOSI引腳將字節傳送給從設備,從設備也將自己移位寄存器中的內容通過(guò)MISO信號線(xiàn)返回給主機。這樣,兩個(gè)移位寄存器中的內容就被交換了。外設的寫(xiě)操作和讀操作是同步完成的,因此SPI成為一個(gè)很有效的串行通信協(xié)議。SPI端口的通信網(wǎng)絡(luò )結構框圖如圖1所示。為了使信號發(fā)生器輸出可調頻、調壓和調相輸出的兩相四路PWM波,需要DSP向CPLD電路輸出參數。這4個(gè)控制參數的傳遞是在小型的通信網(wǎng)絡(luò )中實(shí)現的。在該網(wǎng)絡(luò )中,DSP的SPI只是進(jìn)行數據輸出端口的寫(xiě)操作,即輸出電壓控制字、相位控制字和頻率控制字。數據流程:主機DSP向CPLD傳輸數據,在傳輸數據時(shí),數據在MOSI引腳上輸出,同時(shí)數據在時(shí)鐘信號的作用下實(shí)現同步移位輸出。由于不需要從機向主機回送任何數據,主機在數據傳輸結束之后,結束這次傳送。由于SPI端口工作時(shí)沒(méi)有應答信號,并且數據在發(fā)送時(shí)無(wú)需校驗位,所以要求主、從器件的數據發(fā)送與接收必須完全符合設定的SPI時(shí)序要求,否則數據傳輸將出現錯誤。

2 基于CPLD的串口SPI設計
2.1 移位寄存器設計
本設計為一個(gè)12位的SPI串行接收端口。圖1中移位寄存器是由12個(gè)D觸發(fā)器和1個(gè)計數器組成的,實(shí)現移位接收和串并轉換。在傳輸過(guò)程中,先使能移位寄存器和計數器,啟動(dòng)傳輸,同時(shí)計數器開(kāi)始計數。當計數到16時(shí),進(jìn)位端輸出一個(gè)脈沖寬度的高電平脈沖,進(jìn)行數據鎖存,其電路如圖2所示。

實(shí)驗中為保證時(shí)序正確,測出了使能信號和計數器進(jìn)位脈沖的輸出時(shí)序,如圖3、圖4所示。其中十六進(jìn)制計數器采用的是上升沿計數,在第16個(gè)上升沿到來(lái)時(shí),跳變?yōu)楦唠娖?,保證數據的正確接收鎖存。


評論