新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I2C總線在Linux系統(tǒng)中的驅(qū)動(dòng)設(shè)計(jì)

        I2C總線在Linux系統(tǒng)中的驅(qū)動(dòng)設(shè)計(jì)

        作者: 時(shí)間:2009-12-10 來源:網(wǎng)絡(luò) 收藏

        1 引言
        操作因具有源代碼公開、便于裁減、有廣泛的處理器支持等優(yōu)點(diǎn),成為當(dāng)前嵌入式的熱門選擇。基于的鍵盤擴(kuò)展設(shè)備主要用于滿足嵌入式設(shè)備中對(duì)多按鍵的需求,程序在啟動(dòng)時(shí)對(duì)硬件進(jìn)行初始化。在系統(tǒng)啟動(dòng)后實(shí)現(xiàn)硬件和應(yīng)用程序之間的數(shù)據(jù)交互。針對(duì)S3C2410微處理器和鍵盤掃描管理器件,深入討論如何在嵌入式操作系統(tǒng)ARM 中實(shí)現(xiàn)ZLG7290的

        本文引用地址:http://www.104case.com/article/152251.htm

        2
        是器件間串行傳輸總線,以其規(guī)范和帶I2C接口的外圍器件獲得廣泛應(yīng)用。S3C2410處理器內(nèi)置有I2C總線接口。I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù),每個(gè)器件都有一個(gè)唯一的地址識(shí)別。I2C總線在傳送數(shù)據(jù)過程中共有3種信號(hào):(1)開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。(2)結(jié)束信號(hào):SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。(3)應(yīng)答信號(hào):接收數(shù)據(jù)的IC接收到8 bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況做出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),則判斷為受控單元出現(xiàn)故障。圖1為S3C2410和ZLG7290的連接圖。

        3 模塊的結(jié)構(gòu)
        S3C2410A內(nèi)嵌一個(gè)I2C總線控制器。在操作系統(tǒng)中,該控制器的字符型驅(qū)動(dòng)包括4個(gè)模塊:(1)i2c-dev:源程序?yàn)閕2c-dev.c,I2C總線字符型驅(qū)動(dòng),與具體使用的I2C控制器無關(guān)。(2)i2c-core:源程序?yàn)閕2c-core.c,I2C總線操作核心函數(shù),與具體使用的I2C控制器無關(guān)。(3)i2c-algo-s3c2410:源程序?yàn)閕2c-algo-s3c2410.c,I2C總線控制器I2C驅(qū)動(dòng)算法,與具體的控制器相關(guān)。(4)i2c-s3c2410:源程序?yàn)閕2c-s3c2410.c,I2C總線控制器硬件抽象層,與具體的控制器相關(guān)。以上4個(gè)模塊依次是底層與上層的關(guān)系,I2C驅(qū)動(dòng)模塊的層次結(jié)構(gòu)如圖2所示。

        4 驅(qū)動(dòng)源文件的編譯
        驅(qū)動(dòng)源文件包括i2c-algo-s3c2410.c,i2c-dev.c,i2c-core.c,i2c-s3c2410.c4個(gè)源文件。將其編譯為模塊,則產(chǎn)生4個(gè)模塊文件,編譯工作由Makefile文件完成,其文件內(nèi)容如下:


        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 壤塘县| 鄂伦春自治旗| 文水县| 三原县| 林州市| 涞源县| 图片| 兴义市| 南阳市| 于田县| 凭祥市| 浪卡子县| 松阳县| 大宁县| 芜湖县| 通化市| 故城县| 山西省| 麻江县| 北碚区| 横峰县| 内黄县| 昌邑市| 赣榆县| 浦江县| 宁城县| 益阳市| 杭锦旗| 通江县| 连州市| 建平县| 巨鹿县| 沂南县| 泰来县| 雅安市| 佛学| 临颍县| 大关县| 巴彦淖尔市| 墨竹工卡县| 如皋市|