《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于異構(gòu)多核運動控制器的高速接口設(shè)計
基于異構(gòu)多核運動控制器的高速接口設(shè)計
2017年電子技術(shù)應(yīng)用第3期
梁建紅,,羅 亮,劉知貴,,萬博雨
西南科技大學 信息工程學院,,四川 綿陽621000
摘要: 隨著制造領(lǐng)域?qū)η度胧竭\動控制系統(tǒng)應(yīng)用范圍的擴大,基于異構(gòu)多核的嵌入式控制器必為重要發(fā)展方向之一,。首先說明異構(gòu)多核控制器取得成效,,以及現(xiàn)有控制器在數(shù)據(jù)通信接口方面存在缺陷,。本設(shè)計運動控制器以異構(gòu)處理器——OMAPL138+FPGA為核心,,OMAPL138內(nèi)部集成ARM9和DSP C6748處理器核,。ARM9內(nèi)嵌Liunx操作系統(tǒng),以增強控制器多任務(wù)協(xié)調(diào)能力,;DSP不運行操作系統(tǒng),,可保證運算實時性。重點闡述ARM與DSP,、DSP與FPGA以及控制器與PC之間通信的高速接口設(shè)計和固件設(shè)計,。通過實驗表明:該運動控制器數(shù)據(jù)交換速率高,,吞吐量大,穩(wěn)定性高,,為異構(gòu)多核控制器高速通信接口提供參考。
中圖分類號: TN919,;P209
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.002
中文引用格式: 梁建紅,,羅亮,劉知貴,,等. 基于異構(gòu)多核運動控制器的高速接口設(shè)計[J].電子技術(shù)應(yīng)用,,2017,43(3):12-15,,20.
英文引用格式: Liang Jianhong,,Luo Liang,Liu Zhigui,,et al. Design of high-speed interface of motion controller based on the heterogeneous multi-core[J].Application of Electronic Technique,,2017,43(3):12-15,,20.
Design of high-speed interface of motion controller based on the heterogeneous multi-core
Liang Jianhong,,Luo Liang,Liu Zhigui,,Wan Boyu
College of Information Engineering,,Southwest University of Science and Technology,Mianyang 621000,,China
Abstract: With the development of the embedded motion control system, the embedded controller based on heterogeneous multi-core will be one of the important development directions. In this paper, it firstly describes the effectiveness of heterogeneous multi-core controller, as well as the defects of existing controller in data communication interface. The heterogeneous processor“OMAPL138+FPGA” is the core of the motion controller in this design, OMAPL138 internal integrated ARM9 and DSP C6748 processor core. ARM9 has embedded Liunx operating system to enhance the coordination of multi-tasking controller. And DSP does not run the operating system to ensure real-time computing. This paper focuses on ARM and DSP, DSP and FPGA and the high-speed interface design and firmware design of the communication between controller and PC. Experiments show that the data exchange rate of the motion controller , the throughput and the stability are high, which provides reference for the high speed communication interface of heterogeneous multi - core controller.
Key words : heterogeneous multi-core,;motion controller;high-speed interface,;OMAPL138,;FPGA

