<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 使用PLD和低開(kāi)銷(xiāo)的串行總線(xiàn)擴展系統控制功能

使用PLD和低開(kāi)銷(xiāo)的串行總線(xiàn)擴展系統控制功能

作者: 時(shí)間:2012-11-05 來(lái)源:電子設計應用 收藏

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

本文引用地址:http://dyxdggzs.com/article/138519.htm

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

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

  將FPGA和CPLD的靈活性和這些低開(kāi)銷(xiāo)總線(xiàn)相結合,為系統設計師提供了大量的系統控制功能,同時(shí)最大限度地減少所需的電路板面積。

  低速串行總線(xiàn)

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

  

 

  圖1——典型的I2C連接

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

  

 

  圖2——典型的三個(gè)從器件的SPI總線(xiàn)

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

  低開(kāi)銷(xiāo)的I2C和SPI兩種標準被廣泛采用并且集成到微控制器和外設中。

  系統監測和控制

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

  

 

  圖3——將PLD用作一個(gè)串行IO擴展器

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

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

  遠程故障記錄

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

  

 

  圖4——遠程故障記錄

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

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

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

  傳感器和外設匯聚

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

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

  

 

  圖5——傳感器匯聚示例

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

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

  下一步:集成

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

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

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



關(guān)鍵詞: PLD 系統控制

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>