日韩欧美国产极速不卡一区,国产手机视频在线观看尤物,国产亚洲欧美日韩蜜芽一区,亚洲精品国产免费,亚洲二区三区无码中文,A大片亚洲AV无码一区二区三区,日韩国语国产无码123

您好,歡迎來到維庫電子市場網(wǎng) 登錄 | 免費注冊

I2C總線
閱讀�30835時間�2010-11-24 15:03:52

  I2C總線是由Philip公司提出的串行通用接口�(guī)�。該模式在器仵之間用兩根線進行信息傳輸,這兩根線定義為數(shù)捃線SDA和時鐘線SCL,都其有雙向傳輸功能�

  I2C�(guī)范運用土從雙向通信,發(fā)送數(shù)�(jù)到總線上的器件被定義為發(fā)送器,接收數(shù)�(jù)的器件被定義為接收器,主從器件都可以工作于接收器和發(fā)送器狀�(tài),串��(shù)�(jù)�SDA傳輸�(fā)送數(shù)�(jù),串行時鐘線SCL�(fā)送同步時鐘.這兩根線均為集電極開路口輸出�(jié)�(gòu),允許多個器件摶接于這兩根線��

  I2C總線�單片�CPU控制,主控器件產(chǎn)生串行時鐘、控制總線的傳送方�,并�(chǎn)生起始和停止位信�,完成一次傳輸過程。從動器件為被主控器件尋址的器�,I2C模式之有�(guān)�寄存�共有12��

基本操作

  I2C總線上只具有SOL(時鐘)和SDA(數(shù)�(jù)�2根信號線。如果是單純的串行傳�,一旦因為某種原因造成引腳的偏�,則可能會造成不能區(qū)分總線上傳輸?shù)氖菙?shù)�(jù)還是地址信息的后�。解決上述問題的簡單辦法就是附加獨立于總線的Reset(復(fù)位)信號,由主機控制該信號。因為I2C至少利用2根線進行所有的操作,因此在�(shù)�(jù)傳輸�,通常�(dāng)SCL為低電平�,設(shè)置下一個數(shù)�(jù);當(dāng)SDA變化�,SCI為高電平,這可以解釋為一連串操作的開始/�(jié)��

  1.  起始條件

  始條件表示一系列操作的開�。圖1表示起始條件以及隨后�(shù)�(jù)傳輸?shù)拈_始操�。在I2C總線的空閑狀�(tài)下,SDA及SCL通過上拉電阻都為高電�。在這樣的狀�(tài)�,如果SCL仍保持高電平,而SDA�?yōu)榈碗�?則成為開始指��

I2C總線的起始條件

  �1 I2C總線的起始條�

  由于該狀�(tài)并不出現(xiàn)于地址及數(shù)�(jù)的發(fā)送與接收過程�,因�,即使在途中�(fā)生異�,只要檢測出該狀�(tài),初始化�(nèi)部的狀�(tài)機,就可以使其恢�(fù)�

  2.  �(jié)束條�

  在一系列操作的是�(jié)束條�。結(jié)束條件如�2所�。當(dāng)SOL為高電平�,一旦SDA由低電平變化為高電平,即成為�(jié)束條�,主機與器件之間的通信將停止,器件恢復(fù)為空閑狀�(tài)。進行寫操作時的結(jié)束狀�(tài)是開始進行EEPROM�(nèi)部單元寫操作的指示標(biāo)志�

I2C總線的結(jié)束條件

  �2 I2C總線的結(jié)束條�

  �(jié)束前所傳輸?shù)�?shù)�(jù)是ACK/NoACK的狀�(tài)�,如果是ACK,則該狀�(tài)位為低電�。但如果�(fā)生某種錯誤時,則表示為NoACK的高電平。讀操作時的字節(jié)是主機向器件返回NoˉACK信息,所以SDA為高電平。這樣就不能形成結(jié)束條件所需要的SDA的上升沿,因此在�(jié)束之前需要加入啞元�0”數(shù)�(jù)位作為解決辦��

  在最終數(shù)�(jù)的ACK NoACK之后,主機通過下述的流�,形成結(jié)束條�,如下所述:

 ?、賁CL�?yōu)榈碗娖剑?/FONT>

 ?、赟DA�?yōu)榈碗娖剑?/FONT>

 ?、跾OL�?yōu)楦唠娖剑òl(fā)送啞元數(shù)�(jù)��

  ④SDA�?yōu)楦唠娖剑ńY(jié)束條件)�

  3.  �(shù)�(jù)傳輸

  �(shù)�(jù)傳輸?shù)牧鞒倘鐖D3所�。除去開始與�(jié)束條�,在傳輸包含地址指定等數(shù)�(jù)�,能夠使SDA�(fā)生變化的條件只能是在SOL為低電平�。因�,總線操作以如下的步驟進行�

 ?、賁CL�?yōu)榈碗娖剑?/FONT>

 ?、跒镾DA�(shè)置數(shù)�(jù)(主機或者器件)�

 ?、跾CL�?yōu)楦唠娖健?/FONT>

  進行�(shù)�(jù)讀操作時,主機在SOL恢復(fù)為高電平之前讀取數(shù)�(jù)�

