基于CPLD的DSP多SPI端口通信設計
引言
本文引用地址:http://dyxdggzs.com/article/257461.htm目前在電氣自動(dòng)化控制裝置中,廣泛采用各種通信手段以完成上層與底層控制器、底層控制器以及控制芯片之間的信息傳遞,并實(shí)現相應的控制功能;各種通信功能的設計與實(shí)現已成為自動(dòng)化裝置設計的重要組成部分。本文以一種超聲波電機運動(dòng)控制裝置為應用背景,討論了基于CPLD的DSP控制芯片多SPI端口通信技術(shù)。
串行同步外設端口(SPI)通常也稱(chēng)為同步外設端口,具有信號線(xiàn)少、協(xié)議簡(jiǎn)單、傳輸速度快的特點(diǎn),大量用在微控制器與外圍芯片的通信中。目前SPI通信方式已被普遍接受,帶有SPI端口的芯片越來(lái)越多,如Flash、RAM、A/D轉換、LED顯示、控制專(zhuān)用 DSP芯片等。
本文介紹一種采用運動(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í)現在DSF??刂葡碌腜WM控制信號頻率調節[1]。由此可見(jiàn),為了實(shí)現DsP對PwM控制信號占空比、相位差及頻率的控制,需要采用適當的通信方式實(shí)現DSP與CPLD及LTC6903之間的控制信息傳遞。DSP56F801芯片具有一個(gè)SPI通信端口。本文在分析SPI 數據傳輸時(shí)序關(guān)系的基礎上,設計并實(shí)現了基于CPLD的多SPI接口通信。
1 工作原理
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é)議[2]。
SPI端口的通信網(wǎng)絡(luò )結構框圖如圖1所示。為了使信號發(fā)生器輸出可調頻、調壓和調相輸出的兩相四路PWM波,需要DSP向CPLD電路輸出參數。這4個(gè)控制參數的傳遞是在小型的通信網(wǎng)絡(luò )中實(shí)現的。在該網(wǎng)絡(luò )中,DSP的SPl只是進(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)楦唠娖?,保證數據的正確接收鎖存。
2.2鎖存器設計
鎖存器的工作特點(diǎn):當gate引腳上輸入高電平信號時(shí),鎖存器工作開(kāi)始鎖存總線(xiàn)上的數據;當gate引腳上是低電平時(shí),鎖存器不工作,即當總線(xiàn)上的數據發(fā)生變化時(shí),鎖存器的輸出不發(fā)生變化。由于本設計需要多個(gè)參數傳輸,通過(guò)地址選擇的方法把這3個(gè)數據從一條總線(xiàn)上區分出來(lái),設置傳輸數據的低兩位為地址選擇位。地址選擇位經(jīng)移位寄存器,串并轉換,作為三輸入與門(mén)的兩個(gè)輸人端,進(jìn)行地址選擇。每次16位的數據移位結束,數據穩定時(shí),在計數器高電平作用下,相應gate的引腳上輸出高電平,數據鎖存入相應的鎖存器。例如,可以設置低兩位是“ll”時(shí),DSP送入PWM電路的是ll位的調相信號;當低兩位設置成“01”時(shí),DSP送入PwM電路的是10位調節A 相占空比的信號;當低兩位設置成“10”時(shí),。DSP送入PWM電路的是10位調節B相占空比的信號。由此可以在電路中設計一個(gè)三輸入的與門(mén),當16位數據傳輸完畢,即在相應gate的引腳上輸出高電平時(shí),數據存入對應的鎖存器,如圖5所示。
評論