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