日期:2018-07-06瀏覽:4413次
I2C,SPI總線協(xié)議測試分析方法技巧
在數(shù)位電子電路領(lǐng)域內(nèi),當(dāng)裝置與裝置間需要進(jìn)行通信連接時,往往會透過總線來進(jìn)行數(shù)據(jù)傳輸,在這當(dāng)中又以I2C(Inter integrated Circuit)以及SPI(Serial Peripheral interface)在電子領(lǐng)域中使用為頻繁。
孕龍科技所推出的I2C-SPI Control Center,透過軟件設(shè)定可I2C-SPI Control Center來模擬I2C或SPI之間裝置(Master Device及Slave Device)傳輸狀況,且產(chǎn)品本身所擁有的Batch Mode(批次執(zhí)行模式)更可加強(qiáng)待測電路分析功能或滿足產(chǎn)線測試需求。
接著我們將逐一說明各項功能來了解I2C-SPI Control Center。
I2C(Inter integrated Circuit)Mode
這是一款由Philips在1980年代為了讓主板、嵌入式系統(tǒng)或手機(jī)連接周邊裝置而所研發(fā)制定的一種總線,因其構(gòu)架簡便容易操作,所以演變至今成為各種不同設(shè)備裝置間的界面標(biāo)準(zhǔn)。I2C使用兩條信號線做雙向數(shù)據(jù)傳輸(Serial Data及Serial Clock),接下來將透過測量EEPROM 24LS02來進(jìn)行功能介紹。
將I2C-SPI Control Center的SDA及SCL連接至待測端的SDA及SCL,開啟I2C-SPI Control Cen-ter軟件后可看到如圖一的軟件界面。
I2C-SPI Control Center
圖一:I2C-SPI Control Cente軟件視窗
待驅(qū)動程序安裝完成后,可在視窗上方的Select Device下拉菜單中選擇已安裝的I2C-SPI ControlCenter,接著點選右方的『聯(lián)機(jī)』按鈕即可進(jìn)行操作設(shè)定。
首先,在I2C模式下操作I2C Master。先設(shè)定Slave Address=0X50、Bit Rate=2KHz及Master端的寫入數(shù)據(jù)為0X00、0X11、0X22、0X33、0X44、0X55、0X66、0X77、0X88、0X99、0XAA、
0XBB、0XCC、0XDD、0XEE及0XFF,設(shè)定完畢后可點選右方的寫入按鈕來進(jìn)行信號發(fā)送。動作完成后隨即可在下方Log視窗中看到相關(guān)訊息,如圖二所示。
Log視窗
圖二:I2C-SPI Control Center Log視窗
寫入
圖三:使用孕龍邏輯分析儀擷取狀況
1
2
圖三中的方塊1為I2C Clock,可清楚看出目前I2C總線中的Bit Rate為2KHz,方塊2為寫入數(shù)據(jù)的表示。
搭配上孕龍邏輯分析儀更可清楚表示出,此一數(shù)據(jù)寫入的動作狀況。
圖四
讀取
操作讀取功能時,方法與寫入功能大致相同,在軟件視窗中可先設(shè)定讀取字節(jié)數(shù)。預(yù)設(shè)值為5Bytes,在這邊將讀取字節(jié)更改為20 Bytes后點下右方的讀取即可進(jìn)行動作。
同樣的搭配孕龍邏輯分析儀可看出I2C-SPI Control Center讀回的數(shù)據(jù)內(nèi)容。
圖五:使用孕龍邏輯分析儀記錄I2C數(shù)據(jù)內(nèi)容
名稱說明
Time
可顯示此筆信息出現(xiàn)的時間日期表示當(dāng)下所操作的模式,共分為I2C、SPI及GPIO顯示該筆信息是由Master De-vice發(fā)出或是Slave Device發(fā)出Mode
M/S
R/W
顯示此筆數(shù)據(jù)為讀取動作
(Read)或?qū)懭雱幼鳎╓rite)
Bit Rate表示總線數(shù)據(jù)傳輸速率
Address表示總線位址
Length
表示總線數(shù)據(jù)字節(jié)
(Data Bytes)數(shù)量
Data可顯示出詳細(xì)數(shù)據(jù)數(shù)值
圖六:Log視窗
Tip:在I2C-SPI Control Center Log中點擊信息,可將該信息展該如圖六所示
I2C-SPI Control Center還可以進(jìn)行Slave裝置模擬,可自行設(shè)定當(dāng)Master端下讀取命令時Slave響應(yīng)的數(shù)據(jù)內(nèi)容。
響應(yīng)數(shù)據(jù)內(nèi)容
圖七:I2 C Slave設(shè)定畫面
SPI(Serial Peripheral interface)
是由Motorola為能在全雙工方式下進(jìn)行列表數(shù)據(jù)傳輸所制定的一種標(biāo)準(zhǔn)界面,采用主/從裝置方式傳輸,一個主裝置可同時與多個從裝置連接。此時主裝置便透過Slave select(chip select)來選擇欲溝通的從裝置。依照不同的應(yīng)用環(huán)境SPI匯流排可操作在四線式狀態(tài)下(SCLK、MOSI、MISO、SS),這個時候SPI可擁有全雙工能力。在三線式狀態(tài)下(SCLK、DATA、SS)則是半雙工方式,若連接環(huán)境較為單純時,則可衍生出兩線式狀態(tài)(SCLK、DATA),此時SPI總線上僅只有一個主裝置及一個從裝置。
在I2C SPI Control Center軟件中切換至SPI Mode便可開始操作,在軟件視窗中可以設(shè)定SPI總線的取樣模式。SPI總線定義了四種模式分別為模式0、1、2、3,是由Clock Phase及Clock Polar-ity組合而成,圖八說明了SPI Clock在不同SPI模式下對Data取樣位置。
圖八:SPI總線模式取樣點說明(圖中波形為Clock pulse,紅色邊緣為取樣位置)
圖九:SPI Master設(shè)定畫面
設(shè)定Master
傳送數(shù)據(jù)內(nèi)容
設(shè)定取樣參數(shù)
設(shè)定高低位
傳送方向及SS
動作極性
設(shè)定傳輸速率
在SPI Master界面中尚可設(shè)定其他的參數(shù),如數(shù)據(jù)高低位傳送方向(Bit Order數(shù)據(jù)傳輸速率(Bit Rate)及SS動作極性(SS Polarity)。
如同操作I2C Mode般,在SPI Mode中也支持SPI Slave裝置模擬,使用者可設(shè)定Slave裝置響應(yīng)的內(nèi)容來測試Master端反應(yīng)狀況。
圖十:SPI Slave設(shè)定畫面
當(dāng)環(huán)境設(shè)定完成后按下寫入功能時,便可依照設(shè)定數(shù)據(jù)內(nèi)容進(jìn)行SPI總線數(shù)據(jù)發(fā)送。搭配邏輯分析儀可明顯看出主/從裝置數(shù)據(jù)傳輸狀況。
圖十一:孕龍邏輯分析儀記錄SPI數(shù)據(jù)內(nèi)容
GPIO(Generator Purpose Input / Output)
GPIO為通用型輸入輸出界面的簡稱,常出現(xiàn)在MCU上(Micro Control Unit,微控制器),使用者可自行定義GPIO內(nèi)每一根腳位為輸入狀態(tài)或是輸出狀態(tài)。
在I2C-SPI Control Center中亦支持此種模式,能夠提供8 Bits GPIO進(jìn)行操作,使用者可自定每一支腳位的輸入/輸出狀態(tài),下圖為I2C-SPI Control Center GPIO Mode的設(shè)定畫面。
圖十二:I2C-SPI Control Center GPIO Mode
Direction:選擇每一bit為輸入/輸出
狀態(tài)
Pull Up:選擇I/O是否開啟上升電阻(阻值約30K歐母)
Out Set: Output時
所輸出的數(shù)據(jù)狀態(tài)
設(shè)定
In Value: Input時所
接收的數(shù)據(jù)狀態(tài)
I2C-SPI Control Center為孕龍科技所推出的新產(chǎn)品,能夠依照需求進(jìn)行I2C、SPI裝置信號模擬,也能夠透過GPIO來發(fā)送/接收數(shù)據(jù)。同時除了上述三種模式之外,I2C-SPI Control Center擁有I2C、SPI觸發(fā)功能,所支持的Batch模式可以更加靈活的模擬裝置反應(yīng),下期將針對I2C / SPI Trigger及Batch模式進(jìn)行深入的介紹。
切換GPIO模式
I2C,SPI總線協(xié)議測試分析方法技巧
孕龍科技所推出的新產(chǎn)品I2C-SPI Control Center,能夠依照需求進(jìn)行I2C、SPI裝置信號模擬。
I2C-SPI Control Center擁有I2C、SPI觸發(fā)功能以及所支持的Batch Mode(批次執(zhí)行模式)可以更加靈活的模擬裝置反應(yīng)。
當(dāng)I2C-SPI進(jìn)行通信時,往往傳輸?shù)臄?shù)據(jù)封包十分龐大。對分析儀器而言,此時觸發(fā)功能便顯得十分重要。越強(qiáng)大的觸發(fā)功能可幫助使用者在繁雜數(shù)據(jù)封包內(nèi)準(zhǔn)確找出欲分析的位置。
孕龍科技所推出的I2C-SPI Control Center,使用I2C / SPI Trigger功能可I2C-SPI數(shù)值來進(jìn)行觸發(fā),且產(chǎn)品本身所擁有的Batch Mode(批次執(zhí)行模式)更可完整模擬待測電路分析時所需要的動作功能需求。
接下來將開始介紹I2C-SPI Control Center - I2C-SPI Trigger以及Batch Mode。
I2C-SPI Control Center
圖一:I2C-SPI Control Center軟件視窗
開啟I2C-SPI Control Center操作軟件后可看到圖一視窗表示,接著選擇I2C Trigger頁簽進(jìn)行I2C Trigger條件設(shè)定。
I2C Trigger
切換至I2C Trigger后可看到如圖二所示視窗,在此視窗中使用者可依照I2C內(nèi)容進(jìn)行兩組條件設(shè)定,每一組條件可設(shè)定8個byte,也能夠依照讀取/寫入動作進(jìn)行設(shè)定。
圖二:I2C Trigger setting視窗
數(shù)據(jù)動作選項:可設(shè)定Write Data、Write Data(1st)、Read Data、Read Data(1st),當(dāng)選擇Write Data(1st)、Read Data(1st)時,表示僅判斷個byte數(shù)據(jù)封包。
運算條件:Write Data、Read Data僅可為『=』;Write Data(1st)、Read Data(1st)可設(shè)置『=』、『>』、『<』。
數(shù)據(jù)長度:當(dāng)長度改變時,數(shù)據(jù)字段元會隨之改變;Write Data(1st),Read Data(1st)僅可為『1』。
數(shù)據(jù)內(nèi)容:可在此字段內(nèi)輸入欲設(shè)定為觸發(fā)條件之?dāng)?shù)據(jù)數(shù)值。
Count:觸發(fā)條件達(dá)成設(shè)定次數(shù)后再進(jìn)行觸發(fā)。
Continuity:可設(shè)定2組條件是否要連續(xù)判斷。
致能:當(dāng)I2C Trigger設(shè)定完成后,點選表示開始動作。
使用I2C Trigger時需將外部開關(guān)『Mode』切換至8 Pin模式。I/O Ctrl為I2C Trigger時觸發(fā)狀態(tài)輸出腳位,輸出信號以轉(zhuǎn)態(tài)方式表示。
圖三:0x11、0x22條件設(shè)定
接下來透過孕龍邏輯分析儀進(jìn)行I2C Trigger的實際操作,將I2C-SPI Control Center的I/O Ctrl連接至邏輯分析儀A2腳位,A0及A1則連接I2C的SDA及SCL。
同時,在I2C-SPI Control Center - I2C Trigger頁簽中設(shè)定觸發(fā)條件為『寫入』、數(shù)據(jù)數(shù)值為『0x11、0x22』,設(shè)定完成后如圖三所示。
表示筆觸發(fā)條件數(shù)據(jù)0x11
表示第二筆觸發(fā)條件數(shù)據(jù)0x22
表示透過I2C-SPI Control Center - I2C Trigger所判定觸發(fā)成立的位置由圖四可清楚看見當(dāng)I2C-SPI Control Center - I2C Trigger判定觸發(fā)成立后在I/O Ctrl將會出現(xiàn)一個
波形轉(zhuǎn)態(tài)。
2
圖四:觸發(fā)完成
設(shè)定完成后點選『致能』,接著開啟孕龍邏輯分析儀軟件,設(shè)定好環(huán)境參數(shù)以及I2C總線譯碼即可開始分析,圖四為觸發(fā)完成結(jié)果。
圖五:SPI Trigger setting視窗
SPI Trigger操作方式與I2C Trigger雷同,開啟I2C-SPI Control Center后選擇SPI Mode,接著切換至SPI Trigger頁簽便可以開始進(jìn)行設(shè)定,設(shè)定視窗如圖五所示。
數(shù)據(jù)動作選項:可設(shè)定MOSI Data、MOSI Data(1st)、MISO Data、MISO Data(1st),當(dāng)選擇MOSI Data(1st)、MISO Data(1st)時,表示僅判斷個byte數(shù)據(jù)封包。
運算條件:MOSI Data、MISO Data僅可為『=』;MOSI Data(1st)、MISO Data(1st)可設(shè)置『=』、『>』、『<』。
數(shù)據(jù)長度:當(dāng)長度改變時,數(shù)據(jù)字段元會隨之改變;MOSI Data(1st)、MISO Data(1st)僅可為『1』。
數(shù)據(jù)內(nèi)容:可在此字段內(nèi)輸入欲設(shè)定為觸發(fā)條件之?dāng)?shù)據(jù)數(shù)值。
Count:觸發(fā)條件達(dá)成設(shè)定次數(shù)后再進(jìn)行觸發(fā)。
Continuity:可設(shè)定2組條件是否要連續(xù)判斷。
致能:當(dāng)SPI Trigger設(shè)定完成后,點選致能表示開始動作。
接下來透過孕龍邏輯分析儀進(jìn)行SPI Trigger的實際操作,將I2C-SPI Control Center的5V Ctrl連接至邏輯分析儀A4腳位,A0連接SS、A1及A2連接SPI的MOSI及MISO、A3則連接SPI SCL。
同時,在I2C-SPI Control Center -SPI Trigger頁簽中設(shè)定兩組觸發(fā)條件。組為『MOSI』、數(shù)據(jù)數(shù)值為『0x11』。第二組為『MISO』、數(shù)據(jù)數(shù)值為『0x01』,并勾選『Continuity』,設(shè)定完成后如
圖六所示。
圖六:MOSI=0x11、MISO=0x01觸發(fā)條件設(shè)定
接著設(shè)定邏輯分析儀環(huán)境以及SPI譯碼模塊,因此次觸發(fā)條件有兩組,故進(jìn)行判斷時將會依照SS Low Enable狀況作為依據(jù),觸發(fā)完成后的表示如圖七所示。
圖七中左邊方塊為條件一判定成立位置,在這邊可看見SPI總線中包含MOSI=0x11,右邊方塊為條件二判斷成立位置。此時可看見SPI總線中包含MISO=0x01。
圖七:SPI觸發(fā)完成
MOSI=0x11
MISO=0x01
透過Batch Mode可靈活定義數(shù)據(jù)傳送狀態(tài)及內(nèi)容,模擬實際裝置反應(yīng)。在I2C-SPI Control Center軟件視窗中點選Batch,便可在視窗空白處輸入Batch代碼來設(shè)定I2C-SPI Control Center動作模式,也可以點選鼠標(biāo)右鍵來加載程序示例檔案。
圖八:Batch Mode
執(zhí)行
Batch模式
ModeStatus=FTXX_I2CMODE //設(shè)定硬件控制模式有FTXX_I2CMODE、FTXX_SPIMODE、
FTXX_GPIOMODE三種控制旗標(biāo)可供組合使用
I2CFunctionStatus=I2C_I2CMASTER //設(shè)定I2C模式控制旗標(biāo),由I2C_I2CMASTER orI2C_I2CSLAVE與I2C_10BITADDR、I2C_COMBINEDFORMAT、I2C_NOSTOP組成I2CBitRate=400 //設(shè)定I2C模式Bit Rate單位KHz。
I2CSlaveAddress=80 //設(shè)定I2C模式Slave Address,支持7 or 11位尋址,輸入數(shù)值格式為10進(jìn)制。
I2CMasterModeTxData=[00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 1718 19 1a 1b 1c 1d 1e 1f 20 21] //設(shè)定I2C Master模式TX Data,由[與]判斷Data起始與結(jié)束
I2CMasterModeReadByength=10 //設(shè)定I2C Master模式讀取Byte長度
I2CFreeBus=true //設(shè)定I2C模式Free Bus Enabled or Disable
I2CSlaveModeTxByength=10 //設(shè)定I2C Slave模式TX Byte長度
I2CSlaveModeRxByength=10 //設(shè)定I2C Slave模式Rx Byte長度
I2CSlaveRespondData=[00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f 20 21] //設(shè)定I2C Slave模式Respond Data,由[與]判斷Data起始與結(jié)束
I2CSlaveModeEnabled=true //設(shè)定I2C Slave模式Enabled or Disable
以下為I2C Batch程序示例
紅色字為代碼
代碼輸入完畢后點選視窗旁邊的『執(zhí)行』,便可讓Batch程序開始動作。接著我們透過孕龍邏輯分析儀來驗證Batch程序動作內(nèi)容。
圖九:使用邏輯分析儀擷取I2C Batch程序動作
表示目前I2C Slave Address為0X50。
表示此I2C傳輸速率為400KHz
表示Master寫入數(shù)據(jù)內(nèi)容
表示Master讀取數(shù)據(jù)內(nèi)容
如需增加其他不同的總線動作或是傳輸不同的位址及數(shù)據(jù),僅需在Batch程序字段中增加欲的動作內(nèi)容即可,借此來模擬待測物通信狀態(tài)。
I2C,SPI總線協(xié)議測試分析方法技巧總結(jié)
孕龍科技推出的產(chǎn)品I2C-SPI Control Center是在總線協(xié)定I2C、SPI的基礎(chǔ)上研發(fā)而成,可用來存取I2C-SPI界面總線數(shù)據(jù)并可在數(shù)據(jù)符合條件時送出觸發(fā)信號,或者用GPIO來發(fā)送信號。同時使用者可在Batch模式下通過寫入指令來發(fā)送信號。搭配孕龍邏輯分析儀可以更有效的進(jìn)行研發(fā)工作??勺隹焖俚姆治雠c快速的問題偵測,以及測量更多的信息,是電子研發(fā)人員、電子測試人員、電子電機(jī)學(xué)生及個人研究工作室*的工具。