日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] 1 前 言 I2C總線接口器件在視頻處理、移動通信等領(lǐng)域的應(yīng)用已經(jīng)非常普遍。另外,通用的I2C總線接口器件,如帶I2C總線的RAM,ROM,A/D,D/A,LCD驅(qū)動器等,也越來越多地應(yīng)用于計算機及自動控制系統(tǒng)中

1 前 言

I2C總線接口器件在視頻處理、移動通信等領(lǐng)域的應(yīng)用已經(jīng)非常普遍。另外,通用的I2C總線接口器件,如帶I2C總線的RAM,ROM,A/D,D/A,LCD驅(qū)動器等,也越來越多地應(yīng)用于計算機及自動控制系統(tǒng)中。隨著I2C接口器件越來越廣泛的應(yīng)用,8051系列單片機與他之間的通信越來越頻繁。

8051系列單片機與I2C總線接口器件通信時,8051的通用口與I2C總線器件的SCL,SDA連接。根據(jù)I2C 總線數(shù)據(jù)傳輸協(xié)議,8051必須對其兩個通用口進行頻繁的置位、清零。根據(jù)基于51指令系統(tǒng)編制的匯編程序,傳送一位數(shù)據(jù),需要9個機器周期,而對于 8051,一個機器周期要耗費6個時鐘周期,即用54個時鐘周期才能傳送一位數(shù)據(jù)。如此則極大地占用了CPU的工作時間,降低了系統(tǒng)的工作效率,導致I2C器件的優(yōu)勢難以顯現(xiàn)。因此,有必要設(shè)計8051與I2C總線的專用接口電路。該接口電路能夠?qū)2C總線上的數(shù)據(jù)進行自動收發(fā),而CPU只需要通過并口訪問該接口電路中的有關(guān)寄存器就可以實現(xiàn)與I2C器件的數(shù)據(jù)交換,從而使整個系統(tǒng)的性能得到提高。本設(shè)計用VHDL硬件描述語言為工具,用ALTERA公司的 MAXPLUSⅡ軟件進行編譯仿真,下載芯片為EPM7128SLC84-15。

2 設(shè)計目標和要求

為了提高數(shù)據(jù)傳送的速度,設(shè)計一個I2C接口電路。8051不直接與I2C器件交換數(shù)據(jù),而是通過并口與該I2C接口電路交換數(shù)據(jù),I2C總線上的數(shù)據(jù)傳送也通過該I2C接口電路來完成。從而通過CPU的外部存儲器讀寫指令就可實現(xiàn)與I2C器件的數(shù)據(jù)交換,使對串口的操作用并口的方式來實現(xiàn)。

在I2C接口電路內(nèi)部有一個控制寄存器CI0和一個數(shù)據(jù)寄存器CI1,即I2C接口電路占用兩個地址。通過寫控制寄存器CI0的內(nèi)容實現(xiàn)對I2C接口電路的編程,讀寫數(shù)據(jù)寄存器CI1的內(nèi)容實現(xiàn)與I2C器件的數(shù)據(jù)交換。在CI0中的內(nèi)容定義了8051對I2C器件進行操作的類型(讀或?qū)?和I2C器件內(nèi)地址的字節(jié)數(shù)等信息,使I2C接口電路能夠識別從8051傳來的數(shù)據(jù)是地址還是數(shù)據(jù)、8051將要發(fā)送數(shù)據(jù)還是接收數(shù)據(jù)以及數(shù)據(jù)的長度等。

如果8051要發(fā)送數(shù)據(jù)給I2C器件,則根據(jù)I2C總線協(xié)議,在數(shù)據(jù)CI1接收到第一個數(shù)據(jù)后啟動I2C總線,然后將CI1中的數(shù)據(jù)進行并串轉(zhuǎn)換后逐位發(fā)出,發(fā)出完畢后設(shè)置一個標志位,使8051知道可以發(fā)送下一個總線后首先寫I2C器件內(nèi)地址,然后進行數(shù)據(jù)接收,進行串并轉(zhuǎn)換后將接收到的數(shù)據(jù)裝入CI1中,再設(shè)置標志位,使8051知道可以讀出數(shù)據(jù)。

