




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
串行接口與應用3(TWI)第一頁,共54頁。1、兩線串行接口總線定義
TWI協議允許系統設計者只用兩根雙向傳輸線就可以將128個不同的設備互連到一起。這兩根線一是時鐘SCL,一是數據SDA。外部硬件只需要兩個上拉電阻,每根線上一個。所有連接到總線上的設備都有自己的地址。TWI協議解決了總線仲裁的問題。圖5.9TWI總線的連接第二頁,共54頁。表5.5TWI詞匯第三頁,共54頁。2、TWI的電氣連接
兩根線都通過上拉電阻與正電源連接,TWI兼容的器件的總線驅動都是漏極開路或集電極開路的,TWI器件輸出為“0”時,TWI總線會產生低電平。
當所有的TWI器件輸出為三態時,總線會輸出高電平,允許上拉電阻將電壓拉高。注意,為保證所有的總線操作,凡是與TWI總線連接的AVR器件必須上電。第四頁,共54頁。3、TWI的傳輸數據(位)
TWI總線上數據位的傳送與時鐘脈沖同步。時鐘線為高時,數據線電壓必須保持穩定,除非在啟動與停止的狀態下。圖5.10數據有效性第五頁,共54頁。4、START/STOP狀態
主機在總線上發出START信號啟動數據傳輸,在總線上發出STOP信號停止數據傳輸。
在START與STOP狀態之間,需要假定總線忙,不允許其它主機控制總線,特例是在START與STOP狀態之間發出一個新的START狀態。
如下所示,START與STOP狀態是在SCL線為高時,通過改變SDA電平來實現的。第六頁,共54頁。圖5.11啟動、停止和重啟動狀態第七頁,共54頁。5、地址包格式
在TWI總線上傳送的地址包均為9位,包括7位地址位、1位READ/WRITE控制位與1位應答位。
如果READ/WRITE為1,則執行讀操作;否則執行寫操作。
從機被尋址后,必須在第九個SCL(ACK)周期通過拉低SDA作出應答。若該從機忙或有其它原因無法響應主機,則應該在ACK周期保持SDA為高。然后主機可以發出STOP狀態或REPEATEDSTART狀態重新開始發送。
地址包包括從機地址與分別稱為SLA+R或SLA+W的READ或WRITE位。第八頁,共54頁。6、數據包格式
在TWI總線上傳送的數據包為9位長,包括8位數據位及1位應答位。
在數據傳送中,主機產生時鐘及START與STOP狀態,而接收器響應接收。
應答是由從機在第9個SCL周期拉低SDA實現的。如果接收器使SDA為高,則發出NACK信號。接收器完成接收,應該在收到最后的字節后發出NACK來告知發送器。第九頁,共54頁。圖5.13數據包格式第十頁,共54頁。7、將地址包和數據包組合為一個完整的傳輸過程
發送主要由START狀態、SLA+R/W、至少一個數據包及STOP狀態組成,可以利用SCL的線與功能來實現主機與從機的握手。
第十一頁,共54頁。
圖5.14說明了典型的數據傳送。注意SLA+R/W與STOP之間傳送的字節數由應用程序的協議決定。圖5.14典型的數據傳送第十二頁,共54頁。8、多主機總線系統,仲裁和同步
TWI協議允許總線上有多個主機。特別要注意的是即使有多個主機同時開始發生數據,也要保證發送正常進行。多主機系統中有兩個問題:只能允許一個主機完成傳送。當其余主機失去選擇權后應停止傳送,這個過程稱為仲裁。當競爭中的主機發現其仲裁失敗,應立即轉換到從機模式檢測是否被獲得總線控制權的的主機尋址。不同的主機可能使用不同的SCL頻率。為保證傳送的一致性,必須設計一種同步主機時鐘,這會簡化仲裁過程。第十三頁,共54頁。5.4.2TWI模塊綜述
TWI模塊由幾個子模塊組成,如圖5.17所示。所有位于粗線之中的寄存器可以通過AVR數據總線進行訪問。第十四頁,共54頁。圖5.17TWI模塊概述第十五頁,共54頁。5.4.3總線接口單元
該單元包括數據與地址移位寄存器TWDR,START/STOP控制器和總線仲裁判定硬件電路。5.4.4地址匹配單元地址匹配單元將檢測從總線上接收到的地址是否與TWAR寄存器中的7位地址相匹配。5.4.5控制單元:
控制單元監控TWI總線,并根據TWI控制寄存器TWCR的設置作出相應的響應。第十六頁,共54頁。5.4.6使用TWI
AVR的TWI接口是面向字節和基于中斷的。
在字節發送和接收過程中,不需要應用程序的干預。
TWCR寄存器的TWIE位和SREG寄存器的全局中斷允許位一起決定了應用程序是否響應TWINT標志位產生的中斷請求。第十七頁,共54頁。1、TWI寄存器設置(1)TWI比特率寄存器(TWBR)Bits7..0–TWI比特率寄存器TWBR為比特率發生器分頻因子。比特率發生器是一個分頻器,在主機模式下產生SCL時鐘頻率。第十八頁,共54頁。(2)TWI控制寄存器(TWCR)Bit7–TWINT:TWI中斷標志Bit6–TWEA:使能TWI應答Bit5–TWSTA:TWISTART狀態標志Bit4–TWSTO:TWISTOP狀態標志Bit3–TWWC:TWI寫碰撞標志Bit2–TWEN:TWI使能Bit1–Res:保留Bit0–TWIE:使能TWI中斷第十九頁,共54頁。(3)TWI狀態寄存器(TWSR)Bits7..3–TWS:TWI狀態Bit2–Res:保留Bits1..0–TWPS:TWI預分頻位第二十頁,共54頁。(4)TWI數據寄存器(TWDR)Bits7..0–TWD:TWI數據寄存器第二十一頁,共54頁。(5)TWI(從機)地址寄存器(TWAR)?Bits7..1–TWA:TWI從機地址寄存器其值為從機地址。?Bit0–TWGCE:使能TWI廣播識別置位后MCU可以識別TWI總線廣播。第二十二頁,共54頁。TWI數據傳輸過程中的規則總結如下:
當TWI完成一次操作并等待反饋時,TWINT標志置位。直到TWINT清零,時鐘線SCL才會拉低。
TWINT標志置位時,TWDR寄存器必須載入下一個總線周期中要發送的值。當所有的TWI寄存器得到更新,而且其它掛起的應用程序也已經結束,TWCR被寫入數據。寫TWCR時,TWINT位應為置位狀態。對TWINT寫“1”清除此標志。TWI將開始執行由TWCR設定的操作。第二十三頁,共54頁。1、數據傳輸模式
TWI可工作于4個不同的模式:主機發送器(MT)、主機接收器(MR)、從機發送器(ST)及從機接收器(SR)。同一應用程序可以使用幾種模式。2、主機發送模式 為進入主機模式,必須發送START信號。緊接著的地址包格式決定進入MT或MR模式。如果發送SLA+W進入MT模式;如果發送SLA+R則進入MR模式。 本節所提到的狀態字均假設其預分頻位為“0”。第二十四頁,共54頁。(1)通過在TWCR寄存器中寫入下列數值發出START信號:TWEN必須置位以使能兩線接口TWSTA必須置“1”來發出START信號TWINT必須置“1”來對TWINT標志清零
TWI邏輯開始檢測串行總線,一旦總線空閑就發送START。接著中斷標志TWINT置位,TWSR的狀態碼為0x08。第二十五頁,共54頁。(2)為進入MT模式,必須發送SLA+W,可對TWDR寫入SLA+W來實現。完成此操作后軟件清零TWINT標志,TWI傳輸繼續進行。 在TWCR寄存器中寫入下述值完成此操作:第二十六頁,共54頁。
當SLA+W發送完畢并接收到確認信號,主機的TWINT標志再次置位。 此時主機的TWSR狀態碼可能是0x18、0x20。
SLA+W發送成功后可以開始發送數據包,通過對TWDR寫入數據實現。
第二十七頁,共54頁。(3)TWDR只有在TWINT為高時方可寫入。否則,訪問被忽略,寄存器TWCR的寫碰撞位TWWC置位。
TWDR更新后,TWINT位應清零后繼續傳送。 通過對TWCR寄存器中寫入下述值完成操作:第二十八頁,共54頁。(4)這過程會一直重復下去,直到最后的字節發送完且發送器產生STOP或REPEATEDSTART信號。STOP信號通過在TWCR中寫入下述值實現:第二十九頁,共54頁。(5)在REPEATEDSTART(狀態0x10)后,兩線接口可以再次訪問相同的從機,或不發送STOP信號來訪問新的從機。REPEATEDSTART使得主機可以在不丟失總線控制的條件下在從機、主機發送器及主機接收器模式間進行切換。
REPEATEDSTART信號通過在TWCR中寫入下述值實現:第三十頁,共54頁。表:主機發送模式的狀態碼第三十一頁,共54頁。表主機發送模式的狀態碼(續表)典型數據傳輸中應用程序與TWI的接口(數據手冊P171)第三十二頁,共54頁。3、主機接收模式
在主機接收模式,主機可以從從機接收數據。 為進入主機模式,必須發送START信號。緊接著的地址包格式決定進入MT或MR模式。如果發送SLA+W進入MT模式;如果發送SLA+R則進入MR模式。
第三十三頁,共54頁。表:主機接收模式的狀態碼第三十四頁,共54頁。表主機接收模式的狀態碼(續表)第三十五頁,共54頁。4、從機發送模式如圖5.20:從機發送模式下的數據傳輸第三十六頁,共54頁。(1)啟動從機發送模式,TWAR與TWCR設置:(2)前7位是主機尋址時從機響應的TWI接口地址。若LSB置位,則TWI接口響應廣播地址0x00。否則忽略廣播地址。第三十七頁,共54頁。TWEN必須置位以使能TWI接口。TWEA也要置位以便主機尋址到自己(從機地址或廣播)時返回確認信息ACK。TWSTA和TWSTO必須清零。初始化TWAR和TWCR之后,TWI接口即開始等待,直到自己的從機地址(或廣播地址,如果TWAR的TWGCE置位的話)出現在主機尋址地址當中,并且數據方向位為“1”(讀)。然后TWI中斷標志置位,TWSR則包含了相應的狀態碼。第三十八頁,共54頁。
如果在傳輸過程中TWEA復位,TWI接口發送完數據之后進入狀態0xC0或0xC8。接口也切換到未尋址從機模式,忽略任何后續總線傳輸。從而主機接收到的數據全為“1”。如果主機需要附加數據位(通過發送ACK),即使從機已經傳送結束,也進入狀態0xC8。
TWEA復位時TWI接口不再響應自己的從機地址,但是會繼續監視總線。一旦TWEA置位就可以恢復地址識別和響應。也就是說,可以利用TWEA暫時將TWI接口從總線中隔離出來。第三十九頁,共54頁。
在除空閑模式外的其它休眠模式時,TWI接口的時鐘被關閉。若使能了從機接收模式,接口將利用總線時鐘繼續響應廣播地址/從機地址。地址匹配將喚醒CPU。在喚醒期間,TWI接口將保持SCL為低電平,直至TWCINT標志清零。第四十頁,共54頁。
當AVR時鐘恢復正常運行后可以發送更多的數據。顯然如果AVR設置為長啟動時間,時鐘線SCL可能會長時間保持低,阻塞其它數據的傳送。當MCU從這些休眠模式喚醒時,和正常工作模式不同的是,數據寄存器TWDR的數據并不反映總線上出現的最后一個字節。第四十一頁,共54頁。表5.9:從機發送模式的狀態碼第四十二頁,共54頁。其他狀態:有兩個狀態碼沒有相應的TWI狀態定義。狀態0xF8表明當前沒有相關信息,因為中斷標志TWINT為“0”。狀態0x00表示在串行傳輸過程中發生了總線錯誤。當START或STOP出現在錯誤的位置時總線錯誤就會發生。這將導致TWI接口進入未尋址從機模式、標志TWSTO被清零(TWCR的其他位不受影響),以及SDA和SCL被釋放,但是不會產生STOP。第四十三頁,共54頁。表5.10其它狀態碼第四十四頁,共54頁。將幾個TWI模式組合到一起:在某些情況下,為完成期望的工作,必須將幾種TWI模式組合起來。例如從串行EEPROM讀取數據。典型的這種傳輸包括以下步驟:
1.傳輸必須啟動
2.必須告訴EEPROM讀取的位置
3.必須完成讀操作
4.傳送必須結束第四十五頁,共54頁。注意數據可從主機傳到從機,反之也可。首先主機必須告訴讀從機讀取實際的位置,因此需要使用MT模式;然后數據必須由從機讀出,需要使用MR模式,但傳送方向必須改變。在上述步驟中,主機必須保持對總線的控制,且以上各步驟應該自動進行。如果在多主機系統中違反這一規則,即在第二步與第三步之間其它主機改變EEPROM中的數據指針,則主機讀取的數據位置是錯誤的。傳送方向改變是通過在發送地址字節與接收數據之間發送REPEATEDSTART信號來實現的。在發送REPEATEDSTART信號后,主機繼續保持總線的控制權。第四十六頁,共54頁。下圖給出傳送的流程圖(從機讀流程)。第四十七頁,共54頁。例5.14在讀方式下往從器件寫入一個地址字節。voidf_I2cWriteAdd_R(unsignedcharuc_I2CAdd)//寫從器件地址和讀方式{TWDR=(uc_I2CAdd);TWCR=(1<<TWINT)|(1<<TWEN);//寫數據到TWDRwhile(!(TWCR&(1<<TWINT);if(TWSR&0xf8!=0x40)error();}第四十八頁,共54頁。例5.15往從器件寫入一個數據字節。voidf_I2cWriteData_R(unsignedcharuc_I2CData)//寫從器件數據{TWDR=(uc_I2CData);TWCR=(1<<TWINT)|(1<<TWEN)//寫數據到TWDRwhile(!(TWCR&(1<<TWINT);if(TWSR&0xf8!=0x28)error();}第四十九頁,共54頁。例5.16讀從器件,返回字節數據。要求接收到ACK信號。unsignedcharf_I2Cread1(viod)//讀返回數據{unsignedcharuc_ReturnData;TWCR=(TWCR&0xCF)|(1<<TWEN)|(1<<TWEA)|(1<<TWINT);//啟動主讀方式w
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農業法律法規知識講座
- 山東省聊城第一中學新校區、高鐵校區2024-2025學年高一下學期第一次階段性檢測語文試題(原卷版+解析版)
- 強化廢舊光伏板組件處理規范
- 茶葉的種植技術與管理
- 電腦售后服務協議書二零二五年
- 二零二五版簡易技術咨詢服務合同模板
- 公司設立協議書
- 房地產項目委托代建協議合同書
- 酒店文件發放管理制度
- 連鎖餐飲后勤管理制度
- GB 5908-2024阻火器
- 某醫院精神衛生中心信息化建設方案
- 自編MSA(計數型)自動分析表
- 購房律師陪同服務合同
- 家用電動啤酒釀造設備市場發展現狀調查及供需格局分析預測報告
- GB/T 2624.6-2024用安裝在圓形截面管道中的差壓裝置測量滿管流體流量第6部分:楔形裝置
- 危重患者護理與觀察
- 2024年浙江省中考英語試題卷(含答案解析)
- 人教版(2019)必修 第二冊Unit 2 Wildlife Protection Reading for writing教學設計
- AIGC視域下非遺文創產品的數字化轉型升級路徑研究
- 推廣綠色用電活動方案
評論
0/150
提交評論