單片機(jī)訪問IIC總線技術(shù)
1. 只要求兩條總線線路:一條串行數(shù)據(jù)線(SDA);一條串行時鐘總線
2. 每個接到總線上的器件都可以用軟件設(shè)定地址,通過唯一的地址。總線上的不同設(shè)備會一直存在這一個主從關(guān)系,主設(shè)備可以工作在主發(fā)送和主接受模式。
3. 這是一個真正的多主機(jī)總線,如果多個或更多主機(jī)同時初始化數(shù)據(jù)傳輸,可以通過沖突檢測和仲裁檢測來防止數(shù)據(jù)被破壞。
4. 串行的8位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下科大400kbit/s,高速模式下可達(dá)3.4Mbit/s。
5. 片上集成有濾波器,可以濾除總線上的毛刺波,保證數(shù)據(jù)完整。
連接到相同總線的IC數(shù)量只受到總線的最大負(fù)載電容400pF的限制,因?yàn)閽旖拥脑O(shè)備越多,在總線上產(chǎn)生的負(fù)載電容就越大,會嚴(yán)重影響數(shù)據(jù)的傳輸波形,導(dǎo)致總線無法正常工作。
6. IIC設(shè)備便于電路的模塊話設(shè)計,能是系統(tǒng)的設(shè)計裁減更加靈活。
IIC典型應(yīng)用:
1. 現(xiàn)在的數(shù)碼電視機(jī)中使用的就是一個IIC總線,所有設(shè)備都掛接在IIC總線上。
1.
2. DECT無繩電話基站,不同模塊也是通過IIC總線連接。
IIC總線規(guī)范:
在用到微控制器的系統(tǒng)中,需要一些規(guī)范來協(xié)調(diào)不同設(shè)備間的通信。
IIC總線的概念:
IIC總線支持任何IC生產(chǎn)工藝(NMOS, CMOS. 雙極性)。
兩線:
SDA-串行數(shù)據(jù)
SCL-串行時鐘
每個器件都有一個唯一的地址識別(微控制器,LCD驅(qū)動器,存儲器或是鍵盤接口),而且都可以作為一個發(fā)送器或接收器 由器件的功能決定 很明顯 LCD驅(qū)動器只是一個接收器 而存儲器則既可以接收又可以發(fā)送數(shù)據(jù) 除了發(fā)送器和接收器外 器件在執(zhí)行數(shù)據(jù)傳輸時也可以被看作是主機(jī)或從機(jī)(見表 1)主機(jī)是初始化總線的數(shù)據(jù)傳輸并產(chǎn)生允許傳輸?shù)臅r鐘信號的器件 此時 任何被尋址的器件都被認(rèn)為是從機(jī) 。
表一:
描述 | |
發(fā)送數(shù)據(jù)到總線的器件 | |
從總線接受數(shù)據(jù)的器件 | |
初始化發(fā)送、產(chǎn)生時鐘信號和終止發(fā)送的器件 | |
被主機(jī)尋址的器件 | |
同時有多于一個主機(jī)嘗試控制總線,但不破壞報文 | |
是一個在多個主機(jī)同時嘗試控制總線,但只允許其中一個控制總線并使報文不被破壞的過程 | |
兩個或多個器件共用一個同步時鐘信號的過程 |
主機(jī)、從機(jī);接收機(jī),發(fā)送機(jī):
關(guān)系都是相對的并且只在數(shù)據(jù)傳輸?shù)臅r候才會存在:
1)假設(shè)微控制器A(主)要給B(從)發(fā)送數(shù)據(jù)
1. A尋址B
2. A發(fā)送數(shù)據(jù)到B; A - 發(fā)送器 B - 接收器
3. A終止發(fā)送
2)假設(shè)A(主)想從B(從)接受信息
1. A尋址B
2. A從B接受數(shù)據(jù);A - 接收器 B - 發(fā)送器
3. A終止接收
總線仲裁過程:
多個主機(jī)同時嘗試發(fā)送信息到總線,其他主機(jī)都產(chǎn)生“0”的情況下,首先產(chǎn)生“1”的主機(jī)講丟失仲裁。
仲裁時的時鐘信號是用線與到SCL線的主機(jī)產(chǎn)生的時鐘的同步結(jié)合。
IIC總線接口電路:電路如下圖
圖中可以看出據(jù)誒大總線上的設(shè)備都是漏極(或集電極)開路,即OC門,只有OC們啊次可以實(shí)現(xiàn)總線上的線與。
數(shù)據(jù)的有效性:
SDA線上的數(shù)據(jù)必須在時鐘的高電平周期保持穩(wěn)定。數(shù)據(jù)線上的數(shù)據(jù)只能在SCL為低電平是才能改變。時序波
形
如下圖:
start,stop
數(shù)據(jù)傳送的起始和停止:
IIC總線中數(shù)據(jù)的起始和結(jié)束,與數(shù)據(jù)的位傳輸有所不同,
起始位:在SCL為高電平時,SDA從高電平向低電平切換
結(jié)束位:在SCL為高電平時,SDA從低電平向高電平切換
起始和結(jié)束位是由主機(jī)產(chǎn)生,總線在起始位開始之后被認(rèn)為是處于忙狀態(tài),在出現(xiàn)結(jié)束位之后的某段時間后總線被確認(rèn)為閑狀態(tài)。
在起始條件產(chǎn)生后,停止條件產(chǎn)生前出現(xiàn)的起始條件和第一個起始條件在功能上是一樣的。表示為(S)。
如果沒有硬件檢測總線起始和結(jié)束的設(shè)備想監(jiān)視IIC總線(如微處理器),那么在每個周期至少采樣兩次SDA總線來確認(rèn)有沒有電平發(fā)生變化。
數(shù)據(jù)的傳輸:
字節(jié)格式傳輸:
SDA線上傳輸?shù)臄?shù)據(jù)必須是8位的,但每次可以傳輸多個字節(jié)。每個字節(jié)后面必須跟一個響應(yīng)位。
總線上每個字節(jié)首先傳送的是最高位(MSB)。
如果從機(jī)在接受數(shù)據(jù)前要完成一些工作(如中斷服務(wù)程序)才能接受或發(fā)送數(shù)據(jù),那么從機(jī)可以使時鐘線SCL保
持低電平迫使主機(jī)進(jìn)入等待狀態(tài)。當(dāng)從機(jī)準(zhǔn)備好后接收下一個數(shù)據(jù)字節(jié)并釋放時鐘線后,數(shù)據(jù)傳輸繼續(xù)。 在傳
輸數(shù)據(jù)時使用同樣的方法也不會影響數(shù)據(jù)的傳輸。
響應(yīng)位:
數(shù)據(jù)傳輸必須帶響應(yīng)。相關(guān)的響應(yīng)脈沖由主機(jī)產(chǎn)生,在響應(yīng)的時鐘脈沖期間,發(fā)送器釋放SDA線(此時為高電平)響應(yīng)的時鐘脈沖期間,接收器必須將SDA線拉低,并保持。(CBUS除外)
如果從機(jī)不能響應(yīng)從機(jī)地址(在執(zhí)行別的程序),從機(jī)必須使數(shù)據(jù)線保持高電平。主機(jī)會產(chǎn)生一個停止條件終止
傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。
如果從機(jī)接收器響應(yīng)了從機(jī)地址但是在傳輸了一段時間后不能接受更多的數(shù)據(jù)字節(jié),主機(jī)必須終止傳輸。這個情
況用從機(jī)在第一個字節(jié)后沒有產(chǎn)生響應(yīng)來表示。從機(jī)使數(shù)據(jù)線保持高電平 主機(jī)產(chǎn)生一個停止或重復(fù)起始條件。
如果主機(jī)為接收模式,它必須在從機(jī)發(fā)送結(jié)束,時鐘停止的最后一個字節(jié)不發(fā)送響應(yīng)位,從而告訴發(fā)送器數(shù)據(jù)結(jié)
束。從機(jī)發(fā)送器釋放數(shù)據(jù)線,允許主機(jī)產(chǎn)生一個停止或重復(fù)起始條件。
數(shù)據(jù)傳輸時序,數(shù)據(jù)響應(yīng)時序如下圖:
本文引用地址:http://m.butianyuan.cn/article/201611/322091.htm數(shù)據(jù)響應(yīng):
數(shù)據(jù)仲裁:
所有主機(jī)在SCL總線上產(chǎn)生自己的時鐘來傳輸數(shù)據(jù),數(shù)據(jù)只在時鐘的高電平周期有效。
時鐘同步通過線與SCL線來執(zhí)行。就是說:SCL線的高低切換會使器件開始數(shù)它們的低電平周期,而且一旦器件的時鐘變低,它會使SCL線保持這種狀態(tài)知道到達(dá)時鐘的高電平。但是,當(dāng)變?yōu)楦唠娖綍r,另一個總線上的時鐘仍處于低電平周期,這個低到高的電平變化不會出現(xiàn)在總線上改變SCL的狀態(tài)。所以,SCL線被最長低電平周期的器件所持有,此時低電平周期短的器件會進(jìn)入高電平的等待狀態(tài)。
關(guān)鍵詞:
單片機(jī)IIC總線技
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論