衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機IIC通信協議詳解

CHANBAEK ? 來源:落木青云 ? 作者:一顆糯米 ? 2023-03-20 15:20 ? 次閱讀

再話單片機通信

前面的文章中已經介紹了單片機的并口通信和UART串口通信,在實際開發過程中我們還可能用到很多其他通信協議,IIC協議就是其中常見的一種,它的用途很廣,很多資料都講得比較專業化,這篇文章我們一起通過簡單的文字來熟悉它,以后應用時再講專業點。

何為IIC

IIC總線全稱是Inter Integrated Circuit總線,也寫做I^2C總線,它是由飛利浦公司推出的一種同步通信協議,這種協議只用兩根通信引腳,一根信號SDA,另一根時鐘線SCL,即它使用兩根信號線就可實現全雙工的同步數據傳輸。 總之,它具有接口線少、占用資源小、控制簡單、通信速率較高等優點。 至于為什么,現在我們先不用管,等后面介紹完其他通信協議后再做對比了解。

所有與IIC兼容的器件都具有標準的接口,可以把多個IIC總線器件同時接到IIC總線上。 *當然,因為IIC協議比較簡單,所以我們使用時通常也會直接通過軟件模擬協議來實現,特別是對于沒有IIC接口的單片機,比如普通51,52單片機。 * 在總線上通過地址來識別通信對象,使它們可以之間可以通過IIC總線直接通信,總線上的各設備具有唯一的識別地址,正是因為具備通信識別功能,并且簡單容易實現,使得它在電子領域有非常廣的應用,比如各種低速存儲IC,各類傳感器等等。

圖片
通信線路

因為所有IIC通信引腳內部電路使用的是開漏結構,所以在實際應用中需要對其引腳添加上拉電阻,以保證正常通信。

圖片
內部電路結構

通信協議總覽

IIC總線協議上的設備分主設備和從設備,猶如常說的主機和從機,顧名思義,主設備是發送命令或數據的器件,從設備為接收命令或向主設備傳送數據的器件。 并且主設備控制時鐘信號,從設備根據主設備的時鐘信號和地址信息進行響應。

主從設備之間還需要遵循一定的規則:

  1. IIC總線空閑狀態下,SCL和SDA均為高電平,只有在總線空閑時才允許啟動數據傳送。
  2. 起始信號:鐘線SCL為高電平時,數據線SDA從高電平到低電平的跳變被定義為起始信號。
  3. 停止信號:時鐘線SCL為高電平時,數據線SDA從低電平到高電平的跳變被定義為停止信號。
  4. 除以上被定義的起始信號和停止信號外,數據傳送過程,時鐘線為高電平時,數據線必須保持穩定狀態,即時鐘線為高電平時,數據線的任何電平變化都將被看作總線的起始或停止信號。

圖片
協議總覽

通信一般步驟

發送命令:

  1. 發送起始(START)信號;
  2. 發送設備地址;
  3. 等待從設備響應(ACK);
  4. 發送數據,一般情況每發送一個字節數據后會等待接收來自從設備的響應(ACK)信號;
  5. 數據發送完畢,發送停止(STOP)信號,終止傳輸。

讀取命令:

  1. 發送起始(START)信號;
  2. 發送設備地址;
  3. 等待從設備響應(ACK);
  4. 接收來自從設備的數據,一般情況下每接收一個字節數據后會向從設備發送一個響應(ACK)信號;
  5. 接收到最后一個數據,發送一個無效響應(NACK),然后發送停止(STOP)信號,終止傳輸。

通信程序舉例

  1. 總線初始化
void init()
{
  SCL= 1;
  delay ();
  SDA= 1;
  delay ();
}
  1. 起始信號
void start()                     
{
  SDA= 1;
  delay ();
  SCL= 1;
  delay ();
  SDA= 0;
  delay ();
}
  1. 應答信號
void respons()
{
  uchar i= 0;
  SCL= 1;
  delay();
  while ((SDA== 1)&&(i< 255))
  {
    i++ ;
  }
  SCL= 0;
  delay();
}
  1. 停止信號
void stop() 
{
  SDA= 0;
  delay();
  SCL= 1;
  delay();
  SDA= 1;
  delay();
}
  1. 寫數據
void writebyte(uchar date)
{
  uchar i,temp;
  temp= date;
  for(i= 0;i< 8;i++ )
  {
    temp= temp<< 1; 
    SCL= 0;
    delay();
    SDA= CY;
    delay();
    SCL= 1;
    delay();
  }
  SCL= 0;
  delay();
  SDA= 1;
  delay();
}
  1. 讀數據