I2C總線的數(shù)據(jù)傳輸

  �3 I2C總線的數(shù)�(jù)傳輸

基本工作原理

  在I2C總線的數(shù)�(jù)傳輸過程�,主控器和被孔器工作在兩個相反的狀�(tài) 并且在一次通信過程中一股不�(fā)生轉(zhuǎn)��

  1. 主控器為�(fā)送器(主控發(fā)送器)時被控器為接收器(被控接收器)�

  2. 主控器為接收器(主控炫收器)時被控器為發(fā)送器(被控發(fā)送器)�

  圖所下為一次完整的通信過程時序,在I2C總線上進行的每一次通信過程,都存在在如下規(guī)律:

一個完整通信過程的I2C總線信號時序

  � 一個完整通信過程的I2C總線信號時序

  1.  由主控器主動�(fā)�,并且以�(fā)送啟動信號S和停止信號P分別來掌管總線和釋放總線�

  2.  通信過程都是以啟動信號S開始、以停止信號P�(jié)��

  3.  傳送的�(shù)�(jù)字節(jié)�(shù)沒有限制�

  4.  主控器在啟動信號后緊接著�(fā)送一個地址字節(jié),其實包�7位被控器地址碼和1位讀/寫控制位R/W�

  5.  讀/寫控制位R/W(或稱作方向位)用于通知被控器數(shù)�(jù)傳送的方向�0表示這次通信是由主控器向被控器寫�(shù)�(jù)�1表示這次通信是主控器從被控器讀�(shù)�(jù)�

  6.  每傳�1個地址字節(jié)或數(shù)�(jù)字節(jié)共需�9個時鐘脈�� 其中�1�8個時鐘脈沖對�(yīng)的是由發(fā)送器向接收器�(fā)送的信息,笫9個脈沖對�(yīng)的是由接收器句發(fā)送器反饋的一個應(yīng)答位ACK�

  7.  所有掛接到I2C總線上的被控器件都接收啟動信號后的地址字節(jié),并且把接收到的7位地址碼與自己的地址進行比較,如果相符即為主控器尋址的被控器,在�9個時鐘脈沖期間反饋應(yīng)答信��

  8.  每個數(shù)�(jù)字節(jié)在傳送時都是高位(MSB)在��

讀操作的流�

  M24Cxx的讀操作模式及其各種模式的操作流程如�1、圖2所��

  1.  �(dāng)前地址讀

  EEPROM�(nèi)部具有保持當(dāng)前地址的寄存器。讀取當(dāng)前地址的數(shù)�(jù)�,不需要指定地址。只要單純給出讀指令就可讀出數(shù)�(jù)。讀取完畢后,內(nèi)部所保持的當(dāng)前地址將自動進位�

I2C存儲器的讀操作

  �1 I2C存儲器的讀操作�1�

 I2C存儲器的讀操作

  �2 I2C存儲器的讀操作�2�

  �(shù)�(jù)讀操作后的ACK/NoACK信號由主機返�,但必須返回NoACK信號�

  2.  隨機讀

  隨機讀是由主機指定任意的地址讀取的。利用寫指令�(shè)定地址,如果賦予讀指令則可以讀出當(dāng)前地址。所�,與字節(jié)寫操作時相同,在�1字節(jié)的數(shù)�(jù)后面給出地址。在這里,一旦發(fā)送出�(shù)�(jù)就成為寫操作,在此設(shè)置開始條�,取消向?qū)懖僮鞯倪w移而發(fā)出讀指令,將從事先設(shè)定的地址中讀出數(shù)�(jù)�

  此時,DEVSEL�(shù)�(jù)(前7位數(shù)�(jù))必須設(shè)定與最初寫指令所�(fā)送的相同的��

  3.  順序讀

  在當(dāng)前地址讀操作之后,如果主機返田ACK信號,則為順序讀模式,器件將�(zhǔn)備下一個地址的數(shù)�(jù),主機取回該�(shù)�(jù)。一旦到達要讀出的最終地址,主機將返回NoACK信號,通知器件這已是的�(shù)�(jù)�

  4.  順序隨機讀

  �(dāng)指定任意地址、希望由此連續(xù)讀出數(shù)�(jù)�,可利用該模�。只要認(rèn)為這是與對�(yīng)于當(dāng)前讀的順序讀相同的模式即��

  順序隨機讀模式與隨機讀同樣進行讀操作,接收到�(shù)�(jù)后如果是ACK�(yīng)�,則器件將準(zhǔn)各下一個地址的數(shù)�(jù);如果是最終數(shù)�(jù),則返回NoACK信號,結(jié)束數(shù)�(jù)的傳輸�

