999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM-Linux的IIC串行通信

2013-09-12 04:24:52徐海林
電子測(cè)試 2013年20期
關(guān)鍵詞:嵌入式信號(hào)設(shè)備

徐海林

(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽淮南,232001)

0 引言

在現(xiàn)代社會(huì),嵌入式以及半導(dǎo)體技術(shù)發(fā)展迅速。嵌入式技術(shù)被應(yīng)用到了社會(huì)上的各個(gè)方面,尤其以手機(jī),平板電腦,醫(yī)療電子,自動(dòng)領(lǐng)域更為明顯。而嵌入式技術(shù)的核心是嵌入式處理器,在眾多的嵌入式處理器領(lǐng)域中又以ARM最為典型。

IIC總線是Philips公司首先推出的新一代串行擴(kuò)展總線,在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。本文主要研究ARMLinux系統(tǒng)中IIC設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)方法。

1 IIC總線技術(shù)介紹以及AT24C02與ARM芯片相連接

IIC 是Inter-Integrated Circuit(集成電路總線)的縮寫,這種總線類型在八十年代初由飛利浦半導(dǎo)體公司設(shè)計(jì)出來。IIC總線是一種高性能的串行總線,這種總線連線少,結(jié)構(gòu)簡(jiǎn)單,使用方便,從而大大簡(jiǎn)化系統(tǒng)的硬件設(shè)計(jì)。IIC總線由數(shù)據(jù)線SDA和時(shí)鐘線SCL兩條線構(gòu)成通信線路,既可以接受數(shù)據(jù)又可以發(fā)送數(shù)據(jù)。每一個(gè)帶有IIC總線的芯片都有一個(gè)固定的地址,他們通過這個(gè)唯一固定的地址通信,互相接受和發(fā)送信息。每個(gè)IIC總線芯片都可以是一個(gè)單獨(dú)的接受者和發(fā)送者。

1.1 IIC總線的特點(diǎn)

IIC總線是一種雙向的串行接口總線,它的最大的特點(diǎn)就是簡(jiǎn)單和高效率。正是這種總線采用了串行通信方式,所以IIC總線只需要很少的空間和IO接口。IIC總線通過上拉電阻連接正電源,當(dāng)總線空閑時(shí),兩根線均是高電平。連接到總線上的任一器件輸出的低電平,都將使總線的信號(hào)變低,即各器件的SDA與SCL都是“線與”的關(guān)系。IIC總線的數(shù)據(jù)傳輸效率在標(biāo)準(zhǔn)模式下可以達(dá)到100Kbps,在快速模式下可以達(dá)到400Kbps,在高速模式下可以達(dá)到3.4Mbps。

1.2 IIC總線的信號(hào)

IIC總線總共能產(chǎn)生三種信號(hào):起始信號(hào)、結(jié)束信號(hào)和響應(yīng)信號(hào)。

(1)起始信號(hào):當(dāng)SCL總線處于高電平狀態(tài),SDA總線的電平從高電平處于低電平,代表著處理器向IIC芯片發(fā)送了起始信號(hào)。

圖1 AT24C02的芯片引腳圖

(2)結(jié)束信號(hào):同樣當(dāng)SCL總線上的電平為高電平,SDA總線的電平從低電平處于高電平狀態(tài),代表著處理器向IIC芯片發(fā)送了結(jié)束信號(hào)。

(3)響應(yīng)信號(hào):當(dāng)芯片接受和發(fā)送完數(shù)據(jù)后,在第9個(gè)時(shí)鐘周期,拉低SDA電平,這就是響應(yīng)信號(hào),標(biāo)志著數(shù)據(jù)接受完成或者讀完成。

1.3 EEPROM AT24C02與ARM芯片連接

AT24C02是美國(guó)公司生產(chǎn)的低功耗的CMOS串行EEPROM,它有四種標(biāo)準(zhǔn)工作電壓,分別是5.0V/2.7V/2.5和1.8V。AT24C02共有8個(gè)引腳,SDA引腳輸出串行數(shù)據(jù),SCL輸出串行時(shí)鐘,A1、A2、A3是地址線引腳,它決定了AT24C02 的地址,七號(hào)引腳是寫保護(hù)引腳,當(dāng)它為低電平時(shí),當(dāng)WP引腳接到VCC上,所有的內(nèi)容被寫保護(hù),只能讀。AT24C02內(nèi)部含有256個(gè)8位字節(jié),總共有32個(gè)頁(yè),每個(gè)頁(yè)有8個(gè)字節(jié)。AT24C02不能發(fā)送數(shù)據(jù),它只能接受數(shù)據(jù)。AT24C02的引腳如圖1所示。

