《電子技術(shù)應用》
您所在的位置:首頁 > 電源技術(shù) > 業(yè)界動態(tài) > CAT1025在I2C總線控制下的應用

CAT1025在I2C總線控制下的應用

2009-05-21
作者:單承剛

??? 摘 要:一種具有I2C串行總線的微控制器系統(tǒng)存儲器和電源監(jiān)控的完全解決方案。結(jié)合CAT1025芯片給出了LPC2103微控制器系統(tǒng)的電源監(jiān)控復位電路,介紹了基于I2C總線的2Kb EEPROM存儲器的讀寫過程,給出了相關(guān)應用程序流程圖與部分軟件程序。
??? 關(guān)鍵詞:I2C總線;電源監(jiān)控;CAT1025;EEPROM

?

??? I2C BUS(Inter Integrated Circuit BUS)是NXP半導體公司推出的芯片間串行傳輸總線,它以2根連線實現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送,可以極方便地構(gòu)成多機系統(tǒng)和外圍器件擴展系統(tǒng)。I2C總線采用了器件地址的硬件設置方法,通過軟件尋址完全避免了器件的片選線尋址方法,從而使硬件系統(tǒng)具有最簡單而靈活的擴展方法。該總線由1條串行時鐘線SCL和1條串行數(shù)據(jù)線SDA組成,在同一組I2C總線上,可以掛接多個CPU及被控芯片,CPU 既可以作為主器件, 控制I2C總線的工作模式, 也可以作為從器件, 在其他CPU的控制下發(fā)送或接收數(shù)據(jù)[1]
1 LPC2103中的I2C總線接口
??? LPC2103是一個基于支持實時仿真的16/32位ARM7 TDMI-S CPU的微控制器,內(nèi)部集成了兩路高速I2C總線,與I2C總線接口有關(guān)的專用寄存器有:(1)I2CONSET控制置位寄存器。當向該寄存器寫入1時,I2C控制寄存器中相應位置位,寫0到I2C控制寄存器的相應位沒有影響;(2)I2STAT狀態(tài)寄存器。在I2C操作中,該寄存器提供詳細的狀態(tài)碼使軟件確定所需的下一步操作; (3)I2DAT數(shù)據(jù)寄存器。發(fā)送接收的數(shù)據(jù)都可從該寄存器寫入或讀取; (4)I2ADR從地址寄存器。包含從機模式下I2C接口操作的7位從地址; (5)I2SCLH占空比寄存器高半字和I2SCLL占空比寄存器低半字。分別用來確定I2C時鐘的高時間和低時間; (6)I2CONCLR控制清零寄存器。當向該寄存器中的位寫1時,I2C控制寄存器中相應位被清零。
1.1 I2C電氣連接
??? I2C總線接口均為開漏或開集電極輸出,因此需要為總線增加上拉電阻Rp。總線速率越高,總線上拉電阻就越小,100Kb/s總線速率通常使用5.1 KΩ的上拉電阻[2],如圖1 所示。

?


1.2 I2C總線時序
??? I2C總線上每傳輸1個數(shù)據(jù)位必須產(chǎn)生1個時鐘脈沖。SDA線上的數(shù)據(jù)必須在時鐘線SCL的高電平期間保持穩(wěn)定,數(shù)據(jù)線的電平狀態(tài)只有在SCL線的時鐘信號為低電平時才能改變,如圖2所示。

?

?

??? 其中數(shù)據(jù)發(fā)送起始信號和停止信號較為特殊,在SCL為高電平時,SDA從高電平向低電平切換表示起始信號;在SCL為高電平時,SDA由低電平向高電平切換表示停止信號。起始和停止信號一般由主機產(chǎn)生。起始信號作為一次傳送的開始,在起始信號后總線被認為處于忙狀態(tài)。停止信號作為一次傳送的結(jié)束,在停止信號的某段時間后,總線被認為再次處于空閑狀態(tài)。重復起始信號既作為上次傳送的結(jié)束,也作為下次傳送的開始。如圖3 所示[3]

?

?

??? 發(fā)送起始信號后傳送的第1字節(jié)數(shù)據(jù)具有特別的意義,其中前7位為從機地址,最后1位為讀寫方向位(0表示寫,1表示讀)。結(jié)合本系統(tǒng),為實現(xiàn)I2C總線方式下對CAT1025的讀寫,發(fā)送起始信號第1字節(jié)前7位為從器件CAT1025的地址,如圖4所示。

?

?

??? I2C總線數(shù)據(jù)傳送時,每傳送1個字節(jié)數(shù)據(jù)后都必須有應答信號(A)。主控器接收數(shù)據(jù),如果要結(jié)束通信時,將在停止位之前發(fā)送非應答信號,如圖5所示。

?

?

