I2C總線的工作原理與應(yīng)用
I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇。可隨時(shí)監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。
1 I2C總線特點(diǎn)
I2C總線最主要的優(yōu)點(diǎn)是其簡單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本??偩€的長度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。I2C總線的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。
2 I2C總線工作原理
2.1 總線的構(gòu)成及信號(hào)類型
I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。
I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào),它們分別是:開始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。
開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。
結(jié)束信號(hào):SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。
目前有很多半導(dǎo)體集成電路上都集成了I2C接口。帶有I2C接口的單片機(jī)有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROChip的PIC16C6XX系列等。很多外圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供I2C接口。
3 總線基本操作
I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。參見圖1。
圖1 串行總線上的數(shù)據(jù)傳送順序
3.1 控制字節(jié)
在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識(shí)別符(不同的芯片類型有不同的定義,EEPROM一般應(yīng)為1010),接著三位為片選,最后一位為讀寫位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫操作。如圖2所示。
圖2 控制字節(jié)配置
3.2 寫操作
寫操作分為字節(jié)寫和頁面寫兩種操作,對(duì)于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。關(guān)于頁面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序參見圖3。
圖3 頁面寫
3.3 讀操作
讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖4給出的是順序讀的時(shí)序圖。應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)周期間發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。
圖4 順序讀
4 實(shí)例:X24C04與MCS-51單片機(jī)軟硬件的實(shí)現(xiàn)
X24C04是XICOR公司的CMOS 4096位串行EEPROM,內(nèi)部組織成512×8位。16字節(jié)頁面寫。與MCS-51單片機(jī)接口如圖5所示。由于SDA是漏極開路輸出,且可以與任何數(shù)目的漏極開路或集電極開路輸出“線或”(wire-Ored)連接。上拉電阻的選擇可參考X24C04的數(shù)據(jù)手冊(cè)。下面是通過I2C接口對(duì)X24C04進(jìn)行單字節(jié)寫操作的例程。流程圖及源程序如下:
圖5 X24C04與51單片機(jī)接口
;名稱:BSENT
;描述:寫字節(jié)
;功能:寫一個(gè)字節(jié)
;調(diào)用程序:無
;輸入?yún)?shù):A
;輸出參數(shù):無
BSEND: MOV R2,#08H ;1字節(jié)8位
SENDA: CLR P3.2 ;
RLC A ;左移一位
MOV P3.3,C ;寫一位
SETB P3.2
DJNZ R2,SENDA ;寫完8個(gè)字節(jié)?
CLR P3.2 ;應(yīng)答信號(hào)
SETB P3.3
SETB P3.2
RET
圖6 流程圖
5 結(jié)束語
在I2C總線的應(yīng)用中應(yīng)注意的事項(xiàng)總結(jié)為以下幾點(diǎn):
1) 嚴(yán)格按照時(shí)序圖的要求進(jìn)行操作,
2) 若與口線上帶內(nèi)部上拉電阻的單片機(jī)接口連接,可以不外加上拉電阻。
3) 程序中為配合相應(yīng)的傳輸速率,在對(duì)口線操作的指令后可用NOP指令加一定的延時(shí)。
4)為了減少意外的干擾信號(hào)將EEPROM內(nèi)的數(shù)據(jù)改寫可用外部寫保護(hù)引腳(如果有),或者在EEPROM內(nèi)部沒有用的空間寫入標(biāo)志字,每次上電時(shí)或復(fù)位時(shí)做一次檢測,判斷EEPROM是否被意外改寫
上一篇:C51在程序設(shè)計(jì)中的頭文件用法
下一篇:C51學(xué)習(xí)心得體會(huì),指針和數(shù)組在程序設(shè)計(jì)中的關(guān)系
推薦閱讀
史海拾趣
晶豪科技一直將研發(fā)作為公司的核心競爭力。公司成功建立了各種容量及接口規(guī)格的特定型DRAM產(chǎn)品線,包括SDRAM、DDR I/II/III及PSRAM、低耗電的Mobile DRAM等。這些產(chǎn)品廣泛應(yīng)用于各種電子設(shè)備和系統(tǒng),贏得了市場的廣泛認(rèn)可。此外,公司還針對(duì)系統(tǒng)級(jí)封裝(SiP)的需求,成功開發(fā)了所需的“良品晶?!保↘nown-Good-Die, KGD)產(chǎn)品及多芯片模塊封裝(MCP)的解決方案,滿足了客戶的多樣化需求。
在XXXX年,Allianc公司迎來了一次重大的技術(shù)突破。公司研發(fā)團(tuán)隊(duì)成功開發(fā)出了一款具有領(lǐng)先性能的新型電子產(chǎn)品,該產(chǎn)品不僅具有更高的性能和更低的能耗,還具備更好的用戶體驗(yàn)。這一技術(shù)突破使得Allianc公司在市場上迅速脫穎而出,贏得了大量客戶的青睞。隨著產(chǎn)品銷量的不斷攀升,公司的知名度和影響力也逐漸擴(kuò)大。
隨著戰(zhàn)爭的結(jié)束,軍事通信市場的需求逐漸減少,Bliley開始尋求新的發(fā)展機(jī)遇。公司開始將目光投向更廣泛的商業(yè)應(yīng)用領(lǐng)域,并逐步拓展其產(chǎn)品線。在20世紀(jì)80年代初,Bliley開始生產(chǎn)SC切割晶體,這一創(chuàng)新使其在晶體制造領(lǐng)域取得了新的突破。進(jìn)入21世紀(jì),Bliley繼續(xù)加大研發(fā)力度,不斷推出新的產(chǎn)品和服務(wù)。2001年,公司更名為Bliley Technologies Inc.,以更好地反映其日益多樣化的產(chǎn)品和服務(wù)范圍。如今,Bliley已經(jīng)發(fā)展成為一家提供多種頻率控制產(chǎn)品的全球領(lǐng)導(dǎo)者。
在電子行業(yè)的激烈競爭中,芯源半導(dǎo)體(CW)公司憑借其卓越的技術(shù)創(chuàng)新能力,成功在市場中脫穎而出。公司創(chuàng)始人李博士帶領(lǐng)研發(fā)團(tuán)隊(duì),針對(duì)當(dāng)時(shí)市場上半導(dǎo)體產(chǎn)品的不足,開發(fā)出了一款高性能、低功耗的芯片產(chǎn)品。這款產(chǎn)品憑借其卓越的性能和穩(wěn)定性,迅速獲得了市場的認(rèn)可,為芯源半導(dǎo)體(CW)公司的初期發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
隨著市場競爭的加劇,芯源半導(dǎo)體(CW)公司意識(shí)到品質(zhì)管理的重要性。公司加強(qiáng)了對(duì)原材料采購、生產(chǎn)過程和產(chǎn)品質(zhì)量控制的管理,建立了完善的質(zhì)量管理體系。同時(shí),公司還引入了先進(jìn)的檢測設(shè)備和技術(shù)手段,以確保產(chǎn)品的穩(wěn)定性和可靠性。這些措施使芯源半導(dǎo)體(CW)公司的產(chǎn)品質(zhì)量得到了顯著提升,贏得了客戶的信任和好評(píng)。
在國際化布局方面,TDK-EPC公司始終保持著積極開放的態(tài)度。公司通過設(shè)立海外研發(fā)中心、生產(chǎn)基地和銷售網(wǎng)絡(luò)等方式,不斷拓展國際市場。同時(shí),公司還積極參與國際競爭和合作,與全球眾多知名企業(yè)建立了長期穩(wěn)定的合作關(guān)系。這些舉措不僅提升了TDK-EPC公司的品牌影響力和市場競爭力,也為公司的長期發(fā)展提供了有力保障。
本帖最后由 paulhyde 于 2014-9-15 09:39 編輯 全國大學(xué)生電子設(shè)計(jì)競賽歷年題目(1994-2003) 【挑戰(zhàn)一下你自己?】 … 查看全部問答∨ |
|
如何實(shí)現(xiàn)兩個(gè)脈沖之間的計(jì)時(shí) 我用的電機(jī)轉(zhuǎn)一圈發(fā)送一個(gè)脈沖,我想知道兩個(gè)脈沖之間的時(shí)間間隔該如何得到,由此得電機(jī)的轉(zhuǎn)速… 查看全部問答∨ |
|
問題是可以Search到AP,但是關(guān)聯(lián)不上,每次連接都失敗. OS起來后,debug port輸出如下: -OALIntrRequestSysIntr(irq = 21, sysIntr = 27) GetSystemPowerStstusEx2 failed with error 0x1f. -OALIntrRequestSysIntr(irq = 100, sysIntr = 28) -OA ...… 查看全部問答∨ |
|
wince中怎么對(duì)url進(jìn)行編碼(平臺(tái)是win32 api) 例如我的一個(gè)url地址是 TCHAR tWeb[300]=TEXT(\"http://192.168.0.1/front/kill.asmx/Getthing?co=全部ho=12&city=全部\"); 怎么轉(zhuǎn)成 TCHAR tWeb[300]=TEXT(\"http://192.168.0.1/front/ ...… 查看全部問答∨ |
|
LINK : fatal error LNK1181: cannot open input file 'libcpmt.lib' 編譯結(jié)果中的libcpmt.lib在EVC的安裝目錄下沒有找到 … 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 多點(diǎn)觸摸感應(yīng)技術(shù)給人機(jī)界面帶來的改變
- H.265:網(wǎng)絡(luò)視頻的高清時(shí)代
- 大聯(lián)大友尚集團(tuán)推出基于ST產(chǎn)品的工業(yè)PLC方案
- 電視棒工作原理很簡單 有網(wǎng)絡(luò)就能變身智能電視
- 牛B的手勢操控是如何煉成的
- Bourns 擴(kuò)展符合 AEC-Q200 標(biāo)準(zhǔn)車規(guī)級(jí)電流檢測電阻產(chǎn)品線
- 基于G.729壓縮語音流隱蔽通信系統(tǒng)設(shè)計(jì)方案
- 觸摸控制器如何滿足大屏觸控設(shè)備抗噪新需求?
- Bourns 擴(kuò)展半屏蔽功率電感產(chǎn)品組合,推出具更高最大感值新系列
- 指紋門禁常見問題解決方法
- 我是大偵探之:尋找遺落的TI電源拼圖
- “悅”讀deyisupport博文 樂享知識(shí)智贏好禮
- 有獎(jiǎng)直播|Keysight World 2020【電信基礎(chǔ)設(shè)施、云與人工智能分論壇】
- 免費(fèi)申請(qǐng)富士通FRAM 曬心得 贏大禮!
- 有獎(jiǎng)直播:使用 NI CompactDAQ 和 LabVIEW構(gòu)建基于傳感器的測試系統(tǒng)
- 看這里!發(fā)表個(gè)人原創(chuàng)就有機(jī)會(huì)獲得E金幣啦~~
- 【ST直播】MEMS傳感器開發(fā)套件簡介、了解內(nèi)嵌“有限狀態(tài)機(jī)和機(jī)器學(xué)習(xí)內(nèi)核”的傳感器
- 看視頻答題,玩轉(zhuǎn)幸運(yùn)大抽獎(jiǎng):Littelfuse汽車電子電路保護(hù)知多少
- 【EE團(tuán)拍賣】\\
- 搶先體驗(yàn)!免費(fèi)試用LM3S8962 評(píng)估套件!(10.13~11.30)
- 5G時(shí)代下華為的車聯(lián)網(wǎng)商用思考
- 汽車轉(zhuǎn)向系統(tǒng)百年歷史:EPS主導(dǎo)市場
- 通用汽車韓國公司工人將舉行部分罷工要求加薪
- 國民技術(shù)從后裝市場入手,助力汽車智能安全升級(jí)
- freescale MC9S12G128 SCI,printf使用
- 小米10屏下攝像頭新機(jī)揭秘:為前置兩個(gè)鏡頭
- iQOO Neo 855版入網(wǎng)工信部系6.38寸水滴屏+后置三攝
- Moto G8 Plus規(guī)格和照片曝光 采用驍龍665+后置三攝
- 京東方:給華為Mate X手機(jī)供應(yīng)柔性AMOLED產(chǎn)品
- 因未開放NFC芯片的訪問,歐盟或?qū)pple Pay展開反壟斷調(diào)查