新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > I2C總線串行輸入輸出結構

        I2C總線串行輸入輸出結構

        作者: 時間:2016-11-22 來源:網絡 收藏
        本文章以8XC552(飛利浦的一款微控制器)的IIC總線串行串行輸入輸出結構為例,深入理解IIC總線協議:
        IIC總線的串行輸入輸出結構保證了IIC總線的數據寄存器中能保存總線上的最新數據。SDAT和ACK組成一個9為的移位寄存器,它組成一個環狀結構。串行輸出的同時不斷采入總線上的數據。ACK標志位由總線控制,并可以由CPU存取(存入1對應的是非應答,存入0對應的應答)。在SCL線上的時鐘脈沖的上升沿,串行數據通過ACK標志位存入SDAT,串行數據在SCL時鐘脈沖下降沿沿BSD7移出當一個字節數據移入SADT后,SDAT中的數據有效,控制邏輯在第9個時鐘脈沖周期送出應答位。
        為什么IIC總線進行數據發送時,時鐘信號為高電平期間,數據線上的數據必須保持數據穩定???這是因為會在高電平期間采集總線上的數據,如果此時總線上的數據不穩定,會導致采集的數據和發送的數據不一致,從而關閉發送(類似仲裁失敗)。協議規定只有在時鐘信號為低電平期間,數據線上的高電平或低電平才允許變化,這是因為BSD7中的數據是在時鐘下降沿發出的,且不會在時鐘脈沖低電平期間采集總線上的數據。
        在CPU對SDAT寫入時,SDAT7裝入BSD7,這是向SDA線上發送的第一位數據,9個時鐘脈沖后SADT中的8位數據發送到SAD線上,應答位出現在ACK中,這樣發送到總線上的數據又返回到SDAT中。
        SDA寄存器,包含個待發送的數據或一個剛收到的數據字節,發送時,數據總是從右向左移位。數據移出時,總線上的數據同時移入,移位寄存器的這種結構保證了總線競爭失敗時數據不會丟失。它以并行的方式與內部總線相連,以串行方式與SDA相連。發送數據時,由內部總線裝入到SDAT中,發送時,數據以串行從串行通道返回SDAT中。接收時,裝入新接收的SDA線上的數據。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 正宁县| 门源| 南澳县| 永州市| 宿迁市| 广平县| 柳州市| 广元市| 讷河市| 江孜县| 太仆寺旗| 龙里县| 女性| 邵武市| 项城市| 珠海市| 涞水县| 民和| 塘沽区| 宝清县| 三都| 噶尔县| 郸城县| 抚顺市| 秦安县| 荔浦县| 响水县| 陇西县| 云和县| 山东| 福州市| 怀来县| 临颍县| 丰镇市| 天等县| 定结县| 鲜城| 临沭县| 黄平县| 南和县| 辽阳县|