亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PCF8584實現(xiàn)串行I2C總線接口的擴(kuò)展

        2017-11-01 06:35:31江蘇自動化研究所張艷春
        電子世界 2017年19期
        關(guān)鍵詞:低電平寄存器中斷

        江蘇自動化研究所 張艷春

        基于PCF8584實現(xiàn)串行I2C總線接口的擴(kuò)展

        江蘇自動化研究所 張艷春

        I2C總線大量的應(yīng)用在視頻和音像電路中。在沒有自帶I2C接口的MCU處理器若要使用I2C總線進(jìn)行擴(kuò)展或者控制的時候,必須要通過專用的器件進(jìn)行信號轉(zhuǎn)換,此時PCF8584就可以作為一個接口器件,實現(xiàn)高速并行總線和I2C串行總線間的數(shù)據(jù)轉(zhuǎn)換。

        I2C串行總線;接口器件

        1 概述

        新一代單片機(jī)技術(shù)顯著特點之一就是串行擴(kuò)展總線的推出。I2C串行總線的優(yōu)點:1)規(guī)范非常嚴(yán)格,如接口的信號時序、信號傳輸?shù)亩x、電氣特征、總線管理規(guī)則、總線狀態(tài)設(shè)置以及總線狀態(tài)處理等。2)元器件在總線上節(jié)點具有獨立性,且各節(jié)點上的模塊、器件都會對應(yīng)相對獨立的地址編號。

        2 I2C總線的基本工作原理

        I2C (Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。最初在80年代為音頻和視頻設(shè)備開發(fā),目前主要用于服務(wù)器管理。

        2.1 I2C總線的構(gòu)成以及信號類型

        I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成可發(fā)送和接收數(shù)據(jù)的串行總線。用于IC與IC之間、CPU與被控IC之間進(jìn)行雙向傳送,最高傳送速率可達(dá)100kbps。各種被控制電路均并聯(lián)在總線上,每個電路和模塊都有唯一的地址,就像電話機(jī)一樣只有撥通各自的號碼才能工作。在信息的傳輸過程中,I2C總線上并接的每一模塊電路取決于它所要完成的功能,既可以定義為主控器(或被控器),又是發(fā)送器(或接收器)。總線在傳送數(shù)據(jù)過程中共有三種類型信號:開始信號、應(yīng)答信號和結(jié)束信號。

        開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。

        應(yīng)答信號:接收數(shù)據(jù)的IC在接收到數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。

        結(jié)束信號:SCL為低電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。

        2.2 總線操作的基本方式

        I2C規(guī)程運用主/從雙向通訊。如果定義為發(fā)送器,則器件發(fā)送數(shù)據(jù)到總線上,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于發(fā)送或接收狀態(tài)。 總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生起始和停止條件,并產(chǎn)生串行時鐘(SCL)控制總線的傳輸方向。在SCL為低電平的期間SDA總線的數(shù)據(jù)狀態(tài)僅才能改變,SDA狀態(tài)的改變用來表示起始和停止條件時SCL為高電平。

        3 PCF8584的結(jié)構(gòu)及工作原理

        3.1 結(jié)構(gòu)與引腳

        PCF8584內(nèi)部結(jié)構(gòu)主要由三部分組成,即I2C總線接口控制、并行總線控制邏輯和寄存器組。

        內(nèi)部寄存器有比較器、讀緩沖器/移位寄存器S0、控制/狀態(tài)寄存器S1、時鐘寄存器S2、中斷向量寄存器S3和自地址寄存器S0′。與并行總線相連的移位寄存器與讀緩沖器共用一個單元,執(zhí)行雙向傳送數(shù)據(jù)方式。各部分簡要功能介紹:a)比較器將自地址寄存器S0′數(shù)據(jù)加載至自己的從地址數(shù)據(jù)。b)控制/狀態(tài)寄存器S1寫入時為控制寄存器,用以寄存器選擇和I2C總線的運行控制;讀出時為狀態(tài)寄存器,用以了解I2C總線的狀態(tài)信息。c)時鐘寄存器S2用來選擇內(nèi)部時鐘頻率和I2C總線時鐘頻率。d)中斷適量寄存器S3為矢量中斷提供一個用戶可編程的8為矢量值。e)并行總線控制邏輯用于自動識別外部總線類型,以提供相應(yīng)的控制信號,如80XX系列單片機(jī)的讀/寫信號;6800系列的/IACK、/DTACK、R/W;等。f)I2C總線接口控制部分包括時鐘控制邏輯、數(shù)據(jù)控制邏輯、總線的標(biāo)準(zhǔn)接口、數(shù)字濾波器以及遠(yuǎn)程接口。

        下表所示是PCF8584的引腳安排。共有20個引腳,各引腳功能如下:

        引腳號 名稱 輸入/輸出 功 能1 CLK I 來自MCU/CPU時鐘發(fā)生器的輸入端(內(nèi)部上拉)2 SDA/SDAOUT I/O SDA:總線的數(shù)據(jù)端(漏極開路)SDAOUT:長線方式的數(shù)據(jù)輸出端3 SCL/SCLIN I/O SCL:總線的時鐘端(漏極開路)SCLIN:長線方式的串行時鐘輸入端4 /IACK/SDAIN I/IACK:中斷響應(yīng)輸入(內(nèi)部上拉)。當(dāng)該信號有效ENI標(biāo)志置位,寄存器S2中的中斷向量將出現(xiàn)在總線端口上。SDAIN:長線方式的串行數(shù)據(jù)輸入5 /INT/SCLOUT O/INT:中斷請求輸出(漏極開路)。該信號由S1寄存器中的ENI表示使能。當(dāng)PIN表示復(fù)位時,該信號有效(PIN在I2C總線上發(fā)送和接收一個字節(jié)后復(fù)位)SCLOUT:長線方式的時鐘輸出端6 A0 I寄存器選擇輸入(內(nèi)部上拉)。用以選擇控制/狀態(tài)寄存器或其它寄存器,A0=1選擇S1;A0=0則根據(jù)S1中的ES0、ES1、ES2選擇其它的寄存器7~15 DB1~DB7 I/O 雙向8位總線口16 /RD(/DTACK) I(O) 8049、8051等系列MCU、CPU的讀控制輸入;/DTACK為6800系列CPU的數(shù)據(jù)傳送控制輸出(漏極開路)17 /CS I 片選輸入(內(nèi)部上拉)18 /WR(R//W) I 8049、8051等系列MCU、CPU的寫控制輸入;R//W為6800系列CPU的R//W控制輸入19 /RESET/STROBE I/O復(fù)位輸入(漏極開路)。該輸入信號迫使總線控制器進(jìn)入預(yù)訂狀態(tài),出PIN外所有標(biāo)志復(fù)位;該引腳也可作選通輸出。20 VDD 電源正端

        3.2 寄存器S0′、S2和S3的初始化設(shè)置

        PCF8584的初始化主要是對寄存器S0′、S2和S3的配置方式。

        1)自地址寄存器S0′。狀態(tài)寄存器S1中的AAS位置位當(dāng)接收到自己的從地址時。(S0中的地址數(shù)據(jù)與S0′中的地址數(shù)據(jù)相比較)。提醒S0和S0′寄存器須錯移一位,自地址編程為55H時,被認(rèn)作PCF8584的從地址值為AAH。

        當(dāng)引腳A0為低電平是,S1中的有關(guān)位組合設(shè)置可實現(xiàn)對S0′的編程。復(fù)位后,S0′為無效地址00H。

        2)時鐘寄存器S2。用來選擇總線的時鐘頻率SCL和時鐘頻率。S2中的S20、S21位用來選擇4種SCL時鐘頻率。

        3)中斷矢量寄存器S3。矢量中斷微處理器通過中斷矢量寄存器提供了一個8位可編程矢量。當(dāng)ENI(中斷使能)標(biāo)志置位時,并且一個中斷響應(yīng)信號出現(xiàn),總線端口(DB7~DB0)就會出現(xiàn)出現(xiàn)中斷矢量。

        當(dāng)PCF8584 A0引腳為低電平時,寄存器S0′、S2和S3的初始化編程寫入對控制寄存器S1中的ES1、ES2置位、復(fù)位不同狀態(tài)實現(xiàn)。

        4)總線R/W操作與移位寄存器/讀緩沖器S0。在接收方式中,禁止從I2C總線進(jìn)一步接收數(shù)據(jù)直到S0緩沖器讀出為止,此時在應(yīng)答的時序上,數(shù)據(jù)從移位寄存器復(fù)制到讀緩沖器中。在發(fā)送方式中,如果串行口被使能(ES0=1),當(dāng)數(shù)據(jù)寫到S0移位寄存器后立即發(fā)送到I2C總線上。

        3.3 控制/狀態(tài)寄存器S1的初始化設(shè)置

        控制/狀態(tài)寄存器S1用于I2C總線的操作控制,并提供總線狀態(tài)信息。S1尋址方式的實現(xiàn)是通過寄存器選擇輸入A0為高電平。讀操作時S1為狀態(tài)寄存器,寫操作時為控制寄存器。

        控制寄存器S1主要作用是對總線的操作控制以及對S0、S0′、S1、S2、S3進(jìn)行尋址選擇。其格式如下:

        D7:PIN ES0 ES1 ES2 EN1 STA ST0 D7:ACK PIN:中斷無關(guān)。當(dāng)PIN=1時,表示執(zhí)行的操作與中斷無關(guān)。ES0:串行輸出使能。ES0用于總線串行接口的使能控制。ES1、ES2:寄存器的讀、寫選擇位。用于I2C總線初始化及正常操作控制時的寄存器讀、寫操作選擇。ENI:外部中斷輸出允許。ENI=0表示 /INT輸出使能。STA、STO:起始、停止位。STA、STO位用于控制總線產(chǎn)生起始條件和傳送從地址及讀/寫位;產(chǎn)生一個重起始條件以及產(chǎn)生一個停止條件。ACK:應(yīng)答位。通常情況下,由于總線控制器在接收到每個字節(jié)后都要自動地發(fā)送一個應(yīng)答位,該位必須置1。通常情況(串行口工作時)下,對S1進(jìn)行寫操作時,S1為狀態(tài)寄存器,提供總線的狀態(tài)信息。其格式如下:D7:PIN 0 STS BER AD0/LRB AAS LAB D7:/BB

        圖1 80C31單片機(jī)通過PCF8584擴(kuò)展I2C接口硬件電路

        PIN:中斷無關(guān)。當(dāng)收到PCF8584請求信號,該位置0。作為從發(fā)送或從接收器時,當(dāng)PIN=0,PCF8584通過保持SCL為低電平來停止I2C總線傳送操作,直到PIN=1為止??偩€busy將拒絕數(shù)據(jù)發(fā)送或接收,直到從S0中讀取正確的數(shù)據(jù)(從接收)或下個數(shù)據(jù)寫入S0中(從發(fā)送)。

        STS:在從接收方式中,標(biāo)志著收到到一個外部的STOP條件。

        BER:I2C總線錯誤??偩€錯誤表明START或STOP出現(xiàn)錯誤。

        LRB/AD0:最后接收位/零地址位。

        LRB:當(dāng)AAS=0是,保持總線最新的接收位,通常為從器件的應(yīng)答位。因此LRB的有效測試方式即從器件應(yīng)答位的檢查。

        AD0:當(dāng)AAS=1,總線控制器作為從器件被尋址,此時如果接收到的地址為總線控制器的自地址則置0,如果接收到的從地址為廣播呼叫地址(00H)時,AD0位置1。

        AAS:從器件尋址位。當(dāng)作為從接收器時,接收到自己的從地址或廣播地址時該位置位。

        LAB:仲裁失敗位。在多主系統(tǒng)中,當(dāng)仲裁失敗另一主器件占用總線時該位置位。

        /BB:總線忙。該標(biāo)志位表示總線在使用中,低電平有效,表示總線忙。該位通過STOP/START條件置位/復(fù)位(/1)。

        4 應(yīng)用分析

        在常規(guī)的音像、視頻的控制電路中的總線實現(xiàn)方式大部分是通過擴(kuò)展I2C接口的MCU,在本文我們設(shè)計實現(xiàn)了I2C的擴(kuò)展實例,通過80C31單片機(jī)進(jìn)行擴(kuò)展,實現(xiàn)了I2C接口的擴(kuò)展應(yīng)用。實現(xiàn)多片PCF8584擴(kuò)展使用的情況,可以通過單片機(jī)片選譯碼器實現(xiàn)尋址控制I2C接口,同時實現(xiàn)多路I2C數(shù)據(jù)通信的控制,可用于服務(wù)器管理。圖1為典型的單端I2C電路實現(xiàn)原理圖。

        電路圖中8584的地址通過A1和A0尋址獲得,S0’寄存器的地址為#FF00;S1寄存器的地址為#FF01;

        初始化程序清單如下:

        MOV DPTR, #FFO1H MOV A, #80 ;發(fā)送字節(jié)80→S1

        MOVX @DPTR,A NOP

        MOV DPTR,#FF00H ;發(fā)送字節(jié)55→S0' MOV A,#55H

        MOVX @DPTR,A NOP

        MOV DPTR,#FF01H ;發(fā)送字節(jié)A0→S1 MOV A, #0A0H

        MOVX @DPTR, A NOP

        MOV DPTR #FF00H MOV A,#01DH ; 系統(tǒng)時鐘=12MHz,SCL=45KHz

        MOVX @DPTR,A NOP

        MOV DPTR,#FF01H MOV A, #0C1H ;發(fā)送字節(jié)C1→S1

        MOV A, #0C1H ;發(fā)送字節(jié)C1→S1 MOVX @DPTR,A

        NOP RET

        5 結(jié)束語

        本文分析闡述了I2C串行總線的工作原理,提出了通過常用MCU實現(xiàn)I2C接口的一種方法:通過I2C總線規(guī)范的應(yīng)用,使PCF8584進(jìn)行總線接口的擴(kuò)展。但管理服務(wù)器等眾多設(shè)備時,硬件需求眾多的I2C總線接口的時,這種擴(kuò)展方式顯的電路復(fù)雜,因此我們又可以采用本身帶有I2C接口的器件。

        [1]PCF8584 I2C-bus controller.DATA SHEET,1997.

        [2]相征.基于VxWorks嵌入式系統(tǒng)的數(shù)據(jù)通信[M].西安電子科技大學(xué)出版社:2011,4.

        [3]謝四連,董輝,許岳兵.微機(jī)原理與接口技術(shù)[M].中南大學(xué)出版社:2015,8.

        [4]何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計[M].北京航天航空大學(xué)出版社:2002,9.

        猜你喜歡
        低電平寄存器中斷
        數(shù)字電路中“邏輯非”的用法辨析
        鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
        Lite寄存器模型的設(shè)計與實現(xiàn)
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        AT89C51與中斷有關(guān)的寄存器功能表解
        集成電路靜態(tài)參數(shù)測試
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        日韩精品一区二区三区免费观影 | 偷拍美女上厕所一区二区三区| 日本爽快片100色毛片| 欧美性xxxx极品高清| 激情第一区仑乱| 婷婷五月综合缴情在线视频| 就国产av一区二区三区天堂| 免费福利视频二区三区| 白浆高潮国产免费一区二区三区| 精品一区三区视频在线观看| 亚洲av无码成人精品区狼人影院| 免费a级毛片无码a| 亚洲AV手机专区久久精品| 国产视频一区二区三区在线看 | AV永久天堂网| 亚洲精品乱码久久久久99| 亚洲一区二区三区国产精品| 一区二区人妻乳中文字幕| 国产精品毛片va一区二区三区| 国产精品成人免费视频网站京东| 亚洲成a人片在线网站| 国产在线看不卡一区二区| 亚洲女同一区二区三区| 国产精品一区二区性色| 最新国产福利在线观看精品| 看曰本女人大战黑人视频| 国内精品久久久久国产盗摄| 高清国产国产精品三级国产av| 欧美性猛交xxx嘿人猛交| 国产精品18久久久久久麻辣| 国产成人国产在线观看入口| 粉嫩高中生无码视频在线观看| 精品人妻一区二区三区狼人| 潮喷大喷水系列无码久久精品| 野花在线无码视频在线播放 | 国产一区二区在线观看av| 精品国产一区二区三区2021| 夜鲁很鲁在线视频| 亚洲av色福利天堂| 久久精品国产亚洲av高清蜜臀| 精品久久有码中文字幕|