串行總線節省I/O管腳
SPI總線接口
串行外設接口(SPI)在主機和一個或多個從屬設備間利用同步串行通訊提供了基本的通訊。主機發起所有與從屬設備通訊的要求,并提供控制傳輸速率的時鐘信號。SPI并未提供高級的協議,所以在主機(如微控制器)與外設(如ADC或編碼解碼器)間的通訊,并不需要時間進行內部管理。由于缺少協議,SPI芯片廠商就要提出自己的位與字節管理方案。最簡單的SPI接口要求三條信號線路(時鐘、主機輸入與從屬設備輸出、主機輸出與從屬設備輸入)與接地。
SPI通訊每次是一個字節,但從屬設備接收數據時缺少自動應答,而且,通訊不能對特定的SPI芯片尋址,因此每個SPI從屬設備必須提供一個活動低態(active-low)芯片選擇(/CS)輸入管腳。主機將其單獨的/CS管腳驅動到邏輯0來選擇一個從屬設備,如果只有一個SPI從屬設備,可用硬連線將芯片選擇管腳與地連接起來(節省一個I/O管腳),例如,一個ADC可使用/CS信號的上升沿來觸發一個轉換過程。
SPI設備會很快地用完所有用來產生/CS信號的I/O管腳,如果超過三個SPI設備,可考慮使用一個3路到8路解碼器/解復用器,通過主機的3或4個I/O管腳最多可為8個SPI設備產生/CS信號,也可使用SPI芯片,如Maxim MAX7317能為電路中增加10個通用I/O管腳。
I2C串行總線
由先前的Philips Semiconductors在上個世紀八十年代開發的I2C通訊總線需要兩條雙向信號線路,一條用于時鐘,另一條用于數據,另外再需要接地線。它與SPI總線不同,一個I2C連線在多主機結構中可連接包括一個以上的控制設備,外設包括實時時鐘、存儲器、LCD驅動器和模擬轉換器。
所有的I2C設備都有預設的唯一地址,所以不需要芯片選擇線路。I2C I/O廠商可在其產品上設置能允許幾個相同設備在一個I2C總線上工作的可編程引腳。Analog Devices(ADI)公司的AD7991是一顆雙通道的12位ADC,在一個I2C總線上開發人員可使用最多五個這種芯片。首先,規范委員會分配給芯片廠家唯一的7位設備地址,但這些地址很快就會用完,I2C規范現在包含10位的地址,工程師們可在一個I2C總線上將具7位或10位地址的芯片混和使用。
通信以100Kbps(標準)、400Kbps(快速)或3.4Mbps(高速)這三種速度中的一種進行,盡管有些公司提供總線延伸器(extender)和中繼器(repeater),但400pF的最大線電容還是限制了I2C通信的長度。
與SPI從屬設備不同,I2C協議包括一個應答部分。信號線路的“線與(wired-AND)”屬性讓接收設備將數據線路拉低一個時鐘周期,以對接收字節進行應答,I2C規范并不包括誤差校正,但可用軟件實施該功能。
1-Wire總線取代雙線
Dallas Semiconductor開發的專有1-Wire(一線)總線技術其通信和電源都使用一條信號線路(還需要一個地線),通信涉及到一個主機和一個或多個從屬設備,如傳感器、EPROM及電池監控器。異步通訊使用準確定時的脈沖寬度來再現數據。邏輯“1”狀態下數據線路拉低15?s或更少,而邏輯“0”狀態則將線路拉低最少60?s(外設在通訊線路空閑時可從中吸收少量的功率)。
每個1-Wire設備都有一個唯一的64位ID號碼,該號碼可提供一個8位的設備類型識別符、48位地址和8位CRC值。48位地址保證了在1-Wire線路上設備不會產生沖突,主機中的軟件可監測設備類型要及其串行端口數量。Dallas Semiconductor是Maxim Integrated Products公司的子公司,生產多種1-Wire設備。但據我所知,并沒有其它廠商生產1-Wire芯片。
評論