www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > EDA > 電子設計自動化
[導讀]在電路設計中,I2C總線是比較常用的兩線式串行通信方式,大多數(shù)的CPU都擅長于并口操作,不具備直接操作I2C總線接口的能力。為了使不具備I2C總線接口能力的CPU通過對并口的簡單操作實現(xiàn)對I2C總線接口的控制,在分析I2C總線常用工作模式的基礎上,設計實現(xiàn)工作于主機模式的,以CPID完成I2C總線開始信號、結(jié)束信號的輸出,以及并行數(shù)據(jù)到I2C總線模式串行數(shù)據(jù)轉(zhuǎn)換或I2C模式串行數(shù)據(jù)到并行數(shù)據(jù)轉(zhuǎn)換的I2C接口模塊。采用該模塊,可以使不具備I2C總線接口的CPU通過并口方便地控制I2C總線設備,簡化系統(tǒng)程序設計。

I2C總線是兩線式串行總線,用于連接微控制器及其外圍設備。該總線具有如下特點:1)只要求兩條總線線路,一條串行數(shù)據(jù)線(SDA),一條串行時鐘線(SDL);2)每個連接到總線的器件都可以通過唯一的地址尋址,總線中主機可以作為主機發(fā)送器或主機接收器;3)它是一個真正的多主機總線,如果兩個或更多主機同時初始化數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;4)雙向數(shù)據(jù)傳輸位速率在標準模式下可達100 kbit/s快速模式下可達400kbit/s高速模式下可達3.4 Mbit/s;5)片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺以保證數(shù)據(jù)完整;6)連接到相同總線的IC數(shù)量只受到總線的最大電容400 pF限制。I2C總線最主要的優(yōu)點是其簡單性和有效性。由于I2C總線為兩線式總線,它占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。它支持多主控制(multimastering),總線中任何能夠進行發(fā)送和接收的設備都可以成為主機。任何主機都能夠控制總線信號的傳輸和時鐘頻率。在任何時間點上只能有一個器件作為主機,其他器件作為從機。正是由于I2C總線具有上述諸多優(yōu)點,具備I2C接口的器件在儀器設計中已被廣泛采用,比較常見的如:日歷芯片、存儲芯片、模數(shù)轉(zhuǎn)換器以及數(shù)模轉(zhuǎn)換器等。
    不幸的是大多數(shù)CPU都擅長操作并口,而并不具備直接操作I2C總線接口的能力。在系統(tǒng)設計時,為了與具有I2C總線接口的芯片連接,經(jīng)常采用的方法是:利用CPU的2條通用輸入輸出(GPIO)線作為I2C總線使用,用軟件模擬的方法,產(chǎn)生I2C總線需要的控制時序。該方法雖然可以達到同I2C器件連接的目的,卻不可避免地帶來軟件編制復雜、占用CPU處理時間多的弊端。為了在不增加編程難度、不大量占用CPU處理時間的前提下使不具備I2C總線的CPU也能夠充分享受I2C總線的優(yōu)點,本文設計了一種基于CPLD的8位并行接口轉(zhuǎn)I2C總線接口的控制模塊,通過該模塊,具有并口的CPU可以通過對并口的讀寫完成對I2C總線的控制。

1 I2C總線的基本時序
   
