基于SPCE061A和PTR8000的模擬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、微型計算機等。
評論