新聞中心

EEPW首頁 > 手機與無線通信 > 牛人業(yè)話 > 例說單片機數(shù)據(jù)通信之模擬IIC通信

例說單片機數(shù)據(jù)通信之模擬IIC通信

作者:Liklon 時間:2014-06-25 來源:電子產(chǎn)品世界 收藏

   即Inter-Integrated Circuit(集成電路總線),這種總線類型是由飛利浦半導體公司在八十年代初設(shè)計出來的,主要是用來連接整體電路(ICS) ,是一種多向控制總線,也就是說多個芯片可以連接到同一總線結(jié)構(gòu)下,同時每個芯片都可以作為實時數(shù)據(jù)傳輸?shù)目刂圃?。這種方式簡化了信號傳輸總線。

本文引用地址:http://2s4d.com/article/248808.htm

  I2C串行總線一般有兩根信號線,一根是雙向的數(shù)據(jù)線,另一根是時鐘線SCL。所有接到I2C總線設(shè)備上的串行數(shù)據(jù)都接到總線的上,各設(shè)備的時鐘線SCL接到總線的SCL上。以51和AT24C02介紹IO模擬通信。

  啟始與停止

  啟始條件:必須在所有命令之前發(fā)送,時鐘線保持高電平期間,數(shù)據(jù)線電平從高到低的跳變作為IIC總線的啟動信號。

  停止條件:時鐘線保持高電平期間,數(shù)據(jù)線電平從低到高的跳變作為IIC總線的停止信號。操作結(jié)束時必須發(fā)送停止條件。

  void startbit()

  {

  clrSCL();

  setSDA();

  setSCL(); //時鐘為高時

  clrSDA(); //SDA下降沿

  clrSCL();

  }

  void stopbit()

  {

  clrSCL();

  clrSDA();

  setSCL(); //時鐘為高時

  setSDA(); //SDA上升沿

  clrSCL();

  }

  應答信號

  每次數(shù)據(jù)傳送成功后,從設(shè)備發(fā)送一個應答信號。當?shù)诰艂€時鐘信號產(chǎn)生時,產(chǎn)生應答信號的器件將SDA下拉為低,通知已經(jīng)接收到8位數(shù)據(jù)。

  void respond()

  {

  unsigned char i = 0;

  setSDA(); //釋放總線

  setSCL(); //時鐘

  while(SDA != 0)

  {

  i++;

  if(i > 200) break;

  }

  clrSCL();

  }

  讀寫字節(jié)操作

  IIC總線協(xié)議定義如下:

  1. 只有在總線非忙時才被允許進行數(shù)據(jù)傳輸。

  2. 在數(shù)據(jù)傳輸時,當時鐘線為高電平,數(shù)據(jù)線必須為固定狀態(tài),不允許跳變,時鐘線為高電平時數(shù)據(jù)線的任何電平變化都會被當做總線的啟動或停止條件

模擬信號相關(guān)文章:什么是模擬信號


51單片機相關(guān)文章:51單片機教程


pic相關(guān)文章:pic是什么


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理



上一頁 1 2 下一頁

關(guān)鍵詞: IIC 單片機 SDA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