基于ARM的I2C設備控制方法的實現(xiàn)_第1頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于arm的i2c設備控制方法的實現(xiàn)1 引 言i2c是由philips公司開發(fā)的2線式串行總線,因為其容易、高效、互聯(lián)成本小而被廣泛地用于微控制器與外圍設備的銜接。at91sam7x256是公司于2005年推出的基于7的工業(yè)級芯片,他以體積小、功耗低、銜接方式廣泛、處理資源豐盛、控制靈便等特點受到領域開發(fā)人員的重視。本文介紹at91sam7x256的i2c控制器twi接口(two-wiredinterface)的用法辦法,并以i2c設備e2prom和日歷時鐘芯片為例,實現(xiàn)at91sam7x256對時光數(shù)據的讀取與存儲。同時,為了驗證時光數(shù)據的讀取與存儲是否正確,用法at91sam7x256的在

2、線器j-link將e2prom中的數(shù)據讀至內存舉行檢查。2 硬件設計2.1 硬件模塊結構的硬件模塊結構1所示。at91sam7x256的twi接口由一根時鐘線twck和一根數(shù)據線twd組成,產生的信號時序符合i2c總線規(guī)范;pcf8563是philips公司推出的一款內含i2c總線接口功能的工業(yè)級時鐘芯片;at24c08是atmel公司推出的符合i2c規(guī)約的兩線串口e2prom。at91sam7x256的twck和twd分離與芯片pcf8563和at24c08的scl與sda相連,cpu通過twi接口將時光數(shù)據讀出并存儲。為了保證cpu不矛盾的拜訪pcf8563和at24c08,本文將at24

3、c08的a2管腳接高電平。因為i2c總線空閑時為高電平,所以為實現(xiàn)“線與”功能,總線上銜接的設備均是集電極開路的,因此總線需外接上拉r。at91sam7x256的twi有主從2種工作模式,本文中at91sam7x256作為控制方,應工作于主模式。2.2 at91sam7x256的twi接口at91sam7x256的twd和twck管腳與設備的io管腳復用,同時at91sam7x256采納單獨控制功能單元的省電計劃,單元pmc控制各功能單元的時鐘是否工作,所以要用法twi接口,需要首先配置twd和twck為外設連線和開路狀態(tài),第二配置pmc使twi時鐘處于工作狀態(tài)。twi接口可提供高達400 k

4、bs的傳輸速率,為使得數(shù)據的傳輸速率面對不同應用,可以通過配置時鐘脈沖發(fā)生器的控制寄存器twi_cweg調節(jié)twck的信號頻率。twi接口產生的信號時序符合i2c總線規(guī)范,當讀寫1個字節(jié)數(shù)據時,主設備需提供從設備的設備地址、內部地址、讀寫控制以及起始標記和停止標記。在數(shù)據的收發(fā)過程中,主要用法控制寄存器twi_cr、主模式寄存器twi_mmr、內部地址寄存器twi_iadr、狀態(tài)寄存器twi_sr、傳輸保持寄存器twi_thr和接收保持寄存器twi_rhr。從設備地址在twi_mmr中設置,從設備的內部地址在twi_iadr中設置;在twi_cr中設置是否發(fā)送起始信號和停止信號;nak(無應答

5、)、over(運行錯誤)、txrdy(發(fā)送預備好)、rxrdy(接收預備好)、tx-comp(傳輸完成)等狀態(tài)位通過查詢wi_sr得到。寫數(shù)據的過程包括:當twi_thr寫入數(shù)據后,cpu產生起始信號啟動傳輸,twi_thr中的數(shù)據經過并串轉換后由twd傳輸出去,當cpu收到從設備的應答信號后,twi_sr的txrdy將自動置“1”,解釋數(shù)據已寫入從設備。讀數(shù)據的過程包括:cpu發(fā)出起始信號后,若twi_sr的rxrdy位為“1”,則解釋twi_rhr中有數(shù)據等待接收,當twi_rhr中的數(shù)據被讀出后,則rxrdy自動置為“0”。當讀寫數(shù)據完畢后,cpu將產生一個停止信號結束傳輸,twi_sr

6、的txcomp將自動置“1”。2.3 pcf8563日歷時鐘芯片的用法辦法按i2c協(xié)議規(guī)約,pcf8563具有惟一的設備地址0a2h。本文重點討論pcf8563時、分、秒數(shù)據的讀取辦法,在此用到的內部寄存器包括控制狀態(tài)寄存器1(地址為00h)、秒寄存器(地址為02h)、分寄存器(地址為03h)、小時寄存器(地址為04h)。因為寄存器中以bcd格式存儲時、分、秒數(shù)據,所以各時光時光寄存器的高位無效。為使pcf8563工作于一般模式,需要將控制狀態(tài)寄存器1置為00h,同時為了存儲正確的時光數(shù)據,需要將讀到的數(shù)據中無效的高位舉行屏蔽。若需要校對時光,只需對時、分、秒寄存器舉行寫操作即可。2.4 at

