張立為 陳浩 陳堅
【摘要】 嵌入式系統(tǒng)廣泛應用于消費電子、物聯(lián)網(wǎng),工業(yè)制造、汽車制造,工業(yè)自動化、醫(yī)療設備、航空航天及軍事領域。嵌入式系統(tǒng)在現(xiàn)代智能產(chǎn)業(yè)中起著舉足輕重,不可替代的關鍵作用。嵌入式系統(tǒng)的核心是主處理器。主處理器的選取是決定嵌入式系統(tǒng)項目成功與否的核心關鍵環(huán)節(jié)。本文作者試圖總結(jié)多年實際工 作中的經(jīng)驗,對選擇嵌入式系統(tǒng)主處理器時應該注意的幾個關鍵因素加以分享和討論,以供嵌入式系統(tǒng)設計工程師們參考、借鑒。
【關鍵詞】 嵌入式系統(tǒng) 嵌入式主處理器 主處理芯片 智能制造
嵌入式系統(tǒng)的應用非常廣泛,幾乎遍布各個工業(yè)領域。而且,隨著現(xiàn)代智能產(chǎn)業(yè)大跨步,飛躍式發(fā)展趨勢,嵌入式系統(tǒng)在各工業(yè)領域的應用再一次呈現(xiàn)爆炸式發(fā)展。
嵌入式系統(tǒng)的應用形形色色。其規(guī)模,存在方式,復雜程度等都會隨應用的不同而千變?nèi)f化。作為嵌入式系統(tǒng)的核心,主處理器的選擇也應當視其所屬系統(tǒng)的規(guī)模,作用,復雜程度等而相應變化,評估和選擇合適的嵌入式主處理器成為項目是否成功的關鍵要素。
一、首要選擇因素是項目的設計要求
嵌入式系統(tǒng)項目的設計要求基本上確定了該系統(tǒng)的規(guī)模,作用和復雜程度。
項目設計首先要考慮主處理器的性能是否足夠驅(qū)動目標應用程序,而衡量嵌入式主處理器的一個關鍵指標為MIPS(million instructions per second,每秒所能處理的百萬指令數(shù)),而對應MIPS指標就非常關注主時鐘頻率,其實頻率和MIPS不能直接考慮為等號或者成比例關系。查看STM32F107為ARM 32bit Cortex-M3核,主頻最高為72MHz,1.25 DMIPS/MHz,選擇時候以具體數(shù)據(jù)為準。還需要進一步考慮的是如果對應的項目在應用層就需要嵌入式處理器消耗較大的任務,需要綜合評估對應的處理器的MIPS能否匹配應用層的需求、是否會犧牲其他子系統(tǒng)的性能?例如《網(wǎng)絡機頂盒播放器》,如果選擇的主處理器沒有硬件視頻解碼能力,就需要考慮軟件解碼和網(wǎng)絡傳輸視頻對處理器占用的比例。
當然,如果設計要求很高的實時性,那么選擇主處理器時就不光要考慮主MIPS、主時鐘頻率而且還要考慮是選單核還是多核芯片。如果設計要求連接多種不同外圍設備,針對特定的處理任務,那就要考慮放棄通用型芯片而多考慮可以滿足多種不同外圍設備的專用處理芯片。
從設計要求的任務可以大致決定系統(tǒng)軟件/固件所需要采用的模式。是否需要多任務OS還是Stand alone編程就可以滿足要求。是否需要考慮uCOS III這樣的RTOS, 或者嵌入式Linux系統(tǒng)?主處理器的選擇需要配合系統(tǒng)軟件/固件模式的選擇。由于項目的設計往往對啟動時間有要求,如果一個帶液晶顯示器(LCD)的產(chǎn)品,2-3分鐘內(nèi)LCD還處于黑屏狀態(tài),這樣的設計就表現(xiàn)為比較糟糕。所以在選擇主處理器的時候還需要關注是否支持NOR /NAND/SD卡等不同的啟動模式及對應的啟動速度,能尋址最大的DRAM、SRAM、NOR、NAND等存儲器的存儲地址空間范圍。
從嵌入式系統(tǒng)項目的規(guī)模上看,微/小型類應用采用低/中端單核芯片即可勝任,這樣的應用無需太多種類的外圍驅(qū)動支持。也無需多任務OS, Stand alone編程即可。一般類規(guī)模的應用可能需用高端單核處理器(如TI AM335x),或雙核處理器(如ZYNQ-7000)。這樣的項目需要一定種類的外圍驅(qū)動支持。OS可選Stand alone,uCOS III, 或者嵌入式Linux系統(tǒng)。而復雜類的嵌入式系統(tǒng)應用就需雙核處理器(如ZYNQ-7000),需較多種類的外圍驅(qū)動支持。OS首選嵌入式Linux系統(tǒng),或uCOS III。 高端移動通信設備類應用則需要通用型雙核甚至多核高速處理器。它們需要一定種類的外圍驅(qū)動支持。OS首選Android, iOS等。
項目的設計要求會對外圍設備提出各種要求。例如要求GBit的以太網(wǎng),USB OTG, I2C總線支持等。是否需要電池?有電池則需考慮電源管理。主處理器及周邊支持硬件必須滿足這些要求。有時候我們非常關注了主芯片的價格,而遺漏了外圍的成本。是否在主芯片選擇上節(jié)約了1美元,有可能導致在外圍電子元器件上多花費2美元,這個是需要明確主處理器內(nèi)置了多少控制器?同時,由于芯片都是要焊接在PCB上,主芯片的管腳個數(shù)及封裝也是選擇的一個重要點,有可能會帶來PCB層數(shù)的增加、焊接密集度增高、批量生產(chǎn)的穩(wěn)定性降低。在明確了主芯片的性能、接口等技術(shù)細節(jié)后,還需要考慮對應的主處理器的行業(yè)定位,這涉及到產(chǎn)品的硬件可靠性和可行性。一般來說商業(yè)級的主處理器,使用在工業(yè)級、汽車級,或者航空級是非常不合理的。當然在認可價格體系的前提下,把航空級別的主芯片應用在商業(yè)級的產(chǎn)品中性能是有保證的。同時由于嵌入式處理器細分了處理器市場,所以智能手機、航天應用、工業(yè)控制、消費類電子、POS機等等這些行業(yè),當我們項目設計的需求非常清晰的應用在這個行業(yè),就優(yōu)先選擇對應的行業(yè)主芯片,這樣的選擇是可行的,由于每個行業(yè)的特殊性,細節(jié)還是有差別的。作者幾年前參與一個移動POS項目,從技術(shù)緯度采用消費類產(chǎn)品方案疊加打印機從理論上是可行的,但隨著項目的深入,發(fā)現(xiàn)需要在消費類主芯片上花費很大的技術(shù)工作完成對各種銀行卡協(xié)議的支持,但對應在POS機行業(yè)的主芯片就是他們的強項。至此,主處理芯片的基本選擇原則和范圍就可以大致圈定了,選擇考慮的重點為性能、操作系統(tǒng)支持、封裝、接口、行業(yè)定位和可靠性。
二、處理芯片的市場特性
進一步的就要了解考慮中的芯片是否成熟?是否已經(jīng)被業(yè)界或應用市場所認可?還需要了解業(yè)界采用該芯片的反應如何?滿意程度高嗎?尤其要關注不滿意的方面是和芯片本身設計相關嗎?芯片設計有硬件缺陷嗎?對硬件缺陷是否已經(jīng)提供軟件補丁彌補?
作者幾年前曾經(jīng)參與的一個嵌入式系統(tǒng)項目設計選用的是一款當時剛發(fā)布不久的雙核處理器。其性能,價格等都滿足我們的評估。研發(fā)過程也相對比較順利。到了研發(fā)后期進行產(chǎn)品強化測試時發(fā)現(xiàn)有的產(chǎn)品運行一段時間后會死機。而且沒有明顯規(guī)律可供查詢故障起因。花了大量人力,精力和時間,最終同廠家共同確定了故障起因是芯片設計缺陷造成的。而且,該硬件缺陷并未出現(xiàn)在廠家的芯片缺陷報告中。這是一個選取最新產(chǎn)品而后引發(fā)不良后果的經(jīng)驗教訓。雖然最終問題得以解決,但我們耗時耗力也不得不推后了產(chǎn)品推出的日期。所以選擇新發(fā)布的產(chǎn)品有可能會承擔一定的風險。
芯片的標準性,規(guī)范性如何?是否采用通用規(guī)范?比如ARM架構(gòu)。芯片市場保障周期如何?如果芯片在比如說3年后將停止供貨,怎么辦?消費電子,個人移動通訊設備如智能手機等市場更新很快,供貨保障周期算不上需要嚴重考慮的問題。可是其它行業(yè)比如醫(yī)療設備則有可能會有一個較長的從產(chǎn)品研發(fā)成功到測試,以及獲得上市認證許可(譬如美國FDA)等待期間。研發(fā)需幾個月至1-2年,加上測試和申請許可需幾個月至1年,加起來會有2到3年的時間。這些就需要考慮在供貨保障周期之內(nèi)。
總之,對應市場特性,成本就是非常敏感的指標。對應主芯片廠商能否有完備的商業(yè)計劃,主芯片廠商的企業(yè)能否健康發(fā)展?能否提供引腳兼容的系列化芯片供升級或者替換?選擇考慮的重點為商業(yè)計劃、供應體系、生命周期。
三、系統(tǒng)開發(fā)環(huán)境和技術(shù)支持
芯片生產(chǎn)廠家是否提供系統(tǒng)開發(fā)環(huán)境?該環(huán)境是否對用戶友好?環(huán)境是否便于使用,是否宜于學習掌握?是否提供足夠的功能幫助開發(fā)人員編程,調(diào)試,版本控制等。所需花費如何?是否需要交技術(shù)支持年費?
芯片生產(chǎn)廠家對芯片硬件和開發(fā)環(huán)境的技術(shù)支持力度如何?尋求技術(shù)求助是否得到快速回復,是否及時解答疑問,幫助解決問題等等。
作者曾經(jīng)初步選擇并測試過一家國際知名公司的一款新出品的功能比較強勁的嵌入式主處理器。在對該芯片進行基本應用測試的初期,尋求技術(shù)問題解答就未曾得到及時回復。公司提供的系統(tǒng)開發(fā)環(huán)境并不算對用戶友好。需要研發(fā)人員自己花很多時間才能通過上網(wǎng)找到所要的答案。感覺很不好,也很花時間。最后不得不決定放棄該芯片而選用其他公司的產(chǎn)品。
在決定選用主處理器前,運用其開發(fā)環(huán)境對目標芯片作多方面的測試,了解和評估是很有必要的。盡早設定一些技術(shù)要點,向芯片供應商的技術(shù)支持確定答案會幫助自己了解該處理器的應用特性,同時也確認技術(shù)支持的力度。
四、項目開發(fā)周期及人員培訓
選用嵌入式主處理器還應該考慮是否影響項目開發(fā)周期。研發(fā)人員學習和熟練掌握開發(fā)環(huán)境所需要花費的時間,技術(shù)培訓要求是否復雜,供應商是否有比較成熟的樣板程序供參考使用等等。這些因素對短期,乃至中長期項目的研發(fā)都會有影響。選擇提供標準開發(fā)環(huán)境的嵌入式主處理器會幫助我們縮短項目開發(fā)周期和研發(fā)人員技術(shù)培訓時間。比如選擇可以提供基于Eclipse的開發(fā)環(huán)境就是目前業(yè)界比較標準的平臺。以該嵌入式主處理器為基礎的硬件設計是否可以搭建成參照類/標準類研發(fā)平臺?如果可以的話,這將充分發(fā)揮其作用而使公司其他類似研發(fā)項目可以從中受益。所以嵌入式主處理器的選擇應該盡可能地爭取考慮可以搭建成標準型研發(fā)平臺。
五、實用綜合案例說明
舉一個實用案例。要求設計一個分布式多通道鏡頭圖像測量處理系統(tǒng)。該系統(tǒng)要求各測量單元和控制單元要在時間上精密同步。
IEEE1588 PTP是基于局部以太網(wǎng)的精密時間同步協(xié)議。基于所設計的系統(tǒng)對測控單元在時間上有精密同步的要求,選擇支持IEEE1588 PTP的主處理器毫無疑問是必要的。支持以太網(wǎng)也是必不可少的。之外,嵌入式Linux系統(tǒng)配有豐富周邊設備驅(qū)動支持,有實時處理能力,具備很強的靈活性。所以它是該項目OS的優(yōu)選目標之一。(圖1)
處理多通道鏡頭圖像需要較強的芯片運算處理能力。數(shù)據(jù)傳輸量大就需要快速DMA 的配合。應該考慮選擇雙核或多核芯片。再結(jié)合了解和分析市場現(xiàn)有嵌入式處理器的供貨情況,以ARM為核心的Xilinx ZYNQ雙核處理器很好的集成了應用處理單元和可編程邏輯單元并支持眾多外圍設備總線。這些特性強有力的支持項目對多通道鏡頭圖像采集通訊和數(shù)據(jù)處理的要求。它支持高速以太網(wǎng)并配有對IEEE1588 PTP協(xié)議的支持。(圖2)
而且,Xilinx和PetaLinux相配合提供了比較完善的嵌入式Linux系統(tǒng)交叉編譯環(huán)境。為應用軟/固件的研發(fā)提供了良好的開發(fā)平臺。
綜合以上考慮,該系統(tǒng)可以考慮采用Xilinx ZYNQ芯片并由嵌入式Linux來完成系統(tǒng)應用。
六、結(jié)論
嵌入式系統(tǒng)主處理器是系統(tǒng)的核心部件。選擇嵌入式系統(tǒng)主處理器需要綜合考慮各種因素。其中重點要考慮項目的設計要求,處理芯片的成熟度、可靠性等關鍵市場特性,系統(tǒng)開發(fā)環(huán)境和技術(shù)支持,以及開發(fā)人員對處理芯片和系統(tǒng)開發(fā)環(huán)境的熟悉程度與學習周期等。
只有充分的考慮了這些因素并加以研究分析才能更好地確定項目所需的處理芯片。盡可能地減少研發(fā)后期可能出現(xiàn)的問題,以及有效的降低項目研發(fā)和生產(chǎn)成本。