0 引言

    在嵌入式運動控制系統(tǒng)中,無論是ARM[1],、DSP[2]還是FPGA[3]都擁有著不可替代的地位,。ARM處理器與運動控制芯片結(jié)合,實現(xiàn)了高精度四軸運動控制器[1],。文獻[2]采用DSP+FPGA構(gòu)建完成六軸焊錫機器人控制,,DSP主要完成運動控制算法,F(xiàn)PGA完成精插補以及IO擴展,。文獻[3]利用ARM較強人機接口能力,、DSP的計算能力以及FPGA的接口擴展靈活性,完成CNC系統(tǒng)的優(yōu)異控制,。

    隨著制造領(lǐng)域?qū)η度胧竭\動控制系統(tǒng)應(yīng)用范圍的擴大,,要求控制系統(tǒng)能在復(fù)雜環(huán)境下完成多種不同的任務(wù)[4],,多核協(xié)同處理必將成為嵌入式控制系統(tǒng)的發(fā)展方向。多核協(xié)同處理的數(shù)據(jù)交互效率都必將影響到整個控制系統(tǒng)的性能,,文獻[2]在FPGA中開辟雙端FIFO接口實現(xiàn)DSP與FPGA之間進行數(shù)據(jù)交互,,雙端FIFO大小之間關(guān)系到數(shù)據(jù)交互的效率;文獻[3]中ARM與DSP之間采用一片大容量FPGA作為橋梁,,并對ARM和DSP進行分別編址,,軟件設(shè)計要求提高,增加硬件成本和PCB板布線難度,,通信穩(wěn)定性也不可保障,;文獻[5]中對于DSP與ARM之間通過外擴接口通信,且控制器與外界通信采用通信速率較低的RS232方式,,影響控制系統(tǒng)的控制效率[5],。

    隨著微電子技術(shù)的快速發(fā)展,單硅片內(nèi)可嵌多個處理器核,,比如TI公司推出多核處理器OMAPL138,。采用OMAPL138完成了數(shù)字接收機高速接口設(shè)計[6],在RAM與DSP之間采用支持雙操作系統(tǒng)通信的SysLink組件,,調(diào)用該組件的APP函數(shù)完成雙核通信,,簡化雙核通信復(fù)雜性。DSP引入操作系統(tǒng),,削弱運算能力,。本文采用OMAPL138+FPGA為核心處理器,ARM9運行Linux系統(tǒng),,完成系統(tǒng)多任務(wù)切換和管理,;DSP不運行操作系統(tǒng),保證DSP計算實時性,,雙核通信由共享內(nèi)存空間,;FPGA主要產(chǎn)生脈沖信號以及IO口擴展。文中詳細闡述PC與ARM,、ARM與DSP以及DSP與FPGA之間通信接口設(shè)計和固件設(shè)計,。

1 系統(tǒng)設(shè)計方案

    本系統(tǒng)采用OMAPL138+FPAG作為嵌入式運動控制器核心,OMAPL138是一款異構(gòu)多核處理器,,內(nèi)部集成ARM9和DSP C6748內(nèi)核[7],。ARM9可以植入嵌入式系統(tǒng)Linux,完成任務(wù)調(diào)度,,增強控制器多任務(wù)的協(xié)同處理能力,;DSP C6748具有硬件乘法器,采用128 bit位寬的超強指令集(VLIW)讀寫指令,,可完成復(fù)雜算法,;FPGA具有豐富IO資源和并行處理能力,,方便脈沖信號產(chǎn)生,實現(xiàn)多電機同步控制,。

    控制器與外界通信主要有兩個接口:以太網(wǎng)和串行通信口(UART),,以太網(wǎng)主要用于遠距離傳輸,UART主要用于Linux系統(tǒng)移植時提示信息和系統(tǒng)運行狀態(tài)信息的輸出,。ARM與DSP之間通過共享內(nèi)存空間完成數(shù)據(jù)交互,,穩(wěn)定性高,通信所用時間可以忽略不計[8],。DSP與FPGA之間通過uPP高速并行接口,,當OMAPL138時鐘頻率為456 MHz時,,uPP接口時鐘頻率可以達到114 MHz,,控制器高速接口框圖如圖1所示。

yg2-t1.gif

    圖1可以看出,,控制器與外界通信使用的PHY芯片有LAN8710A和CP2102,,LAN8710A主要用于網(wǎng)絡(luò)通信中MAC與網(wǎng)絡(luò)層之間互聯(lián),CP2102主要實現(xiàn)USB2.0與串行通信口(COM)之間通信協(xié)議轉(zhuǎn)換,,ARM9與DSP之間通過OMAPL138內(nèi)部交互中心資源(SCR)總線完成數(shù)據(jù)交互,。

