《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于OMAP3530數(shù)控系統(tǒng)的雙核通信設(shè)計
基于OMAP3530數(shù)控系統(tǒng)的雙核通信設(shè)計
2015年電子技術(shù)應(yīng)用第9期
楊劍波,趙東標,劉 念
(南京航空航天大學 機電學院,江蘇 南京210016)
摘要: OMAP3530是TI公司針對開放式多媒體應(yīng)用平臺推出的一款高性能嵌入式微處理器?;贒SP/BIOSTM LINK的軟件構(gòu)架對ARM和DSP進行一種新型通信方式的設(shè)計。其中ARM端運行嵌入式Linux系統(tǒng),完成譯碼、人機交互、數(shù)據(jù)管理等任務(wù);DSP端運行DSP/BIOS實時系統(tǒng),完成粗插補、刀具補償和邏輯控制等任務(wù)。通過任務(wù)中斷服務(wù)和時間片輪詢法來實現(xiàn)數(shù)控系統(tǒng)多任務(wù)的準并行運行。使用雙核通信完成ARM和DSP在數(shù)控信息上的溝通、協(xié)調(diào)。系統(tǒng)采用上下位機模式,大大提升數(shù)控系統(tǒng)實時性和插補性能。
中圖分類號: TP273
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.09.008

中文引用格式: 楊劍波,趙東標,劉念. 基于OMAP3530數(shù)控系統(tǒng)的雙核通信設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(9):33-35,38.
英文引用格式: Yang Jianbo,Zhao Dongbiao,Liu Nian. Design of dual core communication based on OMAP3530 CNC system[J].Application of Electronic Technique,2015,41(9):33-35,38.
Design of dual core communication based on OMAP3530 CNC system
Yang Jianbo,Zhao Dongbiao,Liu Nian
College of Mechanical and Electronic Engineering,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China
Abstract: OMAP3530 is a high-performance embedded microprocessor designed by TI company for open multimedia application platform. A new type communication method is designed between the ARM and DSP based on DSP/BIOSTM LINK software framework. Particularly, Linux operating system is embedded on ARM side, to implement decoding, human-computer interaction and data management tasks. DSP/BIOS real-time operating system is embedded on DSP side, to execute rough interpolation, cutter compensation and logic control tasks. The system can realize quasi parallel operation of multi task through task interrupt service and time slice round-robin method and complete communication between ARM and DSP through dual-core communication. The system uses master-slave computer control mode, which greatly enhances the real-time performance and the interpolation of CNC system.
Key words : OMAP3530;dual-core communication;DSPLINK;time slice round-robin method

  

0 引言

  OMAP3530是TI公司推出的一款高性能移動應(yīng)用處理器[1]。OMAP3530在單一芯片上無縫集成一個600 MHz ARM Cortex-A8內(nèi)核和一個具有卓越運算能力和超低功耗的430 MHz TMS320C64x+ DSP內(nèi)核,單個ARM在人機交互、網(wǎng)絡(luò)通信、多任務(wù)處理上有著很大的優(yōu)勢,但是其計算能力有所不足;DSP有著強大的計算和數(shù)據(jù)處理能力,但是在任務(wù)分配上難度較大。因此,充分利用兩個處理器各自的優(yōu)勢,把ARM和DSP結(jié)合起來使用能夠大大提升數(shù)控系統(tǒng)的性能。本數(shù)控系統(tǒng)使用ARM+FPGA上下位機控制[2],上位機由ARM Cortex-A8控制核心和DSP運算核心組成,完成譯碼、粗插補、加減速控制、圖形界面顯示等任務(wù);下位機由FPGA電機控制子系統(tǒng)和CPLD輔助控制子系統(tǒng)組成,完成精插補、系統(tǒng)I/O輸入輸出、位置控制等任務(wù)。為了能夠使ARM核和DSP核更好地協(xié)調(diào)配合,共同完成實時多任務(wù)的數(shù)控系統(tǒng)軟件體系,本文使用DSPLINK進行雙核之間的通信,設(shè)計了一種地址指針傳遞的雙核通信方式,大大提升數(shù)控系統(tǒng)的性能。

1 數(shù)控系統(tǒng)硬件平臺設(shè)計

  1.1 上位機系統(tǒng)設(shè)計


