今天講的IIC通信 ?包括 硬件 片內(nèi)硬件 協(xié)議 硬件初始化 應(yīng)用程序 ? 主要介紹I2C總線協(xié)議
硬件:有兩根線 SCL(時(shí)鐘) SDA(數(shù)據(jù))
協(xié)議:包括 ? 空閑狀態(tài) ? 開始信號(hào) ?停止信號(hào) ?應(yīng)答信號(hào) ?數(shù)據(jù)的有效性 ? 數(shù)據(jù)傳輸
? ? ? ? SCL ? SDA ? ? ?功能
? ? ? ? 高? ? ? ? 高? ? ? ? 總線的空閑狀態(tài)
? ? ? ? 高 ? ? ? 上升 ? ? ?總線發(fā)送停止信號(hào)
? ? ? ? 高? ? ? ? 下降? ? ? 總線發(fā)送起始信號(hào)
*** 只有SCL為低電平才可以改變數(shù)據(jù) ?高電平保持?jǐn)?shù)據(jù)線上數(shù)據(jù)(唯一在高電平期間可以改變的 只有開始和停止信號(hào))
應(yīng)答(ACK):就是校驗(yàn) 主 從設(shè)備之間是否接收數(shù)據(jù)成功 ?沒成功非應(yīng)答(NACK). 每8位發(fā)送校驗(yàn)位。
數(shù)據(jù)傳輸有效性:數(shù)據(jù)在SCL的上升沿到來之前就需準(zhǔn)備好宙地。并在在下降沿到來之前必須穩(wěn)定姐霍。
數(shù)據(jù)傳輸:按字節(jié)傳輸+一個(gè)應(yīng)答=9幀 ?I2C數(shù)據(jù)傳輸首先傳送需要訪問設(shè)備的首地址?
? ? ? ? ? ? ? ? ?格式為:7位地址+一位傳輸方向+一位校驗(yàn)位
然后在傳輸數(shù)據(jù) 總線的傳輸數(shù)據(jù)方向有 ?主傳輸數(shù)據(jù)給從設(shè)備和從傳輸給主設(shè)備 ?他們的訪問從設(shè)備的首地址格式一樣 ?在傳輸有效數(shù)據(jù)的應(yīng)答位不一樣 (如圖)
其次 用程序模擬I2C的信號(hào)音羞。