由于IIC總線在嵌入式系統(tǒng)中的廣泛應(yīng)用,S3C2440X芯片內(nèi)部集成了IIC總線接口,方便系統(tǒng)對(duì)IIC總線的應(yīng)用。IIC總線在主從設(shè)備中接受和收發(fā)信息,只需要對(duì)IIC的特殊功能寄存器進(jìn)行相應(yīng)的設(shè)置,就可以使用了。在S3C2440中,IIC特殊功能寄存器有IICCON、IICSTAT、IICDS和IICADD。S3C2440的IIC接口工作流程如圖2所示。

圖2 S3C2440的IIC接口工作流程圖

2 接口驅(qū)動(dòng)的編寫

在嵌入式Linux系統(tǒng)中設(shè)備驅(qū)動(dòng)程序是內(nèi)核的一部分,完成對(duì)設(shè)備初始化、讀寫操作和控制等功能。在廣泛應(yīng)用的ARMLinux及其Android的嵌入式軟硬件系統(tǒng)中,經(jīng)常涉及到內(nèi)部整合電路IIC總線的操作及其設(shè)備的添加與驅(qū)動(dòng)的實(shí)現(xiàn)。

2.1 IIC總線設(shè)備驅(qū)動(dòng)模型

ARM-Linux下,IIC總線設(shè)備驅(qū)動(dòng)采用了總線設(shè)備驅(qū)動(dòng)模型,IIC分為3個(gè)層次IIC內(nèi)核和IIC總線驅(qū)動(dòng)和IIC設(shè)備驅(qū)動(dòng)。在IIC內(nèi)核中定義了一個(gè)i2C_bus_type結(jié)構(gòu)體,里面定義了一個(gè)mach函數(shù),一個(gè)設(shè)備鏈表,一個(gè)驅(qū)動(dòng)鏈表。在ARM-Linux中通過mach函數(shù)來配對(duì)驅(qū)動(dòng)鏈表中的驅(qū)動(dòng)和與之相對(duì)應(yīng)的設(shè)備鏈表中的設(shè)備。IIC內(nèi)核中還提供了一些數(shù)據(jù)結(jié)構(gòu)的定義和接口函數(shù),這些函數(shù)實(shí)現(xiàn)了一個(gè)IIC驅(qū)動(dòng)的注冊(cè)、以及設(shè)備的尋找和適配器的讀寫通信代碼。在IIC 設(shè)備驅(qū)動(dòng)中提供了一個(gè)IIC 設(shè)備的物理相關(guān)信息,而IIC 驅(qū)動(dòng)則實(shí)現(xiàn)了從機(jī)設(shè)備驅(qū)動(dòng),包括read、write、以及ioctl等用戶層接口。

2.2 i2C-client定義

ARM-linux中添加IIC設(shè)備驅(qū)動(dòng),首先是編寫該設(shè)備的i2c-driver驅(qū)動(dòng),然后是編寫跟這個(gè)設(shè)備相關(guān)的i2C-client驅(qū)動(dòng),最后向系統(tǒng)注冊(cè)該驅(qū)動(dòng)。為了方便編寫i2C-client,在linux內(nèi)核2.6中定義了一個(gè)i2C_board_info結(jié)構(gòu)體,里面的兩個(gè)重要成員name和addr可以很輕松幫我們識(shí)別設(shè)備的地址和找到該設(shè)備的i2c-driver驅(qū)動(dòng)。成員name定義了該設(shè)備的名稱,上面提到的mach函數(shù)會(huì)根據(jù)成員name來配對(duì)相對(duì)應(yīng)的i2c-driver。而成員addr則向內(nèi)核提供了該IIC設(shè)備的唯一地址,用來辨別該設(shè)備。

2.3 借用通用I2C-dev.c驅(qū)動(dòng)添加新設(shè)備

采用I2C-dev.c來編寫IIC驅(qū)動(dòng)是最簡(jiǎn)單的方法。它實(shí)際上是通過應(yīng)用層操作IIC適配器來控制i2c設(shè)備的。I2C-dev.c是一種通用的IIC驅(qū)動(dòng),它提供了通用的read()、write()和ioctl()等函數(shù)接口。應(yīng)用層通過訪問這些接口來訪問掛接在IIC適配器上的IIC設(shè)備的存儲(chǔ)空間和寄存器。其實(shí)I2C-dev.c對(duì)應(yīng)的read()、write()是分別調(diào)用了IIC內(nèi)核心的i2C_master_recv()和i2C_master_send ()函數(shù),這樣的驅(qū)動(dòng)可讀性和可設(shè)計(jì)性都得到了大大的增加。