001.jpg

  上位機由集成了控制核心ARM和運算核心DSP的OMAP3530處理器組成,如圖1所示,ARM、 DSP、存儲器以及各種通信接口均連接在片內(nèi)L3總線上,其中ARM用于數(shù)控系統(tǒng)的控制和資源管理,完成NC代碼譯碼、MST控制、數(shù)控圖形界面管理以及人機交互等任務(wù);DSP用于數(shù)控系統(tǒng)的高密度的計算,完成數(shù)控系統(tǒng)粗插補、刀具補償以及加減速控制等需要大量運算的任務(wù),為數(shù)控系統(tǒng)的實時性提供有力的保障。上位機提供豐富的外設(shè)資源,外接的256 MB LPDDR為數(shù)控系統(tǒng)軟件提供大量的內(nèi)存空間,256 MB NAND Flash用于存儲數(shù)控系統(tǒng)文件和一些運行相關(guān)的參數(shù)文件;外接的LCD顯示器用于數(shù)控系統(tǒng)圖形界面的顯示;MMC/SD以及USB接口用于數(shù)控系統(tǒng)加工程序代碼的輸入以及數(shù)控系統(tǒng)的升級等;標準RS232接口用于與PC進行遠程通信;此外片上還集成以太網(wǎng)的接口,用于遠程通信、診斷和操作功能的實現(xiàn)。上位機通過GPMC(系統(tǒng)外部總線)與下位機進行通信;向下位機發(fā)送粗插補和速度控制的信息,為下位機進行精插補做準備,并接收下位機傳輸?shù)臄?shù)控系統(tǒng)按鍵信息、I/O輸入和位置控制信息并及時作出響應(yīng)。

  1.2 下位機系統(tǒng)設(shè)計


002.jpg


  下位機由大規(guī)??删幊踢壿嬁刂破鱂PGA和CPLD構(gòu)成,電機控制子系統(tǒng)FPGA采用Altera公司ACEX系列的EP1K100QC208,片上有豐富的邏輯資源和I/O端口資源,可以為數(shù)控系統(tǒng)提供大量的脈沖發(fā)生、脈沖計數(shù)和I/O控制能力。采用FPGA作為電機控制子系統(tǒng)大大簡化了硬件電路,具有高速、并行處理、穩(wěn)定性高、抗干擾性強等特點。輔助控制子系統(tǒng)CPLD選用Altera公司EPM1270芯片,完成FPGA的配置、矩陣鍵盤的控制以及外擴系統(tǒng)I/O端口的控制功能。本文使用一種改進的串行配置策略對FPGA進行配置[3],如圖2所示,CPU把存放在NAND Flash中的配置數(shù)據(jù)通過外部系統(tǒng)總線發(fā)送到CPLD,然后CPLD產(chǎn)生配置時序和串行化數(shù)據(jù)并將配置數(shù)據(jù)傳輸給FPGA。采用這種改進的串行配置方式,可以大大降低硬件電路的配置成本。另外,CPLD芯片具有編程加密位,使CPLD內(nèi)部的電路邏輯無法被讀出,所以同時提高了數(shù)控系統(tǒng)的保密性。

2 雙核握手機制的設(shè)計


003.jpg

  數(shù)控系統(tǒng)多任務(wù)是由兩個處理器(ARM和DSP)共同完成的,雙核之間的任務(wù)分配和通信在共同完成數(shù)控系統(tǒng)任務(wù)要求時尤為重要。本文使用DSPLINK對雙核的通信進行設(shè)計和開發(fā)[4]。其原理框圖如圖3所示,它把ARM與DSP之間的物理電路連接特性抽象化為通用的API,這樣開發(fā)者無需從電路底層做起,而可以更專注于應(yīng)用程序的設(shè)計。

  DSPLINK集成了很多供雙核通信使用的組件,常用的有PROC、POOL、MSGQ、MPCS等,本文對雙核通信的設(shè)計是基于MSGQ組件開發(fā)的。通過DSPLINK進行雙核通信的機理是雙核通過對共享內(nèi)存區(qū)域的數(shù)據(jù)分別進行讀寫,達到雙核數(shù)據(jù)信息共享的目的。本文將集成在片內(nèi)的64 KB片內(nèi)RAM作為共享內(nèi)存區(qū)域,使用片內(nèi)的RAM進行數(shù)據(jù)的傳輸可以增加數(shù)據(jù)傳輸?shù)男什⑶液喕瘮?shù)據(jù)傳輸?shù)能浖Y(jié)構(gòu)。MSGQ[5](message queue)主要負責ARM端和DSP端可變長度短消息的交互,更為重要的是其支持高頻率的處理器之間信息的交互,這在實時多任務(wù)的數(shù)控系統(tǒng)中十分重要,為數(shù)控系統(tǒng)的實時性提供有力的保障,該組件會把要發(fā)送的數(shù)據(jù)包裝成一個message,雙核之間以message的形式進行通信。本設(shè)計的基于MSGQ的雙核通信框圖如圖4所示,ARM和DSP可以通過指令MSGQ_put()和MSGQ_get()向消息隊列中寫入和讀取數(shù)據(jù),通過ARM和DSP高頻率地對共享內(nèi)存區(qū)域的讀寫,達到雙核通信的目的。