根據(jù)上述設(shè)計要求,I2C接口芯片的引腳如圖1所示。其中clk可以使用獨立的時鐘,使I2C總線的位傳送速度遠高于8051的位操作,從而可使I2C總線的數(shù)據(jù)傳送接近并口的數(shù)據(jù)速率;a0是地址信號輸入,a0=0時進行CI0寫操作,當a0=1時進行CI1讀/寫操作;bz為標志輸出位,bz=0時,8051需要等待,bz=1時8051可以對CI1操作。

I2C接口芯片在系統(tǒng)中的情況如圖2所示。這里8051對I2C接口芯片操作使用了查詢方式,也可以改用中斷方式。

3 并行接口設(shè)計的實現(xiàn)

3.1 接口設(shè)計的內(nèi)部結(jié)構(gòu)

該芯片的內(nèi)部結(jié)構(gòu)圖如圖3所示。系統(tǒng)由控制寄存器CI0,數(shù)據(jù)寄存器CI1,并串轉(zhuǎn)換,串并轉(zhuǎn)換,移位寄存器以及I2C控制模塊6部分構(gòu)成。


3.2 方式控制字

8051向控制寄存器CI0寫控制字,實現(xiàn)對I2C接口的編程控制。CI0的控制字格式如下所示:


A2,A1,A0位:對與8051相連的I2C器件組的片選(器件地址)。對應(yīng)不同值時選擇不同的器件通信。

R/W:用來控制8051對I2C器件的讀寫操作。1表示8051對I2C器件讀數(shù)據(jù);0表示8051對I2C器件寫數(shù)據(jù)。

M1M0:當S=1時的4種工作方式:

①I2C總線未連接,要進行寫操作。

②I2C總線未連接,要進行讀操作。

③I2C總線已連接,換一個I2C器件或換新地址,要進行寫操作。

④I2C總線已連接,換一個I2C器件或換新地址,要進行讀操作。

S:工作控制位。當S=0時,關(guān)閉I2C總線,其他情況S=1。

DZS:指明8051對I2C器件讀寫的地址數(shù)。具體為:

0:8051對I2C器件內(nèi)單字節(jié)地址讀寫。

1:8051對I2C器件內(nèi)雙字節(jié)地址讀寫。

3.3 I2C模塊對I2C傳輸協(xié)議的實現(xiàn)

根據(jù)I2C數(shù)據(jù)傳輸協(xié)議,時鐘為高電平時,數(shù)據(jù)線由高電平向低電平跳變,啟動I2C數(shù)據(jù)傳輸。然后每到來一個時鐘脈沖,傳送一位串行數(shù)據(jù),第8個脈沖到來后,已完成一個字節(jié)的傳輸,第9個脈沖時,發(fā)送應(yīng)答信號。寫數(shù)據(jù)時,I2C器件收到數(shù)據(jù),發(fā)送應(yīng)答信號;讀數(shù)據(jù)時,8051收到數(shù)據(jù),發(fā)送應(yīng)答信號。數(shù)據(jù)傳送過程中,時鐘為高電平期間,數(shù)據(jù)線上的內(nèi)容保持不變。數(shù)據(jù)傳送完畢,應(yīng)答結(jié)束后,需要用停止信號停止數(shù)據(jù)傳輸,時鐘高電平時,數(shù)據(jù)線由低電平向高電  55平跳變來實現(xiàn)此停止信號。

I2C模塊實現(xiàn)I2C數(shù)據(jù)傳輸協(xié)議。start信號為1時,啟動數(shù)據(jù)傳輸;write信號為1時,向I2C器件寫數(shù)據(jù),read信號為1時,向I2C器件讀數(shù)據(jù)。

讀寫過程中,輸出標志位flag、計數(shù)器dcnt,控制en的兩位矢量,從而控制并串轉(zhuǎn)換寄存器和串并轉(zhuǎn)換寄存器的并入、移位、保持、清零操作。停止信號為1時,結(jié)束數(shù)據(jù)傳輸。

3.4 接口芯片的工作原理與控制過程

8051向控制寄存器CI0寫控制字,實現(xiàn)對I2C接口的編程控制;向數(shù)據(jù)寄存器CI1寫數(shù)據(jù),實現(xiàn)對I2C接口的數(shù)據(jù)傳輸。

當bz=1時,8051才對數(shù)據(jù)寄存器讀寫,而每次讀寫后接口電路自動將bz置0,在接口電路完成有關(guān)操作等待8051的讀寫時將bz置1。

