《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(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公司針對(duì)開(kāi)放式多媒體應(yīng)用平臺(tái)推出的一款高性能嵌入式微處理器?;贒SP/BIOSTM LINK的軟件構(gòu)架對(duì)ARM和DSP進(jìn)行一種新型通信方式的設(shè)計(jì)。其中ARM端運(yùn)行嵌入式Linux系統(tǒng),完成譯碼、人機(jī)交互、數(shù)據(jù)管理等任務(wù);DSP端運(yùn)行DSP/BIOS實(shí)時(shí)系統(tǒng),完成粗插補(bǔ)、刀具補(bǔ)償和邏輯控制等任務(wù)。通過(guò)任務(wù)中斷服務(wù)和時(shí)間片輪詢(xún)法來(lái)實(shí)現(xiàn)數(shù)控系統(tǒng)多任務(wù)的準(zhǔn)并行運(yùn)行。使用雙核通信完成ARM和DSP在數(shù)控信息上的溝通、協(xié)調(diào)。系統(tǒng)采用上下位機(jī)模式,大大提升數(shù)控系統(tǒng)實(shí)時(shí)性和插補(bǔ)性能。
中圖分類(lèi)號(hào): TP273
文獻(xiàn)標(biāo)識(shí)碼: 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公司推出的一款高性能移動(dòng)應(yīng)用處理器[1]。OMAP3530在單一芯片上無(wú)縫集成一個(gè)600 MHz ARM Cortex-A8內(nèi)核和一個(gè)具有卓越運(yùn)算能力和超低功耗的430 MHz TMS320C64x+ DSP內(nèi)核,單個(gè)ARM在人機(jī)交互、網(wǎng)絡(luò)通信、多任務(wù)處理上有著很大的優(yōu)勢(shì),但是其計(jì)算能力有所不足;DSP有著強(qiáng)大的計(jì)算和數(shù)據(jù)處理能力,但是在任務(wù)分配上難度較大。因此,充分利用兩個(gè)處理器各自的優(yōu)勢(shì),把ARM和DSP結(jié)合起來(lái)使用能夠大大提升數(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í)時(shí)多任務(wù)的數(shù)控系統(tǒng)軟件體系,本文使用DSPLINK進(jìn)行雙核之間的通信,設(shè)計(jì)了一種地址指針傳遞的雙核通信方式,大大提升數(shù)控系統(tǒng)的性能。

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

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


001.jpg

  上位機(jī)由集成了控制核心ARM和運(yùn)算核心DSP的OMAP3530處理器組成,如圖1所示,ARM、 DSP、存儲(chǔ)器以及各種通信接口均連接在片內(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í)時(shí)性提供有力的保障。上位機(jī)提供豐富的外設(shè)資源,外接的256 MB LPDDR為數(shù)控系統(tǒng)軟件提供大量的內(nèi)存空間,256 MB NAND Flash用于存儲(chǔ)數(shù)控系統(tǒng)文件和一些運(yùn)行相關(guān)的參數(shù)文件;外接的LCD顯示器用于數(shù)控系統(tǒng)圖形界面的顯示;MMC/SD以及USB接口用于數(shù)控系統(tǒng)加工程序代碼的輸入以及數(shù)控系統(tǒng)的升級(jí)等;標(biāo)準(zhǔn)RS232接口用于與PC進(jìn)行遠(yuǎn)程通信;此外片上還集成以太網(wǎng)的接口,用于遠(yuǎn)程通信、診斷和操作功能的實(shí)現(xiàn)。上位機(jī)通過(guò)GPMC(系統(tǒng)外部總線)與下位機(jī)進(jìn)行通信;向下位機(jī)發(fā)送粗插補(bǔ)和速度控制的信息,為下位機(jī)進(jìn)行精插補(bǔ)做準(zhǔn)備,并接收下位機(jī)傳輸?shù)臄?shù)控系統(tǒng)按鍵信息、I/O輸入和位置控制信息并及時(shí)作出響應(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)大大簡(jiǎn)化了硬件電路,具有高速、并行處理、穩(wěn)定性高、抗干擾性強(qiáng)等特點(diǎn)。輔助控制子系統(tǒng)CPLD選用Altera公司EPM1270芯片,完成FPGA的配置、矩陣鍵盤(pán)的控制以及外擴(kuò)系統(tǒng)I/O端口的控制功能。本文使用一種改進(jìn)的串行配置策略對(duì)FPGA進(jìn)行配置[3],如圖2所示,CPU把存放在NAND Flash中的配置數(shù)據(jù)通過(guò)外部系統(tǒng)總線發(fā)送到CPLD,然后CPLD產(chǎn)生配置時(shí)序和串行化數(shù)據(jù)并將配置數(shù)據(jù)傳輸給FPGA。采用這種改進(jìn)的串行配置方式,可以大大降低硬件電路的配置成本。另外,CPLD芯片具有編程加密位,使CPLD內(nèi)部的電路邏輯無(wú)法被讀出,所以同時(shí)提高了數(shù)控系統(tǒng)的保密性。

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


003.jpg

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

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

004.jpg

  在數(shù)控程序運(yùn)行過(guò)程中,ARM和DSP通過(guò)共享內(nèi)存區(qū)域傳遞互相所需要的數(shù)據(jù),但是數(shù)控程序一般較為復(fù)雜,message存放在片內(nèi)64 KB RAM中,故一次性傳遞的數(shù)據(jù)大小受到很大限制,而且傳遞數(shù)據(jù)所花費(fèi)的時(shí)間也會(huì)大大增加,這樣對(duì)實(shí)時(shí)性要求很高的數(shù)控系統(tǒng)來(lái)說(shuō)是十分不利的。本文對(duì)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]。

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

  struct message

  {

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

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

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

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

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

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

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

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

  指針變量

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

  指針變量

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

  指針變量

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

  指針變量

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

  指針變量

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

  指針變量

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

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

  (Uint32) armcacheover;//ARM 256 KB一級(jí)緩存區(qū)滿(mǎn)標(biāo)志位,

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

  }message1;

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

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

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

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

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

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

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

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

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

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

4 結(jié)束語(yǔ)

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