1.1 PC與ARM通信——網(wǎng)絡(luò)通信

    PC與控制器接口通過網(wǎng)絡(luò)實現(xiàn),由網(wǎng)絡(luò)接口RJ45完成數(shù)據(jù)交互,。嵌入式系統(tǒng)中,,常用的TCP/IP網(wǎng)絡(luò)協(xié)議為4層,簡化原OSI的7網(wǎng)絡(luò)協(xié)議層,,4層協(xié)議分別為應(yīng)用層,、網(wǎng)絡(luò)層、傳輸層以及物理層,。系統(tǒng)中由OMAPL138集成EMAC模塊實現(xiàn)數(shù)據(jù)鏈路層,,物理層使用Microchip公司的專用PHY芯片LAN7810A實現(xiàn)。LAN8710A具有高性能,、小封裝,、低功耗等特性,廣泛應(yīng)用于商業(yè),、工業(yè)類電子產(chǎn)品以及消費類電子產(chǎn)品中,。符合IEEE802.3標準,支持自協(xié)商機制,,可自行裁定通信速率和傳輸模式,。

    LAN8710A與OMAPL138集成外部接口MII互聯(lián),硬件連接圖如圖2所示,。LAN8710A外接時鐘25 MHz,,通過內(nèi)部PLL倍頻到100 MHz,,提供發(fā)送和接收數(shù)據(jù)時鐘MII RXCLK和MII TXCLK,JRJ-138EHNL是內(nèi)嵌LED指示燈和網(wǎng)絡(luò)變壓器的RJ45接口,,在PCB設(shè)計需要考慮:10/100 MB/s網(wǎng)絡(luò)傳輸4根線為2組差分信號,,PCB走線需要按照差分規(guī)則,阻抗匹配為100 ?贅,;MII RXD[3..0]和MII TXD[3..0]兩組線需并行走線,。

yg2-t2.gif

1.2 ARM與DSP的通信設(shè)計——共享內(nèi)存

    本設(shè)計采用異構(gòu)多核處理器——OMAPL138作為核心處理器,OMAPL138內(nèi)部集成ARM9和DSP C6748兩個內(nèi)核,。OMAPL138硬件支持內(nèi)存空間共享,,本系統(tǒng)內(nèi)存共享主要包括128 KB內(nèi)部存儲區(qū)(128 KB Inter Memory)、256 KB DSP L2數(shù)據(jù)存儲區(qū)以及256MB外擴DDR2的Nand Flash;數(shù)據(jù)交互過程中消息通知通過中斷方式完成,,中斷源如圖3所示,。圖中左右兩端分別代表DSP和ARM處理器,DSP INTC代表DSP端中斷控制器,,ARM INTC代表ARM中斷控制器,,配置各自INTC可使能或者屏蔽中斷源。SYSCFG_CHIPINT[4]直接指向DSP內(nèi)核,,觸發(fā)不可屏蔽中斷(NMI),,中斷優(yōu)先級最高;SYSCFG_CHIPINT[0..1]只能觸發(fā)ARM核產(chǎn)生中斷,;SYSCFG_CHIPINT[2..3]為雙向箭頭,,該寄存器既可以觸發(fā)ARM中斷也可以觸發(fā)DSP中斷,本設(shè)計SYSCFG_CHIPINT[2]觸發(fā)DSP中斷,,SYSCFG_CHIPINT[2]觸發(fā)ARM中斷,。軟件框架采用DSP端不運行操作系統(tǒng),ARM端運行Linux操作系統(tǒng),,DSP不運行操作系統(tǒng),,保證復(fù)雜算法運行實時性,ARM運行Linux系統(tǒng),,方便多任務(wù)管理,。

yg2-t3.gif

    通信流程設(shè)計采用基于互斥鎖的循環(huán)鏈表,互斥鎖目的保護數(shù)據(jù),,當ARM或者DSP在向共享內(nèi)存空間寫數(shù)據(jù)時,,另一核不能對該塊數(shù)據(jù)進行讀寫操作。循環(huán)鏈表增加交互數(shù)據(jù)緩沖大小,,數(shù)據(jù)塊相互獨立,,互不影響。ARM有數(shù)據(jù)向DSP發(fā)送時,數(shù)據(jù)就放在MessageQueue中,,并通過置位SYSCFG_CHIPINT[2]觸發(fā)DSP產(chǎn)生中斷,,告知DSP處理器ARM有數(shù)據(jù)向DSP發(fā)送,同樣DSP也可以向ARM發(fā)送數(shù)據(jù),。MessageQueue首塊數(shù)據(jù)和末塊數(shù)據(jù)引入互斥鎖,,整個流程如圖4所示。

