主處理器的選型和ARM處理器的功能特性,可以看到ARM處理器具有強大的事務(wù)處理能力,但是ARM處理器也有不足之處,例如,數(shù)據(jù)處理速度有限,定時不準(zhǔn)確,實現(xiàn)時序困難和事件處理不及時等,這就需要通過選擇合適的輔助處理器來彌補。
可編程邏輯器件(Programmable Logic Device)具有數(shù)據(jù)處理速度快、TO資源豐富、定時精確、實現(xiàn)時序簡單等優(yōu)點,剛好可以彌補了ARM處理器的不足之處。因此,輔助處理器的選型問題就變?yōu)榭删幊踢壿嬈骷倪x型。目前,常用的可編程邏輯器件有復(fù)雜可編程邏輯器件CPLD( Complex Programmable Logic Device )和現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)。由于CPLD和FPGA結(jié)構(gòu)上的不同,使得它們除了具有共同點,還存在各自的特點
(1) FPGA的集成度高于CPLD;
(2)FPGA更適合于時序邏輯的設(shè)計,即包含多觸發(fā)器的設(shè)計,而CPLD更適合于算法和組合邏輯的設(shè)計,即觸發(fā)器有限而乘積項多的設(shè)計;
(3)在編程上,F(xiàn)PGA具有更大的靈活性。因為CPLD要通過修改具有固定內(nèi)連電路的邏輯功能來實現(xiàn)編程,而FPGA主要通過改變內(nèi)部的布線來實現(xiàn)編程;
(4) CPLD 的速度要比FPGA 快,而且CPLD具有時間可預(yù)測性而FGPA沒有;
(5)一般,F(xiàn)PGA 比 CPLD的功耗要低,而且隨著集成度提高而更加明顯;
(6) CPLD采用EPROM或FLASH 工藝,系統(tǒng)掉電后,信息不丟失:而FPGA的編程單元是基于SRAM結(jié)構(gòu)形成的,系統(tǒng)掉電后,信息丟失,需要增加存儲器芯片。
通過分析以上幾點 CPLD與FPGA 的差異性和依據(jù)控制器的功能需要,本次設(shè)計中選用現(xiàn)場可編程門陣列FPGA作為輔助處理器芯片。FPGA因其具有體積小、集成度高、靈活性高等優(yōu)點而被廣泛應(yīng)用于復(fù)雜數(shù)字系統(tǒng)中。具體使用哪種型號的FPGA芯片對系統(tǒng)的性能也是重要的,如果FPGA選型不合適,在后續(xù)的設(shè)計中會出現(xiàn)很多問題,使設(shè)
計復(fù)雜化,甚至失敗;而恰當(dāng)?shù)倪x型不但可以避免設(shè)計中的-些復(fù)雜問題,使設(shè)計簡單,而且還會提高系統(tǒng)的可靠性,延長產(chǎn)品的生命周期,使產(chǎn)品獲得高性價比。因此,在選擇FPGA器件時需要考慮的主要因素有以下幾點。
根據(jù)實際應(yīng)用的領(lǐng)域和工作環(huán)境要求,選擇FPGA器件的種類、速度等級和溫度等級。不是選擇高性能的FPGA器件就--定適合,因為器件的價格一般隨著器件等級的提高而增加,這樣會增加產(chǎn)品的成本;器件速度等級的選擇應(yīng)該在滿足應(yīng)用要求的前提下盡量選擇得低一些,因為高速運行的器件會對系統(tǒng)產(chǎn)生很大的干擾,而且價格也更高。
其次,要考慮FPGA的硬件資源。FPGA的硬件資源包括邏輯單元(LE)數(shù)量、最大用戶IO數(shù)、布線資源、存儲器資源、支持的接口和協(xié)議以及是否支持嵌入式微處理器等。邏輯單元的數(shù)量和最大用戶IO數(shù)是設(shè)計中最先要考慮的因素,如果這些不能夠滿足實際應(yīng)用需求,那么就不可能很好地完成設(shè)計。目前,常用的FPGA器件中,邏輯單元的數(shù)量都比較大,可以滿足大部分的應(yīng)用,而且一般同一封裝的器件也會有資源數(shù)量不同的幾種型號供板級替換選擇。常用FPGA器件中都帶有存儲器資源,其主要用作高性能濾波器或者作為數(shù)據(jù)存儲器ROM、RAM或者FIFO。很多FPGA芯片中都集成了鎖相環(huán),利用鎖相環(huán)可以實現(xiàn)對系統(tǒng)時鐘的不同倍頻、分頻,來滿足系統(tǒng)的多時鐘要求。
第三,要考慮器件的供貨渠道和開發(fā)工具的支持。
選擇應(yīng)用廣泛且貨源充足的主流FPGA器件,可以提高產(chǎn)品的生命周期。能夠提供的FPGA器件種類非常豐富而其應(yīng)用也最廣。具有集成開發(fā)環(huán)境界面友好,功能強大等優(yōu)點,還可以利用第三方提供相應(yīng)的技術(shù)支持,而且所有種類器件的設(shè)計和開發(fā)都能夠在各自的集成開發(fā)環(huán)境下完成,這樣可以使得FPGA的開發(fā)相對簡單,縮短產(chǎn)品開發(fā)周期,降低投入成本。
控制器的軟件設(shè)計主要就是嵌入式操作系統(tǒng)的移植和嵌入式應(yīng)用軟件的設(shè)計。對控制器的軟件進(jìn)行架構(gòu)主要是完成的選擇、嵌入式操作系統(tǒng)的選擇和應(yīng)用軟件及用戶界面程序開發(fā)方案的選擇
在設(shè)計中應(yīng)用嵌入式操作系統(tǒng)可以簡化應(yīng)用程序的設(shè)計,同時保障軟件開發(fā)的效率。嵌入式操作系統(tǒng)的任務(wù)是完成任務(wù)的調(diào)度和控制,為上層軟件提供標(biāo)準(zhǔn)的設(shè)備操作接口。嵌入式操作系統(tǒng)選擇需要考慮的主要因素有
①考慮操作系統(tǒng)的可利用的資源有哪些,針對不同的應(yīng)用場合及應(yīng)用要求來選擇合適的操作系統(tǒng)
②操作系統(tǒng)的可裁剪性,針對不同的應(yīng)用來裁剪使系統(tǒng)精簡化,減少資源的使用同時增加系統(tǒng)的穩(wěn)定性和可靠性
③最好選擇免費的嵌入式操作系統(tǒng),這樣可以減少產(chǎn)品開發(fā)的成本。
④針對于國內(nèi)市場的產(chǎn)品開發(fā),還要考慮所選擇的操作系統(tǒng)是否支持中文的輸入和處理。對于嵌入式激光打標(biāo)機,能夠完成漢字的編輯和處理并實現(xiàn)漢字的打標(biāo)是嵌入式激光打標(biāo)機一個基本功能要求,所以選擇的操作系統(tǒng)必須能夠支持中文的輸入和處理