天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

單片機開發:I2C通信協議的基本原理

更新時間: 2020-09-26
閱讀量:4150

我們在單片機芯片上常看到的I2C串行通信協議,最初是由飛利浦半導體公司在1982年發明的(現在稱為NXP半導體)。該協議提供短距離的板內的通信的有效手段,是理想的嵌入式系統和主要設計關注點是簡單性和低制造成本的微計算應用程序。

英銳恩單片機開發工程師表示,對于想要使用I2C協議的產品的工程師來說,以I2C語言進行編程成為必需的技能。在下面的文章中,我們對I2C信號傳輸的工作原理進行了基本介紹。我們將介紹I2C信號傳輸協議以及I2C協議的關鍵功能,使其非常適合在嵌入式計算項目中使用。

一、I2C信號傳輸是如何傳輸的?

英銳恩單片機開發工程師介紹,我們可以從對該協議及其必需組件的基本概述開始對I2C的討論。

名稱I2C是術語“集成電路間”的縮寫。在這里,術語“集成電路”主要是指“計算機芯片”。有許多類型的計算機芯片,包括用于處理(CPU),內存(RAM和EEPROM)和其他功能的計算機芯片。集成電路間協議的概念告訴我們,該協議將允許這些單獨的芯片相互通信。實際上,這正是I2C協議的用途。

I2C協議旨在使多個從設備(例如內存和其他外圍芯片)能夠在短距離上與一個或多個主設備(例如微控制器)進行通信。重要的是,I2C通信協議允許在多個從設備與一個以上的主設備之間進行精確的通信:多達1008個單獨的設備可以通過同一條總線進行通信。使這成為可能的協議功能是兩線配置,從機尋址以及與I2C相關聯的已定義消息協議。

I2C通信協議使用兩線配置傳送消息。串行時鐘線(通常縮寫為SCL)通過將時鐘信號從主設備傳輸到從設備來同步I2C總線上主設備和從設備之間的數據傳輸。在I2C中,時鐘信號始終由主設備生成。I2C中的第二條線稱為串行數據線或SDA。該導線允許在主設備和從設備之間進行雙向數據傳輸。

i2c-diagram.png

二、I2C總線協議

英銳恩單片機開發人員表示,串行通信協議基本上是一組規則,它定義了一個或多個電子設備之間的通信的共同的語言和語法。對于使用I2C的任何設備,數據傳輸將始終由主設備啟動。這是因為I2C中的主設備控制時鐘線,該時鐘線使總線上的所有數據傳輸同步。

源自I2C總線上的主設備的消息遵循可預測的格式:

1.要傳輸數據,主設備必須生成一個START條件。
2.在啟動條件之后,將發送一個從地址,以指示將消息發送到的位置。
3.單個位指示主設備是否將從從設備讀取或寫入數據。
4.在傳輸數據的每個字節之后使用ACK位來確認接收。
5.數據以單字節(8位)塊的形式傳輸,然后是ACK位。
6.當消息結束時,STOP條件表示數據傳輸結束。

三、啟動和停止條件

通信協議的目的是實現多個主從設備之間的通信,通信通過一系列通過SDA導線傳輸的消息進行。英銳恩單片機開發人員解釋,當需要發送消息時,系統必須生成指示消息開始的START條件,然后生成指示消息結論的STOP條件,就像在電話的任何一端說“你好!”和“再見!” 。

在I2C協議中,通信線為“漏極開路”,必須使用上拉電阻激活。當需要發送消息時,通過在SDA線中產生從高到低的變化來創建START條件。保持SDA線為高電平的上拉電阻被釋放,并且該線被拉低-這必須在SCL被拉高時完成。相反,當SDA線從低電平變為高電平且SCL被拉低時,將產生STOP條件。

在任何使用I2C的設備中,都使用上拉電阻器在四種基本工作模式之間切換設備。有些設備同時使用全部四個,而其他I2C設備只能使用一個或兩個。四種潛在的操作模式是:

1.主設備將數據傳輸到從設備。
2.主設備從從設備接收數據。
3.從設備將數據傳輸到主設備。
4.從設備從主設備接收數據。

四、從站尋址

英銳恩單片機開發工程師介紹,在I2C協議中,從設備尋址可確保在主設備發送消息時將正確的從設備標識為收件人。I2C協議支持兩種不同的從地址尋址格式:7位尋址和10位尋址。

在7位尋址中,從設備的地址在START條件之后立即以7位發送。第8位用作讀/寫指示符,其中0指示主機要向從機寫入信息,而1指示主機要從從機讀取信息。7位尋址通常將允許多達128個設備在總線上具有唯一的從機地址,但是保留16個7位地址用于特殊功能,則該數目略低,為112。

在10位尋址中,可以使用全部10位地址,這意味著最多可以將1024個從設備連接到系統。在此,在啟動條件之后使用特殊的保留地址來指示存在10位地址。在10位地址指示符之后,將發送地址的前兩位,然后是讀/寫指示符,然后是ACK。一旦從機確認了主機,主機發送的下一個字節將包含其余的從機地址。

英銳恩單片機開發人員表示,我們還經常看到一些使用8位尋址方案的從設備。盡管這些設備未遵循典型的I2C約定,但仍然存在使用I2C協議與8位尋址從設備進行通信的方法。

以上就是英銳恩單片機開發工程師分享的單片機中I2C通信協議的基本原理。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。

联系我们: 兰西县| 正宁县| 广灵县| 榆中县| 宿迁市| 友谊县| 江陵县| 怀柔区| 牟定县| 宜兰市| 桦南县| 积石山| 神木县| 富宁县| 离岛区| 隆尧县| 左权县| 鄂尔多斯市| 固阳县| 湖南省| 民县| 和顺县| 达州市| 运城市| 新竹市| 和平县| 溧阳市| 巨鹿县| 宁德市| 鹤岗市| 乐昌市| 镇雄县| 山东省| 海伦市| 高雄县| 镇沅| 衡东县| 若尔盖县| 大同县| 临泉县| 屏山县|