寫操作的流程

  在I2C總線上傳輸操作是�8位+ACK/NoACK共計9位為單位進行�。發(fā)送是從位7(MSB)開始進行的,雖然一般的串口(PC機的COM端口等)是由�0(LSB)開始發(fā)送的,但I2C總線是相反的,這一點需要注意。接�8位數(shù)�(jù)或者指令的接收方在下一個時鐘輸出ACK/NoACK�,如果是低電平則表示ACK;如果是高電平則表示NoACK�

  寫操作包括字節(jié)寫及頁面寫兩�。字節(jié)寫是只置換特定的1個地址;而頁面寫可置換匯總了16字節(jié)界限�(nèi)的連續(xù)的地址范圍(頁�。各種寫操作的流程圖如圖所示�

I2C存儲器的字節(jié)寫與頁面寫

  � I2C存儲器的字節(jié)寫與頁面�

  1.  字節(jié)�

  這是指定任意的地址�8位)寫人�(shù)�(jù)的方��

  起始字節(jié)的DEVSEL按照前面描述的起始數(shù)�(jù)的格�,位7�4是�1010”的固定模式,位操作(�1”)還是寫操作(�0”)�

  如果存儲器處于寫保護狀�(tài)(WC引腳為高電平等),則在接收地址之前一直返回ACK信號,對于之后傳�?shù)�?shù)�(jù),則返回No-ACK信號�

  �(shù)�(jù)�(fā)送完畢后,如果檢測出來自主機的結(jié)束條�,則EEP-ROM�(nèi)部開始進行寫入操作。根�(jù)�(shù)�(jù)手冊可查出完成寫入操作所需要的時間。+5V的產(chǎn)品需�5ms,其他的�(chǎn)品大約需�10ms左右的時間�

  EEPROM�(nèi)部的替換周期在進行過程�,即使發(fā)送下一個指令也將返回NoACK信號。因此,利用該NoACK信號就可判斷�(nèi)部的操作是否完成�

  2.  頁面�

  頁面寫操作本身與字節(jié)寫是相同的。由于在存取后地址自動進位,因而可以按序發(fā)�1頁(16字節(jié))以�(nèi)的數(shù)�(jù)。實際上向存儲器單元的寫人操�,與字節(jié)寫相�,都是在檢測出結(jié)束條件后進行�,所以需要等待,直到操作�(jié)�,然后再進行下一個操��

及其�(yīng)�

  I 2C總線起源與特�

  I 2C(Inter-IntegratedCircuit)總線是一種由Philips公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍�(shè)��12C總線�(chǎn)生于20世紀(jì)80年代,最初為音頻和視頻設(shè)備開�(fā),如今主要在服務(wù)器管理中使用,其中包括單個組件狀�(tài)的通信。例如管理員可對各個組件進行查詢,管理系�(tǒng)的配置或掌握組件的功能狀�(tài),如電源和系�(tǒng)�(fēng)�;可隨時�(jiān)控內(nèi)�、硬�、網(wǎng)�(luò)、系�(tǒng)溫度等多個參�(shù),增加了系統(tǒng)的安全�,以便有效進行管理�

  12C總線最主要的優(yōu)點是其簡單性和有效�。由于接口直接在組件之上,因此VC總線占用的空間非常小,減少了電路板的空間和芯片管腳的�(shù)量,降低了互�(lián)成本??偩€的長度可高�25英尺,并且能夠以10kb/s的傳輸速率支持40個組��12C總線的另一個優(yōu)點是,他支持多主�(multimastering),其中任何能夠進行�(fā)送和接收的設(shè)備都可以成為主總�。一個主控能夠控制信號的傳輸和時鐘頻�。當(dāng)然,在任何時間點上只能有一個主��

  12C總線的構(gòu)成及信號類型

  PC總線是由�(shù)�(jù)線SDA和時鐘SCL�(gòu)成的串行總線,可�(fā)送和接收�(shù)�(jù)。在CPU與被控IC之間、IC與IC之間進行雙向傳�,傳送速率100kb/s。各種被控制電路均并�(lián)在這條總線�,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有惟一的地址,在信息的傳輸過程中�12C總線上并接的每一模塊電路既是主控�(或被控器),又是發(fā)送器(或接收器),這取決于他所要完成的功能。CPU�(fā)出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對比度、亮度等)及需要調(diào)整的�。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相�(guān)�

  VC總線在傳送數(shù)�(jù)過程中共�3種類型信�,他們分別是:開始信號、結(jié)束信號和�(yīng)答信�� 開始信號 SCL為高電平�,SDA由高電平向低電子跳變,開始傳送數(shù)�(jù)�

  �(jié)束信� SCL為低電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)�(jù)�

  �(yīng)答信� 接收�(shù)�(jù)的IC在接收到8b�(shù)�(jù)�,向�(fā)送數(shù)�(jù)的IC�(fā)出特定的低電子脈�,表示已收到�(shù)�(jù)。CPU向受控單元發(fā)出二個信號后,等待受控單元發(fā)出一個應(yīng)答信�,CPU接收到應(yīng)答信號后,根�(jù)實際情況做出是否繼續(xù)傳遞信號的判�。若未收到應(yīng)答信�,判斷為受控單元出現(xiàn)故障�

  目前有很多半�(dǎo)體集成電路上都集成了12C接口。帶�12C接口的單片機有:Cygnal的C8051FOXX系列,Philips的SAA73XX與SAA78XX系列等。很多外圍器件如存儲�、監(jiān)控芯片等也提�12C接口�

  3 總線基本操作

  I2C�(guī)程運用主/從雙向通訊。器件發(fā)送數(shù)�(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)�(jù)則定義為接收�。主器件和從器件都可以工作于接收和發(fā)送狀�(tài)??偩€必須由主器�(通常為微控制�)控制,主器件�(chǎn)生串行時�(SCL)控制總線的傳輸方�,并�(chǎn)生起始和停止條件。SDA線上的數(shù)�(jù)狀�(tài)僅在SCL為低電平的期間才能改�,SCL為高電子的期�,SDA狀�(tài)的改變被用來表示起始和停止條�。如�1所��

  3�1 控制字節(jié)

  在起始條件之�,必須是器件的控制字節(jié),其中高4位為器件類型識別�(不同的芯片類型有不同的定�,E2PROM一般應(yīng)�1010),接�3位為片選,一位為讀寫位,當(dāng)�1時為讀操作,為。時為寫操作。如�2所示�

  3�2 寫操�

  寫操作分為字節(jié)寫和頁面寫兩種操�,對于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。關(guān)于頁面寫的地址、應(yīng)答和�(shù)�(jù)傳送的時序如圖3所��

  3�3 讀操作

  讀操作�3種基本操作:�(dāng)前地址讀、隨機讀和順序讀。圖4給出的是順序讀的時序圖。應(yīng)�(dāng)注意的是一個讀操作的第9個時鐘周期不�"不關(guān)�"為了�(jié)束讀操作,主機必須在�9個周期間�(fā)出停止條件或者在�9個時鐘周期內(nèi)保持SDA為高電子、然后發(fā)出停止條��

  4.I2C總線軟件編寫

  一般I2C通用讀寫程序的編寫主要包括以下幾個模塊:I2C總線的初始化子程�;延時子程序;起始、結(jié)束子

  以上部分是I2C總線各個部分的軟件編寫。其中SDA,SCL口的定義留給用戶,用戶可以根�(jù)需要自行定義�

  5 �(jié) �

  PC總線由于其簡單的硬件�(jié)�(gòu),在智能控制、單芯片控制、LCD�(qū)動器、遠程I/O控制,特別是在日益流行的視聽系統(tǒng)、多媒體系統(tǒng)、家庭影院得到了廣泛�(yīng)�,已�(jīng)成為一種工�(yè)�(biāo)�(zhǔn),相信隨著數(shù)字化時代的到�,一定會有更美好的發(fā)展前�,一定會得到更好的應(yīng)�.

天台�| 浙江�| 鄯善�| 漳平�| 上林�| 建昌�| 邢台�| 库尔勒市| 海兴�| 赤峰�| 扎赉特旗| 缙云�| 赫章�| 荥阳�| 昌平�| 汤原�| 珠海�| 泉州�| 武冈�| 万盛�| 泗洪�| 集贤�| 马关�| 鲜城| 仁布�| 宜城�| 合山�| 托里�| 闽侯�| 玉门�| 贵港�| 连云港市| 柞水�| 石阡�| 信宜�| 虹口�| 山东�| 无锡�| 宁海�| 洛南�| 阿城�|