I2C總線是由數(shù)據(jù)線SDA和時鐘線SCL構(gòu)成,靠它們在連接于I2C總線的各個設備之間傳送信息。I2C總線在傳送數(shù)據(jù)過程中共有4種類型的信號,分別是:開始信號、結(jié)束信號、應答信號和數(shù)據(jù)傳輸信號。
    開始信號:主機控制SDA信號線在SCL線的高電平期間發(fā)生由高電平到低電平的跳變,通知從機開始數(shù)據(jù)傳輸。
    結(jié)束信號:主機控制SDA信號線在SCL線的高電平期間發(fā)生由低電平到高電平的跳變,通知從機本次數(shù)據(jù)傳輸結(jié)束。
    應答信號:接收數(shù)據(jù)的芯片(主機或者從機)在完整接收到8位數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的芯片發(fā)出低電平信號,通知發(fā)送的數(shù)據(jù)已被接收。發(fā)送數(shù)據(jù)的芯片應根據(jù)應答信號的電平高低判斷數(shù)據(jù)是否被接收芯片接收。
    數(shù)據(jù)傳輸信號:發(fā)送數(shù)據(jù)的芯片在SCL脈沖控制下在SDA上串行輸出數(shù)據(jù)信號,SDA只能在SCL為低電平期間改變狀態(tài),在SCL為高電平期間應保持穩(wěn)定。
    I2C總線上的數(shù)據(jù)傳輸主要有4種模式,分別是:字節(jié)寫、頁面寫、當前地址讀、隨機地址讀和順序讀。
    字節(jié)寫:對給定的芯片的確定地址單元寫入一個字節(jié)的數(shù)據(jù)。
    頁面寫:對給定的芯片的確定地址單元所在頁面連續(xù)寫入全部的數(shù)據(jù)。
    當前地址讀:讀出當前地址單元中的一個字節(jié)數(shù)據(jù)。
    隨機地址讀:從給定的芯片的確定地址單元中讀出一個字節(jié)數(shù)據(jù)。
    順序讀:從給定的地址后連續(xù)讀出n個字節(jié)的數(shù)據(jù)。
    I2C總線各種信號及數(shù)據(jù)傳輸模式示意圖如圖1所示。


    利用CPLD設計一種模塊,如果能夠?qū)PU發(fā)出的并行數(shù)據(jù)按上述I2C總線數(shù)據(jù)傳輸模式自動轉(zhuǎn)換成串行數(shù)據(jù)輸出,同時將接收到的I2C總線串行數(shù)據(jù)自動轉(zhuǎn)換成并行數(shù)據(jù)供CPU讀取,則不具備I2C總線接口的CPU也能通過對并口的操作輕松實現(xiàn)與I2C總線連接并同其他具備I2C總線接口的芯片交換數(shù)據(jù)。為此本文設計了一種基于CPLD的工作于I2C總線主機模式的并口轉(zhuǎn)I2C總線模塊。利用該模塊CPU可以很容易地實現(xiàn)與I2C總線的接口。

2 I2C總線接口模塊的CPLD實現(xiàn)
   
上面簡要介紹了I2C總線的信號以及I2C總線的數(shù)據(jù)傳輸模式,如果要使接口模塊正常工作,CPU必須首先要通知模塊執(zhí)行什么操作,而后再把需要的數(shù)據(jù)依次送入模塊中,考慮到I2C總線的速率可以在0~3.4 Mbit/s之間,為了適應不同外設的需要,模塊還應在CPU的控制下自由調(diào)整數(shù)據(jù)傳送速率。因此,CPU應能夠向模塊發(fā)送數(shù)據(jù)傳送速率控制數(shù)據(jù)、I2C總線工作模式控制數(shù)據(jù)、信息交換數(shù)據(jù),同時還能從模塊
中讀取工作狀態(tài)數(shù)據(jù)、模塊接收數(shù)據(jù)。據(jù)此設計出基于CPLD的I2C總線接口模塊如圖2所示。


    該設計由7個單元組成,它們分別是:用于調(diào)整I2C總線數(shù)據(jù)傳輸速率的Clock單元;用于實現(xiàn)同CPU并行接口的PcPort單元:用于產(chǎn)生I2C總線工作時序的I2CStep單元;用于產(chǎn)生數(shù)據(jù)傳輸時序的BitTiming單元;用于產(chǎn)生I2C總線使能信號的En12C單元:用于產(chǎn)生I2C總線接口模塊工作狀態(tài)指示的Status單元:以及用于產(chǎn)生I2C接口時鐘信號SDL和數(shù)據(jù)串行輸入輸出信號SDA的I2CPORT單元。
2.1 Clock單元
   
整個接口模塊以CPU的系統(tǒng)時鐘作為主時鐘信號,模塊傳輸數(shù)據(jù)的速率受該時鐘頻率的控制,時鐘頻率高則模塊傳輸數(shù)據(jù)的速率也高,反之亦然。考慮到各種具有I2C總線接口的芯片的工作速率差別較大(從幾十kB/s到幾MB/s),該接口模塊的工作速率必須能夠靈活調(diào)整,以適應不同外設芯片的接口需要。
    Clock單元實際上就是一個分頻器,它在輸出頻率控制碼CKSEL[7..0]的控制下產(chǎn)生對PCCLK分頻后合適的時鐘信號供I2C接口使用。
