微控制器軟體模擬SPI介面 加深理解SPI匯流排協議

2021-08-26 09:58:54 字數 1624 閱讀 6154

spi(serial peripheral inte***cer 序列外設介面)是摩托羅拉公司推出的一種同步序列通訊介面,用於微處理器臌控制器和外圍擴充套件晶元之間的序列連線,現已發展成為一種工業標準,目前,各半導體公司推出了大量的帶有spi介面的具有各種各樣功能的晶元,如ram,eeprom,flashrom,a/d轉換器、d/a轉換器、led/led顯示驅動器、i/o介面晶元、實時時鐘、uart收發器等等,為使用者的外圍擴充套件提供了極其靈活而價廉的選擇。由於spi匯流排介面只占用微處理器四個i/o口線,採用spi匯流排介面可以簡化電路沒計,節省很多常規電路中的介面器件和i/o口線,提高設計的可靠性。

現以 at89c205l微控制器模擬spi匯流排操作序列eeprom 93ca6為例,如圖1所示,介紹利用微控制器的i/o口通過軟體模擬spi匯流排的實現方法。在這裡,僅介紹讀命令的時序和應用子程式。

93ca6作為從裝置,其spi介面使用4條i/o口線:序列時鐘線(sk)、輸出資料線do、輸入資料線di和高電平有效的從機選擇線cs。其資料的傳輸格式是高位(msb)在前,低位(lsb)在後。93c46的spi匯流排介面讀命令時序如圖2所示。

對於不帶spi序列匯流排介面的at89c2051單片 機來說,可以使用軟體來模擬spi的操作,圖1所示 為at89c2051微控制器與序列eeprom 93c46的硬體 連線圖,其中,p1.0模擬spi主裝置的資料輸出端 sdo,p1.2模擬spi的時鐘輸出端sck,p1.3模擬 spi的從機選擇端scs,p1.1模擬spi的資料輸入 sdi。

上電復位後首先先將p1.2(sck)的初始狀態設定為0(空閒狀態)。

讀操作:at89c2051首先通過p1.0口傳送1位起始位(1),2位操作碼(10),6位被讀的資料位址(a5a4a3a2a1a0),然後通過p1.1口讀1位空位(0),之後再讀l6位資料(高位在前)。

寫操作:at89c2051首先通過p1.0口傳送1位起始位(1),2位操作碼(01),6位被寫的資料位址(a5a4a3a2a1a0),之後通過p1.0口傳送被寫的l6位資料(高位在前),寫操作之前要傳送寫允許命令,寫之後要傳送寫禁止命令。

寫允許操作(wen)):寫操作首先傳送1位起始位(1),2位操作碼(00),6位資料(11***x)。

寫禁止操作(wds)):寫操作首先傳送1位起始位(1),2位操作碼(00),6位資料(00***x)。

下面介紹用c51模擬spi的子程式。

//首先定義好i/o口

sbit sdo=p1^0;

sbit sdi=p1^1;

sbit sck=p1^ 2;

sbit scs=p1^3;

sbit acc_7= acc^7;

unsigned int spiread(unsigned char add)

sck=1;/*從裝置時鐘線下降沿后傳送資料,空讀1位資料*/

sck=0;

datal6<<= 1;/*讀16位資料*/

for(i=0;<16;i++)

return datal6;

}

對於不同的序列介面外圍晶元,它們的時鐘時序是不同的。上述子程式是針對在sck的上公升沿輸入(接收)資料和在下降沿輸出(傳送)資料的器件。這些子程式也適用於在序列時鐘)的上公升沿輸入和下降沿輸出的其它各種序列外圍介面晶元,只要在程式中改變p1.2(sck)的輸出電平順序進行相應調整即可。

微控制器軟體模擬SPI介面 加深理解SPI匯流排協議

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!spi serial peripheral inte cer 序列外設介面 是摩托羅拉公司推出的一種同步序列通訊介面,用於微處理器臌控制器和外圍擴充套件晶元之間的序列連線,現已發展成為一種工業標準,目前,各半導體公司推出了大量的帶有spi介面的具有...

51微控制器 主從機模擬 spi通訊

51微控制器 主從機模擬 spi通訊 困惑我的問題 1.sck頻率的設定問題。2.提取ad資料的時機問題。spi基本知識。雙全工同步序列介面 1.工作模式 cpol 0 低電平空閒狀態 cpol 1 高電平空閒狀態 cpha 0 第乙個邊沿採集資料 第二個邊沿輸出資料 cpha 1 第二個邊沿採集資...

51微控制器 軟體模擬IIC

名稱 iic協議 內容 函式是採用軟體延時的方法產生scl脈衝,固對高晶振頻率要作一定的修改 本例是1us機器週期,即晶振頻率要小於12mhz include include iic.h bit ack 啟動匯流排 void iic start sda 1 傳送起始條件的資料訊號 scl 1 del...