串行總線節(jié)省I/O管腳
SPI總線接口
串行外設(shè)接口(SPI)在主機(jī)和一個(gè)或多個(gè)從屬設(shè)備間利用同步串行通訊提供了基本的通訊。主機(jī)發(fā)起所有與從屬設(shè)備通訊的要求,并提供控制傳輸速率的時(shí)鐘信號(hào)。SPI并未提供高級(jí)的協(xié)議,所以在主機(jī)(如微控制器)與外設(shè)(如ADC或編碼解碼器)間的通訊,并不需要時(shí)間進(jìn)行內(nèi)部管理。由于缺少協(xié)議,SPI芯片廠商就要提出自己的位與字節(jié)管理方案。最簡(jiǎn)單的SPI接口要求三條信號(hào)線路(時(shí)鐘、主機(jī)輸入與從屬設(shè)備輸出、主機(jī)輸出與從屬設(shè)備輸入)與接地。
SPI通訊每次是一個(gè)字節(jié),但從屬設(shè)備接收數(shù)據(jù)時(shí)缺少自動(dòng)應(yīng)答,而且,通訊不能對(duì)特定的SPI芯片尋址,因此每個(gè)SPI從屬設(shè)備必須提供一個(gè)活動(dòng)低態(tài)(active-low)芯片選擇(/CS)輸入管腳。主機(jī)將其單獨(dú)的/CS管腳驅(qū)動(dòng)到邏輯0來(lái)選擇一個(gè)從屬設(shè)備,如果只有一個(gè)SPI從屬設(shè)備,可用硬連線將芯片選擇管腳與地連接起來(lái)(節(jié)省一個(gè)I/O管腳),例如,一個(gè)ADC可使用/CS信號(hào)的上升沿來(lái)觸發(fā)一個(gè)轉(zhuǎn)換過(guò)程。
SPI設(shè)備會(huì)很快地用完所有用來(lái)產(chǎn)生/CS信號(hào)的I/O管腳,如果超過(guò)三個(gè)SPI設(shè)備,可考慮使用一個(gè)3路到8路解碼器/解復(fù)用器,通過(guò)主機(jī)的3或4個(gè)I/O管腳最多可為8?jìng)€(gè)SPI設(shè)備產(chǎn)生/CS信號(hào),也可使用SPI芯片,如Maxim?。停粒兀罚常保纺転殡娐分性黾樱保皞€(gè)通用I/O管腳。
I2C串行總線
由先前的Philips?。樱澹恚椋悖铮睿洌酰悖簦铮颍笤谏蟼€(gè)世紀(jì)八十年代開發(fā)的I2C通訊總線需要兩條雙向信號(hào)線路,一條用于時(shí)鐘,另一條用于數(shù)據(jù),另外再需要接地線。它與SPI總線不同,一個(gè)I2C連線在多主機(jī)結(jié)構(gòu)中可連接包括一個(gè)以上的控制設(shè)備,外設(shè)包括實(shí)時(shí)時(shí)鐘、存儲(chǔ)器、LCD驅(qū)動(dòng)器和模擬轉(zhuǎn)換器。
所有的I2C設(shè)備都有預(yù)設(shè)的唯一地址,所以不需要芯片選擇線路。I2C?。桑蠌S商可在其產(chǎn)品上設(shè)置能允許幾個(gè)相同設(shè)備在一個(gè)I2C總線上工作的可編程引腳。Analog Devices(ADI)公司的AD7991是一顆雙通道的12位ADC,在一個(gè)I2C總線上開發(fā)人員可使用最多五個(gè)這種芯片。首先,規(guī)范委員會(huì)分配給芯片廠家唯一的7位設(shè)備地址,但這些地址很快就會(huì)用完,I2C規(guī)范現(xiàn)在包含10位的地址,工程師們可在一個(gè)I2C總線上將具7位或10位地址的芯片混和使用。
通信以100Kbps(標(biāo)準(zhǔn))、400Kbps(快速)或3.4Mbps(高速)這三種速度中的一種進(jìn)行,盡管有些公司提供總線延伸器(extender)和中繼器(repeater),但400pF的最大線電容還是限制了I2C通信的長(zhǎng)度。
與SPI從屬設(shè)備不同,I2C協(xié)議包括一個(gè)應(yīng)答部分。信號(hào)線路的“線與(wired-AND)”屬性讓接收設(shè)備將數(shù)據(jù)線路拉低一個(gè)時(shí)鐘周期,以對(duì)接收字節(jié)進(jìn)行應(yīng)答,I2C規(guī)范并不包括誤差校正,但可用軟件實(shí)施該功能。
1-Wire總線取代雙線
Dallas Semiconductor開發(fā)的專有1-Wire(一線)總線技術(shù)其通信和電源都使用一條信號(hào)線路(還需要一個(gè)地線),通信涉及到一個(gè)主機(jī)和一個(gè)或多個(gè)從屬設(shè)備,如傳感器、EPROM及電池監(jiān)控器。異步通訊使用準(zhǔn)確定時(shí)的脈沖寬度來(lái)再現(xiàn)數(shù)據(jù)。邏輯“1”狀態(tài)下數(shù)據(jù)線路拉低15?s或更少,而邏輯“0”狀態(tài)則將線路拉低最少60?s(外設(shè)在通訊線路空閑時(shí)可從中吸收少量的功率)。
每個(gè)1-Wire設(shè)備都有一個(gè)唯一的64位ID號(hào)碼,該號(hào)碼可提供一個(gè)8位的設(shè)備類型識(shí)別符、48位地址和8位CRC值。48位地址保證了在1-Wire線路上設(shè)備不會(huì)產(chǎn)生沖突,主機(jī)中的軟件可監(jiān)測(cè)設(shè)備類型要及其串行端口數(shù)量。Dallas?。樱澹恚椋悖铮睿洌酰悖簦铮蚴牵停幔椋怼。桑睿簦澹纾颍幔簦澹洹。校颍铮洌酰悖簦蠊镜淖庸?,生產(chǎn)多種1-Wire設(shè)備。但據(jù)我所知,并沒有其它廠商生產(chǎn)1-Wire芯片。
評(píng)論