
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于arm的i2c設(shè)備控制方法的實現(xiàn)1 引 言i2c是由philips公司開發(fā)的2線式串行總線,因為其容易、高效、互聯(lián)成本小而被廣泛地用于微控制器與外圍設(shè)備的銜接。at91sam7x256是公司于2005年推出的基于7的工業(yè)級芯片,他以體積小、功耗低、銜接方式廣泛、處理資源豐盛、控制靈便等特點受到領(lǐng)域開發(fā)人員的重視。本文介紹at91sam7x256的i2c控制器twi接口(two-wiredinterface)的用法辦法,并以i2c設(shè)備e2prom和日歷時鐘芯片為例,實現(xiàn)at91sam7x256對時光數(shù)據(jù)的讀取與存儲。同時,為了驗證時光數(shù)據(jù)的讀取與存儲是否正確,用法at91sam7x256的在
2、線器j-link將e2prom中的數(shù)據(jù)讀至內(nèi)存舉行檢查。2 硬件設(shè)計2.1 硬件模塊結(jié)構(gòu)的硬件模塊結(jié)構(gòu)1所示。at91sam7x256的twi接口由一根時鐘線twck和一根數(shù)據(jù)線twd組成,產(chǎn)生的信號時序符合i2c總線規(guī)范;pcf8563是philips公司推出的一款內(nèi)含i2c總線接口功能的工業(yè)級時鐘芯片;at24c08是atmel公司推出的符合i2c規(guī)約的兩線串口e2prom。at91sam7x256的twck和twd分離與芯片pcf8563和at24c08的scl與sda相連,cpu通過twi接口將時光數(shù)據(jù)讀出并存儲。為了保證cpu不矛盾的拜訪pcf8563和at24c08,本文將at24
3、c08的a2管腳接高電平。因為i2c總線空閑時為高電平,所以為實現(xiàn)“線與”功能,總線上銜接的設(shè)備均是集電極開路的,因此總線需外接上拉r。at91sam7x256的twi有主從2種工作模式,本文中at91sam7x256作為控制方,應(yīng)工作于主模式。2.2 at91sam7x256的twi接口at91sam7x256的twd和twck管腳與設(shè)備的io管腳復用,同時at91sam7x256采納單獨控制功能單元的省電計劃,單元pmc控制各功能單元的時鐘是否工作,所以要用法twi接口,需要首先配置twd和twck為外設(shè)連線和開路狀態(tài),第二配置pmc使twi時鐘處于工作狀態(tài)。twi接口可提供高達400 k
4、bs的傳輸速率,為使得數(shù)據(jù)的傳輸速率面對不同應(yīng)用,可以通過配置時鐘脈沖發(fā)生器的控制寄存器twi_cweg調(diào)節(jié)twck的信號頻率。twi接口產(chǎn)生的信號時序符合i2c總線規(guī)范,當讀寫1個字節(jié)數(shù)據(jù)時,主設(shè)備需提供從設(shè)備的設(shè)備地址、內(nèi)部地址、讀寫控制以及起始標記和停止標記。在數(shù)據(jù)的收發(fā)過程中,主要用法控制寄存器twi_cr、主模式寄存器twi_mmr、內(nèi)部地址寄存器twi_iadr、狀態(tài)寄存器twi_sr、傳輸保持寄存器twi_thr和接收保持寄存器twi_rhr。從設(shè)備地址在twi_mmr中設(shè)置,從設(shè)備的內(nèi)部地址在twi_iadr中設(shè)置;在twi_cr中設(shè)置是否發(fā)送起始信號和停止信號;nak(無應(yīng)答
5、)、over(運行錯誤)、txrdy(發(fā)送預備好)、rxrdy(接收預備好)、tx-comp(傳輸完成)等狀態(tài)位通過查詢wi_sr得到。寫數(shù)據(jù)的過程包括:當twi_thr寫入數(shù)據(jù)后,cpu產(chǎn)生起始信號啟動傳輸,twi_thr中的數(shù)據(jù)經(jīng)過并串轉(zhuǎn)換后由twd傳輸出去,當cpu收到從設(shè)備的應(yīng)答信號后,twi_sr的txrdy將自動置“1”,解釋數(shù)據(jù)已寫入從設(shè)備。讀數(shù)據(jù)的過程包括:cpu發(fā)出起始信號后,若twi_sr的rxrdy位為“1”,則解釋twi_rhr中有數(shù)據(jù)等待接收,當twi_rhr中的數(shù)據(jù)被讀出后,則rxrdy自動置為“0”。當讀寫數(shù)據(jù)完畢后,cpu將產(chǎn)生一個停止信號結(jié)束傳輸,twi_sr
6、的txcomp將自動置“1”。2.3 pcf8563日歷時鐘芯片的用法辦法按i2c協(xié)議規(guī)約,pcf8563具有惟一的設(shè)備地址0a2h。本文重點討論pcf8563時、分、秒數(shù)據(jù)的讀取辦法,在此用到的內(nèi)部寄存器包括控制狀態(tài)寄存器1(地址為00h)、秒寄存器(地址為02h)、分寄存器(地址為03h)、小時寄存器(地址為04h)。因為寄存器中以bcd格式存儲時、分、秒數(shù)據(jù),所以各時光時光寄存器的高位無效。為使pcf8563工作于一般模式,需要將控制狀態(tài)寄存器1置為00h,同時為了存儲正確的時光數(shù)據(jù),需要將讀到的數(shù)據(jù)中無效的高位舉行屏蔽。若需要校對時光,只需對時、分、秒寄存器舉行寫操作即可。2.4 at
7、24c08的用法辦法at24c08是容量為8192 b(1024b)的e2prom。at24c08內(nèi)部分為4頁,每一頁有256字節(jié)單元,所以若要拜訪某個單元則需要10位舉行尋址,其中最高兩位是頁地址,低8位是頁內(nèi)地址。設(shè)備地址的定義2所示,其中p1p0對應(yīng)頁地址,管腳a2可為at24c08設(shè)定兩組設(shè)備地址。當a2為低電平常,4頁的設(shè)備地址分離為0a0h,0a2h,0a4h,0a6h;當a2為高電平常;反之為0a8h,0aah,0ach,0aeh。因此,為了避開at24c08與pcf8563的設(shè)備地址矛盾,需將a2銜接高電平。at24c08的寫操作支持“字節(jié)寫”和“頁面寫”兩種方式?!白止?jié)寫”方
8、式中每寫一個字節(jié)均需主設(shè)備提供起始信號、設(shè)備地址、內(nèi)部地址以及停止信號;“頁面寫”方式即延續(xù)寫數(shù)據(jù),需主設(shè)備提供起始標記、設(shè)備地址以及內(nèi)部地址,數(shù)據(jù)所有寫完后再發(fā)送停止標記。at24c08的讀操作支持“當前地址讀”、“隨機讀”和“挨次讀”3種方式。“當前地址讀”表示從當前內(nèi)部地址單元讀出1個字節(jié),所以主設(shè)備僅需提供起始信號、設(shè)備地址和停止信號;“隨機讀”表示從隨意內(nèi)部地址單元讀出1個字節(jié),所以主設(shè)備需要先提供1次起始信號、設(shè)備地址、寫操作、設(shè)備內(nèi)部地址和停止信號,設(shè)定設(shè)備的內(nèi)部地址,之后再按“當前地址讀”方式讀數(shù)據(jù)即可;“挨次讀”表示從當前地址開頭延續(xù)讀多個字節(jié),所以主設(shè)備需提供起始信號、設(shè)備
9、地址、讀操作,數(shù)據(jù)所有讀完后再發(fā)送停止信號。為了迅速讀寫數(shù)據(jù),本文采納頁面寫的方式將數(shù)據(jù)寫入at24c08;采納“隨機讀”和“挨次讀”相結(jié)合的方式讀取at24c08數(shù)據(jù)。3 軟件設(shè)計3.1 twi初始化程序的設(shè)計按照twi的功能特點,twi初始化的初始化包括以下4步:(1)配置pio控制器使復用管腳驅(qū)動twi信號;(2)配置pmc使twi時鐘處于工作狀態(tài);(3)配置twi為主工作模式。本文cpu為主設(shè)備,日歷和存儲芯片為從設(shè)備;(4)設(shè)置數(shù)據(jù)傳輸速率,配置twi時鐘波形發(fā)生器寄存器。3.2 pcf8563驅(qū)動程序的設(shè)計為了控制pcf8563的工作方式,需要對其寫入控制字;為了得到pcf8563
10、輸出的時光信息,需要對其舉行讀操作,讀寫數(shù)據(jù)的流程3所示。本文設(shè)計編寫如下讀函數(shù)和寫函數(shù):其中,ptwi是結(jié)構(gòu)體指針,指向的結(jié)構(gòu)體中存放twi的寄存器,通過ptwi即可拜訪各twi寄存器;address表示設(shè)備地址;im_address表示設(shè)備內(nèi)部地址;data代表讀寫數(shù)據(jù)的變量指針。因此,若使pcf8563工作于一般模式,并讀“時”數(shù)據(jù),可用以下代碼實現(xiàn):3.3 at24c08驅(qū)動程序的設(shè)計因為at24c08由4個具有不同設(shè)備地址的頁組成,且采納延續(xù)讀寫數(shù)據(jù)的操作方式,所以at24c08的讀寫與pcf8563讀寫有以下幾點區(qū)分。(1)先設(shè)置twi_cr的起始標記,之后通過twi_rhr和tw
11、i_thr讀寫twi接口的數(shù)據(jù);發(fā)送最后一個數(shù)據(jù)之前,再設(shè)置twi_cr的停止標記。(2)對于多字節(jié)數(shù)據(jù)的讀寫,所有數(shù)據(jù)若沒有傳輸完畢,便不發(fā)送停止信號,所以需通過推斷twi_sr寄存器中的txrdy和rxrdy打算是否讀twi_rhr和寫twi_thr,而將是否浮現(xiàn)停止信號作為是否停止發(fā)送和接收的推斷依據(jù)。(3)因為數(shù)據(jù)量和起始單元均是隨機的,所以有可能浮現(xiàn)一頁寫不下的狀況,因此針對給定的數(shù)據(jù)量和起始單元參數(shù)需要計算出共需幾頁,以便在舉行頁面切換時更換設(shè)備地址。本文設(shè)計編寫了如下讀函數(shù)和寫函數(shù)。其中,nb為讀寫的字節(jié)數(shù),data表示存放讀寫數(shù)據(jù)數(shù)組變量的首指針。3.4 軟件的調(diào)試與運行本文采納iar開發(fā)環(huán)境和j-link仿真器舉行軟件的在線調(diào)試和加載運行。調(diào)用函數(shù)完成以下程序設(shè)計:首先從pcf8563延續(xù)讀出若干數(shù)據(jù)并寫入at24c08;第二,將at24c08中的數(shù)據(jù)讀至數(shù)組變量中。在程序中的讀完at24c08數(shù)據(jù)后設(shè)置斷點,觀測數(shù)組中存放的數(shù)據(jù),從而驗證驅(qū)動程序的正確性。4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 1 小蝌蚪找媽媽 教學設(shè)計-2024-2025學年語文二年級上冊(部編版)
- 股權(quán)代持合同標準范本
- 8 古詩二首 望廬山瀑布 教學設(shè)計-2024-2025學年語文二年級上冊統(tǒng)編版
- Module 12 help unit 1 What should we do before help arrives英文版教學設(shè)計 - 2024-2025學年外研版八年級英語上冊
- 10 我們當?shù)氐娘L俗(教學設(shè)計)2023-2024學年統(tǒng)編版道德與法治六年級上冊
- 11 我是一張紙 第二課時 教學設(shè)計-2023-2024學年道德與法治二年級下冊統(tǒng)編版
- 個人產(chǎn)品采購合同范本
- 絹花加工合同范本
- 燃氣合同范本模板
- 2023年浙江省中考科學一輪專題輔導教學設(shè)計:酸堿鹽
- 新媒體運營合作合同范本
- 2024年12月2025中央統(tǒng)戰(zhàn)部直屬事業(yè)單位應(yīng)屆高校畢業(yè)生公開招聘21人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年中國主題樂園行業(yè)發(fā)展概況、市場全景分析及投資策略研究報告
- 產(chǎn)后疼痛管理指南
- 工娛治療及其護理
- 人效管理措施
- 2024-2025學年人教部編版七年級上語文寒假作業(yè)(五)
- 四年級下冊勞動《小小快遞站》課件
- 中國妊娠期糖尿病母兒共同管理指南(2024版)解讀
- 春節(jié)促銷活動方案(7篇)
- 《股市的基礎(chǔ)常識》課件
評論
0/150
提交評論