用I2C總線(xiàn)擴展I/O
在系統應用中,需監控不同的輸入信號或控制幾個(gè)輸出信號,有時(shí)把這些信號線(xiàn)直接連接到微處理器引腳。這些監控和控制用軟件來(lái)做。然而,這種技術(shù)需要很多微處理器引腳。
本文引用地址:http://dyxdggzs.com/article/78555.htm 為了節省微處理器引腳,另一種可采用的方法是通過(guò)膠合邏輯接口實(shí)現監控和控制線(xiàn)與微處理器的通信。采用這種方法,連接到微處理器引腳的連線(xiàn)較少。而開(kāi)發(fā)這樣的系統比較麻煩和費時(shí),因為需要更多的器件、更多的連線(xiàn)路由或更復雜的碼開(kāi)發(fā)。
本文給出監控和控制幾個(gè)外設信號的良好方案,為接入并行總線(xiàn)提供一簡(jiǎn)單經(jīng)濟的方法,為接口不同的電子器件提供方便的途徑。此方案是基于標準PCF8574和PCF8574A器件基礎上的。這些器件的I2C地址是不同的。在此把這兩種器件當做擴展器。
這種擴展器具有1個(gè)2線(xiàn)I2C通信總線(xiàn),可與雙向數據傳輸的I2C主機接口。I2C總線(xiàn)由2條信號線(xiàn)和1條地線(xiàn)組成。信號線(xiàn)是雙向串行數據(SDA)線(xiàn)和雙向串行時(shí)鐘(SCL)線(xiàn)(見(jiàn)圖1)。SDA和SCL線(xiàn)經(jīng)上拉電阻連接正電源電壓。在總線(xiàn)閑置時(shí),這兩條信號線(xiàn)上拉為高態(tài)。
圖1 I2C總線(xiàn)器件通過(guò)雙向SDA和SCL線(xiàn)連接到I2C總線(xiàn)上
連接到I2C總線(xiàn)上的每個(gè)器件,根據其功能都具有自己的專(zhuān)門(mén)地址,每個(gè)器件可做為接收器或發(fā)送器??膳渲脭U展器具有專(zhuān)門(mén)的7位地址。PCF8574 7位地址的前4位是0100,而PCF8574A是0111。低3位地址由器件引腳A2、A1、A0設置。因此,器件的完整的專(zhuān)門(mén)地址由A2、A1和A0設置。表1示出PCF8574和PCF8574A專(zhuān)門(mén)地址的各種可能設置。
這種為器件設置專(zhuān)門(mén)地址的能力使得在同一I2C總線(xiàn)上可具有多達8個(gè)PCF8574和8個(gè)PCF8574A器件。因為每個(gè)器件具有8個(gè)I/O引腳,所以采用PCF8574和PCF8574A可使單個(gè)I2C總線(xiàn)能控制多達128個(gè)I/O。
I2C與擴展器的通信由主機進(jìn)行初始化,主機發(fā)送與主機通信的從器件的地址位。地址字節的第1部分由4位地址碼組成,對于PCF8574器件設置為0100、PCF8574A器件設置為0111。片選位(A2、A1、A0)跟在地址碼之后。這使得在1個(gè)總線(xiàn)上能用多達8個(gè)PCF8574和8個(gè)PCF8574A并能確定存取那個(gè)器件。對于所響應的器件,其地址字節中的片選位必須對應相應A2、A1和A0引腳上的邏輯電平。圖2所示的電路用8個(gè)PCF8574和8個(gè)PCF8574A器件控制和監視高達128個(gè)I/O。
圖2 用PCF8574和PCF8574A實(shí)現I/O擴展的電路
評論