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

        ?

        I2C總線器件編程開發(fā)關(guān)鍵技術(shù)

        2018-12-06 02:10:08黃忠良
        汽車電器 2018年11期
        關(guān)鍵詞:機設(shè)備高電平字節(jié)

        黃忠良

        (沙洲職業(yè)工學(xué)院,江蘇 張家港 215600)

        在微機控制領(lǐng)域,作為外圍芯片的I2C總線器件因結(jié)構(gòu)簡單,可靠性高,得到了廣泛應(yīng)用。例如存儲芯片24C02,用于記錄密碼及公里數(shù)等,廣泛用于汽車儀表系統(tǒng)。I2C(Inter-Integrated Circuit)總線又稱IIC總線或I2C總線,是PHLIPS公司推出的一種高性能串行總線。采用I2C串行總線技術(shù)可以精簡系統(tǒng)硬件設(shè)計,提高系統(tǒng)可靠性,同時,系統(tǒng)也易于擴充與升級。24C02作為I2C總線接口存儲芯片,屬串行EEPROM,容量2 kbit,斷電后數(shù)據(jù)不會丟失,常用于記錄密碼及公里數(shù)等場合。

        1 24C02及I2C總線接口電路

        24C02引腳圖如圖1所示,24C02與51單片機接口電路如圖2所示。

        圖1 24C02引腳

        應(yīng)用I2C總線器件進行編程時,由單片機主機完成I2C總線初始化、數(shù)據(jù)傳送、產(chǎn)生時鐘信號和終止發(fā)送功能,從機24C02接收主機發(fā)送的數(shù)據(jù)。I2C總線具有總線裁決功能,主要依靠從機設(shè)備地址實現(xiàn)。對于24C02,8位從機設(shè)備地址的高4位固定為1010,后3位為A2、A1、A0,最后1位是數(shù)據(jù)傳送的方向位 (R/W),主機將數(shù)據(jù)寫入從機為“0”,主機從從機讀出數(shù)據(jù)為“1”。

        圖2 24C02與單片機接口電路

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

        2.1 起始條件與停止條件

        只有在起始條件滿足后才能進行數(shù)據(jù)傳送,起始條件與停止條件如圖3所示。

        圖3 起始條件與停止條件

        從圖3可看出,當SCL處于高電平期間,SDA從高電平向低電平跳變時產(chǎn)生起始條件。當SCL處于高電平期間時,SDA從低電平向高電平跳變時產(chǎn)生停止條件。

        2.2 I2C位數(shù)據(jù)傳輸規(guī)定

        位數(shù)據(jù)的有效性及應(yīng)答信號時序如圖4所示。

        圖4 位數(shù)據(jù)的有效性及應(yīng)答信號時序

        主機進行數(shù)據(jù)傳送時,從最高位開始逐位傳送,時鐘信號線為高電平期間,位數(shù)據(jù)必須保持不變。另外,每傳送8位數(shù)據(jù) (即一個字節(jié))后,從機都必須產(chǎn)生一個應(yīng)答信號。

        3 I2C總線接口數(shù)據(jù)讀寫時序與編程

        3.1 24C02字節(jié)讀取時序

        從機讀操作有3種不同的方式:讀當前地址內(nèi)容、讀隨機地址內(nèi)容、讀順序地址內(nèi)容。圖5為24C02讀隨機地址內(nèi)容操作時序。

        圖5 24C02字節(jié)讀時序

        隨機讀操作允許主機對存儲器的任意字節(jié)進行讀操作,主機首先通過發(fā)送起始信號、從機設(shè)備地址和它想讀取的字地址執(zhí)行一個偽寫操作。在從機應(yīng)答之后,主機重新發(fā)送起始信號和從機設(shè)備地址,注意此處R/W位為1,從機響應(yīng)并發(fā)送應(yīng)答信號,然后輸出所要求的一個8位字節(jié)數(shù)據(jù),主機不發(fā)送應(yīng)答信號但產(chǎn)生一個停止信號。

        3.2 24C02字節(jié)寫入時序

        24C02字節(jié)寫操作時序如圖6所示。

        圖6 24C02字節(jié)寫時序

        主機先發(fā)送起始命令,然后發(fā)送從機設(shè)備地址數(shù)據(jù),主機在收到從機產(chǎn)生的應(yīng)答信號后,再發(fā)送一個字的地址數(shù)據(jù),主機再次收到從機的應(yīng)答信號后,最后發(fā)送數(shù)據(jù)到相應(yīng)存儲單元。從機再次應(yīng)答,并在主機產(chǎn)生停止信號后開始內(nèi)部數(shù)據(jù)的擦寫,在內(nèi)部擦寫過程中,從機不再應(yīng)答主機的任何請求。

        3.3 24C02字節(jié)寫入編程

        下列代碼完成24C02字節(jié)寫入。

        void write_byte (uchar add,uchar dat )

        {

        void init ();//I2C總線初始化

        void start (void);//起始條件

        I2Cwr_byte (0xa0);//寫24C02地址

        void ack (void);//從機24C02應(yīng)答

        I2Cwr_byte (add);//寫單元地址

        void ack (void);//從機24C02應(yīng)答

        I2Cwr_byte (dat);//寫數(shù)據(jù)

        void ack (void);//從機24C02應(yīng)答

        void stop (void);//結(jié)束條件

        }

        說明:上述用到的幾個被調(diào)用函數(shù)定義如下。

        ①void init ();//I2C總線初始化

        {

        sda=1;

        scl=1;

        }

        ②void start (void);//起始條件

        {

        scl=0;//拉低SCL再改SDA以防誤操作

        delay ();

        sda=1;

        delay ();

        scl=1;

        delay ();

        sda=0;

        delay ();

        }

        ③I2Cwr_byte(uchar dat) /*單字節(jié)傳送操作*/

        {

        uchar i;

        scl=0;//時鐘線上的信號為低電平期間,數(shù)據(jù)線上電平狀態(tài)允許變化

        for (i=0;i<8;i++) //采用逐位傳送方式

        {

        if (dat&0x80);//為先傳最高位狀態(tài)作準備

        {

        sda=1;

        }

        else

        {

        sda=0;

        }

        dat=dat<<1;//準備傳送后面一位

        delay ();

        scl=1;//總線數(shù)據(jù)傳送

        delay ();

        scl=0;

        delay ();

        }

        sda=1;//主機釋放總線

        delay ();

        }

        ④void stop (void);//停止條件

        {

        scl=0;//先拉低SCL,再改變SDA

        delay ();

        sda=0;

        delay ();

        scl=1;

        delay ();

        sda=1;

        delay ();

        }

        ⑤void ack (void) //從機應(yīng)答

        {

        uchar I;

        scl=1;

        delay ();

        while ((sda==1) && (i<200)) i++;//等待接收應(yīng)答或作超時處理

        scl=0;

        delay ();

        }

        另外,有關(guān)24C02字節(jié)的讀取編程見圖5。

        4 結(jié)束語

        24CXX芯片目前已廣泛應(yīng)用在斷電后仍然需要保持存儲數(shù)據(jù)的場合。上述I2C總線存儲單元讀寫編程方法已在Proteus上仿真調(diào)試成功。就I2C總線器件編程開發(fā)而言,正確理解操作時序至關(guān)重要,否則會導(dǎo)致通信失敗。

        猜你喜歡
        機設(shè)備高電平字節(jié)
        一種基于FPGA的PWM防錯輸出控制電路
        No.8 字節(jié)跳動將推出獨立出口電商APP
        TS-03C全固態(tài)PDM中波發(fā)射機開關(guān)機控制電路原理及故障分析
        科技傳播(2019年15期)2019-08-22 08:07:44
        No.10 “字節(jié)跳動手機”要來了?
        淺談煤炭生產(chǎn)企業(yè)綜機設(shè)備管理問題與優(yōu)化策略
        簡談MC7字節(jié)碼
        DM 50KW中波廣播發(fā)射機欠推動故障分析
        陶瓷工程中冷等靜壓機設(shè)備的監(jiān)造工作
        PDM 1kW中波廣播發(fā)射機保護電路分析
        論港機設(shè)備狀態(tài)檢測預(yù)知維修與管理
        精品少妇人妻av无码专区 | 亚洲性色ai无码| 91麻豆精品久久久影院| 99在线视频这里只有精品伊人| 男女性杂交内射女bbwxz| 97精品一区二区视频在线观看| 亚洲男人第一av网站| a√无码在线观看| 日本高清在线播放一区二区 | 玩弄极品少妇被弄到高潮| 亚洲国产最新免费av| 免费a级毛片又大又粗又黑| 精品国内在视频线2019| 婷婷五月综合缴情在线视频| 国产精品色内内在线播放| 一区二区三区黄色一级片| 蜜桃视频国产一区二区| 欧美精品videosex极品| 日本巨大的奶头在线观看| 久久久亚洲精品蜜桃臀| 日本熟妇裸体视频在线| 青青草免费手机视频在线观看| 人与动牲交av免费| 红杏亚洲影院一区二区三区| 国产美女三级视频网站| 91久久精品一区二区| 99无码精品二区在线视频| 永久免费av无码网站yy | 国产av天堂一区二区二区| 色偷偷偷在线视频播放| 精品少妇人妻av一区二区| 精品国产品欧美日产在线| 亚洲自偷自拍另类第一页| 日本一区二区三区中文字幕视频| 亚洲国产一区二区,毛片| 第一次处破女18分钟高清| 欧美黑吊大战白妞| 韩国一级成a人片在线观看| 精品一区二区三区老熟女少妇| 亚洲av日韩av卡二| 亚洲码国产精品高潮在线|