1. 程式人生 > >加密晶片SPI通訊的除錯

加密晶片SPI通訊的除錯

         SPI是序列外設介面Serial Peripheral Interface的縮寫。Motorola公司推出的一種同步序列介面技術,是一種高速的全雙工同步的通訊匯流排。

         SPI的通訊原理很簡單,它以主從方式工作,這種模式通常有一個主裝置和一個或多個從裝置,需要至少4根線:它們是SDI資料輸入、SDO資料輸出、SCLK時鐘、CS片選

1)SDO/MOSI——主裝置資料輸出,從裝置資料輸入

2SDI/MISO——主裝置資料輸入,從裝置資料輸出

3SCLK——時鐘訊號,由主裝置產生

4CS/SS——從裝置使能訊號,由主裝置控制

        CS作為片選訊號不難理解。當總線上掛有多個從裝置時,主機通過控制對應從裝置的片選訊號,即可選中啟用該裝置,完成與該裝置的通訊。一般片選為低電平時,處於選中狀態。

        需要說明的是,SPI通訊有4種不同的模式,不同的從裝置可能在出廠時就是配置為某種模式,這是不能改變的;但我們的通訊雙方必須是工作在同一模式下,所以我們可以對我們的主裝置的SPI模式進行配置,通過CPOL(時鐘極性)和CPHA(時鐘相位)來控制我們主裝置的通訊模式,具體如下:

Mode0:CPOL=0,CPHA=0

Mode1:CPOL=0,CPHA=1

Mode2:CPOL=1,CPHA=0

Mode3:CPOL=1,CPHA=1

        時鐘極性CPOL是用來配置SCLK的電平出於哪種狀態時是空閒態或者有效態,時鐘相位CPHA是用來配置資料取樣是在第幾個邊沿。

作為特殊應用的加密晶片來說,其SPI通訊大多數採用標準SPI介面協議,但也不乏例外,除錯過程中有幾點注意:

1、加密晶片作為防盜版功能模組或者是資料加解密模組,大多數需作為SPI從機裝置,上位機端作為SPI主機。

2、主機SPI設定成CKPOL=0 ,CKPHA=0。其含義:此時空閒態時,SCLK處於低電平,資料取樣是在第1個邊沿,也就是SCLK由低電平到高電平的跳變,所以資料取樣是在上升沿,資料傳送是在下降沿。

3、有些加密晶片協議特殊,而且由於SPI沒有同步訊號功能,所以加密晶片需要藉助BUSY引腳來給主機發送通知訊號,當BUSY為高電平,允許SPI主裝置傳送資料,反之允許主機接收資料。

4、BUSY為SPI請求訊號。當BUSY拉低時允許SPI主裝置讀取資料,此時SPI主機端將CS/SS拉低,SPI_CLK產生時鐘。 

5、晶片發生故障無法正常執行時可通過復位重置。