2.2 I2CStep單元
   
通過對圖1中I2C總線各種工作模式的分析,可知不同的工作模式都是按特定的工作流程串行輸入、輸出數(shù)據(jù)的,例如字節(jié)寫模式的工作流程為:發(fā)送開始信號、串行輸出被叫芯片的片選地址、發(fā)送寫信號、等待被叫芯片響應、串行輸出被叫芯片存儲單元的地址、等待被叫芯片響應、串行輸出寫入的數(shù)據(jù)、等待被叫芯片響應、發(fā)送結(jié)束信號結(jié)束本次操作。
    為了使接口模塊正確工作,模塊在接收到來自CPU的工作模式控制信號I2CMD[2..0]后,根據(jù)工作模式的不同產(chǎn)生接口模塊工作流程。當前流程結(jié)束后由Status單元產(chǎn)生IncStep信號,控制工作流程指向下一階段。該模塊的功能類似一個計數(shù)器,它在I2CMD[2..0]和I2CStep的共同作用下,產(chǎn)生長度不等的工作流程信號Step[6..0]。
2.3 BitTiming單元
   
在I2C總線工作流程的不同階段,I2C接口模塊需要按一定的時序完成不同的工作,通過對總線數(shù)據(jù)傳輸模式的分析可知,在一個數(shù)據(jù)傳輸模式的所有工作流程中,輸入、輸出8位數(shù)據(jù)的工作流程用時最長,需要25個工作時序周期,為了滿足所有工作流程的需要,工作時序Bit-Timing單元被設計成最長可產(chǎn)生31個時鐘周期的工作時序。
    該單元在IncStep=‘1’時復位工作時序;在EnTiming信號有效后的每個SysCLK的上升沿使工作時序信號EnTiming加1,用于控制I2CPORT單元按給定的時序串行輸入、輸出數(shù)據(jù)信息。
2.4 Status單元
   
在I2C總線工作過程中,CPU需要隨時了解I2C接口模塊的發(fā)送數(shù)據(jù)寄存器是否為空、接收數(shù)據(jù)寄存器是否準備數(shù)據(jù)好、從機響應信號是否正確、當前工作流程是否完成等工作狀態(tài),只有在發(fā)送數(shù)據(jù)寄存器為空時,CPU才可以向接口模塊寫入待傳輸數(shù)據(jù);只有在接收數(shù)據(jù)寄存器數(shù)據(jù)準備好后,CPU才可以從接口模塊讀入正確的接收數(shù)據(jù);從機響應信號不正確時,CPU應立即發(fā)出結(jié)束信號結(jié)束本次操作;當前工作流程未完成前不能進行下一流程。這些狀態(tài)信號全部由Status單元產(chǎn)生。
    在該單元中,共有4種輸出信號,它們分別是:用于指示發(fā)送數(shù)據(jù)寄存器是否為空的TxSTS狀態(tài),該狀態(tài)在CPU寫入數(shù)據(jù)后置‘1’,數(shù)據(jù)被發(fā)送后清‘0’;用于指示接收數(shù)據(jù)準備好狀態(tài)的RxSTS信號,該信號在模塊接收到完整的數(shù)據(jù)后置‘1’,數(shù)據(jù)被CPU讀走后清‘0’;用于指示模塊工作狀態(tài)的ACKSTS信號,該信號在模塊工作正常(接收到從機響應信號)時自動置‘1’,工作不正常時自動清‘0’;用于使工作流程指向下一階段的IncStep信號,該信號在當前工作流程完成后由模塊自動產(chǎn)生,用于使模塊的工作流程指向下一階段。
2.5 EnI2C單元
   
在I2C總線接口模塊中,BitTiming單元何時開始產(chǎn)生工作時序,需要時序信號控制,I2CPORT單元何時向I2C總線輸出信息、何時從I2C總線上讀入信息也需要時序信號控制。這些控制時序的產(chǎn)生由EnI2C單元完成。
    EnI2C單元在I2CMD[2..0]、Step[6..0]、TxSTS、RxSTS等信號的控制下,從預先存儲于單元內(nèi)部的一組I2C工作時序信息中讀出當前的時序信息輸出,控制BitTiming和I2CPORT單元工作。
    模塊中,預先存儲的I2C工作時序信息實現(xiàn)如下:


    
