SPI總線簡介
SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,是一種高速、全雙工、同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便。其現(xiàn)已發(fā)展成為一種工業(yè)標(biāo)準(zhǔn),目前,各半導(dǎo)體公司推出了大量的帶有SPI接口的具有各種各樣功能的芯片,如RAM,EEPROM,FlashROM,A/D(D/A)轉(zhuǎn)換器、LED顯示驅(qū)動器、I/O接口芯片、實時時鐘、UART收發(fā)器等等,為用戶的外圍擴展提供了極其靈活而經(jīng)濟的選擇。這也使得對SPI信號的測試分析需求更加廣泛。
SPI總線包含四種輸出方式(SPI0,SPI1,SPI2,SPI3),SPI0和SPI3方式比較常用。SPI模塊為了和外設(shè)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進(jìn)行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降沿)數(shù)據(jù)即被采樣;如果CPHA=1,在串行同步時鐘的第二個(上升或下降沿)數(shù)據(jù)才被采樣。
圖1 SPI信號四種輸出方式時序圖
SPI總線測試需求
工程師對SPI總線測試和分析的需求主要涵蓋以下兩個方面:
1.了解總線正在發(fā)生什么:軟件工程師設(shè)計SPI主設(shè)備發(fā)出的消息內(nèi)容,硬件工程師則需要確定消息是不是被準(zhǔn)確無誤的傳送到從設(shè)備上。傳統(tǒng)的方法是使用示波器把信號捕獲下來,然后根據(jù)高低電平特點轉(zhuǎn)換成“1”或“0”,然后再去對比SPI協(xié)議,將其還原成有意義的消息幀。顯然這種方式費時費力,在轉(zhuǎn)換的過程中還容易出錯。SDS3000X系列智能示波器支持SPI總線解碼功能,可以直接對總線傳輸信號進(jìn)行觸發(fā)解碼。并以不同的方式動態(tài)顯示在示波器屏幕上。不同的顯示方式可以更好地適應(yīng)不同的分析需求:比如硬件工程師可能希望以二進(jìn)制的方式查看SPI消息內(nèi)容,底層驅(qū)動工程師希望以16進(jìn)制方式分析波形,而應(yīng)用軟件工程師則希望以ASCII碼的方式去了解總線上實際運行的數(shù)據(jù)內(nèi)容。
2.調(diào)試總線上有故障的節(jié)點:SPI設(shè)備可以實現(xiàn)一個主設(shè)備連接多個從設(shè)備的需求,通過片選信號(SS/CS)來選擇需要操作的從設(shè)備。當(dāng)主設(shè)備切換傳輸對象的時候,我們需要關(guān)注總線所發(fā)送的信息是否與所選擇的從設(shè)備一致。有可能出現(xiàn)所發(fā)送的信息與當(dāng)前所選擇的從設(shè)備并不一致的狀況。
SPI總線模擬測試方法
本例中我們使用SDS3000X系列智能示波器以及STB-3信號演示板進(jìn)行單向SPI總線測試模擬。
圖2 實驗連接圖
單向的SPI總線信號包括一根時鐘線SCLK、一根片選信號線CS和一根數(shù)據(jù)線SDA,可由鼎陽的STB-3板模擬輸出,其輸出信號速率為1Mbps,數(shù)據(jù)內(nèi)容為:(XX為隨機字符)96'h53_49_47_4C_45_4E_54_5F_XX_XX_XX_XX。
SPI觸發(fā)
SPI 總線是為芯片間的數(shù)據(jù)通信而設(shè)計的,因此,在大多數(shù)情況下,由于傳輸數(shù)據(jù)的不同使得信號并非周期性信號。這就要求在對該總線進(jìn)行測試時,要能準(zhǔn)確地觸發(fā)到數(shù)據(jù)幀的“頭”,并將其“穩(wěn)定”顯示在儀器上,便于觀察和分析。