摘 要:ADμC812是全集成的高性能的12 b數(shù)據(jù)采集系統(tǒng),本文介紹了ADμC812的I2C總線接口,給出了在主機和從機工作模式下的操作時序,結合作者的使用經(jīng)驗給出了相應的C語言源程序。<!--摘要CH(結束)←-->
<!--→關鍵CH(開始)--> 關鍵詞:ADμC812;I2C總線;串行通訊;C語言<!--關鍵CH(結束)←--><!--→標題EN(開始)-->
ADμC812在單個芯片內集成了一個8通道,5μs轉換時間,精度自校準,12 b精度,逐次逼近的ADC轉換器;2個12 b的數(shù)模轉換器(DAC),10.5 kB的閃存E2PROM,具有16 b計數(shù)/定時器和32條可編程I/O接口的8051/8052微控制器,256 B的SRAM,一個通用的異步串行收發(fā)器(UART),SPI和I2C總線接口。由于其體積小、功耗低、精度高、成本低等特點,ADμC812在工業(yè)控制、家用電器、通信、自動化,軍事領域都有用武之地。其I2C總線接口通過2根線在總線上的器件之間傳送信息,根據(jù)地址識別每個器件,可以設置為主機或從機工作方式。
1 I2C總線概述
I2C總線是一種用于IC器件之間連接的二線制總線。他使用SDATA(串行數(shù)據(jù)線)及SCLOCK(串行時鐘線)2根線,就可構成多個主機和多個從機之間的數(shù)據(jù)通訊連接。
I2C總線接口電路結構如圖1所示。
SCLOCK信號控制主從機間的數(shù)據(jù)傳輸,SDATA信號用于發(fā)送和接受數(shù)據(jù)。2條線都是雙向的,數(shù)據(jù)傳輸?shù)乃俾视蒘CLOCK線控制。
I2C總線典型傳輸時序如圖2所示。
2 ADμC812的I2C總線接口
ADμC812的I2C總線接口有硬從機和軟主機兩種工作模式。加電或復位時,缺省設置為從機操作。有3個特殊功能寄存器用來控制該接口,分別是:
。1)I2CADD 用于保存系統(tǒng)總線為ADμC812設首先送出的8 b數(shù),前7 b為從機地址,最低位為讀/寫狀態(tài)位(1為讀狀態(tài),0為寫狀態(tài),從機自動判斷最低位的讀寫狀態(tài)),從機將接收到的高7 b前面加0,組成一個完整的字(8 b),與I2CADD中的地址比較,若相等則發(fā)送確認位,產生中斷,中斷位將自動置1,否則不響應。
。2)I2CDAT 用于保存剛剛收到或即將發(fā)送的8 b數(shù)據(jù)。收到或發(fā)送1 B數(shù)據(jù)結束將產生中斷,中斷位將自動置1,用戶在每次中斷服務程序中只能訪問此寄存器一次。
。3)I2CCON 用于保存主/從模式下的設置/控制位,ADμC812可以設置為主機或從機工作模式,主機工作模式下,ADμC812使用I2CCON寄存器的高4位,控制SDATA和SCLOCK引腳上信號的生成,所以用戶代碼必須使用位尋址方式生成SDATA和SCLOCK信號;從機工作模式下,ADμC812使用I2CCON寄存器的低3 b,由于ADμC812的從機模式為硬件實現(xiàn),所以ADμC812將自動檢測I2C總線的啟動、停止,當收到的地址和I2CADD中地址相等時,將自動發(fā)送確認位,產生中斷。具體各位的功能如表1所示。
ADμC812可以設置為硬從機和軟主機兩種工作模式,不論在哪種模式下,都可以發(fā)送或接收數(shù)據(jù),啟動和停止I2C總線,以及訪問哪個從機都需要主機控制,實例如圖3所示。
主機發(fā)送-從機接收的操作時序:

主機接收-從機發(fā)送的操作時序:

由于ADμC812是軟主機,所以啟動、停止I2C總線,發(fā)送從機地址,發(fā)送確認位等操作均需要用戶代碼執(zhí)行,尤其還要通過操作I2CCON寄存器的幾個位來傳輸數(shù)據(jù),不是很方便;而ADμC812默認設置為從機,其傳輸數(shù)據(jù)十分方便,ADμC812自動檢測啟動、停止I2C總線的條件、判斷地址、發(fā)送確認位、檢測確認位、中斷等都是自動完成的。下面給出ADμC812分別工作在主機和從機模式下的數(shù)據(jù)傳輸子程序:










4 結 語
ADμC812的I2C總線接口可以在短距離內進行主機與從機的數(shù)據(jù)傳送,而設置為從機工作模式下使用更為方便,并且具有連接電路簡單、使用方便等優(yōu)點。為實現(xiàn)主機和從機以及外圍設備的通信提供了一種簡單、易行的方案。