void readbyte()             
{
  uchar i,k;
  SCL= 0;
  delay();
  SDA= 1;
  for(i= 0;i< 8;i++ )         
  {
    SCL= 1;
    delay();
    k= (k<< 1)|SDA;            
    SCL= 0;
    delay();
  }
  delay();
  return k;                   
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44622

    瀏覽量

    638533
  • 通信協議
    +關注

    關注

    28

    文章

    915

    瀏覽量

    40438
  • IIC
    IIC
    +關注

    關注

    11

    文章

    302

    瀏覽量

    38504
  • uart
    +關注

    關注

    22

    文章

    1243

    瀏覽量

    101768
  • 串口通信
    +關注

    關注

    34

    文章

    1627

    瀏覽量

    55728
收藏 人收藏

    評論

    相關推薦

    單片機常用的通信協議有哪些

    單片機的應用中,通信協議是其中必不可少的一部分,上位與下位單片機單片機
    發表于 11-18 06:57

    單片機串口通信協議的實現實例分享

    單片機串口通信協議的實現JiaLiang_825 2017-12-13 13:27:02 3998 收藏 16分類專欄: 單片機 文章標簽: 串口通信 人機交互
    發表于 01-20 07:35

    IIC通信協議的相關資料推薦

    IIC通信協議詳解IIC的概述IIC分為軟件IIC和硬件IICIIC
    發表于 01-20 07:06

    PC與單片機串口通信協議

    PC與單片機串口通信協議
    發表于 12-26 22:12 ?0次下載

    單片機C語言之串口通信協議

    本文首先介紹了串口的基本結構,其次介紹了串口通信方式,最后詳細介紹了單片機C語言之串口通信協議
    發表于 05-22 12:37 ?4971次閱讀
    <b class='flag-5'>單片機</b>C語言之串口<b class='flag-5'>通信協議</b>

    淺析六種常用的單片機通信協議

    單片機的應用中,通信協議是必不可少的一部分,上位與下位單片機單片機
    發表于 11-08 16:36 ?1.6w次閱讀

    單片機通信協議的應用情況

    單片機的片上資源有多種通信方式,常用的如IIC、SPI、UART/USART、CAN,甚至高端一點的還具有以太網和USB通信。這么多的通信
    的頭像 發表于 11-09 04:29 ?4235次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>通信協議</b>的應用情況

    單片機通信協議有哪一些常用的

    單片機的應用中,通信協議是必不可少的一部分,上位與下位單片機單片機
    發表于 12-10 16:53 ?4069次閱讀

    單片機常用的幾種通信協議

    單片機的應用中,通信協議是其中必不可少的一部分,上位與下位單片機單片機
    發表于 11-11 10:06 ?19次下載
    <b class='flag-5'>單片機</b>常用的幾種<b class='flag-5'>通信協議</b>

    單片機:Modbus 通信協議介紹

    實用串口通信程序的時候,我們通過串口發給單片機三條指令,讓單片機做了三件不同的事情,分別是“buzz on”、“buzz off”和“showstr”。隨著系統復雜性的增加,我們希望可以實現更多的指令。而指令越來越多,帶來的后果
    發表于 11-13 20:51 ?11次下載
    <b class='flag-5'>單片機</b>:Modbus <b class='flag-5'>通信協議</b>介紹

    51單片機IIC通信協議

    * @author Byron (from3900@gmail.com) * @version V1.0.0 * @date 05/12/2020 * @brief 51系列單片機I2C通信協議頭文件 * --------------------------
    發表于 11-20 20:06 ?5次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>IIC</b><b class='flag-5'>通信協議</b>

    單片機常用的幾種通信協議

    單片機的應用中,通信協議是其中必不可少的一部分,上位與下位單片機單片機
    發表于 11-23 17:21 ?16次下載
    <b class='flag-5'>單片機</b>常用的幾種<b class='flag-5'>通信協議</b>

    制定通信協議,實現單片機與PC通信

    單片機與PC串口通信編程實驗目的利用PROTUES仿真軟件、串口調試助手、虛擬串口,搭建單片機與PC通信仿真平臺,熟悉
    發表于 12-17 18:30 ?22次下載
    制定<b class='flag-5'>通信協議</b>,實現<b class='flag-5'>單片機</b>與PC<b class='flag-5'>機</b><b class='flag-5'>通信</b>

    如何利用MODBUS通信協議實現觸摸屏與單片機通信和控制

    講解如何利用MODBUS通信協議,實現觸摸屏與單片機通信和控審I。詳細介紹了觸摸屏與單片機的硬件連接、軟件 設置及編輯、MODBUS通信協議
    發表于 08-02 09:50 ?18次下載

    詳解物聯網常用協議IIC和RS485通信協議

    單片機開發中我們經常會聽到協議二字,協議單片機相互通信中必須遵守的規則,只有遵守協議才能實現
    的頭像 發表于 03-02 17:12 ?1552次閱讀
    <b class='flag-5'>詳解</b>物聯網常用<b class='flag-5'>協議</b>:<b class='flag-5'>IIC</b>和RS485<b class='flag-5'>通信協議</b>
    博彩百家乐官网软件| 威尼斯人娱乐城博彩投注平台| 百家乐官网发牌千数| 百家乐翻天qvod粤语| 太阳城百家乐官网群| 百家乐赌场代理| 澳门百家乐官网赌技术| 百家乐园云鼎赌场娱乐网规则 | 为什么百家乐官网玩家越来越多选择网上百家乐官网 | 百家乐赌博平台| 哪个百家乐官网投注好| 威尼斯人娱乐城信誉好吗| 百家乐官网透明出千牌靴| 大发888 34| 澳门百家乐赢钱技术| 百家乐官网合理的投注法| 百家乐怎么骗人| 百家乐官网台布哪里有卖| 德州扑克 单机| 百家乐高手长胜攻略| 百家乐官网波音平台路单| 大发888亚洲游戏在线| 爱拼百家乐现金网| 百家乐官网开户博彩论坛| 大发888源码| 真人百家乐试玩游戏| 赌博百家乐官网赢钱方法| 大发888游戏| 线上百家乐信誉| 百家乐官网职业赌徒的解密| 六合彩报| 网上百家乐假| 百家乐官网游戏打水| 皇冠网上投注站| 状元百家乐的玩法技巧和规则| 速博百家乐官网的玩法技巧和规则 | 大西洋城娱乐| 24山风水实例| 合肥百家乐官网赌博游戏机| 棋牌中心| 上海百家乐的玩法技巧和规则|