270 likes | 458 Views
IIC 匯流排. IIC 概念. 用於低速週邊設備傳輸 只用兩條雙向傳輸線,連接所有的設備 Serial Data Line (SDL) 和 Serial Clock Line (SCL) 均各通過一個上拉電阻連接到電源正端 當 IIC 匯流排空閒時 SDL 和 SCL 傳輸線均為高準位 IIC 匯流排的最高資料傳輸速率 可達到 100Kb/S 可連接到匯流排上的 IC 設備數目 受到匯流排電容的限制( 400PF ). IIC 資料傳輸步驟. 第一種情況,主設備要傳送資料到從 IC 設備步驟: 1 、主設備定址從設備 2 、主設備發送資料到從設備
E N D
IIC概念 • 用於低速週邊設備傳輸 • 只用兩條雙向傳輸線,連接所有的設備 • Serial Data Line (SDL)和Serial Clock Line (SCL) • 均各通過一個上拉電阻連接到電源正端 • 當IIC匯流排空閒時 • SDL和SCL傳輸線均為高準位 • IIC匯流排的最高資料傳輸速率 • 可達到100Kb/S • 可連接到匯流排上的IC設備數目 • 受到匯流排電容的限制(400PF)
IIC資料傳輸步驟 • 第一種情況,主設備要傳送資料到從IC設備步驟: • 1、主設備定址從設備 • 2、主設備發送資料到從設備 • 主設備為發送器,從設備為接收器 • 3、主設備終止資料的傳輸 • 第二種情況,主設備要從從設備獲取資料步驟: • 1、主設備定址從設備 • 2、主IC設備從從IC設備接收資料 • 主設備為接收器,從設備為發送器 • 3、主IC設備終止資料的傳輸 • 即使是在第二種情況 • 主IC設備也可以產生時序信號並終止資料的傳輸
開始與停止條件(Start and Stop Conditions) • 由主設備產生 • 在開始條件產生後,處於忙狀態 • 在完成資料傳輸產生停止條件後,處於空閒狀態 • 開始條件 • 當SCL為高準位時 • SDA產生由高準位到低準位的跳變。 • 停止條件 • 當SCL為高準位時,SDA產生由低準位到高準位的跳變。
資料傳輸操作(Data Transfer Operations)-資料位元組格式(Data Byte Format) • SDA的資料位元組必須 • 為8位元的長度 • 每一次傳輸的位元組數沒有限制 • 每傳輸一個位元組必須跟一個回應位元ACK • 傳輸位元組時最高位元在前(MSB-first) • 如果接收器不能接收其他剩餘的資料位元組時 • 接收器就保持SCL為低準位 • 強制發送器進入等待狀態 • 只當接收器準備接收其他位元組並釋放SCL傳輸線時 • 資料傳輸才會繼續進行
資料傳輸操作(Data Transfer Operations)- 回應過程(Acknowledge Procedure) • 傳輸過程中必須有回應信號 • 回應信號由匯流排主控器產生 • 被定址的接收器在接收到每一個位元組後 • 必須產生一個回應信號 • 當從接收器不能產生回應信號時 • 必須釋放資料線,然後由主控器產生停止條件中止資料傳輸。 • 在回應時脈脈衝期間 • 發送器釋放SDA傳輸線(為高準位) • 但此時接收器必須下拉SDA傳輸線 • 以便在時脈脈衝的高準位期間SDA能夠保持穩定的低準位
資料傳輸操作(Data Transfer Operations)- 回應過程(Acknowledge Procedure) • The ACK pulse should occur at the ninth clock of the SCL line. • Receiver should send an ACK bit to the transmitter. • The master should generate the clock pulse required to transmit the ACK bit. • Transmitter should release the SDA line by making the SDA line High • when the ACK clock pulse is received.
IIC匯流排定址(IIC-Bus Addressing) • 定址過程 • 在開始條件後發送的第一個位元組 • 該位元組位址決定主控器選擇哪一個從設備 • 第一個位元組總是緊跟在開始過程之後 • 第一個資料位元組的前7位元為從設備位址 • 第8位為方向位元,決定資料的傳輸方向(讀/寫)。 • 當位址位元組發出以後 • 每一個從設備將該位址與自己的位址進行比較 • 若位址匹配 • 被主控器定址為一個從發送器或從接收器。 • 還可以通過“廣播”定址方式 • 同時定址所有的IC設備
IIC廣播定址(General Call Address) • 用於定址連接在IIC匯流排上的每一個設備 • 但當某個設備不需要進行資料傳輸時 • 將忽略廣播定址而不作任何回應。 • 當使用廣播定址時,理論上所有的設備都應該回應回應信號 • 但設備也可以忽略這個這個位址。 • 廣播定址的第二個位元組決定其後的操作
資料傳輸操作(Data Transfer Operations)-資料傳輸格式(Data Transfer Format) • 當產生開始條件後 • 首先發送7位的從設備位址 • 第八位元為資料方向位元(R/W) • 0”表示發送資料(寫) • “1”表示請求資料(讀) • 資料傳輸在主控器產生停止條件後中止 • 主控器可以在不產生前一個停止條件的情況下 • 再產生開始條件並定址另一個從設備
S3C44B0X IIC介面 • S3C44B0X處理器 • 內建支援多主匯流排的IIC介面。 • 符合IIC協定的設備連接 • 雙向資料線IICSDA和IICSCL • S3C44B0X處理器支援 • 主傳送、主接收、從發送、從接收四種工作模式
S3C44B0X IIC暫存器- 控制暫存器IICCON • ACK Enable • 0:禁止產生ACK; 1:允許產生ACK信號。 • Tx CLK select • 0:IICCLK = fMCLK /16; 1:IICCLK = fMCLK /512。 • Tx/Rx Interrupt • 0:禁止Tx/Rx中斷; 1:允許Tx/Rx中斷。 • INT_PND • 寫0:清除中斷旗標並重新啟動IIC匯流排寫操作; 讀1:中斷旗標置位元。 • Tx Clock Value • IIC發送參加載初始資料,決定了發送頻率;
S3C44B0X IIC暫存器-狀態暫存器IICSTAT • Mode_S • 00:從接收,10:主接收,01:從發送,11:主發送。 • Cond_S • 寫0:產生STOP_C信號,讀0:IIC匯流排空閒,寫1:產生START_C信號,讀1:IIC匯流排忙。 • SOE • 0:禁止Tx/Rx信號傳輸,1:允許Tx/Rx信號傳輸。 • ASF • 0:IIC匯流排仲裁成功 ,1:仲裁不成功,IIC匯流排不能工作。 • ASS • 作為從設備:為0:測試到START_C或STOP_C信號,為1:接收到位址。 • AZS • 作為從設備時:為0:收到START_C或STOP_C信號,為1:IIC匯流排上的位址為0。 • LRB • 接收到的最低資料位元:為0:收到ACK信號,為1:沒有接收到ACK信號。
S3C44B0X IIC暫存器- 位址暫存器 IICADD • SlvADDR • 7:1為從設備的設備位址和訊框面位址;0位是讀寫控制(0:寫;1:讀);當SOE=0時可對SlvADDR進行讀寫。
S3C44B0X IIC暫存器 - 發送接收移位暫存器IICDS • ShitDATA • 7:0存放IIC匯流排要移位元傳輸或接收的資料,當SOE=1時可對ShitDATA進行讀寫
電路設計 • 地S3CEV40實驗平臺中,使用S3C44B0X處理器內置的IIC控制器作為IIC通信主設備,AT24C04 EEPROM為從設備。 • 電路設計如圖所示:
AT24CXX EEPROM • 其常用的協定主要有 • 兩線串列連接協定(IIC)和三線串列連接協定 • 帶IIC 匯流排界面的EEPROM 有許多型號 • 其中AT24CXX 系列使用十分普遍 • 產品包括AT2401/02/04/08/16 等,其容量(位元組數x訊框)分別為 • 28x8/256x8/512x8/1024x8/2048x8 • 適用於2V~5V的低電壓的操作 • 具有低功耗和高可靠性等優點 • 在IIC 匯流排中對AT24C04 內部存儲單元讀寫 • 除了要給出元件的設備位址(DADDR) • 外還須指定讀寫的訊框面位址(PADDR)
AT24系列EEPROM-接腳的功能 • SCL 串列時脈線 • 遵循ISO/IEC7816同步協定 • 漏極開路,需接上拉電阻,在該腳的上升沿 • SDA 串列資料線 • 漏極開路,需接上拉電阻,雙向串列資料線,”Open-Drain” • 可與其他開路元件“Wire-AND”連線 • A0、A1、A2 元件/訊框定址位址 • 在AT24C01/02中,接腳被固定連接 • 其他AT24Cxx均可接定址位址線 • WP 讀防寫 • 接低電位時可對整片空間進行讀寫 • 高電位時不能讀寫受保護區 • Vcc/GND • 一般輸入+5V的工作電壓
AT24CXX的資料操作格式-寫入操作 • 寫任意地址ADDR_W • START_C OPADDR_W ACK ADDR_W ACK data ACK STOP_C • 從位址ADDR_W起連續寫入n個位元組(同一訊框面) • START_C OPADDR_W ACK ADDR_W ACK data1 ACK data2 ACK … dataN ACK STOP_C
AT24CXX的資料操作格式-讀出操作 • 讀任意地址ADDR_R • START_C OPADDR_W ACK ADDR_R ACK OPADDR_R ACK data STOP_C • 從位址ADDR_R起連續讀出n個位元組(同一訊框面) • START_C OPADDR_R ACK data1 ACK data2 ACK … dataN ACK STOP_C