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