yg2-t4.gif

1.3 DSP與FPGA接口設(shè)計——uPP

    OMAPL138主要有兩個高速并行接口uPP和EMIF[9],,兩外設(shè)都可以被ARM或者DSP核分別訪問,,EMIF主要是用于存儲IC連接,如果與FPGA連接時,,F(xiàn)PGA主要作為協(xié)處理使用[10],;uPP是一種專用數(shù)據(jù)線和最小的控制信號的雙通道高速并行接口,雙通道都支持8~16 bit寬傳輸,,數(shù)據(jù)通信時鐘頻率可達內(nèi)核運行頻率的1/2,,在內(nèi)核運行時鐘為456 MHz時,數(shù)據(jù)通信IO操作頻率可達114 MHz,。那么uPP理論最大通信速率為1 824 Mb/s,;若兩個通道并行傳輸,,則傳輸速率為3 648 Mb/s,。如此高速傳輸速率是SPI傳輸速率的20多倍,能滿足許多DSP與FPGA傳輸速率的實時性要求,,文獻[11]采用USB3.0進行數(shù)據(jù)傳輸,,傳輸速率最高也才達到260 Mb/s。DSP端uPP接口支持直接內(nèi)存存儲(DMA),,減少CPU占有率,。每通道使用Enable、Start和Wait進行接口控制,,uPP功能IO描述如表1所示,。

yg2-b1.gif

    uPP支持傳輸和接收兩種模式,傳輸單位為字,,意味每傳輸2個字節(jié),,控制信號Enable、Start和Wait作用都可以發(fā)送變化,。本設(shè)計中將uPP工作在雙邊沿工作模式,,在Clock的上升沿和下降沿都可以發(fā)送和接收數(shù)據(jù),有效提高通信速率,。DSP端uPP為傳輸模式時,,時鐘信號需DSP端提供,方便通信同步,,通信時序圖如圖5(a)所示,,uPP首先發(fā)送Start和Enable信號,,數(shù)據(jù)就開始發(fā)送,如果接收到FPGA端Wait信號有效,,DSP端就會等待FPGA端將Wait信號置低才會繼續(xù)發(fā)送數(shù)據(jù),;DSP端uPP為接收模式時,F(xiàn)PGA為uPP提供時鐘信號,,在Start開始觸發(fā)信號和Enable同時為電平時,,DSP端才開始接收信號,當Enable信號為低時,,F(xiàn)PGA會暫停發(fā)送uPP數(shù)據(jù),,時序如圖5(b)所示。

yg2-t5.gif

2 接口測試

2.1 ARM與PC通信

    ARM與PC通信,,其核心是兩個不同操作系統(tǒng)之間的網(wǎng)絡(luò)通信,。ARM移植Linux操作系統(tǒng),通過在PC端使用TCP調(diào)試助手,,Linux運行bwm-ng網(wǎng)絡(luò)調(diào)試助手,,通過兩邊數(shù)據(jù)發(fā)送與接收,可以測試通信速率和通信正確性,。通過測試PC上傳速率最高達75 MB/s,,PC下行速率最高達20 MB/s,比文獻[6]所實現(xiàn)的網(wǎng)絡(luò)通信速率要高,,原因是文獻[6]中OMPAL138內(nèi)部兩處理器核運行主頻為300 MHz,,本設(shè)計運行主頻456 MHz。

2.2 ARM與DSP通信測試