2.6 12CPORT單元
   
本單元是整個設計的核心,用于完成數(shù)據(jù)的I2C總線輸出以及I2C總線輸入數(shù)據(jù)的讀入。同時產(chǎn)生接口模塊的各種工作狀態(tài)。
    該單元的工作過程為:在SysCLK的下降沿分別讀入工作使能信號和工作時序信號,如果此時EnIdle=‘1’則強制I2C總線進入空閑模式;如果EnStart=‘1’,則使I2C總線輸出開始信號;如果EnWrite=‘1’,則使I2C總線輸出8位數(shù)據(jù)信號;如果EnInACK=‘1’,則從I2C總線讀入從機響應信號;如果EnRead=‘1’,則從I2C總線讀入8位數(shù)據(jù);如果EnOutACK=‘1’。則使I2C總線輸出主機響應信號;如果EnStop=‘1’,則使I2C總線輸出結(jié)束信號;在整個工作過程中,模塊會自動根據(jù)工作情況,設置各種狀態(tài)控制信號。
    圖3是用QuartusII9.0對該單元仿真的時序圖。


2.7 PcPort單元的實現(xiàn)
   
該單元是模塊與CPU的接口,CPU通過該單元向接口模塊寫入工作模式控制信息、需要發(fā)送的數(shù)據(jù)以及I2C工作速度控制信息;同時通過該單元讀入從機響應信息、從機輸出數(shù)據(jù)、發(fā)送接收寄存器狀態(tài)等信息。

3 應用實例
   
該模塊工作于主模式,主要應用于沒有I2C專用接口的CPU通過并口方便地與具有I2C接口的外設連接并交換信息。
    圖4給出了CPU通過該模塊與X24C04E2PROM接口的例子。


    在圖中,PC104 CPU通過數(shù)據(jù)總線、地址總線、讀、寫信號線與I2C接口模塊相連,I2C接口模塊則通過SDL、SDA與X24C04相連,PC104CPU輸出的并行數(shù)據(jù),經(jīng)過I2C接口模塊轉(zhuǎn)換后變成符合I2C總線模式要求的串行數(shù)據(jù)輸出到X24C04,X24C04輸出的串行數(shù)據(jù)經(jīng)過I2C接口模塊轉(zhuǎn)換后,變成并行數(shù)據(jù)供PC104CPU讀取。使用該模塊后CPU操作I2C總線就像操作并口一樣方便。該電路的控制軟件流程如圖5所示。


    通過上述應用實例可以看出,本文設計的接口模塊只能工作于主機模式,并且在整個系統(tǒng)中只能有一個主機工作。在從機因處理其他工作而暫不能響應主機時,模塊沒有設計等待功能,只能發(fā)送總線結(jié)束信號結(jié)束當前操作,待從機空閑時再重新開始通信。

4 結(jié)論
   
本設計的創(chuàng)新點在于:通過CPLD實現(xiàn)并口到I2C總線接口的轉(zhuǎn)換,可以使不具備I2C總線接口的CPU通過并口方便地控制I2C總線設備,使用該模塊可以簡化控制軟件的編程,加快系統(tǒng)設計的實現(xiàn),在I2C總線操作過程中,轉(zhuǎn)換模塊自動發(fā)出開始信號、結(jié)束信號,不需要CPU干預。
    本文設計的I2C接口模塊只能工作于主模式,只能應用于主機系統(tǒng);在模塊的設計中,沒有考慮多主機的情況,對多主機的總線競爭沒有設計仲裁功能;模塊的頁面讀寫數(shù)據(jù)數(shù)不能超過32個字節(jié),在32個字節(jié)之內(nèi),CPU可以通過主動設置工作模式為“110”而終止當前操作,達到連續(xù)讀寫小于32個字節(jié)數(shù)據(jù)的目的,超過32個字節(jié)的連續(xù)數(shù)據(jù)讀寫操作將使模塊工作錯誤。

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

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

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

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

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

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

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

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

關鍵字: LED 設計 驅(qū)動電源

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

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

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

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

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

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

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

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

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

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

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

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