亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        51單片機(jī)I2C總線(xiàn)應(yīng)用工作原理

        2012-04-29 00:00:00王慶偉
        中國(guó)新通信 2012年17期

        1. I2C串行總線(xiàn)概述

        I2C總線(xiàn)是PHLIPS公司推出的一種串行總線(xiàn),是具備多主機(jī)系統(tǒng)所需的包括總線(xiàn)裁決和高低速器件同步功能的高性能串行總線(xiàn)。

        I2C總線(xiàn)只有兩根雙向信號(hào)線(xiàn):一根是數(shù)據(jù)線(xiàn)SDA;另一根是時(shí)鐘線(xiàn)SCL。

        I2C總線(xiàn)通過(guò)上拉電阻接正電源。當(dāng)總線(xiàn)空閑時(shí),兩根線(xiàn)均為高電平。連到總線(xiàn)上的任一器件輸出的低電平,都將使總線(xiàn)的信號(hào)變低,即各器件的SDA及SCL都是線(xiàn)“與”關(guān)系。

        每個(gè)接到I2C總線(xiàn)上的器件都有唯一的地址。主機(jī)與其它器件間的數(shù)據(jù)傳送可以是由主機(jī)發(fā)送數(shù)據(jù)到其它器件,這時(shí)主機(jī)即為發(fā)送器。由總線(xiàn)上接收數(shù)據(jù)的器件則為接收器。

        在多主機(jī)系統(tǒng)中,可能同時(shí)有幾個(gè)主機(jī)企圖啟動(dòng)總線(xiàn)傳送數(shù)據(jù)。為了避免混亂,I2C總線(xiàn)要通過(guò)總線(xiàn)仲裁,以決定由哪一臺(tái)主機(jī)控制總線(xiàn)。

        2. I2C總線(xiàn)的數(shù)據(jù)傳送

        (1)數(shù)據(jù)位的有效性規(guī)定

        I2C總線(xiàn)進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線(xiàn)上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線(xiàn)上的信號(hào)為低電平期間,數(shù)據(jù)線(xiàn)上的高電平或低電平狀態(tài)才允許變化。

        (2)起始和終止信號(hào)

        SCL線(xiàn)為高電平期間,SDA線(xiàn)由高電平向低電平的變化表示起始信號(hào);SCL線(xiàn)為高電平期間,SDA線(xiàn)由低電平向高電平的變化表示終止信號(hào)。

        起始和終止信號(hào)都是由主機(jī)發(fā)出的,在起始信號(hào)產(chǎn)生后,總線(xiàn)就處于被占用的狀態(tài);在終止信號(hào)產(chǎn)生后,總線(xiàn)就處于空閑狀態(tài)。

        連接到I2C總線(xiàn)上的器件,若具有I2C總線(xiàn)的硬件接口,則很容易檢測(cè)到起始和終止信號(hào)。對(duì)于不具備I2C總線(xiàn)硬件接口的有些單片機(jī)來(lái)說(shuō),為了檢測(cè)起始和終止信號(hào),必須保證在每個(gè)時(shí)鐘周期內(nèi)對(duì)數(shù)據(jù)線(xiàn)SDA采樣兩次。

        接收器件收到一個(gè)完整的數(shù)據(jù)字節(jié)后,有可能需要完成一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無(wú)法立刻接收下一個(gè)字節(jié),這時(shí)接收器件可以將SCL線(xiàn)拉成低電平,從而使主機(jī)處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個(gè)字節(jié)時(shí),再釋放SCL線(xiàn)使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進(jìn)行。

        (3)數(shù)據(jù)傳送格式

        1.字節(jié)傳送與應(yīng)答

        每一個(gè)字節(jié)必須保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳送最高位(MSB),每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。

        由于某種原因從機(jī)不對(duì)主機(jī)尋址信號(hào)應(yīng)答時(shí)(如從機(jī)正在進(jìn)行實(shí)時(shí)性的處理工作而無(wú)法接收總線(xiàn)上的數(shù)據(jù)),它必須將數(shù)據(jù)線(xiàn)置于高電平,而由主機(jī)產(chǎn)生一個(gè)終止信號(hào)以結(jié)束總線(xiàn)的數(shù)據(jù)傳送。

        如果從機(jī)對(duì)主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時(shí)間后無(wú)法繼續(xù)接收更多的數(shù)據(jù)時(shí),從機(jī)可以通過(guò)對(duì)無(wú)法接收的第一個(gè)數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)發(fā)出終止信號(hào)以結(jié)束數(shù)據(jù)的繼續(xù)傳送。

        當(dāng)主機(jī)接收數(shù)據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信號(hào)。這個(gè)信號(hào)是由對(duì)從機(jī)的“非應(yīng)答”來(lái)實(shí)現(xiàn)的。然后,從機(jī)釋放SDA線(xiàn),以允許主機(jī)產(chǎn)生終止信號(hào)。

        2.數(shù)據(jù)幀格式

        I2C總線(xiàn)上傳送的數(shù)據(jù)信號(hào)是廣義的,既包括地址信號(hào),又包括真正的數(shù)據(jù)信號(hào)。

        在起始信號(hào)后必須傳送一個(gè)從機(jī)的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/),用“0”表示主機(jī)發(fā)送數(shù)據(jù)(T),“1”表示主機(jī)接收數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號(hào)結(jié)束。但是,若主機(jī)希望繼續(xù)占用總線(xiàn)進(jìn)行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號(hào),馬上再次發(fā)出起始信號(hào)對(duì)另一從機(jī)進(jìn)行尋址。

        在總線(xiàn)的一次數(shù)據(jù)傳送過(guò)程中,可以有以下幾種組合方式:

        a、主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個(gè)傳送過(guò)程中不變:

        注:有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無(wú)陰影部分則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。

        A表示應(yīng)答,表示非應(yīng)答(高電平)。S表示起始信號(hào),P表示終止信號(hào)。

        b、主機(jī)在第一個(gè)字節(jié)后,立即由從機(jī)讀數(shù)據(jù)

        c、在傳送過(guò)程中,當(dāng)需要改變傳送方向時(shí),起始信號(hào)和從機(jī)地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫(xiě)方向位正好反相。

        3.總線(xiàn)的尋址

        I2C總線(xiàn)協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號(hào)后的第一個(gè)字節(jié))。

        (1)尋址字節(jié)的位定義

        D7~D1位組成從機(jī)的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時(shí)表示主機(jī)向從機(jī)寫(xiě)數(shù)據(jù),為“1”時(shí)表示主機(jī)由從機(jī)讀數(shù)據(jù)。

        主機(jī)發(fā)送地址時(shí),總線(xiàn)上的每個(gè)從機(jī)都將這7位地址碼與自己的地址進(jìn)行比較,如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)R/位將自己確定為發(fā)送器或接收器。

        從機(jī)的地址由固定部分和可編程部分組成。在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī),從機(jī)地址中可編程部分決定了可接入總線(xiàn)該類(lèi)器件的最大數(shù)目。如一個(gè)從機(jī)的7位尋址位有4位是固定位,3位是可編程位,這時(shí)僅能尋址8個(gè)同樣的器件,即可以有8個(gè)同樣的器件接入到該I2C總線(xiàn)系統(tǒng)中。

        (2)起始字節(jié)

        起始字節(jié)是提供給沒(méi)有I2C總線(xiàn)接口的單片機(jī)查詢(xún)I2C總線(xiàn)時(shí)使用的特殊字節(jié)。

        不具備I2C總線(xiàn)接口的單片機(jī),則必須通過(guò)軟件不斷地檢測(cè)總線(xiàn),以便及時(shí)地響應(yīng)總線(xiàn)的請(qǐng)求。單片機(jī)的速度與硬件接口器件的速度就出現(xiàn)了較大的差別,為此,I2C總線(xiàn)上的數(shù)據(jù)傳送要由一個(gè)較長(zhǎng)的起始過(guò)程加以引導(dǎo)。引導(dǎo)過(guò)程由起始信號(hào)、起始字節(jié)、應(yīng)答位、重復(fù)起始信號(hào)(Sr)組成。

        請(qǐng)求訪(fǎng)問(wèn)總線(xiàn)的主機(jī)發(fā)出起始信號(hào)后,發(fā)送起始字節(jié)(0000 0001),另一個(gè)單片機(jī)可以用一個(gè)比較低的速率采樣SDA線(xiàn),直到檢測(cè)到起始字節(jié)中的7個(gè)“0”中的一個(gè)為止。在檢測(cè)到SDA線(xiàn)上的高電平后,單片機(jī)就可以用較高的采樣速率,以便尋找作為同步信號(hào)使用的第二個(gè)起始信號(hào)Sr。

        在起始信號(hào)后的應(yīng)答時(shí)鐘脈沖僅僅是為了和總線(xiàn)所使用的格式一致,并不要求器件在這個(gè)脈沖期間作應(yīng)答。

        4. 80C51單片機(jī)I2C串行總線(xiàn)器件的接口

        (1)總線(xiàn)數(shù)據(jù)傳送的模擬

        主機(jī)可以采用不帶I2C總線(xiàn)接口的單片機(jī),如80C51、AT89C2051等單片機(jī),利用軟件實(shí)現(xiàn)I2C總線(xiàn)的數(shù)據(jù)傳送,即軟件與硬件結(jié)合的信號(hào)模擬。

        4.1.1典型信號(hào)模擬

        為了保證數(shù)據(jù)傳送的可靠性,標(biāo)準(zhǔn)的I2C總線(xiàn)的數(shù)據(jù)傳送有嚴(yán)格的時(shí)序要求。I2C總線(xiàn)的起始信號(hào)、終止信號(hào)、發(fā)送“0”及發(fā)送“1”的模擬時(shí)序:

        4.1.3典型信號(hào)模擬子程序

        (1)起始信號(hào)

        Void T2CStart(void)

        {

        SomeNop( );

        SCL = 1;

        SomeNop( );

        SDA = 0;

        SomeNop( );

        SCL = 0;

        SomeNop( );

        }

        (2)終止信號(hào)

        void I2cStop(void)

        {

        SDA = 0;

        SomeNop( );

        SCL = 1;

        SomeNop( );

        SDA = 1;

        SomeNop( );

        SCL = 0;

        }

        久久成人国产精品一区二区| 国产91在线|亚洲| 久久综合给合久久97色| 免费在线视频亚洲色图| 国产特黄级aaaaa片免| 中文亚洲一区二区三区| 亚洲av毛片在线免费观看| 777国产偷窥盗摄精品品在线| 亚洲日韩乱码中文无码蜜桃臀| 日韩精人妻无码一区二区三区| 日本一区二区三区精品免费| 国产精品99精品久久免费| 99精品视频在线观看免费| 999久久久免费精品国产牛牛| 成人av资源在线观看| 放荡的少妇2欧美版| 美女扒开内裤让男生桶| 亚洲国产一区久久yourpan| av在线免费观看大全| 亚洲综合激情五月丁香六月| 日韩精品国产自在久久现线拍| 日韩人妻高清福利视频| 免费视频无打码一区二区三区| 亚洲中文字幕久在线| 国产中文aⅴ在线| 国产一区二三区中文字幕| 亚洲av丰满熟妇在线播放| 亚洲欧洲偷自拍图片区| 韩国主播av福利一区二区| 中文字幕一区二区黄色| 国产啪亚洲国产精品无码| 在线一区不卡网址观看| 国产人妖一区二区av| 亚洲精品在线国产精品| 国外亚洲成av人片在线观看 | 免费a级毛片无码免费视频120软件| 最新国产日韩AV线| 一区二区日本影院在线观看| 蜜芽亚洲av无码精品色午夜| 国产午夜精品一区二区三区不卡 | 可以免费看亚洲av的网站|