摘要:常規(guī)的SPI接口總線是雙數(shù)據(jù)線全雙工的同步通訊總線,,在芯片的管腳上占用四根線,。這里將介紹一種半雙工的,單數(shù)據(jù)線,,且編程器作為從機(jī)的通訊協(xié)議,,這次的通訊時(shí)鐘比較高,,達(dá)到了10MHz。
1,、標(biāo)準(zhǔn)的SPI通訊協(xié)議
SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,,是一種高速,,全雙工,同步的通訊協(xié)議,。SPI
通常需要四根線,,它們是MOSI(數(shù)據(jù)輸出)、MISO(數(shù)據(jù)輸入),、SCLK(時(shí)鐘),、SS(片選)。
(1) MOSI - 主設(shè)備數(shù)據(jù)輸出,,從設(shè)備數(shù)據(jù)輸入,;
(2) MISO – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出,;
(3) SCLK – 時(shí)鐘信號,,由主設(shè)備產(chǎn)生;
(4) SS – 從設(shè)備使能信號,,有主設(shè)備控制,;
圖1 SPI標(biāo)準(zhǔn)通訊接口
SPI通訊接口的優(yōu)點(diǎn)是傳輸數(shù)據(jù)快,能達(dá)到幾兆到幾十兆,,并且沒有系統(tǒng)開銷,。但是,SPI總線的缺點(diǎn)也比較明顯,,主要是沒有指定的流控制,,也沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。
2.單線SPI接口
還有一種另類的SPI通訊接口方式,。這種SPI接口在標(biāo)準(zhǔn)SPI接口上做修改,,由原來的兩根數(shù)據(jù)線改為一根數(shù)據(jù)線。這樣,,通訊方式也成為半雙工的通訊方,,在接線上面,顯得更簡約了,。
圖2 SPI單線通訊接口
3.讓編程器當(dāng)從機(jī)的SPI單線通訊接口
在編程界,,遇到特殊編程接口的芯片已經(jīng)成為家常便飯。因?yàn)橛袝r(shí)候,,芯片為了設(shè)計(jì)更優(yōu)的編程方式,,會采用一些少見的,奇葩的通訊方式,。
在支持MAXIM部分芯片的編程時(shí),該芯片采取的是芯片當(dāng)主機(jī)的單數(shù)據(jù)線的SPI通訊,,其通訊特點(diǎn)是:
(1) TCLK由始至終都是由芯片產(chǎn)生,,編程器接收時(shí)鐘,;
(2) 時(shí)鐘頻率較高,達(dá)到10MHz;
(3) 通訊方式是芯片每收到一個(gè)字節(jié)后立刻返回一個(gè)字節(jié),。
其數(shù)據(jù)通訊見下圖(注:圖片來源于編程手冊),。由于在通訊過程中不會發(fā)生主從互換的問題,因此使能腳SS也是可以忽視的,。
圖3 編程器當(dāng)從機(jī)的單數(shù)據(jù)線SPI通訊
對于該系列的芯片,,由于通訊時(shí)鐘頻率較高,要對數(shù)據(jù)進(jìn)行采樣,,編程器的采樣時(shí)鐘至少為20MHz,,而且還需要硬件很好地兼容,并且編程器發(fā)送完數(shù)據(jù)后必須立刻切換為接收狀態(tài),,一般的編程器很難達(dá)到這種苛刻的要求,。
在這里采用的處理方案是使用超高速處理器的P800-ISP對其進(jìn)行支持。下圖是截取從邏輯分析儀上捕捉到燒寫過程的一段通訊波形,,明顯看到,,時(shí)鐘的脈寬為50ns(對應(yīng)的時(shí)鐘頻率為10MHz)。
圖4 單線SPI通訊波形
該單線SPI編程接口的總結(jié)如下:
優(yōu)點(diǎn):是接線少(實(shí)際用到的線只需要兩根),、通訊快,、數(shù)據(jù)簡單;
缺點(diǎn):但高頻通訊時(shí)對從機(jī)要求苛刻,,需要兼容高頻率采樣和收發(fā)狀態(tài)的切換能力(如,,發(fā)送數(shù)據(jù)后馬上切換到接收狀態(tài))。