邱永華
(廣東女子職業(yè)技術(shù)學(xué)院,廣東 廣州 510450)
嵌入式系統(tǒng)是當(dāng)前最熱門、最有發(fā)展前途的IT應(yīng)用技術(shù)之一,從隨身攜帶的MP3、語言復(fù)讀機(jī)、手機(jī)和PDA到家庭中的智能電視、智能冰箱和機(jī)頂盒,再到工業(yè)生產(chǎn)、娛樂中的機(jī)器人,無不采用嵌入式技術(shù)。
串行擴(kuò)展總線技術(shù)是嵌入式技術(shù)發(fā)展的一個(gè)顯著特點(diǎn)[1]。其中Philips公司推出的I2C總線最為著名。與并行擴(kuò)展總線相比,串行擴(kuò)展總線有突出的優(yōu)點(diǎn):電路結(jié)構(gòu)簡單,程序編寫方便,易以實(shí)現(xiàn)用戶系統(tǒng)軟硬件的模塊比、標(biāo)準(zhǔn)化等。目前I2C總線技術(shù)已為許多著名公司所采用,并廣泛地應(yīng)用于各種嵌入式系統(tǒng)中。
I2C(Inter-Integrated Circuit)總線是由 Philips公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備,是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點(diǎn)[2]。I2C總線的特征如下:
1)只要求兩條總線線路:一條串行數(shù)據(jù)線(SDA),一條串行時(shí)鐘線(SCL);
2)每個(gè)連接到總線的器件都可以通過唯一的地址和一直存在的、簡單的主機(jī)/從機(jī)關(guān)系軟件所設(shè)定的地址來識(shí)別,主機(jī)可以作為主機(jī)發(fā)送器或主機(jī)接收器來使用;
3)它是一個(gè)真正的多主機(jī)總線,如果兩個(gè)或更多的主機(jī)同時(shí)初始化,數(shù)據(jù)傳輸就可以通過沖突檢測和仲裁來防止數(shù)據(jù)被破壞;
4)串行的8位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100 kbit/s,快速模式下可達(dá)400 kbit/s,高速模式下可達(dá)3.4 Mbit/s;
5)連接到相同總線的IC數(shù)量僅受到總線的最大電容400 pF的限制。
I2C總線實(shí)現(xiàn)了兩個(gè)芯片之間控制和數(shù)據(jù)信號(hào)的傳輸,它的應(yīng)用將芯片之間的連接線減小到了最少,大大提高了芯片之間連接的可靠性、穩(wěn)定性以及系統(tǒng)的抗干擾能力。擁有I2C總線的新型芯片幾乎可以不加任何外設(shè)就輕易地實(shí)現(xiàn)和總線的連接。嵌入式系統(tǒng)中常見的I2C總線連接方式如圖1所示。
圖1 I2C總線系統(tǒng)連接圖
為了提高系統(tǒng)的兼容性及可擴(kuò)展性,目前越來越多的嵌入式系統(tǒng)都采用模塊化設(shè)計(jì),即不再將所有的芯片都集成在一個(gè)嵌入式模塊上,而是把核心控制系統(tǒng)與外圍接口芯片分離成多個(gè)模塊,根據(jù)系統(tǒng)的不同需求來進(jìn)行組裝和連接。模塊化的設(shè)計(jì)可以減少新產(chǎn)品的開發(fā)周期,節(jié)約開發(fā)成本,大大提升系統(tǒng)的兼容性和擴(kuò)展性,能讓系統(tǒng)更好地適應(yīng)現(xiàn)場應(yīng)用的各種需求[3]。
帶有I2C總線的嵌入式系統(tǒng)也常常把I2C總線擴(kuò)展出去,控制模塊與I2C其它模塊間通過外部線纜進(jìn)行連接,并可以通過連接不同的模塊來實(shí)現(xiàn)各種不同的功能。例如:對于一個(gè)溫度采集系統(tǒng),由于采集模塊常處于高溫或者低溫環(huán)境,為了保證控制模塊能夠長期穩(wěn)定地工作,常通過如圖2所示的方式將控制模塊與采集模塊進(jìn)行連接,同時(shí)也可以根據(jù)現(xiàn)場系統(tǒng)的需求,方便地減少或者增加采集模塊來完成不同的功能。
圖2 溫度采集系統(tǒng)連接圖
采集模塊和控制模塊的分離可以很好地解決不同的應(yīng)用中采集模塊擴(kuò)展的問題,但在擴(kuò)展中同時(shí)也引出了新的問題:如接口數(shù)量,I2C器件地址沖突等。如果控制模塊上的接口數(shù)量過少,該模塊就不能應(yīng)用于大的系統(tǒng);如果接口數(shù)量過多,則在應(yīng)用于小系統(tǒng)時(shí)控制模塊又顯得過于臃腫。同時(shí)I2C器件的訪問是根據(jù)地址來區(qū)分的,即,如果一個(gè)系統(tǒng)中存在多個(gè)相同的模塊,并且這些模塊的I2C器件的地址相同,就會(huì)造成系統(tǒng)I2C通信異常[4]。
為了解決上述問題,可以在控制模塊與采集模塊之間加一個(gè)I2C接口擴(kuò)展器,這樣不僅可以縮小控制模塊,即可以將其I2C接口減少為一個(gè),也可以解決I2C器件的地址沖突等問題,如圖3所示。
圖3 I2C接口擴(kuò)展器連接圖
為了滿足各種系統(tǒng)的需求,可以根據(jù)系統(tǒng)的規(guī)模來選擇不同規(guī)格和接口數(shù)量的I2C接口擴(kuò)展器[5]。I2C接口擴(kuò)展器與系統(tǒng)控制模塊之間只有兩條I2C通信線進(jìn)行連接,所以I2C模塊之間的切換必須通過I2C進(jìn)行。I2C接口擴(kuò)展器的簡單原理設(shè)計(jì)框圖如圖4所示:
圖4 I2C接口擴(kuò)展器原理圖
如圖4所示,PCF8574是一種I2C數(shù)據(jù)串行轉(zhuǎn)并行的擴(kuò)展器件,即可以將輸入的8位串行數(shù)據(jù)并行輸出。所以可以通過對PCF8574寫入不同數(shù)據(jù)控制PCF8574 8個(gè)并行IO的輸出狀態(tài)。SN74CBT3257是一種帶兩個(gè)雙輸入雙向的數(shù)字開關(guān),通過外部的控制信號(hào)可以隨意地切換輸入與輸出配對關(guān)系。
將 PCF8574的并行輸出 IO連接到SN74CBT3257的開關(guān)控制信號(hào)上,即實(shí)現(xiàn)了通過I2C控制PCF8574來進(jìn)行I2C端口的切換。如對PCF8574先后寫入 0×00和 0×80,就可以將PCF8574的最高位先拉低再置高,其它低7位狀態(tài)保持不變,即實(shí)現(xiàn)對SN74CBT3257的輸出口從A輸入口到B輸入口的切換。
由于1片PCF8574有8個(gè)IO口,即可以輸出8個(gè)控制信號(hào),所以最多可以控制8片SN74CBT3257,而1片 SN74CBT3257可以連接 4個(gè)不同的I2C接口,所以一片PCF8574最多可以連接32個(gè)I2C接口,在I2C地址都相同的情況下,最少也可以連接8個(gè)I2C地址相同的模塊。PCF8574本身的地址是通過外部電阻上下拉而選擇的,其地址配置管腳有3個(gè),根據(jù)組合關(guān)系,在一條I2C總線上最多可以連接9片PCF8574,所以這種擴(kuò)展器最大規(guī)模時(shí)最多可以連接288個(gè)不同地址的I2C器件,即使模塊的地址一樣,最少也可以連接72個(gè)I2C模塊。因此,可以根據(jù)系統(tǒng)大小設(shè)計(jì)出不同規(guī)格相適應(yīng)的I2C接口擴(kuò)展器[6]。
基于PCF8574控制和SN74CBT3257切換開關(guān)的I2C接口擴(kuò)展器的結(jié)構(gòu)簡單,擴(kuò)展性強(qiáng),具有非常高的實(shí)用性。唯一的缺點(diǎn)是需要修改控制軟件,切換時(shí)需要對PCF8574進(jìn)行單獨(dú)控制,對軟件架構(gòu)比較完整的系統(tǒng)影響較大。此時(shí),如果對于系統(tǒng)要求擴(kuò)展性和速度不高的場所則可以用1片單片機(jī)進(jìn)行轉(zhuǎn)換,而如果不計(jì)較系統(tǒng)成本則可以選擇CPLD,CPLD具有更好的擴(kuò)展性及控制優(yōu)勢,這也是將I2C擴(kuò)展器應(yīng)用于高端系統(tǒng)的研究方向。
[1]牟浩.I2C總線控制器的設(shè)計(jì) [J].科協(xié)論壇(下半月),2010,(10): 25.
[2]龔向東,黃虹賓,劉春平.主從可配置I2C總線接口IP及其應(yīng)用 [J].電訊技術(shù),2010,(1):36.
[3]邱永華,賀文健.開放式運(yùn)動(dòng)控制器人機(jī)界面的研究與設(shè)計(jì) [J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,(4):28-30.
[4]陳穗光,葛建華.I2C總線接口協(xié)議設(shè)計(jì)及FPGA的實(shí)現(xiàn)[J].山西電子技術(shù),2006,(6):55-56.
[5]譚平,劉建新.基于I2C總線的PIC單片機(jī)端口擴(kuò)展技術(shù) [J].微計(jì)算機(jī)信息,2006,(17):21-23.
[6]邱永華.智能蹺蹺板小車控制系統(tǒng)的設(shè)計(jì) [J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2011,29(1):10-12.