《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 使用PLD和低開銷的串行總線擴展系統(tǒng)控制功能

使用PLD和低開銷的串行總線擴展系統(tǒng)控制功能

2012-05-31
作者:Peter J. Stinson 萊迪思半導(dǎo)體
關(guān)鍵詞: CPLD PLD 串行總線 MachXO2 FPGA I2C SPI

    在進行復(fù)雜系統(tǒng)的架構(gòu)開發(fā)時,,架構(gòu)師和設(shè)計師很少對設(shè)計的系統(tǒng)控制方面予以重視,。最好的情況是,,系統(tǒng)控制在整個系統(tǒng)的設(shè)計考慮中排第二位,。而最壞的情況是直接被遺忘,,直到設(shè)計后期,,板上只有很小的空間能實現(xiàn)系統(tǒng)控制功能,,也不可能再有時間來重新進行架構(gòu)設(shè)計,。

    過去,設(shè)計師常常會使用一些方法來解決這些問題:請軟件設(shè)計師想辦法在軟件中實現(xiàn)某些控制功能,;在電路板上四處增加小的PLD,,因為受到電路板空間限制而不得不忍受布局布線的不便和擁擠;或者,,以時間進度為由,,犧牲某些功能。這些方法聽起來都不怎么樣,。我們需要一種方法,,最大限度地減少電路板的面積和布線,同時減少微處理器的使用并且實現(xiàn)所需的功能,。

    CPLD和小型FPGA往往是這種情況下的首選解決方案,。使用CPLD和FPGA,設(shè)計人員可以不再需要集中監(jiān)測和控制,,而更多的采用本地化控制和分配,。創(chuàng)建一條通信路徑,盡可能地減少中央處理器和分布的PLD之間的連接,,將會是一個最接近理想的解決方案,。幸運的是,串行外設(shè)接口(SPI)標準和內(nèi)部集成電路(I2C)標準就是理想的低開銷的通信路徑,,他們最初分別由Motorola公司和Phillips公司開發(fā),。這兩個標準并非設(shè)計用于提供大多數(shù)數(shù)據(jù)路徑所需的高吞吐量,但它們在監(jiān)控和控制應(yīng)用中表現(xiàn)良好,,相比之下這些應(yīng)用中的延遲問題不是那么重要,。

   將FPGA和CPLD的靈活性和這些低開銷總線相結(jié)合,為系統(tǒng)設(shè)計師提供了大量的系統(tǒng)控制功能,,同時最大限度地減少所需的電路板面積,。

低速串行總線

     從物理學(xué)和電氣學(xué)的角度來看,SPI和I2C都是低開銷的總線標準,,一般從電路板實現(xiàn)的角度來看就很容易理解,。I2C只需要兩個信號來實現(xiàn):SDA(數(shù)據(jù)線)和SCK(時鐘線)。這些線路都是漏極開路,,并要求端接上拉電阻,。這些連線可以跨越多個主器件和從器件,如圖1所示,。該電路還需要的唯一一個額外要求就是使用適當?shù)亩私由侠娮鑱硖幚砭€路電容,。兩線總線上的多個主器件的問題需要使用總線仲裁來處理消息沖突。但是使用一個簡單的專用總線結(jié)構(gòu)和一個主器件,,這些問題就可以全部解決,。

典型的I2C連接

1——典型的I2C連接

    SPI是一個4線串行總線,,由于總線上僅允許有一個主器件因而無需總線仲裁。此外,,還有兩個數(shù)據(jù)引腳,,都不是真正的雙向引腳。MOSI(主器件輸出,,從器件輸入)線負責將數(shù)據(jù)發(fā)送給外設(shè),;MISO(主器件輸入,從器件輸出)負責將數(shù)據(jù)發(fā)送給主器件,。時鐘(SCLK)和從器件選擇(SS)信號提供總線控制,,它們都是由主器件驅(qū)動。雖然這種安排避免了總線仲裁的需要,,但是需要使用更多的信號,。

典型的三個從器件的SPI總線