004.jpg

  在數(shù)控程序運行過程中,ARM和DSP通過共享內(nèi)存區(qū)域傳遞互相所需要的數(shù)據(jù),但是數(shù)控程序一般較為復雜,message存放在片內(nèi)64 KB RAM中,故一次性傳遞的數(shù)據(jù)大小受到很大限制,而且傳遞數(shù)據(jù)所花費的時間也會大大增加,這樣對實時性要求很高的數(shù)控系統(tǒng)來說是十分不利的。本文對message消息的內(nèi)容進行了優(yōu)化,將傳遞數(shù)控相關(guān)數(shù)據(jù)改為傳遞相關(guān)指針變量,這樣不僅節(jié)省了message消息隊列的空間大小,很好地利用了片內(nèi)RAM的有效空間,并且很大程度上提升了雙核通信的效率,從大量繁瑣的數(shù)控程序的傳遞到數(shù)控程序和數(shù)據(jù)所在地址的傳遞,傳遞的內(nèi)容得到了優(yōu)化并且軟件框架也得到了大大的減化[6]。

  本文將一個包含許多指針變量的struct變量包裝成一個message,ARM和DSP通過對struct變量中相關(guān)成員參數(shù)進行修改,達到雙核協(xié)調(diào)合作共同完成數(shù)控系統(tǒng)軟件工作的要求。設(shè)計的struct變量如下:

  struct message

  {

  (Uint32) MGSQ_ID;//消息隊列的ID號,

  用來標識制定的message進行通信

  (Uint32) arm_enable;//ARM使能標志位,

  允許ARM使用芯片內(nèi)部總線

  (Uint32) dsp_enable;//DSP使能標志位,與ARM使能

  標志位相反,使同一時刻只有一個處理器

  使用內(nèi)部總線,避免沖突

  (Uint32) *arm_start_read;//ARM待讀取數(shù)據(jù)起始地址的

  指針變量

  (Uint32) *arm_start_write;//ARM待寫入數(shù)據(jù)的起始地址的

  指針變量

  (Uint32) *arm_end_read;//ARM讀取數(shù)據(jù)截止地址的

  指針變量

  (Uint32) *arm_end_write;//ARM寫入數(shù)據(jù)截止地址的

  指針變量

  (Uint32) *dsp_start_read;//DSP待讀取數(shù)據(jù)起始地址的

  指針變量

  (Uint32) *dsp_start_write;//DSP待寫入數(shù)據(jù)的起始地址的

  指針變量

  (Uint32) *dsp_end_read;//DSP讀取數(shù)據(jù)截止地址的指針變量

  (Uint32) *dsp_end_write;//DSP寫入數(shù)據(jù)截止地址的指針變量

  (Uint32) armcacheover;//ARM 256 KB一級緩存區(qū)滿標志位,

  用于刷新LCD顯示數(shù)據(jù)

  }message1;

  數(shù)控程序運行時通過引用特定的消息隊列號來進行雙核通信,通過設(shè)置ARM和DSP使能標志位使得在同一時間只有一個處理器使用內(nèi)部總線,避免了數(shù)據(jù)傳輸沖突;數(shù)控軟件運行時會有許多子任務(wù),產(chǎn)生很多中斷,每當產(chǎn)生中斷時就相應(yīng)修改對應(yīng)的指針變量,ARM和DSP通過指針變量傳遞相應(yīng)的地址信息達到雙核通信的目的,這相比通過message進行數(shù)控數(shù)據(jù)的傳輸簡化了很多的工作量,使程序更精簡,運行效率更高。

