新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于SPCE061A和PTR8000的模擬SPI總線通信技術(shù)

基于SPCE061A和PTR8000的模擬SPI總線通信技術(shù)

作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
  SPI(Serial Peripheral Interrace,串行外設(shè)接口)是摩托羅拉公司推出的一種同步串行通訊總線,用于微處理器/微控制器和外圍擴展芯片之間的串行連接,現(xiàn)已發(fā)展成為一種工業(yè)標(biāo)準(zhǔn)。訊通科技的PTR8000無限通訊模塊就是以SPI為通訊接口的器件,由于其優(yōu)越的性能被廣泛應(yīng)用于眾多領(lǐng)域。它的SPI接口需要占用微處理器四個I/O線。SPCE061A是凌陽公司的推出的具有語音功能的16位單片機,I/O資源豐富,但不具備SPI接口。在實際應(yīng)用中,出于產(chǎn)品體積、成本和可擴展性及應(yīng)用場合等方面的考慮,我們選擇二者結(jié)合組成無線通訊系統(tǒng),用軟件模擬方式實現(xiàn)SPI串口通訊,限于篇幅,僅介紹讀命令的時序和應(yīng)用子程序。此方法同樣適用于其他不具備SPI接口的MCU與SPI接口器件的通信。

  1 SPCE061A板與PTR8000硬件連接

本文引用地址:http://butianyuan.cn/article/201611/318779.htm

  圖1所示為SPCE061A單片機與PTR8000的硬件連接圖。

  2 PTRS000通訊模塊的SPI總線的工作原理

  PTR8000通訊模塊作為從設(shè)備,其SPI接口使用4條I/O口線:串行時鐘線SCK、輸出數(shù)據(jù)線MISO、輸入數(shù)據(jù)線MOSI和高電平有效的從機選擇線CSN。PTR8000的SPI總線接口讀命令時序如圖2所示。寫命令如圖3所示。

  3軟件模擬SPI接口的實現(xiàn)方法

  對于不具備SPI串行總線接口的SPCE061A單片機來說,可以使用軟件來模擬SPI的操作。圖1中IOBl模擬SPI主設(shè)備的數(shù)據(jù)輸出端SDO,IOB0模擬SPI的時鐘輸出端SCK,IOA4模擬SPI的從機選擇端CSN,IOB9模擬SPI的數(shù)據(jù)輸入端SDI。

  上電復(fù)位后首先將IOB0(SCK)的初始狀態(tài)設(shè)置為0(空閑狀態(tài))。

  讀操作:SPCE061A首先通過IOB1口發(fā)送1位起始位(1),2位操作碼(10),6位被讀的數(shù)據(jù)地址,然后通過IOB9口讀1位空位,之后再讀16位數(shù)據(jù)(高位在前)。

  寫操作:SPCE061A首先通過IOB1口發(fā)送1位起始位(1),2位操作碼(01),6位被寫的數(shù)據(jù)地址,之后通過IOB1口發(fā)送被寫的16位數(shù)據(jù)(高位在前),寫操作之前要發(fā)送寫允許命令,寫之后要發(fā)送寫禁止命令。

  寫允許操作(WEN):寫操作首先發(fā)送l位起始位(1),2位操作碼(00),6位數(shù)據(jù)(11XXXX)。

  寫禁止操作(WDS):寫操作首先發(fā)送1位起始位(1),2位操作碼(00),6位數(shù)據(jù)(00XXXX)。

  下面介紹用SPCE061A模擬SPI的子程序。


  對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。上述子程序是針對在SCK的上升沿輸入(接收)數(shù)據(jù)和在下降沿輸出(發(fā)送)數(shù)據(jù)的器件。這些子程序也適用于在串行時鐘的上升沿輸入和下降沿輸出的其他各種串行外圍接口芯片,只要在程序中改變IOB0(SCK)的輸出電平順序進行相應(yīng)調(diào)整即可口。

  4結(jié) 語

  本文介紹了通過軟件模擬SPI總線接口,實現(xiàn)非SPI接口單片機與SPI接口的存儲器之間數(shù)據(jù)傳輸?shù)膶崿F(xiàn)方法,給出了用SPCE061A編寫的模擬SPI串行總線讀PTR8000的子程序。該方法同樣適用于其他單片機、ARM、微型計算機等。



評論


技術(shù)專區(qū)

關(guān)閉