2——典型的三個從器件的SPI總線

    今天使用哪種串行總線方面的限制相對較少。截至2006年,,NXP(原Phillips)不再需要許可證即可使用I2C協(xié)議,。應(yīng)當指出的是,獲取I2C從器件地址仍需收取費用,。然而,,對于外設(shè)無需與外界通信的應(yīng)用,這是沒有必要的,。而SPI是一個沒有正式規(guī)范文檔而被廣泛使用的標準,。然而,該標準已經(jīng)在許多不同的嵌入式處理器中實現(xiàn),,由此看出雖然它沒有正式規(guī)范文檔,,但是并未阻礙其廣泛使用。

    低開銷的I2C和SPI兩種標準被廣泛采用并且集成到微控制器和外設(shè)中,。

系統(tǒng)監(jiān)測和控制

    單塊電路板上的應(yīng)用監(jiān)測和控制相對比較簡單。復(fù)位,、中斷線路和選擇線路可以直接由微控制器或本地PLD控制,。然而,在多塊電路板的系統(tǒng)中則需要進行集中控制,,因而盡量減少連接的數(shù)量是很重要的,。這可以通過使用低開銷的串行總線與PLD進行通信來實現(xiàn),如圖3中所示,。

將PLD用作一個串行IO擴展器

圖3——將PLD用作一個串行IO擴展器

    接下來就需要一個協(xié)議,,定義從微控制器到外部PLD的數(shù)據(jù)流的指令和尋址機制。對于基于SPI的實現(xiàn),,無需太多擔心,。SPI不需要數(shù)據(jù)流中的任何信息進行尋址,,因為SS和SCLK信號已經(jīng)根據(jù)協(xié)議提供了控制尋址。因此,,用戶只需控制整個數(shù)據(jù)有效載荷的傳輸,。

    外部PLD的I2C實現(xiàn)稍微復(fù)雜一些。首先,,在將數(shù)據(jù)傳輸?shù)娇偩€上之前,,要對器件尋址,必須識別出這個PLD,。這種差異正是選擇這兩種串行總線架構(gòu)時需要考慮權(quán)衡的地方:SPI架構(gòu)不需要一個指令翻譯器來尋找到特定的從器件,,但比I2C結(jié)構(gòu)需要更多引腳。

遠程故障記錄

    考慮到外部的非易失性存儲器成本低,,以及便于通過串行總線如I2C或SPI接口進行連接,,將外部非易失性存儲器與PLD結(jié)合使用,可以為用戶提供極具成本效益的方式來實現(xiàn)系統(tǒng)中的遠程故障記錄管理,。圖4顯示了一個典型的系統(tǒng)應(yīng)用,,不僅使用了之前重點介紹的IO擴展功能,也說明了怎樣將外部存儲器納入系統(tǒng)架構(gòu)中使用,。

遠程故障記錄

4——遠程故障記錄

    在這個架構(gòu)中,,PLD主要負責監(jiān)測、控制和與微控制器通信,。然而,,它也負責執(zhí)行線路上額外的監(jiān)測/控制分析和故障信息記錄,通過串行總線寫入非易失性存儲器,。電壓監(jiān)控,、看門狗定時器和PCB上的其他故障條件可以通過PLD寫入非易失性存儲器。通常情況下,,檢測到故障后,,系統(tǒng)中其他監(jiān)控器的狀態(tài),如溫度和電壓以及時間信息將被保存,。

    應(yīng)當注意的是,,這樣一個系統(tǒng)在實現(xiàn)時有一個重要的考慮。如果PLD是外部非易失性存儲器的主器件,,那么它還需要決定串行總線的控制和尋址,。這個決定對于使用SPI總線而言很容易;設(shè)計師必須實現(xiàn)一個從SPI器件,,與微控制器進行通信,,以及一個獨立的主SPI器件,可以訪問外部存儲器。

    對于I2C總線,,設(shè)計師有幾個選擇,。第一種選擇是設(shè)計類似SPI那樣的設(shè)計,使用一個從器件與微控制器通信,,以及一個主器件訪問外部存儲器,。第二種選擇是使用PLD,同時作為主器件和從器件,。這種方法的好處是,,系統(tǒng)中只有一條串行總線,因此微控制器可以直接訪問非易失性存儲器,,而無需PLD翻譯指令然后從存儲器中讀取信息,。然而,由于不是在PLD中簡單地使用一個從器件,,現(xiàn)在設(shè)計必須處理尋址和總線控制,。

