基于PLD和串行總線擴展系統(tǒng)控制功能
圖3 將PLD用作一個串行IO擴展器
接下來就需要一個協(xié)議,定義從微控制器到外部PLD的數(shù)據(jù)流的指令和尋址機制。對于基于SPI的實現(xiàn),無需太多擔(dā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主要負責(zé)監(jiān)測、控制和與微控制器通信。然而,它也負責(zé)執(zhí)行線路上額外的監(jiān)測/控制分析和故障信息記錄,通過串行總線寫入非易失性存儲器。電壓監(jiān)控、看門狗定時器和PCB上的其他故障條件可以通過PLD寫入非易失性存儲器。通常情況下,檢測到故障后,系統(tǒng)中其他監(jiān)控器的狀態(tài),如溫度和電壓以及時間信息將被保存。
應(yīng)當(dā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處理,減輕處理器的負擔(dān),如圖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)最佳的解決方案。
評論