1 背景介紹
在日益信息化的社會中,各種各樣的嵌入式系統(tǒng)已經(jīng)全面滲透到日常生活的每一個角落。嵌入式系統(tǒng)的功能越來越復(fù)雜,這就使得一個嵌入式系統(tǒng)產(chǎn)品從市場需求立項到方案選擇、樣機研制、定型量產(chǎn)所需要的開發(fā)費用越來越多,所需開發(fā)時間越來越長。因此,高效的嵌入式系統(tǒng)設(shè)計方法就顯得尤為重要。
1.1 傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法
嵌入式系統(tǒng)開發(fā)的關(guān)鍵就是對核心部分進行功能驗證。傳統(tǒng)的驗證方法是建模模擬和制作目標(biāo)板評估。
通過建模來進行功能驗證存在不足。首先就是耗時和準(zhǔn)確性互相矛盾。建立高層次的模型需要的時間短,但是模擬不夠準(zhǔn)確。相反,低層次的模型可以達到滿意的評估效果,但是建模耗時長。其次,建模模擬是靜態(tài)的過程,不能很好地反映系統(tǒng)實際運行的情況。好的目標(biāo)板,各部分連接已經(jīng)固定。如果需要改動部分連接,只能重新設(shè)計制版。這樣一來就會大大延長產(chǎn)品的上市時間,還會增加開發(fā)費用。新推出的嵌入式系統(tǒng)產(chǎn)品,開始設(shè)計時比較難把所有的技術(shù)細節(jié)考慮清楚,有時甚至是邊設(shè)計邊修改性能指標(biāo),因此直接制作專用的目標(biāo)板原型已經(jīng)不太適合復(fù)雜的嵌入式系統(tǒng)產(chǎn)品的設(shè)計。
1.2 嵌入式系統(tǒng)模塊化設(shè)計方法
嵌入式系統(tǒng)設(shè)計要求做到可測性、高效性和靈活性。目前,嵌入式系統(tǒng)物理尺寸越來越小,功能越來越復(fù)雜。為了方便調(diào)試、維護系統(tǒng),完全可測顯得極為重要。另一方面,模塊化的設(shè)計方法越來越引起人們的關(guān)注。模塊化設(shè)計方法將復(fù)雜的系統(tǒng)合理地劃分出不同的功能模塊,然后充分利用已有的模塊,設(shè)計新的模塊,最后將這些模塊連接起來組成目標(biāo)系統(tǒng)。模塊化的設(shè)計方法減少全新的設(shè)計、降低開發(fā)難度、節(jié)省開發(fā)成本、縮短開發(fā)時間,是一種高效的嵌入式系統(tǒng)設(shè)計方法。另外,各個模塊連接的靈活性是非常重要的,它直接決定模塊的組合能力。
2 基于ARM核的快速原型化平臺
嵌入式系統(tǒng)硬件有如下特點:
1、嵌入式硬件以嵌入式處理器為核心。嵌入式處理器的種類眾多,功能各異。
2、相對嵌入式處理器,嵌入式系統(tǒng)外設(shè)的種類較少,接口標(biāo)準(zhǔn)也比較統(tǒng)一。
3、隨著EDA的發(fā)展,SOC(system on chip)的應(yīng)用越來越廣泛。
2.1 ARM核處理器的特點
ARM核處理器因為其低成本、低功耗、高性能的優(yōu)點廣泛應(yīng)用于嵌入式系統(tǒng)?;贏RM核處理器是高度集成的SOC,包括ARM核和各種各樣的外設(shè)。圖1是基于ARM核處理器的常見結(jié)構(gòu)。存儲器控制接口為外接存儲器提供了總線接口。該總線接口支持不同種類的存儲器芯片以及不同的存儲操作。此外,還可以用該總線來擴展外設(shè)。片內(nèi)外設(shè)包括中斷控制器.html" target="_blank">控制器、OS定時器、UART、I2C、PWM和AC97等等。在這些片內(nèi)外設(shè)中,有些信號是復(fù)用的,這樣做的好處是方便用戶使用。用戶如需要片內(nèi)外設(shè),只需要配置相關(guān)的寄存把片內(nèi)外設(shè)連接到通用I/O即可,非常靈活,例如USB接口的服務(wù)器/客戶端。有些片內(nèi)外設(shè)有專用的信號。用戶通過連接或者擴展這些通用I/O和專用I/O來使用片內(nèi)外設(shè)。當(dāng)片內(nèi)外設(shè)不能完成目標(biāo)系統(tǒng)的功能時,需要通過總線來擴展特殊的外設(shè)芯片。
圖1(ARM核處理器框圖)
圖2 (ARM核處理器的嵌入式系統(tǒng)的框圖)
2.2 基于ARM的快速原型化平臺的實現(xiàn)
圖2是基于ARM核處理器的嵌入式系統(tǒng)的框圖。該系統(tǒng)分成兩個部分,一部分是最小系統(tǒng),由嵌入式ARM核處理器和存儲器組成;另外一部分包括從嵌入式處理器片內(nèi)外設(shè)接口直接擴展的外設(shè)和通過總線擴展的外設(shè)。為了充分利用模塊化設(shè)計方法,這些部分應(yīng)該能夠通過靈活的互連組成一個平臺。靈活的互連功能由互連模塊完成。
可編程器件如CPLD和FPGA,可以在系統(tǒng)編程,修改連接只需要修改相應(yīng)的控制程序即可,非常方便靈活。CPLD成本低,運行速度快,但是集成度比較低。FPGA集成度高,可以實現(xiàn)CPLD很難實現(xiàn)的復(fù)雜的邏輯功能,例如內(nèi)嵌邏輯分析儀程序,獲取必要的信號,完成系統(tǒng)在線測試。FPGA另外一個優(yōu)勢就是可以動態(tài)配置,例如系統(tǒng)上電時配置自檢程序,自檢通過后再配置實際工作的程序。最后,在FPGA里面嵌入CPU軟核,進行SOC的開發(fā)。所以可編程互連模塊選用FPGA來組成。
為了確定可編程互連模塊的插入位置,再來分析圖2嵌入式系統(tǒng)的結(jié)構(gòu)。
最小系統(tǒng)決定了整個系統(tǒng)的處理能力,是整個系統(tǒng)的核心。常用的嵌入式處理器的時鐘周期已經(jīng)高達400MHz,并且會進一步發(fā)展。連接處理器的總線速度和存儲器芯片的速度也超過了100MHz。FPGA引腳到引腳的延時是幾個納秒的數(shù)量級,所以FPGA模塊的插入會降低整個系統(tǒng)的處理速度。故在處理器和存儲器之間不能插入FPGA模塊。外設(shè)可以使得嵌入式系統(tǒng)和實際應(yīng)用環(huán)境進行通信和交互操作。通常外設(shè)已經(jīng)高度模塊化并且相互獨立,在外設(shè)之間幾乎不會有柔性連接的要求,而且處理器和外設(shè)之間的數(shù)據(jù)通信速度比最小系統(tǒng)的運行速度要慢很多。因此,用互連模塊取代最小系統(tǒng)和外設(shè)之間的直接物理連接是切實可行的。
按照這種思路,設(shè)計出了如圖3所示的快速原型化平臺。
圖3(快速原型化平臺)
圖3中,可編程互連模塊是快速原型化平臺的核心部分。常用的外設(shè)部分包括:網(wǎng)卡,USB接口,LVDS接口,RS-232接口,RS-485接口,音頻AC`97接口,PCMCIA/CF卡接口。這些常用外設(shè)就是前文提到的可重復(fù)利用的模塊。由于嵌入式處理器的總線、通用I/O、專用I/O和各種外設(shè)都連接在可編程互連模塊上,因此不同的嵌入式處理器只需要設(shè)計最小系統(tǒng)即可,然后將該最小系統(tǒng)接入快速原型化平臺,利用這個平臺提供的外設(shè)進行系統(tǒng)調(diào)試。
以上設(shè)計的快速原型化平臺,不僅考慮了當(dāng)前嵌入式硬件系統(tǒng)的發(fā)展特點即嵌入式處理器種類多,外設(shè)種類相對較少,接口標(biāo)準(zhǔn)趨于統(tǒng)一,同時又充分體現(xiàn)了可測性、靈活性、模塊化的設(shè)計思想。
3 隨機方向信號的可配置互連
常見的信號傳輸方向不管是單向的還是雙向的,都可以預(yù)先確定。例如,數(shù)據(jù)總線是雙向的,讀或者寫是完全確定的,可以通過讀寫信號來控制數(shù)據(jù)的傳輸?shù)姆较?。但是有一類特殊的總線,例如I2C,它是多主/從的通信總線。如圖4所示,如果設(shè)備1發(fā)起通信,則SCL上的信號傳輸方向是從設(shè)備1到設(shè)備2,如果是設(shè)備2作主設(shè)備發(fā)起通信,則SCL的上的信號傳輸方向剛好相反。系統(tǒng)設(shè)計中要求總線上可以雙向傳輸信號。FPGA內(nèi)部由一系列的邏輯門組成,如果I2C 信號通過FPGA來連接的話,就不能正常工作。這是因為,雙向傳輸可以等效視為由兩個反并聯(lián)的門來實現(xiàn)(如圖5,用方向控制信號來確定實際的傳輸方向)。但是,I2C信號,沒有明確的方向控制信號,也就無法正確地通過圖5 所示結(jié)構(gòu)的電路。
圖4(I2C總線)
圖5(雙向信號傳輸)
如果直接布線或者跳線來連接I2C信號,就可以保證I2C正常工作,但是,這就和快速原型化平臺可配置互連的靈活性相違背,所以提出以下方案。 I2C信號不經(jīng)過FPGA來配置連接,而是通過基于MOSFET的數(shù)據(jù)開關(guān)。目前,市場上常用的點到點任意方向的MOSFET開關(guān)并不能直接使用。因為常見的結(jié)構(gòu)是一路到多路或者多路到一路。利用CPLD來控制選通,多路并聯(lián)就可以組成8X8的點到點的隨機方向的可配置連接。是一路到八路的數(shù)據(jù)開關(guān)的內(nèi)部結(jié)構(gòu)。