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

        ?

        I2C總線設計技術及其死鎖的探討

        2018-08-06 05:52:52李蔭瓏丘珊珊
        家電科技 2018年7期
        關鍵詞:低電平高電平時序

        李蔭瓏 丘珊珊

        LI Yinlong QIU Shanshan

        珠海格力電器股份有限公司 廣東珠海 519070

        Gree Electric Appliances, Inc. of Zhuhai Zhuhai 519070

        1 I2C總線概述

        I2C總線是PHILIPS公司推出的一種在電子通信控制領域常用的串行通信總線,是一種簡單、雙向通信、二線制、同步的串行總線,具有連接線少、控制簡單、通信速率高等優(yōu)點。用數(shù)據(jù)線SDA和時鐘線SCL構成通信線路,各器件可并聯(lián)到總線上實現(xiàn)數(shù)據(jù)收發(fā),器件間彼此獨立,通過唯一的總線地址區(qū)分。

        除了發(fā)送器和接收器外,在執(zhí)行數(shù)據(jù)傳輸時,器件也可以被看作主器件(主機)或從器件(從機)。主器件是用于啟動總線傳送數(shù)據(jù),并產生時鐘的器件,此時任何被尋址的器件均被認為是從器件。在總線上主和從、發(fā)和收的關系取決于此時的數(shù)據(jù)傳送方向,而不是恒定的。如果主機要發(fā)送數(shù)據(jù)給從器件,則主機首先尋址從器件,然后主動發(fā)送數(shù)據(jù)至從器件,最后由主機終止數(shù)據(jù)傳送;如果主機要接收從器件的數(shù)據(jù),首先由主器件尋址從器件,然后主機接收從器件發(fā)送的數(shù)據(jù),最后由主機終止接收過程。在這種情況下,主機負責產生定時時鐘和終止數(shù)據(jù)傳送。[1]

        I2C總線具有簡單性和有效性,只要求2條雙向通信線路SDA(串行數(shù)據(jù))和SCL(串行時鐘)。I2C總線支持多主控, 其中任何能夠進行發(fā)送和接收的器件都可以成為主機,一個主控能夠控制信號的傳輸和時鐘頻率,但在任何時間點上只能有一個主控。連接到相同總線上的器件數(shù)量受總線最大電容400pF限制,I2C總線上的串行8位雙向數(shù)據(jù)傳輸速率在標準模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s。

        2 I2C總線接口設計

        I2C總線是兩條雙向的串行線,其中一條是數(shù)據(jù)串行線SDA,另一條是時鐘串行線SCL。時鐘串行線SCL用于產生時鐘脈沖,數(shù)據(jù)串行線SDA通過SCL產生的時鐘脈沖進行讀取或是寫入數(shù)據(jù)。I2C總線上可以連接多個設備,每一個設備的數(shù)據(jù)串行線SDA的端口連接到一塊,且每一個設備的時鐘串行線SCL的端口連接到一塊。通過由數(shù)據(jù)串行線SDA和時鐘串行線SCL構成的I2C總線可以發(fā)送數(shù)據(jù)到總線上,以及接收總線上的數(shù)據(jù)。I2C總線接口應用示意圖如圖1所示。

        I2C總線上其SDA線以及SCL線的接口電路均是雙向的,SDA線向總線上發(fā)送數(shù)據(jù),也可在總線上讀取數(shù)據(jù),I2C總線上的設備可以分為主機和從機,其作為總線上的主機還是從機,主要取決于其在總線上所擔任的角色。主機點名從機,首先需要控制SCL以產生時鐘脈沖,并讀取或是發(fā)送數(shù)據(jù)到總線SDA上,以完成主機的工作,作為總線上的從機,需要回復主機的點名以及發(fā)送數(shù)據(jù)、應答ACK信號或是輸出低電平到總線上以延長主機的SCL信號,完成從機的工作。

        I2C總線的接口均為集電極開路(OC)或漏極開路(OD)的形式輸出,其主要是為防止I2C總線上的信號混亂,I2C總線上的輸出端沒有安裝上拉電阻時,只能輸出低電平,如果需要保證I2C總線正常工作,就需要在I2C總線的輸出端加上拉電阻R1和R2。圖1中,所有I2C設備的SDA或是SCL的端口連接到一塊,如果任意一個I2C設備輸出低電平都將控制I2C總線(即總線處于“忙”狀態(tài)),即各I2C設備的時鐘串行線SCL是線“與”的關系,各I2C設備的數(shù)據(jù)串行線SDA也是線“與”的關系。

        I2C總線主要有以下幾個方面的特點:[2]

        (1)總線驅動能力強。I2C總線外圍擴展設備都是CMOS型的,功率極低,因而總線上擴展的節(jié)點數(shù)不是由電流負載能力決定的,而是由電容負載確定的。通常I2C總線負載能力為400PF,據(jù)此可以計算出總線長度及所帶設備的數(shù)量,總線上擴展的設備數(shù)量主要受設備地址的限制。

        圖1 I2C總線應用示意圖

        圖2 I2C總線數(shù)據(jù)有效性圖示

        圖3 I2C總線起始時序及停止時序圖

        (2)任何一個I2C總線接口的外圍設備,不論其功能差別有多大,都是通過數(shù)據(jù)串行線SDA和時鐘串行線SCL連接到I2C總線上。應用者只需要將I2C設備的SDA口和SCL口連接至I2C總線上,對設備進行單獨電路設計便可,給使用者帶了便利性,也簡化了整個I2C系統(tǒng)設計的復雜性,可提高整個I2C系統(tǒng)的抗干擾能力,利于EMC實驗等。

        (3)只有一個I2C主機的應用系統(tǒng)當中,每一個I2C設備都有一個與其他I2C設備不一樣的設備地址,從機設備之間是互不干涉的,其只與主機進行通信,不與其他從機設備進行數(shù)據(jù)通信,主機與各從機之間的通信是通過I2C設備的獨一無二的設備地址進行通信的。

        (4)I2C總線其在制定時便規(guī)定相應的規(guī)范,如I2C總線的通信時序、通信接口、數(shù)據(jù)/信號傳輸?shù)奶卣?、定義等等,此類規(guī)范決定了應用者在編寫I2C總線程序時的一致性。

        3 I2C總線的時序

        I2C為同步串行通訊方式, SDA為數(shù)據(jù)信號(數(shù)據(jù)口)、SCL為時鐘信號(高電平有效)。SCL作為同步信號, 因此I2C具有非常嚴格的時序關系。I2C總線進行數(shù)據(jù)傳輸時,時鐘信號SCL為高電平期間,數(shù)據(jù)信號SDA上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘信號SCL為低電平期間,數(shù)據(jù)信號SDA上的高電平或低電平狀態(tài)才允許變化,如圖2所示。I2C總線時序包括數(shù)據(jù)傳送的起始與停止時序、數(shù)據(jù)傳送時序。

        I2C總線數(shù)據(jù)通信需要有起始位(S)和停止位(P)。建立起始信號(S)之前,I2C總線必須處于空閑狀態(tài),在時鐘線SCL高電平期間,數(shù)據(jù)線SDA由高電平向低電平跳變,此定義為I2C總線起始信號(S),代表開始傳送數(shù)據(jù),起始信號是由主機主動建立的,從機無法產生該信號。主機需要產生停止信號以結束通信時,其在時鐘線SCL高電平期間,將數(shù)據(jù)線SDA由低電平向高電平跳變,此便產生停止信號(P),代表結束向總線傳送數(shù)據(jù),此停止信號(P)是由主機主動建立的,從機無法產生該信號,建立停止信號后,由主機控制的I2C總線將被釋放至空閑狀態(tài),其它I2C設備可根據(jù)功能進行控制總線。起始時序及停止時序如圖3所示。

        I2C總線進行傳輸數(shù)據(jù)時,規(guī)定了一定的通信時序,但這種時序并不是完全規(guī)定死的,它可以根據(jù)主機、從機特定的功能要求進行改動,但整體的時序特性、通信特征是不變的(如起始位、停止位)。如可根據(jù)特定的功能規(guī)定協(xié)議,設備地址、寄存器地址的設置,以及是否可進行頁讀/寫操作等。I2C總線在傳送數(shù)據(jù)時,是一個一個數(shù)據(jù)位傳送的,每一個數(shù)據(jù)位都有一個時鐘脈沖相對應。在總線空閑狀態(tài)下,主機控制總線,產生起始信號(S),緊接著便需要傳送設備地址(即點名從機),設備地址的高七位一般為從機的地址位,最低位為讀操作(1)位(或寫操作位(0))。主機發(fā)送完設備地址后,從機需要對號進行回復(被點名的從機進行回復,未被點名的從機不回復),從機向主機發(fā)送應答ACK信號(低電平),主機在接受到應答ACK信號后,根據(jù)實際功能確定是否進一步操作,如需要繼續(xù)通信傳輸數(shù)據(jù),則主機進行傳送或是接收數(shù)據(jù),直到主機產生停止信號(P)結束該通信,并釋放I2C總線。完整I2C總線數(shù)據(jù)傳輸如圖4所示。另外,I2C總線協(xié)議中主從機必須根據(jù)自己的要求約定好通信規(guī)則:command的定義和位置、address的位數(shù)和位置,以便可以正常通信。

        4 I2C總線死鎖以及其解決辦法

        4.1 I2C總線死鎖的原因

        各I2C設備的時鐘串行線SCL是線“與”的關系,各I2C設備的數(shù)據(jù)串行線SDA也是線“與”的關系。在正常情況下,I2C總線協(xié)議能保證總線正常的讀/寫操作,但是只要總線上任何一個設備拉低了數(shù)據(jù)串行線SDA或者時鐘線串行SCL(控制總線),其他設備都無法拉高它們,如果有I2C設備不釋放總線,則整個總線上的通信都被暫停,總線被占用。

        在使用I2C總線時,產生其死鎖最常見的情況便是主機在通信過程中產生了復位。在I2C通信過程中,如果主機在等待從機發(fā)送應答ACK信號期間,從機發(fā)送低電平的ACK信號,但此時I2C通信的時序被打亂(如I2C總線通信時被外界干擾或是主機復位從機未復位),從而導致時鐘線SCL重新拉高至高點平,此時I2C總線的狀態(tài)為從機在等待主機將時鐘線SCL從高拉到低電平,以停止發(fā)送ACK應答信號,而主機檢測到數(shù)據(jù)線為低電平,認為總線被占用,等待總線被釋放。此情況下,無論是主機還是從機,均在等待,使得I2C總線處于死鎖狀態(tài),無法控制I2C總線。I2C總線上的主機在進行讀取數(shù)據(jù)時,也會產生同樣的狀況,導致總線處于死鎖狀態(tài)。以上情況是較為常見的使用軟件I2C時,導致I2C處于死鎖的狀態(tài),此外,如果芯片I2C的中斷服務程序被屏蔽,其中斷服務函數(shù)中有不必要的死循環(huán)以及芯片I2C系統(tǒng)被禁止等均有可能導致I2C總線進入死鎖狀態(tài),即I2C總線被占用(總線忙)狀態(tài)。

        4.2 I2C總線死鎖的解決辦法

        圖5 I2C總線死鎖恢復邏輯框圖

        I2C總線死鎖主要出現(xiàn)于采用硬件I2C,如需要解決I2C死鎖問題,最好用模擬I2C實現(xiàn);或者將從機的電源設計為可控,如果在I2C總線發(fā)生死鎖狀態(tài)的時候,可以將從機進行復位;或者可以在從機的程序中加入監(jiān)測功能,如果總線長時間被拉低則釋放對總線的控制;如采用硬件I2C,出現(xiàn)I2C死鎖,還可以在I2C主機中增加I2C總線死鎖狀態(tài)恢復程序,I2C總線死鎖恢復程序邏輯框圖如圖5所示。

        將硬件I2C更改為模擬I2C(軟件I2C),并模擬輸出9個連續(xù)的SCL時間脈沖信號(針對8位數(shù)據(jù)的情況),然后再產生一個停止信號,使I2C從死鎖狀態(tài)上恢復到正常狀態(tài),使總線能夠正常工作,之后延時一小段時間,再將軟件I2C口恢復到硬件I2C口。

        5 總結

        I2C總線協(xié)議非常受廣大工程師喜愛,應用也非常廣泛,在應用使用中,也會出現(xiàn)例如死鎖等通信問題,本文根據(jù)實際的使用主要介紹了I2C總線基本結構、接口設計及其總線數(shù)據(jù)傳輸時序,并闡述I2C總線死鎖的原因及其解決方案。

        猜你喜歡
        低電平高電平時序
        時序坐標
        數(shù)字電路中“邏輯非”的用法辨析
        一種基于FPGA的PWM防錯輸出控制電路
        基于Sentinel-2時序NDVI的麥冬識別研究
        鐵道車輛高/低電平信號智能發(fā)生器設計
        TS-03C全固態(tài)PDM中波發(fā)射機開關機控制電路原理及故障分析
        科技傳播(2019年15期)2019-08-22 08:07:44
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
        DM 50KW中波廣播發(fā)射機欠推動故障分析
        一種毫米波放大器時序直流電源的設計
        電子制作(2016年15期)2017-01-15 13:39:08
        PDM 1kW中波廣播發(fā)射機保護電路分析
        国产精品一区二区三区在线免费| 91亚洲国产三上悠亚在线播放| 尤物AV无码色AV无码麻豆 | 日韩av激情在线观看| 97se亚洲精品一区| 中文字幕久热精品视频免费| 熟女丝袜美腿亚洲一区二区三区| 极品粉嫩嫩模大尺度视频在线播放| 亚洲男人天堂黄色av| 日韩乱码人妻无码中文字幕久久| 丁香五月缴情综合网| 亚洲欧美日韩精品香蕉| 天堂av国产一区二区熟女人妻| 亚洲精品中文字幕乱码影院| 7m精品福利视频导航| 日本在线观看| 亚洲av综合色区在线观看| 亚洲啪啪色婷婷一区二区| 欧美激情乱人伦| 鲁鲁鲁爽爽爽在线视频观看| 日韩国产成人精品视频| 成人偷拍自拍在线视频| 国产亚洲精品久久情侣| 精品国产青草久久久久福利| 台湾佬综合网| 青青草极品视频在线播放| 深夜福利国产精品中文字幕| 亚洲av永久无码精品古装片 | 国产主播一区二区三区蜜桃| 亚洲av激情一区二区| 国产a在亚洲线播放| 天天摸日日摸狠狠添| 黄色录像成人播放免费99网| 中文字幕乱码一区在线观看| 九九在线中文字幕无码| 三级4级全黄60分钟| 午夜亚洲国产精品福利| 女同在线网站免费观看| 亚洲日韩中文字幕在线播放| 99偷拍视频精品一区二区| 亚洲无码激情视频在线观看|