http://www.kadhoai.com.cn 2026-04-07 14:26:25 來源:中國自動化學會專家谘詢工作委員會
摘要:與傳統的PLC、PAC以及基於PCdexitongkongzhijishubutong,qianrushikongzhijishukeyigenjushoukongduixiangbutong,weiwomentigongduozhongxuanze。weikongzhiqishiqianrushikongzhijishuzhongzuiguangweirenzhideyixiang,erbenwenjiangxiangnizhanshiASIC和FPGA技術所具有的一些獨特優勢。
與傳統的PLC、PAC以及基於PCdexitongkongzhijishubutong,qianrushikongzhijishukeyigenjushoukongduixiangbutong,weiwomentigongduozhongxuanze。weikongzhiqishiqianrushikongzhijishuzhongzuiguangweirenzhideyixiang,erbenwenjiangxiangnizhanshiASIC和FPGA技術所具有的一些獨特優勢。
嵌qian入ru式shi控kong製zhi係xi統tong不bu同tong於yu數shu據ju采cai集ji係xi統tong以yi及ji那na些xie隻zhi針zhen對dui標biao準zhun大da眾zhong化hua產chan品pin的de控kong製zhi係xi統tong。它ta可ke以yi複fu雜za到dao類lei似si一yi套tao電dian信xin交jiao換huan係xi統tong,也ye可ke以yi如ru一yi套tao警jing報bao係xi統tong。在zai不bu同tong的de應ying用yong中zhong,我wo們men可ke以yi采cai用yong多duo種zhong方fang案an來lai滿man足zu不bu同tong要yao求qiu。哪na種zhong方fang案an最zui適shi合he你ni,一yi方fang麵mian由you最zui終zhong的de使shi用yong情qing況kuang決jue定ding,另ling一yi方fang麵mian取qu決jue於yu係xi統tong生sheng命ming周zhou期qi。
有三種CPU方案用在嵌入式係統中最為合適。它們分別是:微控製器、現場可編程邏輯門陣列(FPGA)以及專用集成電路(ASIC)。
微控製器的最大優點是它們的高度適應性。開發人員可以通過C以及C++之類的高級語言對它們實施編程。如今,許多微控製器應用已經相當複雜了,以至於我們能夠采用Linux或Microsoft Windows Embedded之類的操作係統。
微控製器的高度適應性同時也成為了它們最大的缺陷。微控製器往往需要搭配一套編寫複雜、資源全麵的操作係統方能使用。在許多應用中,微控製器無法勝任那些對性能要求極高的任務。