(1)I2C總線未連接,要進行寫操作。8051的操作:

①寫控制字W1;②當bz=1時寫器件內(nèi)地址第1字節(jié);③當bz=1時寫器件內(nèi)地址第2字節(jié)…;④當bz=1時寫第1字節(jié)…。

I2C的操作:

當接收到該控制字W1后操作為:①置bz=1,啟動I2C總線;②根據(jù)控制字中的器件地址發(fā)出第1個字節(jié)(器件選擇、寫);③發(fā)送器件內(nèi)地址,置bz=1;④發(fā)送數(shù)據(jù)內(nèi)容,置bz=1…。


(2)I2C總線未連接,要進行讀操作。8051的操作:

①電路寫控制字W2;②寫器件內(nèi)地址第1字節(jié); ③當bz=1時寫器件內(nèi)地址第2字節(jié)…;④當bz=1時讀第1字節(jié)…。

I2C的操作:

當接收到該控制字W2后操作為:①置bz=1,啟動I2C總線;②根據(jù)控制字中的器件地址以出第1個字節(jié)(器件選擇、寫);③發(fā)送器件內(nèi)地址;④關(guān)閉I2C總線;⑤啟動I2C總線;⑥第2次發(fā)送器件選擇字節(jié)、讀;⑦接收數(shù)據(jù)內(nèi)容,置bz=1…。


(3)I2C總線已連接,換一個I2C器件或換新地址,要進行寫操作。

8051的操作:

①寫控制字W5;②當bz=1時寫器件內(nèi)地址第1字節(jié);③當bz=1時寫器件內(nèi)地址第2字節(jié)…;④當bz=1時寫第1字節(jié)…。

I2C的操作:

當接收到該控制字W5后操作為:①置bz=1,關(guān)閉I2C總線;②啟動I2C總線;③根據(jù)控制字中的器件地址發(fā)出第1個字節(jié)(器件選擇、寫);④發(fā)送器件內(nèi)地址,置bz=1。

(4)I2C總線已連接,換一個I2C器件或換新地址,要進行讀操作。

8051的操作:

①電路寫控制字W6;②寫器件內(nèi)地址第1字節(jié); ③當bz=1時寫器件內(nèi)地址第2字節(jié)…;④當bz=1時讀第1字節(jié)…。

I2C的操作:

當接收到該控制字W6后操作為:①置bz=1,關(guān)閉I2C總線;②啟動I2C總線;③根據(jù)控制字中的器件地址發(fā)出第1個字節(jié)(器件選擇、寫);④發(fā)送器件內(nèi)地址;⑤關(guān)閉I2C總線;⑥啟動I2C總線;⑦第2次發(fā)送器件選擇字節(jié)、讀;⑧接收數(shù)據(jù)內(nèi)容,置bz=1…。

4 結(jié) 語

擴展接口芯片設(shè)計采用VHDL語言實現(xiàn),芯片設(shè)計的全部程序均通過ALTERA公司的MAXPLUSⅡ軟件編譯,仿真結(jié)果正確。編譯、仿真后的VHDL 程序經(jīng)下載線下載至EPM7128SLC84-15芯片,驗證正確。設(shè)計的接口時鐘要求6 MHz,可直接和單片機接口連接。

擴展后的接口,傳送一位數(shù)據(jù)只需要4個時鐘周期。擴展的接口,訪問I2C器件的時鐘可以自行設(shè)定,他們之間的通信不需要等待8051。一旦8051的并行數(shù)據(jù)送出,該接口可立即用自己設(shè)定的速度傳送。從而該接口在8051和I2C器件之間通信時,數(shù)據(jù)的傳送可達到并行的速度,這就是本接口擴展設(shè)計的最大優(yōu)點。

由于使用的設(shè)計軟件是ALTERA公司的MAXPLUSⅡ軟件,下載仿真芯片為EPM7128SLC84該芯片延遲時間為15 s,延時時間過長;接口的設(shè)計本身對數(shù)據(jù)傳輸?shù)臅r鐘也可進一步減少,更進一步提高數(shù)據(jù)傳輸?shù)乃俣??;谝陨蟽牲c,還需要對本設(shè)計進一步優(yōu)化,以期進一步提高性能與速度。

參考文獻

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

[2]曾繁泰,陳美金.VHDL程序設(shè)計[M].北京:清華大學出版社,2002.


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