??? LPC2103在I2C通信中可以配置為主控器也可以作為被控器,它具有4種操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式和從接收模式。在本系統(tǒng)中為了實現(xiàn)對CAT1025內(nèi)EEPROM存儲器讀寫,采用了主發(fā)送模式和主接收模式。
2 與CAT1025的I2C總線配置
??? CAT1025是基于微控制器系統(tǒng)的存儲器和電源監(jiān)控的完全解決方案。它利用低功耗CMOS技術(shù)將2Kb的串行EEPROM存儲器和帶掉電保護的系統(tǒng)電源監(jiān)控電路集成在一起。存儲器采用400 kHz的I2C總線接口。由于ARM芯片的高速、低功耗和低工作電壓的工作特性,導致其噪聲容限低,對電源紋波、瞬態(tài)響應性能、時鐘源的穩(wěn)定性和電源監(jiān)控的可靠性等諸多方面有很高的要求。采用I2C接口的專用電源監(jiān)控復位芯片CAT1025設計復位和I2C電路,保證了系統(tǒng)可靠性,其電路原理如圖6所示[4-5]:

?

?

??? CAT1025包含1個精確的Vcc監(jiān)控測電路和2個開漏輸出:RESET和。當Vcc低于復位閾值電壓時,RESET引腳將變?yōu)楦唠娖剑?IMG src="http://files.chinaaet.com/old/uploadfiles/jishu/jslw/20090521021845671.gif" border=0>將變?yōu)榈碗娖健AT1025還含有1個寫保護輸入(WP),如果WP連接高電平,則寫操作被禁止。LPC2103的P0.2和P0.3口若工作在第二功能模式下為I2C 0路的時鐘線和數(shù)據(jù)線,分別與CAT1025的SCL與SDA相連。Vcc電壓監(jiān)控電路提供了硬件數(shù)據(jù)保護功能,防止在Vcc降到低于復位閾值電壓或上電時Vcc上升到復位閾值電壓之前對存儲器執(zhí)行寫操作。I2C總線對CAT1025進行讀寫操作的過程介紹如下。
2.1 I2C接口的配置
??? 圖7 為I2C總線操作初始化流程圖。

?

?

??? 使用LPC2103的I2C 0路總線實現(xiàn)對CAT1025的讀寫。設置P0.2和P0.3口工作在第二功能模式下:
??? PINSEL0 = (PINSEL0 & (~0xF0)) | 0x50; /* P0.2:IICSCL, P0.3:IICSDA*/
??? 為了控制I2C通信的波特率,需要設置 I2SCLH、I2SCLL寄存器。其中I2SCLH定義SCL高電平所保持的PCLK周期數(shù),而I2SCLL定義SCL低電平所保持的PCLK周期數(shù)。
??? I2SCLH = (Fpclk / uiFi2c + 1)? / 2; /* 設定I2C時鐘*/
??? I2SCLL? = (Fpclk / uiFi2c) / 2;
??? 對I2CONCLR、I2CONSET寄存器進行設置,清零I2C通信的相關(guān)標志位,使能I2C接口功能。
??? I2CONCLR = 0x2C;
??? I2CONSET = 0x40;????????????????????????????????????? /* 使能主I2C */
??? I2C總線采用中斷方式來檢測每個字節(jié)的傳送是否成功, 因此需要定義中斷處理程序, 并且使能中斷。設中斷處理程序入口地址為IRQ_I2C, 則程序語句為:
??? /*? 設置I2C中斷 */
??? VICIntSelect = 0x00000000;? /* 設置所有通道為IRQ中斷 */
??? VICVectCntl0 = (0x20 | 0x09);? /* I2C通道分配最高優(yōu)先級? */
??? VICVectAddr0 = (int32)IRQ_I2C;/* 設置I2C中斷向量 */
??? VICIntEnable = 1 <<9;???????/* 使能I2C中斷 */
2.2 軟件設計[6]
2.2.1 主模式下向CAT1025發(fā)送數(shù)據(jù)程序流程
??? /* 從起始地址0x00寫入10個數(shù)據(jù) */
??? I2C_WriteNByte(CAT1025, ONE_BYTE_SUBA, 0x00, uiDataBuf, 10);
??? I2C_WriteNByte實現(xiàn)了向CAT1025器件起始地址0x00處寫入10個數(shù)據(jù)。ONE_BYTE_SUBA表示單字節(jié)地址,0x00表示從器件CAT1025起始地址,uiDataBuf表示寫入數(shù)據(jù)緩沖區(qū)指針,10表示寫入數(shù)據(jù)的個數(shù)。圖8為寫入過程程序流程圖。

?