嵌入式控製係統設計師可以利用FPGA和ASIC實現一些非常複雜的算法。這些算法會在結構緊湊的可編程硬件內高速運行。
ASIC和FPGA的特點
如今,我們還可以用另外兩種具有計算功能的芯片替代微控製器。它們分別是現場可編程邏輯門陣列(FPGA)以及專用集成電路(ASIC)。兩(liang)者(zhe)的(de)共(gong)同(tong)特(te)點(dian)首(shou)先(xian)是(shi)都(dou)采(cai)用(yong)了(le)硬(ying)件(jian)化(hua)的(de)布(bu)爾(er)邏(luo)輯(ji)算(suan)法(fa)。其(qi)次(ci),它(ta)們(men)都(dou)具(ju)有(you)高(gao)度(du)的(de)適(shi)應(ying)性(xing),能(neng)夠(gou)實(shi)現(xian)相(xiang)當(dang)豐(feng)富(fu)的(de)邏(luo)輯(ji)功(gong)能(neng)。這(zhe)些(xie)功(gong)能(neng)小(xiao)到(dao)簡(jian)單(dan)的(de)開(kai)關(guan)控(kong)製(zhi),大(da)到(dao)整(zheng)個(ge)微(wei)處(chu)理(li)器(qi)。再(zai)者(zhe),它(ta)們(men)都(dou)可(ke)以(yi)通(tong)過(guo)諸(zhu)如(ru)VHDL和Verilog之類的標準硬件描述語言(HDL)進行編程,不必動用由第三代或更高級編程語言編寫的軟件進行編程。
兩者的不同之處在於一次性工程成本(NRE)和可變成本,以及重複編程性、可測量性、開發時間(與產量有關)等方麵。
FPGA的特點是能夠被重複編程,從而為樣品開發提供了便利。此外,我們還能夠對FPGA進行產生調整和現場升級,從而加快了產品投放市場的速度。一款FPGA平台適用於多種產品,從而起到了平衡開發成本與資源的作用。如果我們采用ASIC或MCU作設計開發,那麼就無法得到這些優勢了。
維基百科把FPGA描述成一種包含了可編程邏輯器件(被稱為“邏輯模塊”)以及可編程互連網絡的半導體設備。邏輯模塊經過編程後能夠實現基本的邏輯門功能,例如與邏輯(AND)和異或邏輯(XOR),以及更複雜的複合邏輯功能,例如解碼器或數學運算功能。
ASIC是一種針對某種特殊應用定製的集成電路,它不具有通用性。例如,一款經過專門設計、用來實現手機中某項特定功能的芯片就是一種ASIC。
在設計一款全定製ASIC時,我們必須繪製出設備的整個光刻層。ASIC技術的NRE大部分消耗在將HDL代碼轉換為半導體結構階段。
無論是設計FPGA還是ASIC,都要先從編寫硬件描述語言(HDL)起步。但是在編寫HDL代碼之前,我們最好采用軟件或硬件仿真的方式來構建、測試並調試整個係統的算法。
算法的開發過程
一般而言,算法最初是作為一種係統工程策略,由用戶提出的使用要求所決定。
以一個機器人割草機為例。整個開發項目可能會從一次完整的計算機仿真開始。其中,處於開發階段的算法(AUD)是由C或C++程序模塊組合而成的。 這些模塊可能是借用了其他項目的開發成果,也可能是通過另外的多種途徑獲得的。
這zhe些xie模mo塊kuai由you一yi套tao專zhuan門men的de監jian控kong程cheng序xu調tiao用yong。監jian控kong程cheng序xu的de作zuo用yong是shi對dui嵌qian入ru式shi係xi統tong軟ruan件jian實shi行xing打da包bao操cao作zuo。它ta可ke以yi在zai桌zhuo麵mian開kai發fa係xi統tong上shang運yun行xing,而er且qie桌zhuo麵mian係xi統tong還hai可ke以yi同tong時shi運yun行xing電dian機ji、驅動器、傳感器以及圖形用戶界麵的的C或C++仿真模塊。
算(suan)法(fa)開(kai)發(fa)從(cong)一(yi)開(kai)始(shi)就(jiu)是(shi)在(zai)計(ji)算(suan)機(ji)上(shang)進(jin)行(xing)的(de),從(cong)而(er)保(bao)證(zheng)算(suan)法(fa)能(neng)夠(gou)完(wan)成(cheng)預(yu)訂(ding)的(de)功(gong)能(neng)並(bing)且(qie)時(shi)刻(ke)處(chu)於(yu)開(kai)發(fa)人(ren)員(yuan)的(de)掌(zhang)控(kong)之(zhi)中(zhong)。每(mei)一(yi)位(wei)明(ming)智(zhi)的(de)開(kai)發(fa)人(ren)員(yuan)都(dou)會(hui)在(zai)確(que)保(bao)算(suan)法(fa)正(zheng)確(que),並(bing)且(qie)不(bu)會(hui)出(chu)現(xian)潛(qian)在(zai)硬(ying)件(jian)隱(yin)患(huan)的(de)情(qing)況(kuang)下(xia)將(jiang)它(ta)移(yi)交(jiao)給(gei)測(ce)試(shi)工(gong)程(cheng)師(shi)。否(fou)則(ze),你(ni)最(zui)終(zhong)得(de)到(dao)的(de)將(jiang)是(shi)一(yi)台(tai)失(shi)控(kong)的(de)機(ji)器(qi)人(ren),就(jiu)像(xiang)科(ke)幻(huan)小(xiao)說(shuo)中(zhong)描(miao)述(shu)的(de)那(na)樣(yang)。簡(jian)直(zhi)就(jiu)是(shi)測(ce)試(shi)工(gong)程(cheng)101!
一(yi)旦(dan)算(suan)法(fa)被(bei)證(zheng)明(ming)能(neng)夠(gou)執(zhi)行(xing)正(zheng)確(que)的(de)操(cao)作(zuo),係(xi)統(tong)開(kai)發(fa)人(ren)員(yuan)就(jiu)可(ke)以(yi)將(jiang)它(ta)下(xia)載(zai)到(dao)第(di)一(yi)部(bu)機(ji)器(qi)人(ren)割(ge)草(cao)機(ji)樣(yang)機(ji)中(zhong),並(bing)且(qie)對(dui)它(ta)作(zuo)一(yi)係(xi)列(lie)測(ce)試(shi),以(yi)便(bian)開(kai)發(fa)硬(ying)件(jian)平(ping)台(tai)。對(dui)硬(ying)件(jian)開(kai)發(fa)程(cheng)序(xu)而(er)言(yan),算(suan)法(fa)在(zai)其(qi)中(zhong)扮(ban)演(yan)了(le)機(ji)器(qi)人(ren)測(ce)試(shi)向(xiang)導(dao)的(de)角(jiao)色(se)。
硬件子係統可能已經經過了基於PC的數據采集係統和控製係統的測試。但是,這些係統中的測試程序與AUDxiangbi,zhishiyongyouxiangtongdeyingjianjiekouguifaneryi,zaiqitafangmianbujuyouxiangsixing。erqie,gegeyingjianzixitongkenenghaimeiyouxietonggongzuoguo。yinci,xitongkaifadezuihouyigebuzhoujiushizhenghesuoyoudezixitong,bingqietongyitiaoshi。
係統集成最初可能是從在嵌入式單板計算機(SBC)上運行AUD開始的。這種計算機上運行的其實是用高級語言編寫,並經過硬件仿真調試的相同程序。這是AUD首次對實際硬件實行控製。
這zhe一yi階jie段duan,許xu多duo軟ruan硬ying件jian接jie口kou以yi及ji軟ruan硬ying件jian自zi身shen的de問wen題ti都dou會hui暴bao露lu出chu來lai。在zai嵌qian入ru式shi控kong製zhi係xi統tong中zhong,硬ying件jian與yu軟ruan件jian的de關guan係xi非fei常chang緊jin密mi,以yi至zhi於yu任ren何he一yi處chu硬ying件jian或huo軟ruan件jian的de改gai動dong都dou可ke能neng影ying響xiang到dao對dui方fang。正zheng是shi由you於yuSBC具有機動性和可重複編程的特點,我們才選中它來實現完整的係統調試。

