
166
|
第六章
SPI 介面因為簡單,常被實作為
bit-bang
介面,bit-bang 介面以 I/O 線路執行通訊介面的
工作,讀者能夠為各種序列介面建立 bit-bang 介面,但比起處理器內建介面要耗費更多
的處理器能力。有時處理器並未實作所需通訊方法的硬體介面,開發人員就必須自行建
立所需的介面。
例如,要自行建立 SPI 介面,從 4 個未使用的 I/O 線路及一個內建計時器開始。計時器
驅動時脈 I/O 線路,每次計時器 tick 時,就將輸出位元寫入 MOSI 線或從 MISO 線讀取
取入位元,(晶片選擇線的運作方式與內建介面相同)。因為是同步通訊,系統需要在
每個時脈週期讀取與寫入一個位元。週邊的 datasheet 可能會說明安全讀取的時間與安
全寫入的時間有半個時脈週期的差異,因此可將計時器中斷設定為目標通訊時脈頻率的
兩倍。
I
2
C
I
2
C 是 inter-integrated circute 的縮寫,讀作 eye-squared-see 或 eye-two-see,I
2
C 有時也
稱為 TWI 表示「雙線介面(two-wire interface)」。 和 SPI 一樣,I
2
C 匯流排擁有提供時
脈與開始互動的主控端,和 SPI 不同的地方是 I
2
C 匯流排擁有多個主控端。主控端甚至
可以轉換角色,讓週邊控制互動。
I
2
C 是從考慮將一堆東西連結在一起需要的線路能少到什麼程度開始。顯然地,需要三
個連線:時脈用的 SCL、傳輸資料的 SDA(同一條線路做雙向通訊,讓這個協定成為半 ...