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