新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于SPCE061A和PTR8000的模擬SPI總線通信技術

        基于SPCE061A和PTR8000的模擬SPI總線通信技術

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

          1 SPCE061A板與PTR8000硬件連接

        本文引用地址:http://www.104case.com/article/201611/318779.htm

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

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

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

          3軟件模擬SPI接口的實現方法

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

          上電復位后首先將IOB0(SCK)的初始狀態設置為0(空閑狀態)。

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

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

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

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

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


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

          4結 語

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 文山县| 苍南县| 彰武县| 富蕴县| 札达县| 莒南县| 灵丘县| 沙洋县| 双江| 瓦房店市| 恩施市| 张家港市| 麻江县| 巴里| 调兵山市| 科技| 杭锦后旗| 抚松县| 青海省| 莎车县| 安顺市| 宁明县| 永丰县| 山东省| 安达市| 大宁县| 安顺市| 清苑县| 安宁市| 灌南县| 甘肃省| 沂水县| 丰原市| 宜黄县| 清新县| 托里县| 临洮县| 霍林郭勒市| 蓬溪县| 偏关县| 黑河市|