DSP與單片機通訊方式解析方案
MCS51采用方式0,同步串行通訊時鐘為0.5MHZ,單片機做主機,DSP做從機。當(dāng)系統(tǒng)開始工作時,DSP的SPISTE(SPI從動發(fā)送使能腳)作為普通I/O口發(fā)送DSP的選通信號(初始化SPISTE=1),當(dāng)單片機的P1.0口檢測到SPISTE的下降沿時,開始由TXD口輸出同步時鐘脈沖并通過RXD接收數(shù)據(jù)。同理當(dāng)DSP檢測到單片機由P1.3(初始化為1)的下降沿后,即接收到網(wǎng)絡(luò)主控制器送出的SPICLK信號,開始接收由主機發(fā)送的數(shù)據(jù),然后將SPISIMO引腳上的數(shù)據(jù)移入到SPIDAT寄存器。如果從DSP同時也發(fā)送數(shù)據(jù),則必須在SPICLK信號開始之前把數(shù)據(jù)寫入到SPIRXBUF或SPIDAT寄存器中去。
SPI的接口有四種不同的波特率設(shè)置,時鐘可以進行極性的選擇,有效沿選擇和相位選擇等等。在這里由于DSP的SPICLK使用MCS51單片機的時鐘頻率,故在這里可以不設(shè)置SPICLK,只需保證DSP的工作頻率不低于單片機通過TXD口轉(zhuǎn)換的時鐘頻率即可。需要注意的是,DSP在通過SPI進行數(shù)據(jù)傳輸時,是先傳送高8位在傳送低8位,這就需要在單片機中斷服務(wù)子程序中設(shè)定字符反轉(zhuǎn)程序。DSP和單片機均采用中斷方式發(fā)送并且接收數(shù)據(jù),下面給出DSP作為從機發(fā)送數(shù)據(jù),單片機作為主機接收數(shù)據(jù)的軟件流程圖:
5 結(jié) 論
在設(shè)計DSP與單片機通訊接口時,由于一般情況下對傳輸速率以及傳輸距離沒有太多要求,所以僅利用SCI基本可以滿足設(shè)計要求,但在較為復(fù)雜的數(shù)字化UPS系統(tǒng)之中通常需要兩片或者多片DSP共同控制,在DSP與另外一塊DSP通訊之中需要利用剩余的SPI口,在主從雙DSP通訊設(shè)計中更為簡單易行。當(dāng)另外一塊DSP與單片機進行通訊時,由于單片機的串口已經(jīng)被占用,故可以考慮通過SCI口與單片機的外圍中斷 來實現(xiàn),當(dāng) 接收到一個下降沿的中斷,就認(rèn)為是串行數(shù)據(jù)的起始位到達(dá)了,而后利用設(shè)定好的波特率進行各位數(shù)據(jù)讀取即可。
評論