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)鍵就是對核心部分進(jìn)行功能驗證,。傳統(tǒng)的驗證方法是建模模擬和制作目標(biāo)板評估,。
通過建模來進(jìn)行功能驗證存在不足。首先就是耗時和準(zhǔn)確性互相矛盾。建立高層次的模型需要的時間短,,但是模擬不夠準(zhǔn)確,。相反,低層次的模型可以達(dá)到滿意的評估效果,,但是建模耗時長,。其次,建模模擬是靜態(tài)的過程,,不能很好地反映系統(tǒng)實際運行的情況,。好的目標(biāo)板,各部分連接已經(jīng)固定,。如果需要改動部分連接,,只能重新設(shè)計制版。這樣一來就會大大延長產(chǎn)品的上市時間,,還會增加開發(fā)費用,。新推出的嵌入式系統(tǒng)產(chǎn)品,開始設(shè)計時比較難把所有的技術(shù)細(xì)節(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),。基于ARM核處理器是高度集成的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軟核,,進(jìn)行SOC的開發(fā)。所以可編程互連模塊選用FPGA來組成,。
為了確定可編程互連模塊的插入位置,,再來分析圖2嵌入式系統(tǒng)的結(jié)構(gòu)。
最小系統(tǒng)決定了整個系統(tǒng)的處理能力,,是整個系統(tǒng)的核心,。常用的嵌入式處理器的時鐘周期已經(jīng)高達(dá)400MHz,并且會進(jìn)一步發(fā)展,。連接處理器的總線速度和存儲器芯片的速度也超過了100MHz,。FPGA引腳到引腳的延時是幾個納秒的數(shù)量級,所以FPGA模塊的插入會降低整個系統(tǒng)的處理速度,。故在處理器和存儲器之間不能插入FPGA模塊,。外設(shè)可以使得嵌入式系統(tǒng)和實際應(yīng)用環(huán)境進(jì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è)進(jìn)行系統(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),。