3 雙核通信整體框架設(shè)計

  數(shù)控系統(tǒng)是典型的多任務(wù)實時控制系統(tǒng)[7],針對多任務(wù)特性選用中斷服務(wù)程序進行多任務(wù)之間的切換;針對實時特性選用時間片輪轉(zhuǎn)法設(shè)定相應(yīng)時間片大小,限定各個子任務(wù)的運行時間,從而在宏觀上達到各個子任務(wù)的并行運行。此外,下位機接收矩陣鍵盤、系統(tǒng)I/O輸入、手輪和編碼器的反饋后向上位機通過系統(tǒng)外部總線發(fā)出中斷,上位機響應(yīng)中斷后對插補程序作相應(yīng)的調(diào)整,后再把數(shù)據(jù)傳遞給下位機使其完成精插補。數(shù)控系統(tǒng)整體軟件框架圖如圖5和圖6所示,具體的工作步驟如下:

  (1)ARM端首先啟動,在運行Linux系統(tǒng)后向DSP加載DSP啟動所需要的執(zhí)行程序,等待啟動DSP。

  (2)在多任務(wù)運行時,ARM和DSP需要分時共用內(nèi)部總線,因此通過設(shè)置arm_enable和dsp_enable來確定內(nèi)總線的使用權(quán)。

  (3)ARM端需要執(zhí)行譯碼、MST控制和人機界面的顯示任務(wù),選用時間片輪轉(zhuǎn)法進行控制,設(shè)定每個時間片為1 ms,循環(huán)執(zhí)行這3個子程序,其中人機界面的顯示任務(wù)實時性要求不高,每次執(zhí)行的數(shù)據(jù)暫時存放在256 KB一級緩存區(qū)中,等待armcacheover置位后再刷新LCD顯示屏;在一個加工程序段中最多只能有一個M、S、T功能,通過設(shè)置相應(yīng)標志位,在程序段未結(jié)束時取消MST控制的時間片。

  (4)DSP以1 ms粗插補周期為中斷周期接收ARM譯碼后的數(shù)據(jù),進行粗插補、刀具補償和加減速控制的任務(wù)。

  (5)FPGA同樣以1 ms的周期產(chǎn)生中斷信號,接收DSP傳送的精插補所需的數(shù)據(jù),進行精插補的工作。

  (6)為了數(shù)控程序能夠順序執(zhí)行,在每個數(shù)控程序子任務(wù)執(zhí)行完后必須相應(yīng)地更改struct成員的信息。

  (7)數(shù)控程序執(zhí)行完畢后,首先會關(guān)閉message通信通道,ARM與DSP斷開連接。

4 結(jié)束語

  本設(shè)計采用ARM+DSP雙核完成上位機任務(wù),CPLD+FPGA完成下位機任務(wù)的模式,在提升了數(shù)控系統(tǒng)的加工質(zhì)量和效率的同時,也提升了數(shù)控系統(tǒng)的實時性和保密性;設(shè)計了一種新的雙核通信方式,大大提高了雙核通信的效率,為數(shù)控系統(tǒng)雙核任務(wù)分配提供軟件基礎(chǔ);通過合理進行數(shù)控任務(wù)的分配,可以做到譯碼與粗插補和精插補的并行運行,使得連續(xù)小線段的譯碼速度大于加工速度,實現(xiàn)精插補脈沖序列無間斷輸出,大大改善零件表面光潔度和加工精度,為高精度、高性能數(shù)控系統(tǒng)的發(fā)展提供一定參考。

  參考文獻

  [1] Instruments T.OMAP35x applications processor:Technical reference manual(Literature No. SPRUF98O)[Z].Dallas,Texas,2010.

  [2] WANG L,SU B,DONG S,et al.Double CPU open CNC system based on programmable multi-axis controller[J].Computer Integrated Manufacturing Systems Beijing,2002,8(1):69-72.

  [3] 張金霞,趙東標.數(shù)控系統(tǒng)中精插補芯片F(xiàn)PGA的配置[J].機械與電子,2007(3):30-32.

  [4] Instruments T.DSP/BIOS LINK user guide-version 1.65.00.02[Z].Reference:LNK,58,2010.

  [5] LUAN X F.Debugging method based on OMAPL138 dual- core system[J].Microcontrollers & Embedded Systems,2012,12(1):9.

  [6] 林淦,劉建群,許東偉,等.OMAPL138的雙核通信設(shè)計[J].機床與液壓,2014(22);056.

  [7] 陳蔚芳,王宏濤,薛建彬,等.機床數(shù)控技術(shù)及應(yīng)用[M].北京:科學出版社,2006.


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