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