張偉文,高偉強(qiáng),林 淦,劉建群,閻秋生
(廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣東廣州 510006)
OMAP-L138 DSP與FPGA通信方案設(shè)計(jì)
張偉文,高偉強(qiáng),林 淦,劉建群,閻秋生
(廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣東廣州 510006)
針對雙刀頭高性能柔性材料切割數(shù)控系統(tǒng),結(jié)合OMAP-L138+FPGA控制系統(tǒng)的數(shù)據(jù)傳送需求以及平臺資源,提出一種OMAP-L138的DSP通過EMIFA接口與FPGA的FIFO進(jìn)行數(shù)據(jù)通信的設(shè)計(jì)方案,DSP將處理后的數(shù)據(jù)通過EMIFA接口傳送到FPGA的異步緩存FIFO模塊。FIFO在接收DSP發(fā)送的高速數(shù)據(jù)的同時(shí),將緩存的數(shù)據(jù)輸出。通過邏輯分析儀實(shí)驗(yàn)測試驗(yàn)證,該方案能夠?qū)崿F(xiàn)數(shù)據(jù)的正確通信。
OMAP-L138;FPGA;EMIFA;FIFO;異步緩存
OMAP-L138是美國TI公司生產(chǎn)的基于達(dá)芬奇(DaVinci)技術(shù)的ARM+DSP雙核處理器,具有ARM926EJ-S和C674X高速浮點(diǎn)DPS兩個(gè)異構(gòu)內(nèi)核,采用OMAP-L138+FPGA雙芯片構(gòu)建數(shù)控系統(tǒng)的硬件平臺,能夠滿足高性能數(shù)控系統(tǒng)對界面層、控制層和設(shè)備層開發(fā)的要求。異構(gòu)多核結(jié)構(gòu)系統(tǒng)中,各處理器之間的實(shí)時(shí)通信將直接影響整個(gè)控制系統(tǒng)的性能及可靠性,其中ARM與DSP的通信通過共享內(nèi)存方式進(jìn)行數(shù)據(jù)交互,而DSP與FPGA常用的通信接口主要有總線型接口、存儲型接口、串口型接口、主機(jī)型接口和特殊接口。其中總線接口開發(fā)難度較大,需要協(xié)議支持;串口接口開發(fā)簡單,但是速率較慢;特殊接口不具備通用性,需要修改DSP驅(qū)動(dòng),開發(fā)周期長。
根據(jù)OMAP-L138+FPGA控制系統(tǒng)對數(shù)據(jù)傳輸量的需求及控制以及平臺的資源,選擇EMIF接口作為DSP與FPGA之間的通信接口方案。由于FP?GA開發(fā)端并沒有EMIF總線接口,需要進(jìn)行編程完成接口功能。通常情況下采用FPGA的雙端口RAM或者FIFO來協(xié)調(diào)實(shí)現(xiàn)[1-3]。因此,本文針對雙刀頭高性能柔性材料切割系統(tǒng)的需求,采用OMAP-L138+FPGA雙芯片設(shè)計(jì)了數(shù)控系統(tǒng)硬件平臺,提出一種OMAP-L138 DSP通過EMIFA接口與FPGA的FIFO進(jìn)行數(shù)據(jù)通信的設(shè)計(jì)方案,實(shí)現(xiàn)了DSP與FPGA的高速實(shí)時(shí)通信。
本文研究的柔性材料切割系統(tǒng)要求有兩個(gè)數(shù)控切割刀頭,分別控制兩組X-Y-C軸和Z軸4軸刀頭運(yùn)動(dòng)切割皮革、布料等柔性材料。其中C軸是導(dǎo)向控制軸,用于刀刃方向?qū)-Y輪廓的跟隨控制。該系統(tǒng)是8軸進(jìn)給,雙3軸聯(lián)動(dòng)運(yùn)動(dòng)控制系統(tǒng)。因此,硬件系統(tǒng)不但要有強(qiáng)大的插補(bǔ)運(yùn)算能力,還有設(shè)備驅(qū)動(dòng)的擴(kuò)展要求。
根據(jù)要求,硬件系統(tǒng)由OMAP-L138和Cy?clone II FPGA組成(如圖1所示)。系統(tǒng)劃分為界面層、控制層和設(shè)備層三部分。界面層由ARM內(nèi)核基于Linux操作系統(tǒng)開發(fā),主要提供人機(jī)操控界面、數(shù)控程序管理、文件服務(wù)、上位機(jī)通訊和系統(tǒng)維護(hù)等功能??刂茖釉贒PS內(nèi)核基于DPS/BIOS實(shí)時(shí)操作系統(tǒng)開發(fā),主要完成數(shù)控軌跡前瞻、運(yùn)動(dòng)加減速規(guī)劃、雙三聯(lián)動(dòng)插補(bǔ)、刀向跟隨運(yùn)動(dòng)、雙刀頭干涉避讓、刀尖Z向補(bǔ)償?shù)瓤刂婆c計(jì)算。設(shè)備層由FPGA實(shí)現(xiàn),主要實(shí)現(xiàn)對伺服驅(qū)動(dòng)的數(shù)字/脈沖轉(zhuǎn)換控制,并提供各種I/O信號的處理功能。
圖1 8軸OMAP-L138+FPGA柔性材料切割數(shù)控系統(tǒng)結(jié)構(gòu)
2.1 OMAP-L138 DSP硬件接口EMIFA介紹
EMIFA是外部存儲器件和OMAP-L138 DSP的接口,提供64 bit寬度的外部總數(shù)據(jù)接口,也可以作為32 bit寬度使用;共支持4個(gè)大小32 M異步外部存儲器,可以通過配置外接不同類型的存儲設(shè)備,包括同步突發(fā)靜態(tài) RAM(SB?SRAM)、同步動(dòng)態(tài)RAM(SDRAM)、各種異步設(shè)備(SRAM、ROM和FIFO)以及同步FIFO[4]。圖2為OMAP-L138 DSP EMIFA接口的功能模塊圖。
圖2 OMAP-L138 DSP的EMIFA接口功能模塊
2.2 FPGA與EMIFA的硬件接口及讀寫時(shí)序
如圖3所示為FPGA與EMIFA的硬件接口連接圖。OMAP-L138 DSP的EMIFA與FIFO通信數(shù)據(jù)為16位,選取片選空間/EMA_CS[4]。其中,F(xiàn)P?GA工作時(shí)鐘為EMIFA工作時(shí)鐘(EMA_CLK, 100 MHz),/EMA_WE為DSP往FPGA寫入數(shù)據(jù)的判別信號,/EMA_OE為DSP讀取FPGA數(shù)據(jù)的判別信號。
圖3 FPGA和DSP之間的接口連接圖
如圖4所示為FPGA與EMIFA的接口寫時(shí)序圖,從中可以看出,DSP往FPGA寫入數(shù)據(jù)需要三個(gè)步驟:建立(Setup)、寫入(Strobe)和保持(Hold)。同時(shí),把單個(gè)數(shù)據(jù)所占時(shí)長設(shè)計(jì)為7個(gè)主時(shí)鐘周期,前2個(gè)時(shí)鐘周期設(shè)為建立時(shí)間,/EMA_WE從第3個(gè)時(shí)鐘周期開始置低并保持3個(gè)周期長度,這樣就保證了有充足的時(shí)間用于數(shù)據(jù)寫入準(zhǔn)備。在/EMA_WE的兩次寫入低電平之間需保證2個(gè)時(shí)鐘周期以上的時(shí)間用于數(shù)據(jù)保持。FPGA就在這個(gè)時(shí)刻進(jìn)行數(shù)據(jù)采樣,完成數(shù)據(jù)的傳輸。
圖4 EMIFA與FPGA的FIFO的接口寫時(shí)序圖
如圖5所示為FPGA與EMIFA的接口讀時(shí)序圖。與寫時(shí)序一樣,DSP讀取FPGA數(shù)據(jù)同樣需要三個(gè)步驟:建立(Setup)、寫入(Strobe)和保持(Hold),各個(gè)階段所占時(shí)長與寫時(shí)序一致。本次設(shè)計(jì)DSP讀取的FPGA數(shù)據(jù)為FIFO的數(shù)據(jù)存儲個(gè)數(shù),在/EMA_OE為低電平時(shí)完成數(shù)據(jù)的讀取。
圖5 EMIFA與FPGA的接口讀時(shí)序圖
FIFO(First In First Out)是一種先進(jìn)先出的數(shù)據(jù)緩存器,而異步FIFO是用一種時(shí)鐘寫入數(shù)據(jù),用另一種時(shí)鐘讀出數(shù)據(jù)[5]。本次設(shè)計(jì)中,F(xiàn)PGA選用Cyclone II系列的EP2C8,F(xiàn)IFO深度為4 M。如圖6所示,為異步緩存模塊設(shè)計(jì)框圖。其中,clk為FPGA工作時(shí)鐘 (CLK,100 MHz),rdclk為clk通過分頻模塊得到的時(shí)鐘,大小為4 kHz。
圖6 異步緩存模塊設(shè)計(jì)框圖
3.1 讀寫請求的產(chǎn)生
(1)基于字面匹配的語義相似度計(jì)算方法。比較典型的有基于LCS[8]、TF-IDF[9]的語義相似度計(jì)算方法?;贚CS的語義相似度計(jì)算方法是利用2個(gè)文本中詞語的最大公共子串的長度來計(jì)算文本之間的相似度;基于TF-IDF的語義相似度計(jì)算方法是將文本建模成詞頻向量,運(yùn)用余弦相似度來衡量文本之間的相似度。這類方法的優(yōu)點(diǎn)是計(jì)算速度快、工作量小,缺點(diǎn)是忽略了詞語的語義信息,需要人工設(shè)定停用詞表。
根據(jù)FPGA與DSP EMIFA接口的寫時(shí)序圖(如圖4所示),DSP往FPGA寫入單個(gè)脈沖數(shù)據(jù)時(shí),/EMA_CS[4]拉低并持續(xù)7個(gè)寫時(shí)鐘周期,/ EMA_WE拉低并持續(xù)3個(gè)寫時(shí)鐘周期。而FIFO在寫時(shí)鐘的上升沿檢測到寫請求(wrreq)為高電平時(shí),寫入一次數(shù)據(jù)。因此,為了避免FIFO重復(fù)寫入同一脈沖數(shù)據(jù),寫請求應(yīng)該在每一個(gè)/EMA_WE信號的下降沿產(chǎn)生(有效,即置高),并持續(xù)一個(gè)寫時(shí)鐘周期。寫請求產(chǎn)生模塊如圖7所示,其中clk配置外接DSP的EMA_CLK引腳,awe_n外接/ EMA_WE,wrreq為寫請求。
FIFO讀出數(shù)據(jù)和寫入數(shù)據(jù)原理一致,在讀時(shí)鐘的上升沿檢測到讀請求(rdreq)為高電平時(shí),讀出一個(gè)數(shù)據(jù)。本次設(shè)計(jì)中,讀時(shí)鐘頻率設(shè)置為4 kHZ。FIFO在讀時(shí)鐘下讀出的每個(gè)數(shù)據(jù)持續(xù)時(shí)間為250μs,因此,F(xiàn)IFO在讀出第一個(gè)數(shù)據(jù)開始,讀請求信號(rdreq)應(yīng)該一直有效、置高。為了保證數(shù)據(jù)的連續(xù)性,讀請求信號(rddreq)在FIFO的存儲個(gè)數(shù)大于等于4個(gè),直到rdempty為高電平時(shí)置低。圖8為讀請求產(chǎn)生模塊,其中,rdclk接由clk通過分頻模塊產(chǎn)生的時(shí)鐘信號,rdempty和fifo_n分別接FIFO的rdempty信號和wrusedsw信號。
圖7 寫請求產(chǎn)生模塊
圖8 讀請求產(chǎn)生模塊
3.2 DSP讀取FPGA的FIFO存儲個(gè)數(shù)
本次設(shè)計(jì)中FIFO存儲容量(深度)設(shè)置為4 M,由于DSP往FPGA的FIFO寫入數(shù)據(jù)的速度遠(yuǎn)遠(yuǎn)高于FIFO讀出數(shù)據(jù)的速度,勢必會造成FIFO存儲數(shù)據(jù)的溢出。為了避免數(shù)據(jù)溢出造成的數(shù)據(jù)丟失和紊亂,DSP在每次通信中應(yīng)該先查詢FPGA的FIFO的存儲數(shù)據(jù)個(gè)數(shù)。若存儲個(gè)數(shù)低于上限值,DSP繼續(xù)往FPGA傳送數(shù)據(jù);否則,DSP停止往FPGA傳送數(shù)據(jù)。本次設(shè)計(jì)中,設(shè)置允許DSP往FPGA傳送數(shù)據(jù)的上限為200個(gè),即50組脈沖數(shù)據(jù)包。
DSP和FPGA開始工作時(shí),上電復(fù)位。在DSP與FPGA的通信過程中,DSP在每次通信前,先獲取FPGA的FIFO存儲個(gè)數(shù)fifo_n。當(dāng)fifo_n小于規(guī)定的上限值(本次設(shè)計(jì)設(shè)置為200)時(shí),DSP發(fā)送一次數(shù)據(jù)包。如此循環(huán),直到數(shù)據(jù)發(fā)送完畢,最后停止通信。
FPGA在兩者通信過程中處于從屬狀態(tài),當(dāng)DSP需要讀取FIFO存儲個(gè)數(shù)fifo_n時(shí),F(xiàn)PGA只需把fifo_n賦值給通信數(shù)據(jù)DATA;當(dāng)DSP發(fā)送數(shù)據(jù)包時(shí),F(xiàn)PGA將接收的數(shù)據(jù)依次寫入FIFO中。與此同時(shí),當(dāng)FIFO存儲數(shù)據(jù)的個(gè)數(shù)超過4個(gè)時(shí),開始讀出數(shù)據(jù),直到FIFO為空。圖9為接口實(shí)現(xiàn)程序流程圖。
圖9 程序流程圖
如圖10所示,為基于OMAP-L138和FPGA的異構(gòu)雙核嵌入式系統(tǒng)測試板。DSP接口軟件設(shè)計(jì)主要是通過TI公司的集成開發(fā)環(huán)境CCS3.3軟件,利用支持庫文件對EMIFA相關(guān)寄存器進(jìn)行配置。本次設(shè)計(jì)為了便于實(shí)驗(yàn)分析驗(yàn)證,EMIFA配置程序主要實(shí)現(xiàn)了DSP往FPGA的FIFO中重復(fù)寫入10、20、30、40、11、21、31、41數(shù)據(jù)。
圖10 控制平臺測試板
經(jīng)過邏輯分析儀實(shí)驗(yàn)驗(yàn)證分析,能夠?qū)崿F(xiàn)正確符合設(shè)計(jì)要求的數(shù)據(jù)通信。將本次設(shè)計(jì)完成的OMAP-L138與FPGA之間的通信方案應(yīng)用到柔性材料數(shù)控系統(tǒng)中,OMAP-L138將進(jìn)行了插補(bǔ)運(yùn)算后的數(shù)據(jù)通過該方案傳輸給FPGA,再由FPGA進(jìn)行數(shù)據(jù)脈沖轉(zhuǎn)換輸出同步脈沖驅(qū)動(dòng)8軸實(shí)現(xiàn)雙刀頭3軸聯(lián)動(dòng)插補(bǔ)控制。運(yùn)用了該方案的雙刀頭高性能柔性材料切割系統(tǒng)已開發(fā)完畢,并投入到生產(chǎn)線上,已于深圳某鞋業(yè)公司穩(wěn)定運(yùn)行生產(chǎn),獲得了預(yù)期效果。因此,本次基于異步緩存FIFO的DSP EMIFA與 FPGA的通信方案能夠?qū)崿F(xiàn)OMAMP-L138與FPGA的正確通信。
圖11 邏輯分析儀測試結(jié)果
[1]李樂.DSP+FPGA折反射全景視頻處理系統(tǒng)中雙核高速數(shù)據(jù)通信[J].電子與信息學(xué)報(bào),2010,32(3):649-654.
[2]胡彬,陳濤.TMS320C6713DSPEMIF接口與FPGA雙口RAM接口設(shè)計(jì)[J].測試測量技術(shù),2008(10):32-35.
[3]任勇屹,張祺,韋忠正.一種FPGA和TMS320DM642的通信方案[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(7):298-300.
[4]Texas Instruments.External Memory Interface A(EMI?FA)[R].December 2011.
[5]胡波,李鵬.異步FIFO在FPGA與DSP通信中的運(yùn)用[J].電子科技,2011,24(3):53-61.
(編輯:向 飛)
圖9 T1和T2同時(shí)在t=0.1 s故障時(shí)MLD模型中三相電流
圖10 T1和T2同時(shí)在t=0.1 s故障時(shí)三相電流殘差
參考文獻(xiàn):
[1]崔博文,任章,陳劍,等.逆變器供電的電動(dòng)機(jī)變頻調(diào)速系統(tǒng)實(shí)時(shí)故障檢測[J].電機(jī)與控制學(xué)報(bào),2006(01):54-56.
[2]崔博文,任章,陳劍,等.逆變器供電的感應(yīng)電機(jī)驅(qū)動(dòng)系統(tǒng)故障仿真研究[J].電機(jī)與控制學(xué)報(bào),2007,11(1):578-583.
[3]仇志凌.基于LCL濾波器的三相三線并網(wǎng)變流器若干關(guān)鍵技術(shù)研究[D].杭州:浙江大學(xué),2009.
[4]安群濤.三相電機(jī)驅(qū)動(dòng)系統(tǒng)中逆變器障診斷與容錯(cuò)控制策略研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2011.
第一作者簡介:羅 凱,男,1986年生,江西南昌人,碩士研究生。研究領(lǐng)域:船舶電力推進(jìn)及其控制。
Design on Communication between OMAP-L138 DSP and FPGA
ZHANG Wei-wen,GAO Wei-qiang,LIN Gan,LIU Jian-qun,YAN Qiu-sheng
(School of Electromechanical Engineering,Guangdong University of Technology,Guangzhou510006,China)
A data communication design between OMAP-L138 DSP and FPGA FIFO is proposed with the data transfer requirement of OMAPL138+FPGA control system and the platform resources for High performance flexible materials pole head CNC cutting system.DSP transmits the processed data to FPGA via the asynchronous FIFO with EMIFA interface.And the FIFO receivers the high-speed data from DSP,while outputting data from the asynchronous FIFO.The design is verified to achieve the correct communication with the laboratory tests by logic analyzer.
OMAP-L138;FPGA;EMIFA;FIFO;asynchronous cache
TP273
B
1009-9492(2015)10-0115-05
10.3969/j.issn.1009-9492.2015.10.029
張偉文,男,1989年生,廣東汕尾人,碩士研究生。研究領(lǐng)域:數(shù)控技術(shù)。
崔博文,男,1966年生,博士,教授。研究領(lǐng)域:電力電子技術(shù)、電力電子系統(tǒng)故障診斷技術(shù)。
(編輯:向 飛)
2015-04-15