一种多核单芯片的配电智能终端的数据采集处理方法
技术领域
本发明涉及配电自动化用电管理领域,具体涉及配电台区智能终端的设计方法。
背景技术
随着微处理器技术的发展,电力系统智能终端设备的性能也有了很大的改善。在电力系统智能终端设备领域中,主要有DSP、ARM和DSP这两类嵌入式平台设计方案。基于DSP的智能终端设备可以对数据进行快速的处理,但是智能终端对人机界面、数据存储、通信、控制等方面都有很高的要求,而DSP并不能满足系统的这些要求;基于ARM和DSP两个处理器的终端设备,ARM处理器可以很好的解决智能终端在人机界面、数据存储、通信、控制等方面的要求,DSP处理器可以快速准确的对数据进行处理,把两者的优点结合起来,大大改善了电力系统智能终端设备的性能。但是采用ARM和DSP两个处理器的设计,使智能终端的成本较高,体积较大,软件上数据的采集、存储和交互以及硬件设计上考虑稍不全面,还会造成系统的可靠性差等。
发明内容
针对现有技术存在的问题和缺点,本发明提供了一种多核单芯片的配电智能终端的数据采集处理交互方法。
一种多核单芯片的配电智能终端的数据采集处理交互方法,
数据处理核采集智能终端数据;
数据处理核将采集到的数据存放到共享内存上;
微处理器核启动数据处理核令其执行采集及处理程序;以及,
数据处理核与微处理器核进行数据交互。
优选的,所述数据处理核可以为DSP内核,所述微处理器核可以为ARM内核。
优选的,所述数据处理核采用实时操作系统,所述微处理器核采用嵌入式Linux操作系统。
优选的,所述共享内存划分出数据单元,数据单元的大小和个数依据策略决定,划分后的剩余空间作为数据同步空间。
更优选的,所述数据单元存放的数据为时标、AD采集的原始数据和原始数据经DSP计算的结果。
更优选的,所述数据单元个数划分的依据的策略为当最后一个数据单元的原始数据采集完时,第一个数据单元的波形分析要计算完;所述数据单元大小划分的依据的策略为能够存放时标、AD采集的原始数据和原始数据经DSP计算的结果。
优选的,所述微处理器核启动数据处理核令其执行采集及处理程序的方法为:
确定DSP程序的开始和启动地址;
将DSP程序进行格式转换;
修改Linux驱动中DSP程序的开始和启动地址;
ARM把DSP程序加载到内存中;以及,
ARM启动DSP程序。
更优选的,所述确定DSP程序的开始和启动地址是通过修改DSP开发环境上的配置文件完成的。
优选的,所述数据处理核与微处理器核的交互是通过一组系统配置寄存器和数据同步空间来完成的。
更优选的,系统配置寄存器族中的中断寄存器和中断清除寄存器用于内核之间互发中断信号。
优选的,所述数据处理核的个数为1-5个。
本发明可以很好的解决电力系统智能终端设计中,硬件的成本较高、体积较大、系统可靠性差以及软件上数据操作和硬件工程师的设计等问题。
附图说明
图1为多核单芯片内核交互的结构图
图2以0MAP-L138为例说明为多核单芯片中的DSP程序的启动流程
具体实施方式
为使本发明的技术方案更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细说明。
对于软件工程师,ARM侧采用嵌入式Linux操作系统,DSP侧采用实时操作系统。数据操作的具体软件设计中,主要解决数据的采集、存储、交互三个方面问题。
(一)数据的采集
ARM和DSP都可以进行数据采集。如果在ARM侧采集数据,需要编写AD驱动程序,不光增加了软件工程师的工作量,更重要的是,数据采集还会占用ARM很大的资源,使系统反应慢、性能降低。在DSP侧采集数据,可以直接操作物理地址,不需编写驱动,节省了开发时间;同时,由于实时操作系统的引入,DSP可以对其各个任务进行有效的管理和调度,增强了系统的稳定性和实时性。所以,用DSP采集数据。
(二)数据的存储
数据需要存放到ARM和DSP都可以访问到的内存地址空间上,并且两者之间要约定好数据存放的顺序和格式。ARM不能对物理地址直接操作,所以ARM侧需要编写一个共享内存驱动,以访问这段地址空间的内容。
芯片内两个内核共享的RAM空间有128K字节,可以开辟10个数据单元,每个单元分配10K字节,剩下的28K字节用于内核之间的数据同步;在共享RAM里一定要预留出内核之间数据同步的地址空间。每个单元的数据存放格式为时标、AD采集的原始数据、原始数据经DSP计算的结果。开辟10个数据单元的目的是为了确保当第10个数据单元的原始数据采集完时,DSP能够处理完第1个数据单元的原始数据,即能经DSP计算出第1个数据单元的结果。需要指出的是,分配数据单元的个数并不一定必须是10个;分配数据单元个数的根据是:最后一个数据单元的原始数据采集完时,第一个数据单元的波形分析要计算完。每个单元的大小也不一定必须是10K,开辟数据单元空间大小的依据是:时标、AD采集的原始数据、原始数据经DSP计算的结果都能存放下即可。
(三)数据的交互
系统的控制权在ARM,上电后ARM侧程序会自动运行,而DSP侧程序却不会。ARM如何让DSP程序运行起来,有三个关键点需要解决:
1、ARM得知DSP程序的开始地址;
2、ARM得知DSP程序的启动地址。
3、内存中要有DSP程序;
对于1和2,在DSP开发环境上的配置文件进行修改,可以固定DSP程序的开始地址和启动地址。
对于3,因为系统启动的时候,DSP程序是以文件的形式存放在Flash上的,需要ARM把DSP程序从Flash拷贝到1中指定的DSP程序开始地址上,然后ARM设置配置寄存器组中相关寄存器就可以使DSP从2中指定的启动地址处运行DSP程序了。
DSP程序运行起来后,它和ARM之间的数据交互是通过一组系统配置寄存器SYSCFG和一个共享RAM来解决的。
系统配置寄存器组中的中断寄存器CHIPSIG和中断清除寄存器CHIPSIG_CLR用于内核之间互发中断信号。当中断发生时读取事先约定好的地址的命令,去执行相应的中断处理程序。
图1为多核单芯片内核交互的结构图;如图1所示包括ARM核(1)、DSP核组(2)、片内共享RAM(3)、系统配置寄存器组(4)、片外DDR(5);虚线框内部为多核单芯片。
其中ARM核(1)、DSP核组(2)、片内共享RAM(3)、系统配置寄存器组(4)集成在一个芯片里,DDR(5)是芯片外扩的RAM。
ARM把DSP组中各个DSP程序加载到片外DDR(5)中,让DSP程序执行。
ARM核(1)通过ARM数据总线向片内共享RAM(3)写入或读出数据,通过系统配置寄存器组(4)向DSP核组(2)发出中断信号。
DSP核组(2)通过DSP数据总线向片内共享RAM(3)写入或读出数据,通过系统配置寄存器组(4)向ARM核(1)发出中断信号。
图2为以OMAP-L138为例说明为多核单芯片中的DSP程序的启动流程。编号(6),从DSP开发环境的配置文件中确定DSP程序的开始地址和启动地址。编号(7),经DSP开发环境编译后的DSP程序一般来讲ARM不能直接加载,需要转化为bin格式的文件。编号(8),修改ARM Linux驱动中DSP程序的开始地址和启动地址。编号(9),ARM把DSP的可执行程序加载到内存中。编号(10),ARM启动DSP。