基于S3C2440A的IIC總線讀寫故障軟件處理研究_第1頁
基于S3C2440A的IIC總線讀寫故障軟件處理研究_第2頁
基于S3C2440A的IIC總線讀寫故障軟件處理研究_第3頁
基于S3C2440A的IIC總線讀寫故障軟件處理研究_第4頁
基于S3C2440A的IIC總線讀寫故障軟件處理研究_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、    基于s3c2440a的iic總線讀寫故障軟件處理研究    曹雨摘 要: iic總線讀寫故障是iic器件使用過程中無法回避的現(xiàn)實(shí)問題,本文以實(shí)際研究為背景,以三星s3c2440a risc微處理器為例介紹了iic總線故障的分析及軟件處理方法,為實(shí)際應(yīng)用提供了參考。關(guān)鍵詞: s3c2440a;iic總線;故障處理一、前言iic總線是由philips公司開發(fā)并成功推廣的一種雙向兩線通信方式,所有符合iic總線協(xié)議的器件可通過iic總線進(jìn)行獨(dú)立通信,實(shí)現(xiàn)了ic之間的有效控制。由于iic總線上可以掛載多個(gè)iic器件,個(gè)別iic器件如果出現(xiàn)故障可能引起總線

2、鎖死,進(jìn)而引起整個(gè)總線通信故障。本文以三星公司的一款risc微處理器s3c2440a的iic接口為例對iic總線讀寫故障的分析及處理進(jìn)行了研究,給出了故障現(xiàn)象分析及軟件處理方法。二、s3c2440a的iic總線接口三星公司的s3c2440a為手持設(shè)備和普通應(yīng)用提供了低功耗和高性能的小型芯片微處理器的解決方案,其處理器是基于advanced risc machines(arm)公司設(shè)計(jì)的16/32位arm920t核心。s3c2440a可以支持一個(gè)多主控iic總線串行接口。一條專用串行數(shù)據(jù)線(sda)和一條專用串行時(shí)鐘線(scl)傳遞連接到iic總線的主控和外設(shè)之間的信息。在多主控iic總線模式中

3、,多個(gè)s3c2440a可以發(fā)送或接收串行數(shù)據(jù)來自或到從設(shè)備。主機(jī)s3c2440a可以通過iic總線啟動和結(jié)束數(shù)據(jù)傳輸,s3c2440a的iic總線是使用標(biāo)準(zhǔn)總線仲裁步驟。為了控制多主控iic總線操作,必須寫入值到以下寄存器中:iic總線控制寄存器(iiccon)、iic總線控制/狀態(tài)寄存器(iicstat)、iic總線tx/rx數(shù)據(jù)移位寄存器(iicds)、iic總線地址寄存器(iicadd)。當(dāng)釋放了iic總線時(shí),sda和scl線應(yīng)該都保持為高電平。一個(gè)高到低sda的變化可以啟動一個(gè)起始條件。scl穩(wěn)定保持在高電平時(shí)的一個(gè)低到高sda的變化可以啟動一個(gè)停止條件。起始和停止條件通常由主設(shè)備產(chǎn)生

4、。第一個(gè)數(shù)據(jù)字節(jié)為7位地址值,其在啟動起始條件后放到總線上,可以確定出主設(shè)備要選擇的從設(shè)備。第8位是決定傳輸方向(讀或?qū)懀C總€(gè)放到sda線上的字節(jié)都應(yīng)該總共為8位。字節(jié)可以在總線傳輸操作期間無限制的發(fā)送或接收。數(shù)據(jù)通常從最高有效位(msb)開始發(fā)送,并且每個(gè)字節(jié)應(yīng)該立即通過應(yīng)答(ack)位跟上。s3c2440a的iic總線框圖如下圖1所示,圖2為主機(jī)發(fā)送器模式操作流程。圖1 iic總線方框圖圖2 主機(jī)發(fā)送器模式操作流程三、s3c2440a的iic故障現(xiàn)象分析及處理3.1 s3c2440a的iic故障現(xiàn)象分析s3c2440a的u8和m9管腳分別為iicscl和iicsda引腳,也可復(fù)用為普通i

