以文本方式查看主題 - 曙海教育集團(tuán)論壇 (http://www.hufushizhe.com/bbs/index.asp) -- Linux驅(qū)動(dòng)開(kāi)發(fā) (http://www.hufushizhe.com/bbs/list.asp?boardid=33) ---- Linux下I2C設(shè)備驅(qū)動(dòng)開(kāi)發(fā)和實(shí)現(xiàn) (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=33&id=1725) |
-- 作者:wangxinxin -- 發(fā)布時(shí)間:2010-11-24 10:52:54 -- Linux下I2C設(shè)備驅(qū)動(dòng)開(kāi)發(fā)和實(shí)現(xiàn) I2C總線具有結(jié)構(gòu)簡(jiǎn)單使用方便的特點(diǎn)。本文描述了Linux下I2C驅(qū)動(dòng)的結(jié)構(gòu),并在此基礎(chǔ)上給出了I2C設(shè)備驅(qū)動(dòng)和應(yīng)用的實(shí)現(xiàn)。 1 引言 I2C (Inter-Integrated Circuit)總線是一種由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。I2C總線最初為音頻和視頻設(shè)備開(kāi)發(fā),現(xiàn)已應(yīng)用于各種服務(wù)與管理場(chǎng)合,來(lái)實(shí)現(xiàn)配置或掌握組件的功能狀態(tài),如電源、系統(tǒng)風(fēng)扇、系統(tǒng)溫度等參數(shù),增加了系統(tǒng)的安全性,方便了管理。 2 I2C總線概述 I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù),每個(gè)器件都有一個(gè)惟一的地址識(shí)別。I2C 規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件。 I2C總線在傳送數(shù)據(jù)過(guò)程中共有三種類型信號(hào),它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。 |