<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 直面FPGA在嵌入式測試系統中的設計挑戰

直面FPGA在嵌入式測試系統中的設計挑戰

作者: 時(shí)間:2008-11-12 來(lái)源:網(wǎng)絡(luò ) 收藏

  “系統”這個(gè)詞范圍很廣,從數字式電子表到變電站電力檢測系統中的PC都可歸于這一范疇。大多數情況下,系統是一個(gè)獨立且具有專(zhuān)門(mén)用途的系統,它應能在沒(méi)有技術(shù)人員操作的情況下運行。許多系統都有某種類(lèi)型的用戶(hù)界面,但有一些以“傻瓜型”方式運作,這些系統需要與外界通過(guò)傳感器、網(wǎng)絡(luò )等進(jìn)行交流。系統智能化可以通過(guò)由操作系統控制的微處理器實(shí)現,或者系統大部分功能也可由一個(gè)單獨的專(zhuān)用芯片完成。

  不同的嵌入式系統其設計要求相去甚遠。如果設計的是手持式設備(如PDA),那么功耗是主要問(wèn)題;而對機場(chǎng)或電影院售票設備,可靠性和安全將是主要考慮因素。當然,用戶(hù)界面在上述兩種系統中都是主要組成部分,但也有許多嵌入式系統還必須和傳感器和執行器相連,這些系統要求對實(shí)際的激勵做出迅速反應并生成復雜輸出模式作為響應,完成這些動(dòng)作需要處理引擎和系統輸入輸出端口緊密結合。

  讓我們來(lái)看一下嵌入式系統和外界進(jìn)行交流的方式。掌上計算器具有非常簡(jiǎn)單的用戶(hù)界面,包括鍵盤(pán)和LCD顯示器,它不需要與傳感器或通訊總線(xiàn)連接的接口。而對于一個(gè)汽車(chē)引擎控制單元,它雖然沒(méi)有用戶(hù)界面,但是需要與傳感器和執行器進(jìn)行通信,而且車(chē)輛網(wǎng)絡(luò )總線(xiàn)也是很重要的部分。當汽車(chē)進(jìn)行維修保養時(shí),技術(shù)人員會(huì )使用一種設備作為汽車(chē)電路的用戶(hù)界面,對大多數需要這種功能的現代嵌入式系統,用戶(hù)界面往往像這樣通過(guò)在設備上增加一個(gè)以太網(wǎng)端口,然后運行web服務(wù)器作為嵌入式系統功能的一部分來(lái)實(shí)現。路由器就是這樣一種設備,通常以“傻瓜”方式運行,但可通過(guò)一個(gè)web瀏覽器對其進(jìn)行配置。

  可以選擇多種方法和器件將智能化功能加入系統中,并且可將這些方法和器件進(jìn)行混合配對以便以最佳方式達到設計要求。最靈活的平臺類(lèi)型是將微處理器和操作系統結合起來(lái),這種架構可以采取單板機帶實(shí)時(shí)操作系統(RTOS)內核的形式,比如在A(yíng)TM機或自動(dòng)售貨機中。更復雜的系統則嵌入一個(gè)完整的PC,上面運行Windows或其它操作系統,這樣做可以利用現成的網(wǎng)絡(luò )接口功能連接到標準打印機上。

  對于有的系統而言,PC或單板機可能太大或成本太高,而且它們或許也不能滿(mǎn)足性能需求。這時(shí)可以通過(guò)將現成的專(zhuān)用集成電路芯片(ASIC)集成到設計中來(lái)實(shí)現所要求的功能,如用DSP、運算放大器和通信總線(xiàn)收發(fā)器等,這種方法的缺陷是項目需要增加板級設計,而如果使用PC平臺,只需要將精力集中在系統級設計上即可。

  但如果PC不能滿(mǎn)足需求,而且也沒(méi)有現成部件可以完成系統,那該怎么辦呢?這時(shí)不僅要考慮進(jìn)行板級設計,而且還包括芯片級設計,需要設計并制造自己的ASIC或者是使用現成的可配置芯片:。其中一個(gè)需確定的因素是最終產(chǎn)品的數量,如果設計的是大批量產(chǎn)品如蜂窩電話(huà),那么為了節約設計和裝配成本最好自行開(kāi)發(fā)ASIC;但如果目標市場(chǎng)很小,則可以通過(guò)使用來(lái)減少成本。可以在更改系統時(shí)不必開(kāi)發(fā)新的ASIC,如果系統需要升級或修改以便滿(mǎn)足特殊客戶(hù)的需要,這樣的方式是極為有利的。今天,FPGA已廣泛應用在打印機、復印機、測量設備、消費電子產(chǎn)品和自動(dòng)控制模塊等嵌入式系統中。

  測量和控制用FPGA

  FPGA是一種具有可重配置邏輯門(mén)的芯片,與供應商提供功能定義的ASIC芯片不同,FPGA可根據每個(gè)應用的不同需要而進(jìn)行配置和重新配置。由于FPGA允許在硬件中實(shí)現自定義算法,因此它具有精確時(shí)序和同步、快速決策及并行任務(wù)同時(shí)執行等優(yōu)點(diǎn)。在PC或帶有RTOS和微處理器的平臺上,處理器必須對多個(gè)任務(wù)進(jìn)行分時(shí)處理,而FPGA則可以配置為多個(gè)獨立的并行計算資源,簡(jiǎn)言之,就像芯片上有多個(gè)微處理器一樣,且這些微處理器都針對特定的任務(wù)進(jìn)行了優(yōu)化。

  FPGA的性能和靈活性使得它們成為處理輸入輸出非常有效的技術(shù)。假如想計算那些比計數器處理的簡(jiǎn)單上升或下降沿更有趣的模擬或數字事件,或者要確認一個(gè)基于特定事件順序或自定義通信協(xié)議的輸入模式,然后在幾納秒后觸發(fā)一個(gè)模擬操作,這時(shí)就可以利用FPGA監視輸入信號,快速決定并做出反應。另外可以創(chuàng )建一個(gè)系統讀取脈寬調制信號并迅速計算占空比,更進(jìn)一步,還可以對FPGA進(jìn)行配置以利用自定義數字協(xié)議進(jìn)行通信,如對輸入信息進(jìn)行解碼,然后將信息組合編碼作為輸出數據包再發(fā)送出去,這種快速解碼在與非標準編碼器連接時(shí)有助于讀取和解讀出位置和速度信息。你可能甚至希望同時(shí)進(jìn)行上述所有操作,并使得這些操作互相同步,且和其它輸入和輸出任務(wù)同步。

  那么輸出的情況是怎樣的呢?通過(guò)自定義數字協(xié)議進(jìn)行通信和生成PWM信號是這種類(lèi)型很好的例子,也可以模擬一個(gè)連接到物理系統的電子器件或傳感器。如果是用一個(gè)基于軟件的系統完成此項工作,即使使用RTOS,輸出的性能也可能不一定夠。對于主控制算法,或許只需運行在幾千赫茲頻率上,這會(huì )造成CPU資源閑置,而且它只是告訴輸出做什么以及何時(shí)做,并沒(méi)有指明該怎樣做。具體來(lái)說(shuō),假定你的嵌入式系統是一個(gè)客戶(hù)用來(lái)測試引擎控制模塊的引擎模擬器,對汽車(chē)引擎建立了模型并且系統基于該模型進(jìn)行實(shí)時(shí)模擬,通過(guò)模擬和數字I/O與控制器進(jìn)行通信。如果在某個(gè)特定測試里模型按照控制器的指示進(jìn)行操作,引擎開(kāi)始運轉,但是不斷實(shí)時(shí)調整汽缸壓力傳感器模擬輸出以使控制器相信它是與一個(gè)真實(shí)運轉的引擎相連是非常困難的,輸出信號必須在運轉過(guò)程中形成以便對控制器的命令做出響應。但如果使用的是FPGA,就可以通過(guò)對其進(jìn)行配置使其生成基于模擬模型的高級輸出信號。

  面臨的挑戰

  將FPGA集成到嵌入式系統最大的挑戰是如何配置FPGA的邏輯,以及將傳感器輸入和控制輸出與它連接起來(lái)。許多嵌入式系統設計人員對于在實(shí)時(shí)操作系統下運行的微處理器上編程非常熟練,但他們不喜歡在芯片級對硬件進(jìn)行定義,這需要有設計工具和語(yǔ)言如VHDL方面的知識。當然,冒昧進(jìn)入芯片級領(lǐng)域還意味著(zhù)需要設計和構建芯片周邊的電路板,雖然這對于一些嵌入式系統設計人員來(lái)說(shuō)已經(jīng)過(guò)時(shí)了,但仍然有許多設計人員寧愿盡可能地使用現成的硬件,特別是當硬件必須精確地測量出傳感器數據并對其作數字化處理時(shí)。

  目前有許多FPGA配置工具,有些工具需要VHDL或其它語(yǔ)言編碼完成硬件定義,有些工具提供了圖形配置環(huán)境,還有的工具允許你使用熟悉的工具編寫(xiě)軟件,然后將代碼下載到FPGA中。在選擇哪種方式適合時(shí)需要考慮幾個(gè)問(wèn)題,其中一個(gè)考慮因素是你的背景。你是否是一個(gè)富有經(jīng)驗的硬件開(kāi)發(fā)人員并對FPGA的基本操作有深入的認識?如果是,就可以利用低級工具充分發(fā)揮你的經(jīng)驗并深入實(shí)地進(jìn)行配置。也許你不是硬件工程師,但你是一位優(yōu)秀的程序員并且能很容易掌握新的編程語(yǔ)言,那么你可能需要選擇一個(gè)能夠讓你充分運用數據結構和程序細節進(jìn)行編程的工具。另外一個(gè)可能是你既不是硬件專(zhuān)家也不是軟件專(zhuān)家,但由于你對整個(gè)系統內在的理論或系統所投入的應用非常熟悉而來(lái)設計系統,如果是這種情況,那么應該選擇一個(gè)可以讓你以自己的語(yǔ)言進(jìn)行設計的工具,而不必學(xué)習復雜的FPGA或硬件描述語(yǔ)言。

  另一個(gè)很重要的考慮因素是你計劃設計的系統所要求達到的功能是什么。如果正在設計多個(gè)不同類(lèi)型的系統,可能通用硬件設計工具最為適合。有許多人花費很多時(shí)間成為使用這些工具的專(zhuān)家,你也可以加入其中。如果想將涉及面縮小一些,那么也有工具去處理那些“常規”事務(wù),而讓你專(zhuān)注于可以增值的地方。舉個(gè)例子,有許多工具可以幫助你很快開(kāi)發(fā)出信號處理系統并將其配置到FPGA中去,也有一些經(jīng)優(yōu)化的工具專(zhuān)門(mén)用來(lái)增加測量和控制功能。

  還需要考慮系統配置希望怎樣設置的問(wèn)題。要有怎樣的尺寸?與PC連接嗎?有的FPGA開(kāi)發(fā)工具要求你開(kāi)發(fā)FPGA周邊所有硬件,另一些則要求使用一種特殊的內建有FPGA的電路板。對于后者,很多和板上其它資源如I/O與總線(xiàn)連接的工作都已做好,這樣可以大大加快開(kāi)發(fā)的進(jìn)度,因為你無(wú)須關(guān)注諸如抗噪性、穩定時(shí)間和串擾之類(lèi)的事項。對于此類(lèi)系統,你應該確保與I/O的連接只有一些簡(jiǎn)單功能。如果系統需要大量與運行Windows或RTOS的PC連接,那么應選擇那些能夠跨平臺的設計工具。如果用于開(kāi)發(fā)PC端接口的API很有限的話(huà),設計效率將受到一定的影響。

  設計系統

  設計一個(gè)完整系統的第一步是確定你的算法哪一部分需要放到FPGA中并執行,有以下幾種可能性。第一,整個(gè)應用都可以在FPGA上執行,你無(wú)須通過(guò)鍵盤(pán)、顯示器或鼠標等用戶(hù)交互方式,在這種情況下,用軟件開(kāi)發(fā)就可以完成所有工作。第二,也可能將應用嵌入到FPGA中去,但你想有一個(gè)在PC上運行的Windows用戶(hù)界面,這就意味著(zhù)需要開(kāi)發(fā)一個(gè)在Windows下運行的程序來(lái)和FPGA進(jìn)行通信。這要看你的開(kāi)發(fā)工具是否按照這種思路開(kāi)發(fā),可能很棘手,也可能很簡(jiǎn)單。第三,另一個(gè)常見(jiàn)的情況是,你希望在FPGA和一個(gè)微處理器平臺如單板機或運行RTOS的嵌入式PC之間分配你的應用程序,在這種情況下可能也需要一個(gè)Windows用戶(hù)界面。

  有幾個(gè)原因你可能無(wú)法將整個(gè)應用程序嵌入到FPGA中去。應用程序大小是其中之一,FPGA的邏輯門(mén)數量有限,并且最終放入FPGA中的代碼因編程人員以及生成代碼的自動(dòng)系統不同而效率可能很高也可能很低,另外FPGA上供用戶(hù)使用的RAM容量也很有限,而基于PC的平臺一般都帶有相對較大的內存和硬盤(pán)空間。另外一個(gè)需要考慮的問(wèn)題是FPGA設計常常無(wú)法進(jìn)行浮點(diǎn)運算,市面上有在FPGA上執行浮點(diǎn)運算的工具,但它們可能可以也可能無(wú)法與你正在使用的開(kāi)發(fā)工具兼容,如果無(wú)法全部以整型算法運行整個(gè)計算,可以放一部分在PC上執行。PC還可以提供一些其它好處,而這些好處在FPGA上無(wú)法容易地實(shí)現,包括文件I/O、網(wǎng)絡(luò )操作、打印能力和基于PC的測量和控制能力,如圖形識別/處理、GPIB/VXI工具控制以及與工業(yè)總線(xiàn)如CAN、RS-232和RS-485的接口等。

  本文小結

  FPGA為嵌入式系統帶來(lái)了在尺寸、成本和性能上的優(yōu)點(diǎn),特別對I/O處理加入智能特性非常有幫助,利用FPGA可以實(shí)現基于軟件且運行RTOS的系統無(wú)法實(shí)現的時(shí)序和同步。你可以通過(guò)微處理器和RTOS平臺如嵌入式PC執行大多數應用程序,但需要芯片級解決方案進(jìn)行信號解碼和編碼或生成輸出信息;同樣,你也可以在FPGA上執行大多數應用程序,但需要另一個(gè)平臺來(lái)完成更高級的任務(wù)。使用FPGA有一些挑戰,但有許多工具可以幫助你解決這些問(wèn)題。最主要的考慮因素是你的技術(shù)特點(diǎn),系統需要完成什么任務(wù)以及系統如何設置。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: FPGA 嵌入式

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>