2.2.1 通信速率測試

    ARM與DSP之間通信主要通過共享內(nèi)存方式完成,,測試通信速率,,主要通過使用DSP內(nèi)置64位(TSCH、TSCL)計時器作為通信時間標準,。設(shè)計中將unsigned char類型4 096長度數(shù)組先初始化為0×55,,相當于4 K數(shù)據(jù)包。每次計數(shù)器開始計數(shù)前都清零,,接著讀取一次計時器值(TSCH0,,TSCL0),完成測試后再重新讀取計時器(TSCH1,,TSCL1)的值,,通過下式計算所需時間(單位:s):

     yg2-gs1.gif

    每次讀寫數(shù)據(jù)都是4 kb,那么通信ARM與DSP通信速率(單位:kb/s)就可以通過下式計算:

    yg2-gs2.gif

    無論是測試ARM向共享內(nèi)存中寫數(shù)據(jù)速率,、讀速率,,還是DSP向共享內(nèi)存中寫數(shù)據(jù)速率、讀數(shù)據(jù)速率,以及ARM向DSP發(fā)送數(shù)據(jù)速率,、DSP向ARM發(fā)送數(shù)據(jù)速率,,都可以通過式(1)、式(2)進行計算,。通過互斥鎖引入,,增加通信緩沖區(qū)大小,方便信息有效交換,。測試中選用OMAPL138內(nèi)部三個不同區(qū)域作為共享區(qū)域,,128 KB內(nèi)部存儲區(qū)、256 KB DSP L2存儲區(qū)以及外擴256 MB DDR2存儲區(qū),,對兩個存儲區(qū)進行讀寫操作,,計算通信速率,通過CCS仿真查看變量結(jié)果如圖6所示,,其速度單位為Mb/s,。

yg2-t6.gif

    圖6結(jié)果可以看出,離DSP內(nèi)核越近,,數(shù)據(jù)的讀寫速率就越快,,DSP L2存儲區(qū)讀寫速率最快,共享內(nèi)存和DDR2外部存儲器的讀寫數(shù)據(jù)速率要慢許多,,但是最慢通信速率已經(jīng)達到190 Mb/s,,對于ARM與DSP之間通信,已可以滿足大部分案例的讀寫速率,。

2.2.2 通信穩(wěn)定性測試

    采用芯片級封裝異構(gòu)多核處理OMAPL138,,ARM與DSP通信通過共享內(nèi)存空間方式完成,,穩(wěn)定性好,。在分離ARM與DSP核之間與共享內(nèi)存ARM與DSP之間通信,分別計數(shù)接收數(shù)據(jù)正確次數(shù),,得到表2的對比結(jié)果,。

yg2-b2.gif

    表2可以看出,ARM與DSP分離在進行2 500次發(fā)送和接收實驗中,,正確次數(shù)比例與共享內(nèi)存空間次數(shù)相近,,在4 500次實驗中,可以明顯看出共享內(nèi)存通信成功次數(shù)明顯比分離元件要高很多,。分離ARM與DSP通信,,采用數(shù)據(jù)總線和地址總線并行PCB布線,在時鐘節(jié)拍下完成指定地址空間數(shù)據(jù)通信,。在高速通信下,,一方面時鐘線和數(shù)據(jù)線存在電平變形,高低電平造成接收方誤判;另一方面數(shù)據(jù)線直接存在電磁干擾,,這也是造成錯誤接收的原因,。共享內(nèi)存空間不存在分離ARM和DSP的問題,共享內(nèi)存數(shù)據(jù)錯誤主要來自雙核通信同步性問題,,ARM與DSP向共享數(shù)據(jù)空間讀寫時刻發(fā)生沖突,。通過軟件設(shè)計上,采用互斥鎖循環(huán)鏈表可以完全解決誤碼接收問題,。

2.3 DSP與FPGA通信測試

    本設(shè)計中DSP與FPGA通信,,采用16位位寬雙邊沿發(fā)送、接收數(shù)據(jù)的uPP接口,。DSP數(shù)據(jù)手冊配置寄存器,,主要包括uPP時鐘、IO端口復(fù)用,、通信模式等,。FPGA需要根據(jù)圖5時序圖,完成時序代碼編寫,,通過Behavioral仿真,,可以得到FPGA端uPP發(fā)送以及uPP接收仿真波形,如圖7所示,。