2.2.2 主模式下從CAT1025讀取數(shù)據(jù)程序流程
??? /* 讀回剛才寫入的數(shù)據(jù) */
??? I2C_ReadNByte(CAT1025, ONE_BYTE_SUBA, 0x00, uiDataBuf, 10);
??? I2C_ReadNByte實現(xiàn)了向CAT1025器件起始地址0x00處依次讀入10個數(shù)據(jù)。ONE_BYTE_SUBA表示單字節(jié)地址,0x00表示從器件CAT1025起始地址,uiDataBuf,表示讀入數(shù)據(jù)緩沖區(qū)指針,10表示要讀入數(shù)據(jù)的個數(shù)。圖9為讀入過程程序流程圖。

?


2.2.3 I2C中斷處理過程
??? 對于硬件I2C接口,通常都使用中斷的方式進行操作。當I2C的狀態(tài)發(fā)生變化時,就會產(chǎn)生中斷,因此,發(fā)生I2C中斷時,必須要讀取I2C狀態(tài)寄存器,根據(jù)當前的狀態(tài)采取相應的措施。 主模式下I2C總線讀寫操作步驟:
??? (1)通過軟件置位STA進入主發(fā)送、接收模式,I2C邏輯在總線空閑后即發(fā)送一個起始條件。
??? (2)當發(fā)送完起始條件后,SI會置位,此時I2STAT中的狀態(tài)代碼為08H,該狀態(tài)代碼用于中斷服務程序的處理。
??? (3)把從地址和讀寫操作位裝入I2DAT(數(shù)據(jù)寄存器),然后清零SI位,開始發(fā)送從地址和R/W位。
??? (4)當從地址和R/W位已發(fā)送且接收到應答位之后,SI位再次置位,根據(jù)I2STAT寄存器中的狀態(tài)碼分別執(zhí)行接收、發(fā)送數(shù)據(jù)動作。
??? 基于I2C總線的CAT1025存儲器和電源解決方案已經(jīng)廣泛應用在各種微控制器系統(tǒng)中。本文給出的LPC2103微控制器系統(tǒng)的電源監(jiān)控復位電路,保證了系統(tǒng)的高可靠性。利用I2C總線方式對CAT1025內(nèi)2Kb EEPROM存儲器進行讀寫準確性高、速度快,可以滿足許多具有存儲性能的系統(tǒng)掉電后數(shù)據(jù)不丟失的要求。
參考文獻
[1]?廣州周立功單片機發(fā)展有限公司.EasyARM2103教材.2007:172-190.
[2]?梁建華,肖伸平.基于S3C44B0X 的I2C 總線設計.微計算機信息,2006(5- 2): 143- 144.
[3]?范應輝,張雷,陽富民. 基于Linnx的I2C總線驅(qū)動研究與實現(xiàn)[J].計算機工程與設計,2007:28-16:3953-3956.
[4]?王立平,王新梅. Linux環(huán)境下基于I2C 總線的EEPROM 驅(qū)動程序.國外電子元器件,2007(1): 4-7.
[5]?姚亞峰, 陳建文, 黃載祿.嵌入式系統(tǒng)中EEPROM 接口及控制電路設計. 半導體技術(shù),2007,32(4):328-331.
[6]?徐柳茂,黃永強,蔣念東,等.嵌入式Linux中I2C驅(qū)動程序的應用設計[J]. 國外電子元器件,2007(2): 21-25.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区国产一区| 午夜精品久久久久久99热软件| 国产精品h在线观看| 欧美国产一区二区| 欧美凹凸一区二区三区视频| 老司机精品视频一区二区三区| 久久国产精品毛片| 欧美专区日韩专区| 久久精品国产成人| 久久久久久久综合日本| 久久精品99国产精品酒店日本| 欧美在线观看视频一区二区| 欧美一级电影久久| 欧美在线免费观看亚洲| 欧美一区深夜视频| 欧美主播一区二区三区| 久久精品一区中文字幕| 久久影院亚洲| 欧美 日韩 国产 一区| 欧美www视频| 欧美金8天国| 欧美色综合天天久久综合精品| 国产精品h在线观看| 亚洲福利国产精品| 欧美与欧洲交xxxx免费观看| 亚洲视频精选在线| 午夜精品www| 久久精品国产一区二区三区| 99精品视频免费观看| 国产午夜精品福利| 国产一区二区三区免费不卡| 99在线精品视频| 国产欧美亚洲精品| 狠狠综合久久| 亚洲国产成人91精品| 亚洲日韩欧美一区二区在线| 99精品黄色片免费大全| 亚洲欧美另类国产| 久久精品国产99| 亚洲卡通欧美制服中文| 亚洲少妇一区| 久久aⅴ国产欧美74aaa| 免费91麻豆精品国产自产在线观看| 欧美激情1区2区3区| 国产精品成人观看视频免费| 国产日韩欧美一二三区| 亚洲国产精品传媒在线观看| 夜色激情一区二区| 久久国产精品一区二区| 日韩一本二本av| 香蕉久久夜色精品国产使用方法| 久久免费99精品久久久久久| 欧美男人的天堂| 国产精品亚洲综合天堂夜夜| 在线欧美小视频| 亚洲永久精品大片| 亚洲精品国产无天堂网2021| 亚洲在线一区二区| 老司机成人在线视频| 国产精品多人| 在线欧美亚洲| 亚洲一二三四区| 91久久极品少妇xxxxⅹ软件| 亚洲免费在线| 免费看的黄色欧美网站| 国产精品美女久久| 亚洲高清视频在线观看| 亚洲综合国产精品| 亚洲美女性视频| 久久av一区二区三区亚洲| 欧美激情一区在线观看| 国产日韩精品久久| 日韩午夜激情电影| 久久精品视频va| 亚洲欧美中文另类| 欧美成人精品高清在线播放| 国产精品网站在线观看| 亚洲欧洲精品一区二区三区| 欧美在线视频播放| 亚洲在线免费| 欧美日韩福利视频| 黄色国产精品| 亚洲性夜色噜噜噜7777| 亚洲美女电影在线| 久久亚洲色图| 国产午夜精品福利| 亚洲视频一区| 一区二区三区四区五区在线| 免费在线播放第一区高清av| 国产欧美一区二区精品婷婷| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲高清自拍| 欧美专区日韩视频| 亚洲欧美日韩精品久久久| 欧美看片网站| 亚洲国产日韩在线| 亚洲国产激情| 久久青草福利网站| 国产深夜精品福利| 亚洲在线一区| 午夜视频一区| 国产精品久久国产精品99gif | 亚洲国产一区视频| 久久久噜噜噜| 国产精品夜夜夜一区二区三区尤| 亚洲最新视频在线| 一区二区三区视频免费在线观看| 欧美成人一二三| 136国产福利精品导航| 亚洲东热激情| 久热精品视频在线免费观看| 国产一区二区成人| 欧美一级艳片视频免费观看| 欧美在线观看视频在线| 国产情人节一区| 先锋影音网一区二区| 欧美制服丝袜第一页| 国产欧美日韩亚洲一区二区三区| 亚洲午夜未删减在线观看| 亚洲一区二区在| 国产精品videosex极品| av成人手机在线| 亚洲欧美怡红院| 国产精品欧美日韩一区| 亚洲一区999| 欧美一区二区三区免费视频| 国产精品亚发布| 欧美一级精品大片| 久久久噜久噜久久综合| 在线观看一区欧美| 亚洲日本乱码在线观看| 欧美大片在线看免费观看| 亚洲第一主播视频| 亚洲裸体视频| 欧美色区777第一页| 亚洲午夜女主播在线直播| 欧美有码视频| 国内精品久久久久影院薰衣草| 久久经典综合| 欧美国产激情| 99天天综合性| 欧美一区二区三区久久精品茉莉花 | 国内精品亚洲| 亚洲九九精品| 国产精品ⅴa在线观看h| 亚洲免费视频一区二区| 久久深夜福利免费观看| 亚洲国产欧美一区二区三区丁香婷| 日韩五码在线| 国产精品卡一卡二卡三| 欧美在线观看视频在线| 老司机午夜精品视频在线观看| 亚洲三级观看| 欧美一级黄色录像| 亚洲二区精品| 亚洲欧美一区二区激情| 极品av少妇一区二区| 日韩亚洲欧美一区二区三区| 国产精品视频区| 91久久综合亚洲鲁鲁五月天| 欧美日韩国产专区| 午夜视频一区| 欧美激情亚洲一区| 亚洲欧美国产视频| 欧美成人一区二区在线| 亚洲视频碰碰| 免费日韩成人| 亚洲女同性videos| 欧美阿v一级看视频| 亚洲一区二区影院| 免费欧美在线视频| 亚洲一级黄色av| 欧美成人一区二区| 亚洲一区二区三区久久| 蜜臀久久99精品久久久久久9| 亚洲视频一起| 欧美国产日韩在线| 午夜精品www| 欧美日韩理论| 亚洲成人在线免费| 亚洲午夜久久久久久尤物 | 亚洲国产另类久久精品| 欧美视频在线一区二区三区| 亚洲第一级黄色片| 国产精品高潮呻吟久久av黑人| 亚洲国产导航| 国产欧美精品久久| 一本色道久久综合亚洲精品小说| 国产亚洲欧美一区二区| 一本久久青青| 一区精品在线播放| 先锋a资源在线看亚洲| 亚洲精品美女在线| 久久婷婷蜜乳一本欲蜜臀| 一区二区高清视频| 欧美电影在线观看完整版| 欧美一级大片在线免费观看| 欧美三级在线播放| 亚洲美女精品成人在线视频| 海角社区69精品视频|