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

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

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

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


001.jpg

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

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


002.jpg


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

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


003.jpg

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

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

004.jpg

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

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

  struct message

  {

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

  用來標(biāo)識制定的message進(jìn)行通信

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

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

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

  標(biāo)志位相反,使同一時刻只有一個處理器

  使用內(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ū)滿標(biāo)志位,

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

  }message1;

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

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

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

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

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

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

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

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

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

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

4 結(jié)束語

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

  參考文獻(xiàn)

  [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] 張金霞,趙東標(biāo).數(shù)控系統(tǒng)中精插補(bǔ)芯片F(xiàn)PGA的配置[J].機(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ì)[J].機(jī)床與液壓,2014(22);056.

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


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