yg2-t7.gif

    在圖8中,,無論是uPP發(fā)送還是接收,都是雙邊沿有效,。在圖8(a)中,,只要當DSP端發(fā)送Wait信號為高電平時,程序就會發(fā)送無用數(shù)據(jù)-1,,并且會等待Wait信號為低才會發(fā)送下一個有效數(shù)據(jù),。按照2.2.1的方式可以測試出DSP端通過uPP發(fā)送給FPGA,F(xiàn)PGA通過相同返回所有發(fā)出數(shù)據(jù),,計算uPP通信速率為356 MB/s,,該數(shù)據(jù)與理論uPP通信速率慢,主要是DSP端代碼優(yōu)化的問題,,但如此高速的數(shù)據(jù)交換速率已經(jīng)足以滿足許多應(yīng)用場合,。

3 結(jié)論

    本文設(shè)計以異構(gòu)多核處理器OMAPL138+FPGA為核心,OMAPL138內(nèi)部集成ARM9和DSP C6748核,,ARM9處理器運行Liunx系統(tǒng),,DSP為保證算法實時性,不運行操作系統(tǒng),。ARM9與DSP之間數(shù)據(jù)交換通過共享內(nèi)存空間,,軟件設(shè)計采用采用基于互斥鎖的循環(huán)鏈表,,實驗表明硅片集成雙核通信速率較高、穩(wěn)定性較好,;DSP與FPGA之間通信,,通過并行接口uPP,實驗對FPGA端通信時序進行仿真,,測試通信DSP端到FPGA,,通過FPGA回傳到DSP的速率為356 MB/s;控制器與PC通信,,通過網(wǎng)絡(luò)接口完成,,上傳和速率都較高。本文對于異構(gòu)多核嵌入式控制器高速通信接口提供比較完善的解決方案,,具有較強的參考價值,。

參考文獻

[1] 徐海林,惠晶.基于ARM和PCL6045BL的四軸運動控制器設(shè)計[J].江南大學學報(自然科學版),,2014,,13(2):132-136.

[2] 馬永超,羅亮,,劉知貴.六軸焊錫機器人運動控制器的設(shè)計[J].機械設(shè)計與制造,,2015(10):168-171.

[3] 董海濤,莊淑君,,陳冰,,等.基于ARM+DSP+FPGA的可重構(gòu)CNC系統(tǒng)[J].華中科技大學學報:自然科學版,2012,,40(8):82-87.

[4] 曹建福,,汪霖.模塊化工業(yè)機器人嵌入式控制系統(tǒng)的研究[J].控制工程,2013(2):289-294.

[5] 何國軍,,陳維榮,,劉小強,等.基于DSP與FPGA的運動控制器設(shè)計[J].電子技術(shù)應(yīng)用,,2009,,35(7):35-37.

[6] 李朝海,羅超,,黃東輝.基于OMAP-L138的數(shù)字接收機高速傳輸系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2014,,40(7):6-8,,12.

[7] Texas-Instruments. OMAPL138 C6-Integra DSP + ARM processor[M].2009.

[8] 陸小虎,于東,,胡毅,,等.基于異構(gòu)多核處理器的嵌入式數(shù)控系統(tǒng)研究[J].中國機械工程,,2013(19):2623-2628.

[9] Texas-Instruments.OMAPL138 C6000 DSP + ARM low-power Silicon errata(Revs2.1.2.0,1.1&1.0) (Rev.H)[M].2011.

[10] 周委,陳思平,,趙文龍,,等.基于DSP EMIF口及FPGA設(shè)計并實現(xiàn)多DSP嵌入式系統(tǒng)[J].電子技術(shù)應(yīng)用,2008,,34(6):39-42.

[11] 徐永,,齊心,陶智勇.基于USB3.0的GPP軟件無線電系統(tǒng)的硬件平臺設(shè)計[J].電子技術(shù)應(yīng)用,,2013,,39(2):103-106.



作者信息:

梁建紅,羅  亮,,劉知貴,,萬博雨

(西南科技大學 信息工程學院,四川 綿陽621000)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。