5、o口gpe14和gpe15。系統(tǒng)iic故障時(shí),iic讀寫無法正常進(jìn)行,表現(xiàn)為讀寫數(shù)據(jù)錯(cuò)誤或始終停留在讀寫狀態(tài)等待環(huán)節(jié)。通過軟件調(diào)試跟蹤或者將關(guān)鍵信息點(diǎn)打印輸出可判斷iic讀寫是否處于故障狀態(tài)。在s3c2440a的實(shí)際應(yīng)用中有兩種典型的iic故障問題:一是s3c2440a的iic引腳接觸不良或損壞;二是總線上有iic器件損壞進(jìn)而使iic總線數(shù)據(jù)讀寫異常。對于上述兩類問題的定位,可以利用s3c2440a的iic引腳可復(fù)用的屬性來判斷,例如將u8和m9配置成普通io口屬性,在無iic操作時(shí),通過對gpe14和gpe15的置高或置低,在iic總線可測量處對電平進(jìn)行實(shí)際測量,與期望電平進(jìn)行對比,如果測量

6、電平與期望電平不一致,則說明s3c2440a的引腳接觸不良或損壞,反之則可排除s3c2440a的iic引腳問題。3.2 s3c2440a的iic故障軟件處理為了防止s3c2440a的iic故障引起讀寫狀態(tài)持續(xù)等待,在實(shí)際應(yīng)用中可添加等待超時(shí)處理。下面分別給出不含超時(shí)處理的demo代碼及實(shí)際應(yīng)用中采用的超時(shí)處理代碼:/*不含超時(shí)處理的demo代碼*/void iicwrite(u8 slvaddr, u32 addr, u8 data)_iicmode = wrdata;_iicpt = 0;_iicdata0 = (u8)addr;_iicdata1 = data;_iicdatacount

7、= 2;riicds = slvaddr | (addr & 0xff00) >> 8) << 1;riicstat = 0xf0;while(_iicdatacount != -1);_iicmode = pollack;while(1)riicds = slvaddr | (addr & 0xff00) >> 8) << 1;_iicstatus = 0x100;riicstat = 0xf0;riiccon = 0xe0;while(_iicstatus = 0x100);if(!(_iicstatus & 0x1)

8、break;riicstat = 0xd0;riiccon = 0xe0;delay(1);/*添加超時(shí)處理的代碼*/void iicwrite(u8 slvaddr, u32 addr, u8 data) u16 cnt_1 = 0; /用于超時(shí)控制u16 cnt_2 = 0; /用于超時(shí)控制_iicmode = wrdata;_iicpt = 0;_iicdata0 = (u8)addr;_iicdata1 = data;_iicdatacount = 2;riicds = slvaddr | (addr & 0xff00) >> 8) << 1;riics

9、tat = 0xf0;while(_iicdatacount != -1) && (cnt_1 < cntmax)cnt_1+;_iicmode = pollack;while(1)riicds = slvaddr | (addr & 0xff00) >> 8) << 1;_iicstatus = 0x100;riicstat = 0xf0;riiccon = 0xe0;while(_iicstatus = 0x100) && (cnt_2 < cntmax)cnt_2+;if(?。╛iicstatus & 0x1)break;riicstat = 0xd0;riiccon = 0xe0;delay(1);除此之外,還應(yīng)在軟件設(shè)計(jì)中添加必要的出錯(cuò)處理與異常告警,比如對依靠iic總線獲取的非核心數(shù)據(jù)使用前增加數(shù)據(jù)異常判斷,如出現(xiàn)異常值則給出錯(cuò)誤提示并提供一組可用的缺省值以避免系統(tǒng)功能進(jìn)入完全故障狀態(tài)。四、結(jié)束語本文給出的iic總線故障分析及軟件處理方法是對實(shí)際應(yīng)用過程中所遇到的iic故障問題的研究與總結(jié),雖以s3c2440a risc微處理器為例進(jìn)行闡述,對其他iic器件的故障分析與處理同樣具有參考價(jià)值。在實(shí)際應(yīng)用中增加iic

溫馨提示

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

評論

0/150

提交評論