CN103377157B - 一种用于嵌入式数控系统的双核数据通信方法 - Google Patents

一种用于嵌入式数控系统的双核数据通信方法 Download PDF

Info

Publication number
CN103377157B
CN103377157B CN201210128561.0A CN201210128561A CN103377157B CN 103377157 B CN103377157 B CN 103377157B CN 201210128561 A CN201210128561 A CN 201210128561A CN 103377157 B CN103377157 B CN 103377157B
Authority
CN
China
Prior art keywords
dsp
communication
arm
data
control system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210128561.0A
Other languages
English (en)
Other versions
CN103377157A (zh
Inventor
于东
胡毅
冯强
林立明
贾小波
陆小虎
秦承刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Zhongke CNC Technology Co.,Ltd.
Original Assignee
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd filed Critical SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority to CN201210128561.0A priority Critical patent/CN103377157B/zh
Publication of CN103377157A publication Critical patent/CN103377157A/zh
Application granted granted Critical
Publication of CN103377157B publication Critical patent/CN103377157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明涉及嵌入式技术领域,具体说的是一种用于嵌入式数控系统的ARM与DSP双核数据通信方法。将嵌入式数控系统的内存划分为用于ARM端LINUX操作系统、用于DSP端BIOS伪操作系统、通信共享以及通信软件四个部分,其中通信共享部分用于通信数据的存储;ARM端和DSP端初始化,创建共享内存池,创建使ARM端和DSP端互斥读写通信数据的临界区管理对象,建立握手协议;当ARM端或DSP端使用互斥锁加锁访问共享存储区,获得互斥锁后,直接对通信数据进行读写,完成读写后释放互斥锁。本发明不使用额外的硬件芯片,降低硬件成本;第三方软件不需要改动就可以移植,降低了软件移植成本;采用通信共享和核间消息实现数据传输,实现大块数据零拷贝,提高多核之间数据通信效率。

Description

一种用于嵌入式数控系统的双核数据通信方法
技术领域
本发明涉及嵌入式技术领域,具体说的是一种用于嵌入式数控系统的ARM与DSP双核数据通信方法。
背景技术
随着电子技术的不断发展,ARM和DSP等各种嵌入式系统微处理器由于具有成本低廉、功耗小、结构简单且性能稳定等特点,在嵌入式系统开发领域得以广泛应用。采用ARM与DSP异构双核处理器开发嵌入式数控系统,具有硬件结构简单、功耗小、高性能低成本等特点,满足中高档数控系统产品市场需求。
然而,ARM和DSP处理器由于具有不同的硬件特征,如何让两者发挥各自的优势,分担不同的任务,双核之间协调配合工作,使系统整体性能和功能达到最好的状态,双核之间的通信机制是一个关键的因素。ARM和DSP都有自己的通信总线,所以两核之间的数据通信一般都通过DMA(直接数据通路)完成。数控系统软件的运行中需要大块数据的搬运,而DMA与两核之间有一定距离,这将加大ARM和DSP之间数据传输延迟,很难满足数控系统实时性需求。
发明内容
针对现有技术存在的上述不足之处,本发明提供了一种适用于嵌入式ARM+DSP双核架构数控系统平台的通信方法,该方法采用直接访问共享存储器的方式实现,能充分发挥ARM和DSP双核各自的优势,从而解决了现有双核通信中数据传输延迟过高问题,提高ARM与DSP数据通信效率及双核数控系统整体性能。
本发明为实现上述目的所采用的技术方案是:一种用于嵌入式数控系统的双核数据通信方法,包括以下步骤:
将嵌入式数控系统的内存划分为用于ARM端LINUX操作系统、用于DSP端BIOS伪操作系统、通信共享以及通信软件四个部分,其中通信共享部分用于通信数据的存储;
ARM端和DSP端初始化,创建使ARM端和DSP端不能同时进行通信数据读写的互斥锁管理对象,建立握手协议;
当ARM端或DSP端使用互斥锁加锁访问共享存储区,获得互斥锁后,直接对通信数据进行读写,完成读写后释放互斥锁。
所述ARM端初始化为对硬件电源、时钟、复位、内存管理单元、中断处理控制进行初始化,内核空间基于通信共享的物理内存创建内存池,用户空间使用内存池分配共享数据、运用中断实现握手协议。
所述DSP端初始化包括获取共享存储区地址、初始化中断、设置CPU频率以及设置时钟,通过调用DSP端BIOS伪操作系统的应用程序接口实现。
所述建立握手协议为:启动DSP执行后,ARM端等待DSP端应用程序初始化完成的通知消息,当ARM端接收到该通知消息后,ARM端发送共享存储区的DSP地址到DSP端,完成握手协议的建立。
本发明具有以下优点:不使用额外的硬件芯片,降低硬件成本;第三方软件不需要改动就可以移植,降低了软件移植成本;采用共享存储区和核间消息实现数据传输,实现大块数据零拷贝,提高多核之间数据通信效率。应用于数控系统上,ARM核作为主要的控制器,将复杂的算法计算放到DSP核上完成,高效完成ARM与DSP核间大块数据的实时通信。
附图说明
图1为本发明方法应用的嵌入式数控系统结构图;
图2为本发明一个实施例的硬件结构图;
图3为本发明实施例的通信共享划分图;
图4为本发明的通信方法处理流程图;
图5为本发明实施例使用芯片的电源、复位和时钟管理硬件原理结构图;
图6为本发明实施例使用芯片的IPC管理机制;
图7为本发明实施例使用芯片的MMU(MemoryManagement)硬件结构图;
图8为本发明方法的内核模块初始化流程图;
图9为本发明方法的ARM端初始化流程图;
图10为本发明方法的ARM端资源分配管理流程图;
图11为本发明方法的的握手协议建立流程;
图12为本发明方法的的数据传输机制;
图13为本发明方法的的DSP端初始化流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
图1为本发明应用的嵌入式数控系统架构平台,包括电机、伺服、控制器以及人机接口单元。如图2所示,为本发明一个实施例的硬件结构图,包括一个ARM核和一个DSP核,一个芯片外的DDR用于发明中的通信数据共享。其中,ARM作为数控系统的主控制器,DSP作为运算器,ARM处理器将底层板卡传入的数据写到共享存储区中,DSP从中获得数据进行运算并将运算结果写入到共享存储区供ARM处理器传回底层板卡以及界面显示;本发明的实施例基于OMAP3530处理器,其他实施例可扩展到其他处理器。本发明的实施例对通信共享的DDR划分细节如图3,1M空间用于ARM核和DSP核的数据通信。
本发明提供了一种用于数控系统的ARM与DSP双核间数据通信方法,该方法的核心思想为:通过本发明中实现的ARM核与DSP核通信管理接口,创建双核之间的共享存储区,建立握手协议,实现地址空间的转换,数据互斥读写。其中,实现的ARM与DSP通信管理接口主要包括以下模块:
1.管理模块,用于初始化ARM与DSP软硬件,加载DSP端可执行文件,分配共享数据,控制信息管理以及数据访问控制;
2.数据读写模块,用于数据的读出和写回、打开需要分配数据或消息的数据池;
管理模块具体包括如下子模块:
1.初始化子模块,对基本的组件以及硬件环境进行初始化;
2.DSP端可执行文件管理模块,负责加载DSP端可执行文件到DSP核,为通信的ARM端关联指定的DSP核,DSP端MMU的关闭与开启、程序的启动与停止;
3.共享数据分配管理模块,用于从共享存储区分配和回收存储空间以及物理地址映射与核间地址转换;
4.通知注册模块,用于以消息方式建立双核间握手协议;
5.数据访问控制模块,用于信号量的创建、清除、打开与关闭,共享存储区的互斥访问控制;
如图4,该多核通信方法具体包括以下执行步骤:
ARM端
1.初始化软硬件通信环境。
初始化分为内核空间和用户空间,其中硬件初始化有Linux内核程序实现,具体的硬件初始化工作包括电源、复位和时钟初始化,IPC(InterProcessorCommunication)初始化,内存管理初始化。其中图5为OMAP3530电源、复位和时钟管理硬件原理结构,PRCM(Power,Reset,ClockManagement)模块接受来自外部复位、时钟、和电源信号,通过CM(ClockManagement)和PRM寄存器组进行控制。图6为OMAP3530基于硬件的IPC管理机制,ARM和DSP处理器通过邮箱进行通信,当一方将发送的消息到达另一方邮箱时,硬件触发一个中断,该中断产生一个通知消息通知该处理器。图7为OMAP3530的MMU(MemoryManagement)硬件结构图,OMAP3530系列的设备具有Camera、IVA2.2、MPU三个独立的MMU,使用寄存器来区分。本实施例使用其中的IVA2.2MMU,对应寄存器起始地址为0x5D000000。为管理上面组件,本实施例使用的硬件寄存器组包括VA2_CM、CORE_CM、PER_CM、IVA2_PRM、MLB以及MMU2。
ARM端采用Linux操作系统,硬件初始化的编写采用Linux内核模块并基于Linux字符设备驱动模型。包括模块初始化函数init_module和模块退出函数exit_module。
内核模块初始化流程图如图8所示,通信软件的内核驱动部分在这一流程中注册。图中加标注的若干步骤具体实施方法如下:
[1]创建并初始化内核互斥锁,用于互斥访问内核中一些全局变量;
[2]用全局变量标识中断服务组件已经经过初始化;
[3]初始化用于获取数据的结构链表;
[4]调用内核函数register_chrdev注册字符设备驱动;
通信软件的字符设备驱动基于Linux字符设备驱动模型,但仅实现了read、mmap和ioctl接口。read用于读取设备文件,mmap将内存区域重映射。ioctl根据不同的命令执行不同的操作,也是用户空间和内核交互的主要方式。用户空间使用open打开通过mknod建立的设备文件,通过对应的函数与内核空间进行交互。
模块退出函数exit_module清除资源并调用unregister_chrdev内核函数实现驱动卸载。
本发明对应的通信软件具体初始化流程如图9所示,包括用户输入数据解析、建立并初始化用于双核通信的数据结构、建立共享内存池、为通信的ARM处理器关联指定的DSP核以及打开用于分配内存的内存池。本发明同样适合具有多个DSP处理器的情况,通过用户输入各个DSP的配置信息以建立软件支撑的数据结构;同时,本发明在初始化中为通信控制信息以及通信数据的内存分配建立一个内存池。
2.资源管理与分配。
资源分配管理流程如图10,需要说明的部分如下:
[1]打开内存池,所述内存池为初始化过程中建立的;
[2]分配内存,从打开的内存池中分配;
[3]地址转化,将ARM和DSP的地址空间进行相互转化;
ARM到DSP地址空间转化关键代码:
#defineADDR_ARM_TO_DSP(armBaseAddr,dspBaseAddr,addr,dspMaduSize)\
((((Uint32)(addr)-(armBaseAddr))/(dspMaduSize))+(dspBaseAddr))
DSP到ARM地址空间转化关键代码:
#defineADDR_DSP_TO_ARM(armBaseAddr,dspBaseAddr,addr,dspMaduSize)\
((((Uint32)(addr)-(dspBaseAddr))*(dspMaduSize))+(armBaseAddr))
[4]如果有必要,初始化临界管理区对象,用户空间中采用Linux的semop、semget等系统调用完成。
3.DSP可执行文件加载和启动。
DSP可执行文件使用arm-none-linux-guneabi-gcc交叉器编译器编译,arm-none-linux-gnueabi-ld链接器链接生成。ARM端将其加载到指定的空间中并启动执行。
4.握手协议建立。
如图11,启动DSP执行后,ARM端等待DSP通知消息,当ARM接收到DSP端通知消息后,表示DSP应用程序初始化完成;ARM端发送通信共享的DSP地址到DSP端,完成握手协议的建立。
5.数据传输。
如图12所示,当处理器使用互斥锁访问通信共享,获得互斥锁后,可直接对数据进行读写,完成读写后释放锁。
6.释放资源。
数据传输结束后,释放获得的所有资源,包括内存、用于管理的各种数据结构。
DSP端
DSP端编程基于DSPBIOS,执行流程如图5右半部分。除了初始化部分,各个处理步骤原理和ARM端相同,初始化部分流程如图13,包括获取共享存储区地址、初始化中断、设置CPU频率以及设置时钟,都调用DSPBIOS的API接口实现。

Claims (4)

1.一种用于嵌入式数控系统的双核数据通信方法,其特征在于,包括以下步骤:
将嵌入式数控系统的内存划分为用于ARM端LINUX操作系统、用于DSP端BIOS伪操作系统、通信共享以及通信软件四个部分,其中通信共享部分用于通信数据的存储;
ARM端和DSP端初始化,创建使ARM端和DSP端不能同时进行通信数据读写的互斥锁管理对象,建立握手协议;
当ARM端或DSP端使用互斥锁加锁访问共享存储区,获得共享存储区后,直接对通信数据进行读写,完成读写后释放互斥锁。
2.根据权利要求1所述的一种用于嵌入式数控系统的双核数据通信方法,其特征在于,所述ARM端初始化为对硬件电源、时钟、复位、内存管理单元、中断处理控制进行初始化,内核空间基于通信共享的物理内存创建内存池,用户空间使用内存池分配共享数据、运用中断实现握手协议。
3.根据权利要求1所述的一种用于嵌入式数控系统的双核数据通信方法,其特征在于,所述DSP端初始化包括获取共享存储区地址、初始化中断、设置CPU频率以及设置时钟,通过调用DSP端BIOS伪操作系统的应用程序接口实现。
4.根据权利要求1所述的一种用于嵌入式数控系统的双核数据通信方法,其特征在于,所述建立握手协议为:启动DSP执行后,ARM端等待DSP端应用程序初始化完成的通知消息,当ARM端接收到该通知消息后,ARM端发送共享存储区的DSP地址到DSP端,完成握手协议的建立。
CN201210128561.0A 2012-04-27 2012-04-27 一种用于嵌入式数控系统的双核数据通信方法 Active CN103377157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210128561.0A CN103377157B (zh) 2012-04-27 2012-04-27 一种用于嵌入式数控系统的双核数据通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210128561.0A CN103377157B (zh) 2012-04-27 2012-04-27 一种用于嵌入式数控系统的双核数据通信方法

Publications (2)

Publication Number Publication Date
CN103377157A CN103377157A (zh) 2013-10-30
CN103377157B true CN103377157B (zh) 2016-06-01

Family

ID=49462295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210128561.0A Active CN103377157B (zh) 2012-04-27 2012-04-27 一种用于嵌入式数控系统的双核数据通信方法

Country Status (1)

Country Link
CN (1) CN103377157B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103840722A (zh) * 2014-03-27 2014-06-04 郑天江 一种伺服驱动器
CN104777784B (zh) * 2015-02-11 2018-10-30 北京配天技术有限公司 用于数控机床的数控系统
CN107436807A (zh) * 2016-05-27 2017-12-05 深圳市中兴微电子技术有限公司 共享硬件资源的方法、控制器、存储器及系统
CN106055417B (zh) * 2016-06-02 2018-09-11 北京百度网讯科技有限公司 用于机器人操作系统的消息传输方法和装置
CN107562683A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 Rru信息上报系统和方法
CN108809192B (zh) * 2018-06-07 2020-12-04 江苏江荣智能科技有限公司 一种参数自整定永磁同步电机控制系统
CN112015564B (zh) * 2019-05-28 2024-05-17 普天信息技术有限公司 加解密处理方法及装置
CN111708329A (zh) * 2020-05-18 2020-09-25 武汉华中数控股份有限公司 一种智能化数控系统及方法
CN114415934A (zh) * 2020-10-28 2022-04-29 上海川源信息科技有限公司 数据存取系统
CN114691594B (zh) * 2022-03-11 2023-05-23 珠海海奇半导体有限公司 一种基于非对称双核mcu设计的芯片架构及其实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1900911A (zh) * 2005-07-20 2007-01-24 北京华力创通科技有限公司 双内核半实物仿真系统
CN1936745A (zh) * 2006-10-12 2007-03-28 武汉理工大学 基于arm和dsp的嵌入式数控系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050228281A1 (en) * 2004-03-31 2005-10-13 Nefos Thomas P Handheld diagnostic ultrasound system with head mounted display

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1900911A (zh) * 2005-07-20 2007-01-24 北京华力创通科技有限公司 双内核半实物仿真系统
CN1936745A (zh) * 2006-10-12 2007-03-28 武汉理工大学 基于arm和dsp的嵌入式数控系统

Also Published As

Publication number Publication date
CN103377157A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
CN103377157B (zh) 一种用于嵌入式数控系统的双核数据通信方法
CN109582611A (zh) 加速器结构
CN103150279B (zh) 一种主机与基板管理控制器共享设备的方法
CN104820657A (zh) 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型
CN109582605A (zh) 通过PCIe的一致性存储器设备
CN112199173B (zh) 双核cpu实时操作系统数据处理方法
CN103119912A (zh) 多处理器计算平台中的处理器间通信技术
CN103279445A (zh) 运算任务的计算方法及超算系统
JP6998991B2 (ja) 情報処理用方法及び装置
CN109656844B (zh) 一种AT24xx EEPROM驱动方法和装置
Nunez-Yanez et al. Simultaneous multiprocessing in a software-defined heterogeneous FPGA
CN115033188B (zh) 一种基于zns固态硬盘的存储硬件加速模块系统
CN111857669A (zh) 软硬件解耦合软件化雷达系统、实时性设计方法和服务器
CN103076849A (zh) 可重构微服务器系统
CN102193804B (zh) 一种单板驱动的加载方法和通信设备
CN104714792A (zh) 多进程共享数据处理方法和装置
CN109918335A (zh) 一种基于cpu+fpga 8路dsm架构服务器系统及处理方法
Zaynidinov et al. Comparative analysis of the architecture of dual-core blackfin digital signal processors
CN116225676A (zh) 用于限制存储器的应用程序编程接口
CN203930824U (zh) 具有结合的cpu和gpu的芯片器件,相应的主板和计算机系统
TW202217564A (zh) 可重組態資料流資源的運行時間虛擬化
Lübbers et al. Communication and Synchronization in Multithreaded Reconfigurable Computing Systems.
CN113392052A (zh) 一种基于四路服务器的bios系统、方法及计算机可读存储介质
CN111930527A (zh) 一种多核异构平台维护cache一致性的方法
KR101592375B1 (ko) 클러스터 시스템 및 클러스터 시스템에서의 통신 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110168 16-2

Patentee after: SHENYANG GAOJING NUMERICAL CONTROL INTELLIGENT TECHNOLOGY CO., LTD.

Address before: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 16 110168

Patentee before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.

CP01 Change in the name or title of a patent holder

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110168 16-2

Patentee after: Shenyang Zhongke CNC Technology Co.,Ltd.

Address before: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110168 16-2

Patentee before: SHENYANG GOLDING NC & INTELLIGENCE TECH. Co.,Ltd.

CP01 Change in the name or title of a patent holder