大功率UPS中DSP與單片機(jī)的串行通訊設(shè)計(jì)
圖5 SPI接口實(shí)現(xiàn)DSP與單片機(jī)的串口通訊
74LS645功能表如表1:
MCS51采用方式0,同步串行通訊時(shí)鐘為0.5MHZ,單片機(jī)做主機(jī),DSP做從機(jī)。當(dāng)系統(tǒng)開(kāi)始工作時(shí),DSP的SPISTE(SPI從動(dòng)發(fā)送使能腳)作為普通I/O口發(fā)送DSP的選通信號(hào)(初始化SPISTE=1),當(dāng)單片機(jī)的P1.0口檢測(cè)到SPISTE的下降沿時(shí),開(kāi)始由TXD口輸出同步時(shí)鐘脈沖并通過(guò)RXD接收數(shù)據(jù)。同理當(dāng)DSP檢測(cè)到單片機(jī)由P1.3(初始化為1)的下降沿后,即接收到網(wǎng)絡(luò)主控制器送出的SPICLK信號(hào),開(kāi)始接收由主機(jī)發(fā)送的數(shù)據(jù),然后將SPISIMO引腳上的數(shù)據(jù)移入到SPIDAT寄存器。如果從DSP同時(shí)也發(fā)送數(shù)據(jù),則必須在SPICLK信號(hào)開(kāi)始之前把數(shù)據(jù)寫入到SPIRXBUF或SPIDAT寄存器中去。
SPI的接口有四種不同的波特率設(shè)置,時(shí)鐘可以進(jìn)行極性的選擇,有效沿選擇和相位選擇等等。在這里由于DSP的SPICLK使用MCS51單片機(jī)的時(shí)鐘頻率,故在這里可以不設(shè)置SPICLK,只需保證DSP的工作頻率不低于單片機(jī)通過(guò)TXD口轉(zhuǎn)換的時(shí)鐘頻率即可。需要注意的是,DSP在通過(guò)SPI進(jìn)行數(shù)據(jù)傳輸時(shí),是先傳送高8位在傳送低8位,這就需要在單片機(jī)中斷服務(wù)子程序中設(shè)定字符反轉(zhuǎn)程序。DSP和單片機(jī)均采用中斷方式發(fā)送并且接收數(shù)據(jù),下面給出DSP作為從機(jī)發(fā)送數(shù)據(jù),單片機(jī)作為主機(jī)接收數(shù)據(jù)的軟件流程圖:
5 結(jié) 論
在設(shè)計(jì)DSP與單片機(jī)通訊接口時(shí),由于一般情況下對(duì)傳輸速率以及傳輸距離沒(méi)有太多要求,所以僅利用SCI基本可以滿足設(shè)計(jì)要求,但在較為復(fù)雜的數(shù)字化UPS系統(tǒng)之中通常需要兩片或者多片DSP共同控制,在DSP與另外一塊DSP通訊之中需要利用剩余的SPI口,在主從雙DSP通訊設(shè)計(jì)中更為簡(jiǎn)單易行。當(dāng)另外一塊DSP與單片機(jī)進(jìn)行通訊時(shí),由于單片機(jī)的串口已經(jīng)被占用,故可以考慮通過(guò)SCI口與單片機(jī)的外圍中斷 來(lái)實(shí)現(xiàn),當(dāng) 接收到一個(gè)下降沿的中斷,就認(rèn)為是串行數(shù)據(jù)的起始位到達(dá)了,而后利用設(shè)定好的波特率進(jìn)行各位數(shù)據(jù)讀取即可。
參考文獻(xiàn):
[1] 劉和平,嚴(yán)利平,張學(xué)鋒,卓清鋒,TMS320LF240XDSP結(jié)構(gòu)、原理及應(yīng)用,北京:北京航空航天大學(xué)出版社,2002
[2] 尹熙鵬,段哲民,基于DSP的PWM型開(kāi)關(guān)電源的設(shè)計(jì),自動(dòng)化與儀器儀表,2005,4
評(píng)論