7、24c08的用法辦法at24c08是容量為8192 b(1024b)的e2prom。at24c08內部分為4頁,每一頁有256字節(jié)單元,所以若要拜訪某個單元則需要10位舉行尋址,其中最高兩位是頁地址,低8位是頁內地址。設備地址的定義2所示,其中p1p0對應頁地址,管腳a2可為at24c08設定兩組設備地址。當a2為低電平常,4頁的設備地址分離為0a0h,0a2h,0a4h,0a6h;當a2為高電平常;反之為0a8h,0aah,0ach,0aeh。因此,為了避開at24c08與pcf8563的設備地址矛盾,需將a2銜接高電平。at24c08的寫操作支持“字節(jié)寫”和“頁面寫”兩種方式?!白止?jié)寫”方

8、式中每寫一個字節(jié)均需主設備提供起始信號、設備地址、內部地址以及停止信號;“頁面寫”方式即延續(xù)寫數(shù)據,需主設備提供起始標記、設備地址以及內部地址,數(shù)據所有寫完后再發(fā)送停止標記。at24c08的讀操作支持“當前地址讀”、“隨機讀”和“挨次讀”3種方式?!爱斍暗刂纷x”表示從當前內部地址單元讀出1個字節(jié),所以主設備僅需提供起始信號、設備地址和停止信號;“隨機讀”表示從隨意內部地址單元讀出1個字節(jié),所以主設備需要先提供1次起始信號、設備地址、寫操作、設備內部地址和停止信號,設定設備的內部地址,之后再按“當前地址讀”方式讀數(shù)據即可;“挨次讀”表示從當前地址開頭延續(xù)讀多個字節(jié),所以主設備需提供起始信號、設備

9、地址、讀操作,數(shù)據所有讀完后再發(fā)送停止信號。為了迅速讀寫數(shù)據,本文采納頁面寫的方式將數(shù)據寫入at24c08;采納“隨機讀”和“挨次讀”相結合的方式讀取at24c08數(shù)據。3 軟件設計3.1 twi初始化程序的設計按照twi的功能特點,twi初始化的初始化包括以下4步:(1)配置pio控制器使復用管腳驅動twi信號;(2)配置pmc使twi時鐘處于工作狀態(tài);(3)配置twi為主工作模式。本文cpu為主設備,日歷和存儲芯片為從設備;(4)設置數(shù)據傳輸速率,配置twi時鐘波形發(fā)生器寄存器。3.2 pcf8563驅動程序的設計為了控制pcf8563的工作方式,需要對其寫入控制字;為了得到pcf8563

10、輸出的時光信息,需要對其舉行讀操作,讀寫數(shù)據的流程3所示。本文設計編寫如下讀函數(shù)和寫函數(shù):其中,ptwi是結構體指針,指向的結構體中存放twi的寄存器,通過ptwi即可拜訪各twi寄存器;address表示設備地址;im_address表示設備內部地址;data代表讀寫數(shù)據的變量指針。因此,若使pcf8563工作于一般模式,并讀“時”數(shù)據,可用以下代碼實現(xiàn):3.3 at24c08驅動程序的設計因為at24c08由4個具有不同設備地址的頁組成,且采納延續(xù)讀寫數(shù)據的操作方式,所以at24c08的讀寫與pcf8563讀寫有以下幾點區(qū)分。(1)先設置twi_cr的起始標記,之后通過twi_rhr和tw

11、i_thr讀寫twi接口的數(shù)據;發(fā)送最后一個數(shù)據之前,再設置twi_cr的停止標記。(2)對于多字節(jié)數(shù)據的讀寫,所有數(shù)據若沒有傳輸完畢,便不發(fā)送停止信號,所以需通過推斷twi_sr寄存器中的txrdy和rxrdy打算是否讀twi_rhr和寫twi_thr,而將是否浮現(xiàn)停止信號作為是否停止發(fā)送和接收的推斷依據。(3)因為數(shù)據量和起始單元均是隨機的,所以有可能浮現(xiàn)一頁寫不下的狀況,因此針對給定的數(shù)據量和起始單元參數(shù)需要計算出共需幾頁,以便在舉行頁面切換時更換設備地址。本文設計編寫了如下讀函數(shù)和寫函數(shù)。其中,nb為讀寫的字節(jié)數(shù),data表示存放讀寫數(shù)據數(shù)組變量的首指針。3.4 軟件的調試與運行本文采納iar開發(fā)環(huán)境和j-link仿真器舉行軟件的在線調試和加載運行。調用函數(shù)完成以下程序設計:首先從pcf8563延續(xù)讀出若干數(shù)據并寫入at24c08;第二,將at24c08中的數(shù)據讀至數(shù)組變量中。在程序中的讀完at24c08數(shù)據后設置斷點,觀測數(shù)組中存放的數(shù)據,從而驗證驅動程序的正確性。4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論