基于PLD和串行總線(xiàn)擴展系統控制功能
在進(jìn)行復雜系統的架構開(kāi)發(fā)時(shí),架構師和設計師很少對設計的系統控制方面予以重視。最好的情況是,系統控制在整個(gè)系統的設計考慮中排第二位。而最壞的情況是直接被遺忘,直到設計后期,板上只有很小的空間能實(shí)現系統控制功能,也不可能再有時(shí)間來(lái)重新進(jìn)行架構設計。
過(guò)去,設計師常常會(huì )使用一些方法來(lái)解決這些問(wèn)題:請軟件設計師想辦法在軟件中實(shí)現某些控制功能;在電路板上四處增加小的PLD,因為受到電路板空間限制而不得不忍受布局布線(xiàn)的不便和擁擠;或者,以時(shí)間進(jìn)度為由,犧牲某些功能。這些方法聽(tīng)起來(lái)都不怎么樣。我們需要一種方法,最大限度地減少電路板的面積和布線(xiàn),同時(shí)減少微處理器的使用并且實(shí)現所需的功能。
CPLD和小型FPGA往往是這種情況下的首選解決方案。使用CPLD和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í)最大限度地減少所需的電路板面積。
從物理學(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中所示。
評論