例說單片機數(shù)據(jù)通信之模擬IIC通信
IIC 即Inter-Integrated Circuit(集成電路總線),這種總線類型是由飛利浦半導體公司在八十年代初設(shè)計出來的,主要是用來連接整體電路(ICS) ,IIC是一種多向控制總線,也就是說多個芯片可以連接到同一總線結(jié)構(gòu)下,同時每個芯片都可以作為實時數(shù)據(jù)傳輸?shù)目刂圃?。這種方式簡化了信號傳輸總線。
本文引用地址:http://2s4d.com/article/248808.htmI2C串行總線一般有兩根信號線,一根是雙向的數(shù)據(jù)線SDA,另一根是時鐘線SCL。所有接到I2C總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時鐘線SCL接到總線的SCL上。以51單片機和AT24C02介紹IO模擬IIC通信。
啟始與停止
啟始條件:必須在所有命令之前發(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)文章:通信原理
評論