單片機軟體類比SPI介面—加深理解SPI匯流排協議

來源:互聯網
上載者:User
單片機軟體類比SPI介面—加深理解SPI匯流排協議          SPI(Serial Peripheral Interfacer 串列外設介面)是摩托羅拉公司推出的一種同步串列通訊介面,用於微處理器臌控制器和外圍擴充晶片之間的串列串連,現已發展成為一種工業標準,目前,各半導體公司推出了大量的帶有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匯流排的實現方法。在這裡,僅介紹讀命令的時序和應用子程式。93C46儲存空間SPI匯流排的工作原理

          93CA6作為從裝置,其SPI介面使用4條I/O口線:串列時鐘線(SK)、輸出資料線DO、輸入資料線DI和高電平有效從機選擇線CS。其資料的傳輸格式是高位(MSB)在前,低位(LsB)在後。93C46的SPI匯流排介面讀命令時序2所示。
軟體類比SPI介面的實現方法 

          對於不帶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位元據(11XXXX)。                       寫禁止操作(WDS)):寫操作首先發送1位起始位(1),2位作業碼(00),6位元據(00XXXX)。
        下面介紹用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){unsigned char i;unsigned int datal6;add&=0x3f;/*6位地址*/add |=0x80;/*讀作業碼l0*/SDO=1;/*發送1為起始位*/SCK=0;SCK=1;for(i=0;<8;i++)/*發送作業碼和地址*/{if(add&0x80==1)SDO=1;else SDO=0;SCK=0;/*從裝置上升沿接收資料*/SCK=1;add<<= 1;}SCK=1;/*從裝置時鐘線下降沿後發送資料,空讀1位元據*/SCK=0;datal6<<= 1;/*讀16位元據*/for(i=0;<16;i++){SCK= 1;_nop_();if(SDI==1)datal6|=0x01;SCK =0;datal6< < =1;}return datal6;}

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.