傳感器和外設(shè)匯聚

    基于串行接口的標準產(chǎn)品的數(shù)量日益增長。你可以在溫度傳感器,、壓力傳感器,、A/D轉(zhuǎn)換器、數(shù)字電位器,、實時時鐘和LCD控制器等等應(yīng)用中找到串行接口,,這里僅列舉了幾個來說明。要了解如何將這些集成到設(shè)計中的關(guān)鍵是要知道哪些外設(shè)需要“實時”使用以及“實時”意味著什么,。舉例來說,,在系統(tǒng)中溫度是一個相對緩慢變化的對象,并可以很容易地通過串行總線監(jiān)控,。用于電流或電壓檢測的A/D轉(zhuǎn)換器可能是也可能不是一個“實時”需求,,這要根據(jù)正在測量的內(nèi)容,以及需要多快的檢測速度而定,。

    一旦你已經(jīng)確定了外設(shè)的優(yōu)先級,,然后你可以將較低優(yōu)先級的外設(shè)讓PLD處理,減輕處理器的負擔,,如圖5所示,。

傳感器匯聚示例

5——傳感器匯聚示例

    在上面的例子中,微控制器只需與2個而非4個外設(shè)進行通信,。

    這種安排還有另外一個好處。你可以使用一個功能強大的PLD來預(yù)處理數(shù)據(jù),,然后由微控制器讀取,。例如,請考慮一個應(yīng)用,使用A/D采樣測量一個三相電力系統(tǒng)的電壓和電流,,并進行故障檢查,。一個擁有強大DSP功能的PLD可以代替DSP或微控制器執(zhí)行RMS計算、峰值電流分析,、相位計算和FFT?,F(xiàn)在采樣速率受到PLD收集樣本和處理數(shù)據(jù)所需時間的限制。然后,,微控制器可以讀取編譯的數(shù)據(jù),,將更多的時間用于處理控制和報告工作。設(shè)計師們應(yīng)該好好考慮微控制器處理能力,、PLD處理能力,、成本和空間之間的權(quán)衡。

下一步:集成

    鑒于這些串行總線與小型可編程邏輯器件相結(jié)合使用的實用性,,下一步將是將至少一種串行總線標準(如果不能兼顧)集成到PLD中,。這種集成降低了PLD解決方案的成本和功耗。此外,,串行總線接口的編碼不再是設(shè)計師需要解決的問題,。設(shè)計師只需要處理他們的應(yīng)用和邏輯要求,而不是集成一個開放的核,。

    萊迪思半導(dǎo)體公司提供的最新的CPLD就可以為設(shè)計師帶來這些優(yōu)點,。MachXO2™系列中的嵌入式功能塊(EFB),包含預(yù)先設(shè)計的解決方案,,可以用來實現(xiàn)上面所述的任意系統(tǒng)控制功能,。MachXO2器件包含一個SPI控制器以及2個I2C控制器。所有串行總線控制器都可以配置為主或從器件,。此外,,MachXO2還為設(shè)計師們提供了一個定時器/計數(shù)器塊以及少量的用戶可訪問的閃存(UFM)。

    除了上面提到的解決方案,,串行總線與PLD相結(jié)合可以為系統(tǒng)提供其他的好處,,即使有時它們在架構(gòu)設(shè)計過程后才顯現(xiàn)出來。它們并不是所有弊病的靈丹妙藥,,但它們在設(shè)計中的實用性是有據(jù)可查的,,有無數(shù)的開源核和設(shè)計方案可以給予不同的架構(gòu)設(shè)計師們指引,實現(xiàn)最佳的解決方案,。

Peter J. Stinson是萊迪思半導(dǎo)體公司北美和歐洲地區(qū)市場營銷經(jīng)理,。他畢業(yè)于Lehigh大學(xué),擁有計算機工程學(xué)士學(xué)位和技術(shù)管理碩士學(xué)位,。他已經(jīng)在PLD行業(yè)中工作了15年,,曾從事市場營銷、產(chǎn)品規(guī)劃和其他技術(shù)類職位。他擁有超過20年的工作經(jīng)驗,,在軍事,、工業(yè)和通信市場擔任過設(shè)計師、項目經(jīng)理以及工程經(jīng)理等職位,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]