3 結(jié)束語(yǔ)

IIC總線在現(xiàn)在電子技術(shù)中得到廣泛的應(yīng)用,在ARM—Linux中,采用了總線驅(qū)動(dòng)模型三層設(shè)備驅(qū)動(dòng)架構(gòu),使得IIC驅(qū)動(dòng)程序設(shè)計(jì)更加的簡(jiǎn)單,方便閱讀與設(shè)計(jì)。

[1]朱文濤,桑楠,楊國(guó)武.基于S3C2410的I2C總線接口的軟件仿真與驗(yàn)證,2011,9(9).

[2]Data Manual of IIC Serial EEPROM (oaf)[K].Microchip Technology Inc.2005.

[3]孔令成,王華.串行E2PROM的原理及應(yīng)用[J].國(guó)外電子元器件,1997(8):42.

[4]李群芳,張士軍,黃建.單片微型計(jì)算機(jī)與接口技術(shù)[M].2版.北京:電子工業(yè)出版社,2005.

[5]楊文鉑,等.Linux下I2c設(shè)備驅(qū)動(dòng)的一種適配器層直接實(shí)現(xiàn)方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(6).

[6]韋東山.嵌入式Linux 應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社.2008.

[7]Data Manual of IIC Serial EEPROM (oaf)[K].Microchip Technology Inc.2005.

猜你喜歡
嵌入式信號(hào)設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
信號(hào)
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
基于FPGA的多功能信號(hào)發(fā)生器的設(shè)計(jì)
電子制作(2018年11期)2018-08-04 03:25:42
搭建基于Qt的嵌入式開發(fā)平臺(tái)
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
基于LabVIEW的力加載信號(hào)采集與PID控制
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 亚洲 欧美 偷自乱 图片| 国产精品久久自在自线观看| 日韩黄色精品| 亚洲码一区二区三区| 99热国产在线精品99| 狠狠色噜噜狠狠狠狠奇米777| 国产精品高清国产三级囯产AV| 亚洲人成网站在线播放2019| 午夜激情福利视频| 伊人激情综合网| 久久久久久久久18禁秘| 欧美.成人.综合在线| 亚洲日韩久久综合中文字幕| 国产福利在线免费观看| 青青草国产在线视频| 欧美a级完整在线观看| 久久综合色88| 国产精品片在线观看手机版| 国产高清自拍视频| 国产成本人片免费a∨短片| 国产不卡在线看| 久久综合结合久久狠狠狠97色| 四虎国产精品永久一区| 91久久性奴调教国产免费| 国产成人免费手机在线观看视频 | 色综合天天操| 久久精品国产电影| 极品国产在线| 日韩精品免费一线在线观看 | 一区二区三区四区在线| 韩日午夜在线资源一区二区| 日韩欧美一区在线观看| 成人中文在线| 亚洲成人播放| 欧美69视频在线| 白浆免费视频国产精品视频 | 国产一区二区福利| 免费日韩在线视频| 久久青草热| 97综合久久| 久久香蕉国产线看观看亚洲片| www.99在线观看| 精品国产亚洲人成在线| 国产美女无遮挡免费视频| 亚洲妓女综合网995久久| 欧美一区二区自偷自拍视频| 久久伊伊香蕉综合精品| 全部免费特黄特色大片视频| 亚洲男人天堂2020| 毛片一级在线| 日韩精品无码免费专网站| 夜夜操天天摸| 欧美翘臀一区二区三区| 最新痴汉在线无码AV| 99热这里都是国产精品| 成人免费视频一区| 亚洲精品777| 丁香婷婷综合激情| 亚洲免费人成影院| A级全黄试看30分钟小视频| 亚洲免费人成影院| 日韩色图区| 国产肉感大码AV无码| 天天激情综合| 免费毛片网站在线观看| 日韩av无码精品专区| 国产99精品视频| 国内黄色精品| 九色综合视频网| 91视频区| 国产精品亚洲一区二区三区在线观看| 亚洲无线观看| 欧美a级完整在线观看| 波多野结衣一区二区三区四区| 国产精品福利导航| 久久精品国产一区二区小说| 91成人免费观看| 98超碰在线观看| 成人亚洲国产| jizz国产在线| 欧美区国产区| 毛片久久网站小视频|