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

基于ARM-Linux的IIC串行通信

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

徐海林

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

0 引言

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

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

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

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

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

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

1.2 IIC總線的信號

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

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

圖1 AT24C02的芯片引腳圖

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

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

1.3 EEPROM AT24C02與ARM芯片連接

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

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

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

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

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

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

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

2.2 i2C-client定義

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

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

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

3 結(jié)束語

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

[1]朱文濤,桑楠,楊國武.基于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].國外電子元器件,1997(8):42.

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

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

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

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

猜你喜歡
嵌入式信號設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
基于FPGA的多功能信號發(fā)生器的設(shè)計
電子制作(2018年11期)2018-08-04 03:25:42
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
基于LabVIEW的力加載信號采集與PID控制
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 香蕉网久久| 国产精品美人久久久久久AV| 亚洲乱码视频| 女人一级毛片| 永久免费AⅤ无码网站在线观看| 中文字幕av一区二区三区欲色| 日本欧美精品| 久久精品免费国产大片| yy6080理论大片一级久久| 欧美国产成人在线| 九九精品在线观看| 国产午夜福利亚洲第一| 天堂va亚洲va欧美va国产| 精品国产电影久久九九| 美女视频黄频a免费高清不卡| 国产女人在线| 国产精品亚洲专区一区| 亚洲黄色网站视频| 久久公开视频| 欧美精品三级在线| 无码国产伊人| 婷婷色中文网| 一级毛片视频免费| 韩国v欧美v亚洲v日本v| 99热国产在线精品99| 色香蕉网站| 天堂成人在线视频| 高清国产va日韩亚洲免费午夜电影| 国产日产欧美精品| 久久久久无码国产精品不卡| 亚洲国产精品美女| 91免费观看视频| 天堂中文在线资源| 5555国产在线观看| 极品尤物av美乳在线观看| 玩两个丰满老熟女久久网| 99re视频在线| 91成人免费观看在线观看| 国产视频一区二区在线观看| 欧美精品不卡| 又黄又湿又爽的视频| 一级毛片在线播放免费| 亚洲精品福利视频| 国产成人综合在线视频| 亚洲性网站| 在线免费观看a视频| 亚洲人成人伊人成综合网无码| 免费国产好深啊好涨好硬视频| 精品成人一区二区三区电影| 国产小视频a在线观看| 久久综合一个色综合网| 亚洲无码高清视频在线观看| 久久精品人妻中文系列| 国内精自线i品一区202| 国产精品亚欧美一区二区| 在线观看欧美精品二区| 亚洲成aⅴ人在线观看| 欧美成人区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲无线国产观看| 正在播放久久| 亚洲欧美日韩中文字幕在线| 久久不卡精品| 无码一区18禁| 毛片网站观看| 狠狠色噜噜狠狠狠狠奇米777 | 国产96在线 | 国产精品密蕾丝视频| 日韩一级二级三级| 国产一级小视频| 精品少妇人妻无码久久| 日韩小视频在线观看| 四虎影视库国产精品一区| 久操中文在线| 91在线视频福利| 国产精品第一区在线观看| 中文字幕欧美日韩| 精品剧情v国产在线观看| 一级成人a毛片免费播放| 久久美女精品国产精品亚洲| 欧美精品伊人久久| 自慰网址在线观看|