嵌入式控製係統設計師可以先利用FPGA對硬件設計作調試。然後,在產品產量允許的前提下,轉而使用定製ASIC。
硬件實現
在我們解決了所有軟件和硬件問題之後,就可以推出一款在外觀和功能上都與最終產品十分接近的樣品。ASIC與FPGA需要相同的引腳分布,它們都會被安裝到一塊小型母板上。母板可以支持任意一款引腳位置與之吻合的芯片。
如果我們采用FPGA,那麼就需要在母板上額外增加一塊程序存儲芯片。這塊芯片內存儲了FPGA內部的互聯信息。當我們把AUD下載到硬件之後,就會形成這些信息。FP
GA采用了動態RAM技術。這種技術的致命缺陷是具有易失性,FPGA內部運行的程序在斷電之後會全部丟失。
這一階段,係統開發人員可能會采用FPGA進行設計。因為FPGA版本的控製模塊在引腳分布上可以做到與ASIC版本一致,而且FPGA還具有可重複編程的特點。FPGAdezhimingruodiantongshiyeshitazuishouqinglaidedifang。yinweizaixitongtouruxianchangyingyongzhiqian,kaifarenyuanhenkenenghuiduiruanjianzuoshengji。zheyangdehua,ruguowomenzhishiweileshengjiASIC程序就開發一款新產品,這樣做在成本方麵顯然是行不通的。
即使我們的設計最終成為了一款產量達到千位數的標準產品,FPGA在經濟性方麵仍然具有優勢。隻有在產量達到幾百萬甚至更多的情況下,將AUD轉換到ASIC所產生的大量NRE投入才可能被補償掉。當然,對於消費類產品而言,這樣的產量很快就能達到。
把AUD轉換為適用於FPGA的HDL程序可能很困難也可能很簡單。這一方麵要看我們采用什麼工具將已有的經過調試的軟件轉換為指定硬件的HDL代碼,另一方麵要看這種轉換是在哪一階段完成的。
例如,Mathworks正在與ASIC、FPGA供應商合作開發一套工具,幫助工程師將那些采用Matlab與Simulink編寫的AUD代碼轉換為HDL,另有一些工具能夠將C和C++代碼轉換為HDL。
當然,基本的測試表明,係統在經曆任何重大改變之後,都必須重新作一遍開發測試。為了確保FPGA芯片下載了HDL代碼之後確實能夠執行原始AUD所指定的操作,我們必須做仿真和測試。當我們從FPGA編程轉換到定製ASIC設計時,也會麵臨同樣的問題。
翻譯:翁思健