把相對成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域如通訊,視頻,信息處理等等開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶接受的產(chǎn)品這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問題,另外還有就是與專業(yè)客戶的界面問題產(chǎn)品設(shè)計還包括專業(yè)工具類產(chǎn)品及民用產(chǎn)品。FPGA因為具備接口,控制,功能IP,內(nèi)嵌CPU等特點有條件實現(xiàn)一個構(gòu)造簡單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計將是FPGA技術(shù)應(yīng)用最廣大的市場,具有極大的爆發(fā)性的需求空間產(chǎn)品設(shè)計對技術(shù)人員的要求比較高。為解決相關(guān)FPGA工程師及愛好者提供相關(guān)實際案例和電路參考,電子發(fā)燒友網(wǎng)隆重整合推出《FPGA設(shè)計實例全攻略》系列,后期會陸續(xù)推出相關(guān)章節(jié),以饗讀者,敬請關(guān)注。
一、遠程在線更新FPGA程序的方法
1 概述
現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)器件具有高密度、低功耗、高速、高可靠性等優(yōu)點,在航空航天、通信、工業(yè)控制等方面得到了大量應(yīng)用。FPGA的處理器分為軟核和硬核,并且軟核處理器具有高度的靈活性和可配置性。
由于FPGA器件采用的是SRAM工藝,在斷電的情況下FPGA內(nèi)的配置數(shù)據(jù)將丟失,所以需要非易失的存儲器來結(jié)合FPGA完成嵌入式系統(tǒng)的設(shè)計。EPCS(Erasable Programmable Configurable Serial)Flash屬于串行接口Flash,具有接口簡單、體積小、配置方便的特點,通常用來存儲FPGA的配置文件和NiosII的軟件可執(zhí)行代碼。在經(jīng)過合理的配置后,系統(tǒng)在上電后就可以從EPCSFlash中讀取這些文件來啟動整個系統(tǒng)。
為了能使系統(tǒng)得到更靈活的應(yīng)用,充分發(fā)揮FPGA的靈活性、高效性,F(xiàn)PGA的軟硬件程序都需要方便的更新和升級功能;而當(dāng)形成產(chǎn)品后,通過JTAG和NiosII IDE工具來聯(lián)合完成對EPCS Flash的更新燒寫很不方便。為此,本文結(jié)合Altera公司提供的工具,提出了一種遠程在線更新FPGA配置文件和NiosII程序文件的方法。
2 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。系統(tǒng)主要有上位機系統(tǒng)、FPGA系統(tǒng)、EPCS Flash三個主體部分。上位機系統(tǒng)提供人機交互的部分,F(xiàn)PGA系統(tǒng)包括NiosII處理器、EPCS控制器、網(wǎng)絡(luò)及串行接口和其他外部接口,EPCSFlash主要用于存儲FPGA的配置文件和Nios程序映像文件。上位機系統(tǒng)通過FPGA集成的網(wǎng)絡(luò)及串行接口來完成通信工作。
FPGA采用Altera公司的CycloneIII系統(tǒng)的EP3C40F48417N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多種可配置的時鐘源,最高支持100 MHz的外部時鐘源,具有16 Mb的存儲空間,足夠滿足一般的FPGA配置文件和Nios程序文件的存儲需要。
3 更新程序處理流程
更新FPGA的配置文件和NiosII的應(yīng)用程序的流程如圖2所示。
本方法把由NiosII IDE生成的FPGA配置文件和NiosII程序文件合并,并編程為一個可以直接執(zhí)行的、包含F(xiàn)PGA配置文件和NiosII程序文件的二進制BIN文件。然后把該文件通過X-modem協(xié)議由上位機系統(tǒng)傳輸給NiosII的應(yīng)用程序。NiosII的應(yīng)用程序接收到完整的BIN文件后,把該BIN文件寫入到EPCS Flash中。最后,Nios II的應(yīng)用程序停止看門狗,程序重新啟動,即完成了FPGA的遠程在線更新程序的過程。
4 合并程序文件
Nios II的啟動要經(jīng)歷兩個過程:
?、貴PGA器件本身的配置過程。如果內(nèi)部邏輯中使用了NiosII,則配置完成的FPGA中包含有NiosII軟核CPU。
?、贜iosII本身的應(yīng)用過程。一旦FPGA配置成功后,NiosII就被邏輯中的復(fù)位電路復(fù)位,從reset地址開始執(zhí)行代碼。
Nios II IDE將FPGA的配置文件(.sof文件)和應(yīng)用程序(.elf文件)轉(zhuǎn)成flash格式文件,轉(zhuǎn)換后的flash格式文件是一種S-Record格式數(shù)據(jù),包含如下區(qū)域:《type》《length》《address》《data》《checksum》。各字段的意思分別如下:《type》表示記錄的類型;《length》表示數(shù)據(jù)的長度;《address》表示數(shù)據(jù)寫入的起始地址,該字段的長度取決于《type》的取值;《data》表示存儲的數(shù)據(jù);《checknum》表示校驗位。
配置文件和應(yīng)用程序可能有多個段,每個段前面都插有一個“程序記錄”。一個“程序記錄”由2個32位的數(shù)據(jù)構(gòu)成,一個是32位的整數(shù),另一個是32位的地址,分別表示程序段本身的長度和程序段的運行時地址。其存儲布局如圖3所示。
為了在更新程序時把FPGA配置文件和Nios II應(yīng)用程序一起更新,把FPGA配置文件和Nios II應(yīng)用程序合并成一個文件,并且把合并后的Flash格式的文件轉(zhuǎn)換成不需要地址解碼就能直接執(zhí)行的二進制BIN文件。具體處理流程如圖4所示。
在合并程序的過程中,去掉了flash文件中的長度、目的地址等用于解析程序的信息,并且把程序映像由字符格式轉(zhuǎn)換為二進制格式。合并后的BIN文件包含F(xiàn)PGA配置文件和Nios II應(yīng)用程序,并且Nios II應(yīng)用程序緊挨在FPGA配置文件的后面,其存儲布局如圖5所示。
5 Nios II更新程序模塊處理
Nios II程序中的更新程序模塊主要負(fù)責(zé)從上位機接收合并后的可執(zhí)行BIN文件,并把該BIN文件寫入EPCSFlash,處理流程如圖6所示。
5.1 程序文件的傳輸
Nios II應(yīng)用程序中的更新程序模塊和上位機系統(tǒng)采用X-modem協(xié)議傳輸程序文件,X-modem協(xié)議是一種網(wǎng)口和串口通信中廣泛用到的異步傳輸協(xié)議。
如果在程序傳輸過程中出現(xiàn)錯誤,更新程序模塊能夠通過設(shè)置超時來退出更新程序的狀態(tài)。
5.2 對EPCS Flash的讀寫
由于EPCS Flash的串行配置器件定義了特殊的讀寫協(xié)議,所以Nios II程序只能通過Altera提供的HAL API(Application Program Inter face,應(yīng)用程序接口)來完成讀寫Flash。打開、關(guān)閉Flash設(shè)備的API為:alt flash open_dev()和alt_flash_close_dev()。操作Flash讀寫
的API為:alt_read_flash()和alt_write_flash_block()。清除Flash的API為alt_erase_falsh_block()。
結(jié)語
本文以提高FPGA遠程更新程序的方便性為目標(biāo),提出了一種基于EPCS Flash的遠程在線更新FPGA程序的方法,從而在應(yīng)用中能夠使基于FPGA的產(chǎn)品更加方便地維護升級。
二、利用FPGA實現(xiàn)與DS18B20的通信功能
1、概述
本文介紹利用ACTEL公司的ProASICplus系列FPGA實現(xiàn)與DS18B20的通信功能。FPGA可以將讀出DS18B20的48位ID號和12位溫度測量結(jié)果保存在內(nèi)部寄存器中,微處理器可以隨時快速地從FPGA寄存器中讀取這些信息。
一般在使用DS18B20時往往采用微處理器的I/O端口實現(xiàn)與該器件的通信,這種方法雖然比較容易和方便,但是,因為DS18B20的一線式串行總線對時序要求比較嚴(yán)格,因此,為了保證與DS18B20的通信可靠性,微處理器與DS18B20通信時需要采用關(guān)閉中斷的辦法,以防止操作時序被中斷服務(wù)破壞。
利用FPGA實現(xiàn)與DS18B20通信不存在被迫關(guān)閉中斷的情況,可以滿足對實時性要求嚴(yán)格的應(yīng)用要求。
2 ProASICplus系列FPGA簡介
ProASICplus系列FPGA是ACTEL公司推出的基于Flash開關(guān)編程技術(shù)的現(xiàn)場可編程門陣列,包括從7.5萬門的APA075型到100萬門的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重復(fù)編程等特點。
因為ProASICplus系列FPGA基于Flash技術(shù),利用Flash開關(guān)保存內(nèi)部邏輯,因此不需要另外的器件。由于不需要上電配置過程,因此具備上電就立即工作的特點。不用配置器件,系統(tǒng)的保密性提高。
筆者在電力監(jiān)控的產(chǎn)品中利用APA150型FPGA實現(xiàn)了邏輯控制、A/D采樣控制和FIFO存儲等功能,并利用剩余的資源實現(xiàn)了DS18B20的通信功能。APA150在整個系統(tǒng)中充當(dāng)協(xié)處理器,使主CPU從繁重的實時處理中解脫出來。
3 DS18B20簡介
3.1內(nèi)部結(jié)構(gòu)
DS18B20的內(nèi)部結(jié)構(gòu)如圖1所示,主要由以下幾部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH(溫度高)和TL(溫度低)、配置寄存器、暫存寄存器(SCRATCHPAD)、存儲器控制邏輯。DQ為數(shù)字信號輸入/輸出端。
ROM中的64(8位產(chǎn)品家族編號、48位ID號、8位CRC)位序列號是出廠前刻好的,這64位序列號具有惟一性,每個DS18B20的64位序列號均不相同。
8位CRC生成器可以完成通信時的校驗。
暫存寄存器有9個字節(jié),包含溫度測量結(jié)果、溫度報警寄存器、CRC校驗碼等內(nèi)容。
3.2操作步驟
對DS18B20的操作分為3個步驟:初始化、ROM命令和DS18B20功能命令。
3.2.1初始化
FPGA要與DS18B20通信,首先必須完成初始化。FPGA產(chǎn)生復(fù)位信號,DS18B20返回響應(yīng)脈沖。
3.2.2ROM命令
該步驟完成FPGA與總線上的某一具體DS18B20建立聯(lián)系。ROM命令有搜尋ROM(SEARCH ROM)、讀ROM(READ ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、報警查找等命令(ALARM SEARCH)。
這里,F(xiàn)PGA只連接1個DS18B20,因此只使用讀ROM命令,來讀取DS18B20的48位ID號。
3.2.3 DS18B20功能命令
FPGA在該步驟中完成溫度轉(zhuǎn)換(CONVERTT)、寫暫存寄存器(WRITE SCRATCHPAD)、讀暫存寄存器(READ SCRATCHPAD)、拷貝暫存寄存器(COPYSCRATCHPAD)、裝載暫存器寄存器(RECALL E2)、讀供電模式命令(READ POWER SUPPLY)。
文中不用溫度報警功能,因此在本步驟中只需完成溫度轉(zhuǎn)換,然后通過讀暫存寄存器命令完成溫度轉(zhuǎn)化的結(jié)果。
3.3操作時序
2所示。從時序圖中可以看出,對DS18B20的操作時序要求比較嚴(yán)格。利用FPGA可以實現(xiàn)這些操作時序。
4 FPGA與DS18B20的通信
4.1DS18B20的操作模塊
FPGA需要完成DS18B20的初始化、讀取DS18B20的48位ID號、啟動DS18B20溫度轉(zhuǎn)換、讀取溫度轉(zhuǎn)化結(jié)果。讀取48位ID號和讀取溫度轉(zhuǎn)換結(jié)果過程中,F(xiàn)PGA還要實現(xiàn)CRC校驗碼的計算,保證通信數(shù)據(jù)的可靠性。
以上操作反復(fù)進行,可以用狀態(tài)機來實現(xiàn)。狀態(tài)機的各種狀態(tài)如下:
RESET1:對DS18B20進行第一次復(fù)位,然后進入DELAY狀態(tài),等待800μs后,進入CMD33狀態(tài)。
CMD33:對DS18B20發(fā)出0×33命令,讀取48位ID值。
GET_ID:從DS18B20中讀取48位ID值。
RESET2:對DS18B20進行第二次復(fù)位,然后進入DELAY狀態(tài)等待800μs后,進入CMDCC狀態(tài)。
CMDCC:向DS18B20發(fā)出忽略ROM命令,為進入下一狀態(tài)作準(zhǔn)備。
CMD44:向DS18B20發(fā)出啟動溫度轉(zhuǎn)換命令,然后進入DELAY狀態(tài)等待900ms后進入下一狀態(tài)。
RESET3:對DS18B20進行第三次復(fù)位。
CMDCC2:
向DS18B20發(fā)出忽略ROM命令,為了進入下一狀態(tài)作準(zhǔn)備。
GET_TEMP:從DS18B20中讀取溫度測量數(shù)值。
DELAY:等待狀態(tài)。
WRITE_BIT:向DS18B20中寫入數(shù)據(jù)位狀態(tài)。
READ_BIT:從DS18B20中讀取數(shù)據(jù)位狀態(tài)。在該狀態(tài)中每讀取1位數(shù)據(jù),同時完成該數(shù)據(jù)位的CRC校驗計算。所有數(shù)據(jù)都讀取后,還要讀取8位CRC校驗位。這8位校驗位也經(jīng)過CRC校驗計算,如果通信沒有錯誤,總的CRC校驗結(jié)果應(yīng)該是0。這時可將通信正確的數(shù)據(jù)保存到id和temp_data寄存器中。
設(shè)計中采用Verilog語言建立DS18B20操作模塊”DS18B20_PROC”。在該模塊中實現(xiàn)以上的狀態(tài)機功能。該模塊的定義為module DS18B20?PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。
從仿真波形可以看出,系統(tǒng)上電后的10ms左右,F(xiàn)PGA可以讀出DS18B20的48位ID值,這樣,主CPU在系統(tǒng)復(fù)位后很短的時間內(nèi)就可以讀取ID值,進行相應(yīng)的處理。
4.2FPGA與CPU的接口
在FPGA中,要實現(xiàn)對DS18B20的通信處理,主模塊要實現(xiàn)對DS18B20_PROC模塊的調(diào)用及建立與CPU之間的接口。
與CPU之間的接口通過建立若干寄存器實現(xiàn)。溫度測量值和48位ID可以用4個16位寄存器保存。CPU通過讀取這些寄存器可以獲得溫度測量數(shù)值和48位ID值。
CPU、FPGA及DS18B20的連接原理如圖4所示。
5結(jié)束語
在系統(tǒng)中,F(xiàn)PGA可以分擔(dān)許多主處理器的工作,提高整體實時性,降低CPU處理的嚴(yán)格實時約束,從而降低CPU軟件處理的難度。同時,由于ACTEL公司的ProASICplus系列FPGA的保密特性,可以增強產(chǎn)品知識產(chǎn)權(quán)的保護。
三、片上芯片SoC挑戰(zhàn)傳統(tǒng)測試方案
SoC廠商如何在提高復(fù)雜器件傳輸速度的同時降低測試成本?
隨著先進的集成電路(IC)設(shè)計方法和高密度生產(chǎn)技術(shù)的使用,半導(dǎo)體廠商能夠把不同的數(shù)字和模擬電路集成在極小芯片上,其尺寸之小、功能之全尚無先例,我們稱之為系統(tǒng)芯片。盡管具有先進的設(shè)計和制造能力,可是IC廠商在對這些多元器件進行快速而又低成本地批量生產(chǎn)時,面對 空前的挑戰(zhàn)。當(dāng)把若干功能單元結(jié)合在一個單獨器件上時,今天的SoC器件為減少批量生產(chǎn)時間和測試成本,向傳統(tǒng)的測試方法發(fā)起挑戰(zhàn)。結(jié)果是,廠商們將更廣泛地研究新方法,這些新方法通過在設(shè)計和測試之間的有效平衡,提供了一個更有效地從事SoC設(shè)計、生產(chǎn)和測試的方案,并能夠同時做到減少其生產(chǎn)時間和測試費用。
特殊的挑戰(zhàn)
就SoC廠商來說,在一個競爭激烈的市場上,消費者對其在功能、性能和費用等方面的要求,又給他們平添了持續(xù)的壓力。SoC廠商將復(fù)雜的數(shù)字核與模擬功能集成在單芯片中,在功能和性能上能夠應(yīng)對市場多種用途的需求??墒窃谥圃爝^程中,SoC廠商發(fā)現(xiàn)設(shè)計和測試復(fù)雜性經(jīng)常會導(dǎo)致故障。隨 工藝技術(shù)的研制費用接近100萬美元,每次故障都使得成本負(fù)擔(dān)雪上加霜,并且拖延交貨期,加劇經(jīng)濟受損。工程師們發(fā)現(xiàn)在這樣的壓力下,無法充分發(fā)揮先進的工藝技術(shù)和制造水平的潛力。
對測試工程師來說,他們的測試面對 非常嚴(yán)峻的挑戰(zhàn),一是受測器件龐大的數(shù)量,二是多種受測電路復(fù)雜的程度。然而,測試工程師必須保證以最優(yōu)化的測試程序,采用最少最便宜的測試設(shè)備,在短時間內(nèi)完成測試。測試工程師還需要功能更強的混合信號測試儀來處理高端界面。而傳統(tǒng)的連續(xù)開發(fā)方法中測試故障的費用上升首先導(dǎo)致器件開發(fā)延遲,SoC廠商也將為此增加測試時間和費用及生產(chǎn)成本。
SoC測試中當(dāng)前的困境大多是由于采用早期幾代IC對測試要求不高而造成的。最新的設(shè)計雖提高了易測程度但仍缺乏應(yīng)對當(dāng)前流程中普遍問題的能力。在傳統(tǒng)的連續(xù)開發(fā)流程中(圖1a),設(shè)計工程師設(shè)計時所掌握的有關(guān)信息很少,可利用的測試設(shè)備也有限,因而可能在最終開始測試后很久才會發(fā)現(xiàn)所遇到的問題,造成額外費用并拖延時間。
SoC器件目前不斷增加的復(fù)雜程度,促使主要的廠商青睞采用更有效的SoC生產(chǎn)導(dǎo)向設(shè)計測試流程法(圖1b)。該方法使各個測試小組分工明確,測試研發(fā)工作平行展開。各測試小組集中攻關(guān)的結(jié)果是同步拿出最優(yōu)化的設(shè)計方案和更有效的測試程序。工程師們在轉(zhuǎn)移到大批量生產(chǎn)之前,就已充分掌握了器件性能。制造商可以有效平衡高配置的SoC平臺的靈活性,使其滿足不同新產(chǎn)品類型組合的需要,在實現(xiàn)快速批量供應(yīng)的同時,全面降低測試成本。
早期試驗進展
新測試流程建立在測試開發(fā)工具和設(shè)計工藝技術(shù)之上。多年來,工程師們倚賴專用的內(nèi)部工具將仿真向量轉(zhuǎn)變成測試設(shè)備使用的模式。SoC顯著地增加了這一轉(zhuǎn)變過程的復(fù)雜性。今天,更加先進的測試工具能夠與主要的電子設(shè)計自動化(EDA)供應(yīng)商所提供的流程一起運行。加上先進的循環(huán)運算法則,這些工具能夠把與各種復(fù)雜程度的電路相關(guān)聯(lián)的數(shù)據(jù)組合起來,并且制作一個單獨的測試模式和定時文檔。手頭掌握了這些統(tǒng)一的結(jié)果,測試工程師的工作會更有效。
圖1 生產(chǎn)測試和工程確認(rèn)的常規(guī)流程(a)和平行流程(b)
新SoC生產(chǎn)導(dǎo)向設(shè)計測試流程法的一個最重要特點是它能夠在開發(fā)循環(huán)的早期校驗測試程序。過去,測試工程師需要獲得第一塊芯片和可以排除故障的測試設(shè)備后才可以開始測試工作,這將把產(chǎn)量拖沿數(shù)星期。而今,由于具有了當(dāng)前先進的測試開發(fā)環(huán)境,測試工程師能夠利用數(shù)字式虛擬測試儀(DVT)的性能,提前進行調(diào)試試驗。虛擬測試法最適合數(shù)字電路。但EDA軟件現(xiàn)有的能力已有很大提高,EDA公司與測試公司已有很好的協(xié)作。因此,設(shè)計和測試工程技術(shù)能力擴展至模擬設(shè)計也就有了保障。
經(jīng)過改進的測試開發(fā)能力對所有SoC廠商都至關(guān)重要,對于無生產(chǎn)線的IC設(shè)計公司尤為重要。由于相比較而言,IC設(shè)計公司對外界的依賴程度高,因為在設(shè)計和測試之間存在一個地理上的差距,存在 交流困難問題。經(jīng)由外界的設(shè)計方案會加劇測試難題對生產(chǎn)延期和生產(chǎn)費用的影響。虛擬測試法讓IC設(shè)計公司在其現(xiàn)有的設(shè)計環(huán)境下進行調(diào)試試驗,以保證測試程序運轉(zhuǎn)正常并能更好地s了解潛在的測試設(shè)備問題。
交互式工程設(shè)計確證
對不知名的半導(dǎo)體公司和集成器件制造商(IDMs)來說,復(fù)雜的設(shè)計和先進的工藝技術(shù)的結(jié)合,要求提高與自動測試儀(ATE)上進行的生產(chǎn)測試截然不同的測試驗證能力。隨 工藝技術(shù)達到0.13μm或更細的線寬,先進的器件展示出不斷增加的效能,事實上也限制了多數(shù)生產(chǎn)用自動測試儀(ATE)在檢測更細微故障時的有效性。對許多廠商而言,復(fù)雜的SoC已致使傳統(tǒng)的測試方法愈加無效,并給生產(chǎn)和成本問題造成嚴(yán)重的瓶頸影響。
優(yōu)化的工程設(shè)計驗證測試系統(tǒng)的出現(xiàn),提供了與生產(chǎn)測試儀明顯有別的能力,達到了大幅度提高生產(chǎn)量的要求。工程技術(shù)系統(tǒng)為生產(chǎn)測試儀是非結(jié)果的判斷提供了詳細的原因分析。事實上,今天領(lǐng)先的工程設(shè)計驗證系統(tǒng)具有的記憶特性,能夠保留所有器件管腳上的完整數(shù)據(jù),以便工程師更容易地對器件功能做解剖研究--這是傳統(tǒng)的生產(chǎn)用自動測試儀(ATE)所無法達到的。
生產(chǎn)用自動測試儀(ATE)適合批量生產(chǎn)的需要,有賴于高度優(yōu)化的測試程序來確保采用最少的測試設(shè)備和花費最短的時間。相比較,工程技術(shù)驗證系統(tǒng)則適合交互式分析,為測試裝置和測量提供圖形用戶界面(GUI)。工程師們在此環(huán)境下可以更有效地進行為最優(yōu)化設(shè)計和調(diào)試所采用的交互式的假設(shè)分析。用在生產(chǎn)過程中,則有助于加速故障分析。當(dāng)今復(fù)雜的SoC需要更加精密復(fù)雜的診斷設(shè)備,如皮秒圖象電路分析(picosecond imaging circuit anal-ysis),激光電壓探針(laser voltage probe)和電子束系統(tǒng)(e-beam systems)。領(lǐng)先的工程設(shè)計系統(tǒng)直接向這類設(shè)備提供界面;工程師們借此利用外部的探頭裝置就能夠測試器件。
圖2 測試程序的核查準(zhǔn)備
低成本生產(chǎn)測試
SoC生產(chǎn)技術(shù)的成功,依靠的是廠商以最低的生產(chǎn)成本實現(xiàn)大量的生產(chǎn)能力。隨 制造商創(chuàng)造了結(jié)合先進數(shù)字電路和模擬功能的SoC,就需要不斷提高自動測試儀(ATE)的強大功能。芯片內(nèi)功能提高了數(shù)字?jǐn)?shù)據(jù)傳輸速率。而今,防火墻、千兆赫茲以太網(wǎng)和圖形加速接口等功能都集于芯片上,因此需要測試儀的數(shù)據(jù)速率要達到800Mbps或更高。制造商們正在尋找適應(yīng)性強和容易升級的操作平臺以滿足新要求,而非過去那樣追加投資,開發(fā)新一代產(chǎn)品。
對于混合信號的SoC,可配置的ATE系統(tǒng)在經(jīng)濟上可以承受大批量生產(chǎn)對測試功能和靈活性的要求。模塊式結(jié)構(gòu)是這些系統(tǒng)的核心,為制造商提供了一個適應(yīng)性強的高性能共享測試平臺。就IC電路的總體而言,大功率多性能ATE能夠滿足SoC日益增加的功能條件,如管腳的增加、速度的提高、對液體冷卻的需求等。好在先進的冷卻設(shè)計可以選用空氣冷卻高速高功耗的CMOS電路,而降低了ATE的復(fù)雜性。
系統(tǒng)設(shè)計和檢測儀表性能的改善顯著地減少了ATE的費用,加上應(yīng)用了各種程序開發(fā)工具語言,增加了測試開發(fā)環(huán)境的功效。工程師們利用共享圖形用戶界面(GUI)和現(xiàn)有測試程序模板,使現(xiàn)有的測試程序符合特定的測試用途,從而提高了生產(chǎn)效率。這種以模板為基礎(chǔ)的方法把測試開發(fā)時間削減了數(shù)周,這對于把握SoC市場稍縱即逝的機會格外重要。
在產(chǎn)業(yè)開始復(fù)蘇的今天,對市場機會的快速應(yīng)變能力是SoC制造業(yè)重于一切的要務(wù)。在現(xiàn)有條件下取得最大效益的能力,對于制造商仍然非常關(guān)鍵。系統(tǒng)兼容性在高效的開發(fā)環(huán)境及生產(chǎn)測試設(shè)備中是一個日益重要的特性,將有助于使生產(chǎn)能力達到最高水平。廠商通過有效配置所有測試設(shè)備,把測試轉(zhuǎn)移到最有效的平臺上進行,不斷滿足生產(chǎn)條件的變化要求。
四、四軸運動控制器設(shè)計方案
引言
運動控制技術(shù)是制造自動化的關(guān)鍵基礎(chǔ),其水平高低是衡量一個國家工業(yè)現(xiàn)代化的重要標(biāo)志,研究和開發(fā)具有開放式結(jié)構(gòu)的運動控制器是當(dāng)前運動控制領(lǐng)域的一個重要發(fā)展方向。設(shè)計了一種基于DSP與FPGA的運動控制器。該控制器以DSP和FPGA為核心器件,針對運動控制中的實時控制、高精度等具體問題,規(guī)劃了DSP的功能擴展,并在FPGA上擴展了功能相互獨立的四軸運動控制電路。該電路實現(xiàn)了四路控制信號輸出,四路編碼信號的接收和處理,以及原點信號,正負(fù)限位信號等數(shù)字量的接收和處理。具有結(jié)構(gòu)簡單、開放性、模塊化等特點,能夠較好的滿足運動控制器的實時性和精確性。
1 系統(tǒng)概述
該四軸運動控制器系統(tǒng)以TI公司C2000系列DSP芯片TMS320F2812和ALTERA公司CycloneⅡ系列FPGA芯片EP2C8F256C6為核心,DSP通過網(wǎng)口接收上位機的控制參數(shù),完成系統(tǒng)位置、速度控制及運動軌跡規(guī)劃;FPGA完成運動控制器的精確插補功能和外圍電路的擴展,系統(tǒng)總體框圖如圖1所示。
運動控制器的主要功能包括:4路模擬電壓輸出,電壓范圍為-10~+10V,分辨率為16b;4路脈沖量信號輸出;4路脈沖方向信號輸出;4路驅(qū)動復(fù)位信號輸出;4路驅(qū)動使能信號輸出;4路差分編碼信號輸入;4路驅(qū)動報警信號輸入;8路正負(fù)限位信號輸入;4路原點信號輸入;16路通用數(shù)字量。I/O。
2 DSP模塊設(shè)計
DSP根據(jù)從上位機接收的運動模式和運動參數(shù)實時計算規(guī)劃位置和規(guī)劃速度,生成所需的速度曲線,實時的輸出規(guī)劃位置。TMS320F2812是TI推出的一款專門用于電機控制的32位定點DSP芯片,采用高性能靜態(tài)CMOS技術(shù),主頻高達150MHz(指令周期6.67ns),低功耗,核心電壓為1.8V,I/O電壓3.3V,支持JTAG邊界掃描,128K×16b的片內(nèi)FLASH。有兩個事件管理器(EVA和EVB),它們都是特定的外圍設(shè)備,為多軸運動控制器而設(shè)計的??赏ㄟ^外部存儲器接口XINTF擴展外部存儲器。DSP外圍模塊設(shè)計如圖2所示。
為增強抗干擾性,DSP通過以太網(wǎng)控制器RTL8019AS與上位機連接,RTL8019AS內(nèi)部含有一個16KB的SDRAM,DSP通過外部存儲器接口對其進行讀寫來接收上位機的命令或向上位機傳送反饋信號。在數(shù)據(jù)處理過程中要占用大量的存儲空間,DSP內(nèi)部僅含有18K×16b的SARAM和128K×16b的FLASH,存儲空間顯得過小,所以通過外部接口擴展了256K×16b RAM和512K×16b FLASH,RAM和FLASH芯片分別選擇IS61LV25616 AL、SST39VF800,它們都具有接口簡單、讀寫速度快等優(yōu)點。SCI模塊用于擴展RS 232串行通信接口,串口芯片使用MAX3232。
運動控制器所需電壓為5V,3.3V,1.8V,1.2V。輸入電壓5V,分別采用穩(wěn)壓芯片LM1085IS3.3,LM1117-1.8將其轉(zhuǎn)換成3.3V和1.8V,由于TMS320F2812的I/O電壓3.3V要先于內(nèi)核電源上電,所以1.8V要由3.3V降壓得到,以確保上電次序。1.2V是FPGA內(nèi)核所需電壓,由穩(wěn)壓芯片LM317S穩(wěn)壓得到,LM317S的輸出電壓范圍為1.2~25V,復(fù)位電路采用SP708低功耗微處理器監(jiān)控器件,此器件有眾多的組件,有效的增強了系統(tǒng)的可靠性及工作效率。
3 FPGA模塊設(shè)計
FPGA用于軸資源的擴展,當(dāng)接收到DSP中的規(guī)劃位置后,在軸資源中對其進行變換處理,輸出到伺服控制器中,伺服控制器將規(guī)劃位置與編碼反饋的計數(shù)位置進行比較,獲得跟隨誤差,并通過伺服控制算法得到實時的控制量,將控制量傳遞給D/A轉(zhuǎn)換器,由D/A轉(zhuǎn)換器轉(zhuǎn)換成控制電壓輸出。
EP2C8F256C6是ALTERA公司CycloneⅡ系列芯片,其特點為高性能低功耗,內(nèi)核供電電壓為1.2V,8256個邏輯單元(LEs),182個用戶I/O口(項目中使用了157個I/O口),165888b的內(nèi)部RAM,嵌入了18b的乘法器,每個乘法器又可拆成2個9b的乘法器,芯片內(nèi)部含有2個鎖相環(huán)(PLL),8個全局時鐘(Global Clocks)。該芯片所具有的邏輯單元數(shù)、頻率和用戶I/O口等都能很好的滿足設(shè)計需求。FPGA的外圍模塊擴展如圖3所示。
3.1 與DSP接口設(shè)計
DSP芯片的事件管理器(EVA,EVB)用于和FPGA連接,當(dāng)輸出脈沖量控制驅(qū)動器時,DSP使用兩個事件管理器進行PWM波的控制,當(dāng)輸出模擬量時,DSP使用GPIOA/GPIOB向FPGA輸出規(guī)劃位置。
3.2 模擬信號輸出電路設(shè)計
采用D/A轉(zhuǎn)換器AD669進行模擬信號的輸出,AD669具有兩級鎖存,在設(shè)計中,將其四路D/A芯片的第一級鎖存處于透明狀態(tài),第二級鎖存控制信號LDAC連在一起,當(dāng)四路D/A芯片的數(shù)據(jù)預(yù)裝好后,打開第二級鎖存,四路D/A芯片即可同時轉(zhuǎn)換,實現(xiàn)了四軸驅(qū)動的同時控制。
3.3 脈沖信號輸出電路設(shè)計
脈沖輸出電路由FPGA內(nèi)部精插補器完成,精插補器根據(jù)DSP發(fā)送來的粗插補數(shù)據(jù)產(chǎn)生均勻的脈沖輸出,脈沖的輸出有兩種格式:“脈沖+方向”和“正負(fù)脈沖”。由于差分信號對外部電磁等信號有很好的抗干擾性,特別是對共模干擾有很好的抑制作用。所以脈沖經(jīng)過光耦隔離后,再將信號接入差分線驅(qū)動器AM26LS31后輸出,差分線驅(qū)動器AM26LS31的作用是將輸入的單極性方波信號轉(zhuǎn)化為一對極性相反的電機驅(qū)動信號。
3.4 編碼反饋電路設(shè)計
電機編碼信號直接傳入電機驅(qū)動器中,電機驅(qū)動器將三對差分編碼信號A+,A-,B+,B-,N+,N-作為反饋傳給運動控制器。在電機旋轉(zhuǎn)時,所發(fā)出的編碼信號會出現(xiàn)非常多的毛刺,并且經(jīng)過驅(qū)動器大電源的干擾,如果直接接到FPGA中,可能會引起誤判斷,所以先將三對編碼信號經(jīng)過差分芯片AM26LS32轉(zhuǎn)化成單路信號A,B,N后再接入FPGA中。芯片AM26LS32功能是將輸入的一對極性相反的編碼器差分信號轉(zhuǎn)化成單極性的脈沖信號,與AM32LS31正好相反。
3.5 開關(guān)量接口和通用I/O電路設(shè)計
輸出信號包括復(fù)位信號和使能信號,由FPGA產(chǎn)生,經(jīng)光耦隔離后直接輸出;輸入信號包括驅(qū)動報警信號,正負(fù)限位信號和原點信號,這些信號經(jīng)光耦隔離、電平轉(zhuǎn)換后再由FPGA接收,當(dāng)FPGA檢測到這些信號后,確定具體的觸發(fā)信號,做出相應(yīng)的反應(yīng)。另外運動控制器還提供了八路數(shù)字量輸入通道和八路數(shù)字量輸出通道,輸入、輸出通道都經(jīng)光電隔離,以提高抗干擾性。
4 網(wǎng)口模塊設(shè)計
DSP通過以太網(wǎng)控制器RTL8019AS與上位機連接,RTL8019AS在一塊芯片上集成了RTL8019AS內(nèi)核和一個16KB的SDRAM存儲器,兼容RTL8019AS控制軟件和NE20008b或16b傳輸,其接口符合Ethernet2和IEEE802.3標(biāo)準(zhǔn)。RTL8019AS與主機的接口模式有三種模式:跳線模式,PnP模式,RT模式。此運動控制器使用便于DSP應(yīng)用的跳線模式。DSP與RTL8019AS的連接如圖4所示。
?。?)數(shù)據(jù)總線和地址總線。RTL8019AS的數(shù)據(jù)總線和DSP的16位數(shù)據(jù)總線直接相連即可。RTL8019AS片內(nèi)NE2000寄存器組都是通過其映射I/O端口進行訪問,I/O端口共32個,地址偏移量為00H~1FH,把I/O基地址設(shè)為300H,則對應(yīng)的I/O端口尋址范圍為:300H~31FH。只需要10根地址線就可以對I/O端口進行尋址,把SA10~SA19接低電平,SA0~SA9按照表1接法即可。
由表1可以看出,只需要5根地址線就可以尋址32位I/O端口,所以可以直接把SA9,SA8接高電平,SA5~SA7接低電平,SA0~SA4與DSP的低5位地址線XA0~XA4相接。
?。?)控制總線。RTL8019AS片選信號AEN使用DSP的擴展片選信號
,IORB、IOWB直接與DSP的讀寫控制信號
相連,中斷輸出引腳INT0與DSP的XINT2相連,高電平有效的復(fù)位輸入引腳與監(jiān)控電路芯片SP708的RST相連,當(dāng)DSP復(fù)位時,RTL8019AS也復(fù)位。
?。?)RTL8019AS與網(wǎng)絡(luò)介質(zhì)接口。RTL8019AS可以使用同軸電纜或雙絞線作為傳輸媒介,將其AUI接口接地或懸空,使用BNC接口。BNC接口方式支持8線雙絞線或同軸電纜。20F001N是雙絞線驅(qū)動器,為耦合隔離變壓器模塊,通過它可以去除因電路數(shù)字特性導(dǎo)致的高次諧波。RTL8019AS與20F001N的連接如圖4所示。其差分輸入信號TPIN+、TPIN-與差分輸出信號TPOUT+、TPOUT-分別與20F001的對應(yīng)引腳相連。
5 結(jié)語
在PC平臺下,充分利用了DSP的數(shù)據(jù)處理能力和FPGA的硬件特性,使系統(tǒng)既能進行復(fù)雜的軌跡規(guī)劃、高速插補,又能保證運動控制器的穩(wěn)定性和精確性,這種運動控制器能應(yīng)用于數(shù)控系統(tǒng),機器人制造等控制領(lǐng)域。
評論
查看更多