摘 要: 针对基于PC平台的核能谱分析软件成本高、体积大、使用范围受限等问题,设计及实现了一种以ARM/DSP架构为核心的核能谱分析系统。系统以内嵌TI公司DM3730的Devkit8500D评估板为开发测试平台,采用Linux操作系统,通过科学计算软件Octave的gunplot加载处理原始核能谱数据并将能谱图显示在TFT液晶屏幕上。对于Octave的移植工作,添加必需依赖库及头文件,利用交叉工具链编译Octave,借助ext2格式TF卡将其移植到Devkit8500D平台。核能谱数据测试结果表明,该系统数据处理效率高、实时性好,具备良好的稳定性、便携性,拥有很强的实用价值。
0 引言
GNU Octave是一个旨在提供与MATLAB语法兼容的开放源代码科学计算及数值分析的类MATLAB工具(Like MATLAB)[4],相比几个GB单位的MATLAB软件价格成本高、体积庞大且不能自由定制的缺点,十几MB单位的Octave免费、小巧,功能与商业软件MATLAB类似,这些特点使Octave在嵌入式开发领域具有极大的潜力。
1 系统总体设计
1.1 Devkit8500D功能模块概述
本系统采用深圳天漠科技公司的Devkit8500D开发平台,基于德州仪器(TI)DM3730处理器的评估套件。处理器集成高达1 GHz的ARM Cortex-A8内核及高达800 MHz的具有高级数字信 处理的TMS320C64x+DSP核,并提供丰富的外设接口[5]。Devkit8500D功能模块如图1所示,扩展常用的外围接口,包含必要的外扩芯片,集成2D/3D图形加速模块(SGX),使其ARM/DSP异构双核处理器能够流畅自如地运行Linux、Windows CE等操作系统。二者分工明确,但又相得益彰,ARM负责整个系统控制、通信和传输等工作,DSP负责数据、图像的运算与处理;ARM内核主导系统,DSP内核协助处理,使得系统在事务处理、算法速度等方面的性能得到极大提升[6]。
1.2 ARM/DSP异构双核架构
Devkit8500D核心模块为DM3730,其中包含了ARM微处理器与DSP处理器。如图2展示了ARM/DSP异构双核架构,ARM作为主控芯片,运行操作系统的同时实现其他新功能扩展。通过多串口驱动程序实现与DSP模块之间通信[7],通过USB键盘驱动程序实现USB键盘扩展,通过液晶显示驱动程序实现带触控显示屏的扩展。
原始核能谱数据经Octave加载并仿真处理,然后交给DSP内核,由DSP进行数据处理,完成DSP与ARM之间通信之后,ARM微处理器将核能谱图显示在液晶屏幕上[8]。ARM内核外扩的键盘输入模块,可对Devkit8500D平台实现命令输入及动态修改,达到实时控制及现场操作的目的。
ARM处理器的外围设备接口较多,功耗较低,广泛应用于控制领域;DSP处理器具有专门硬件乘法器,广泛采用流水线操作,适合大运算量系统。ARM/DSP双核处理器的架构,能够有效结合两种处理器的优势,各取所需,互补互助,很好地适用于嵌入式处理系统。
2 开源软件Octave交叉编译与移植
2.1 编译环境及源码包介绍
Octave交叉编译器为arm-linux-gnueabi-4.6.3,Octave版本是3.6.2,Linux系统选择Ubuntu10.4,对应内核2.6.32-24。从 址ftp://ftp.gnu.org/gnu/octave下载源码包octave-3.6.4.tar.gz,然后解压,建议进入root超级用户权限进行操作:
$sudo su
#tar-xvzf octave-3.6.4.tar.gz
2.2 补全依赖库
编译Octave补全其必要的依赖库文件,进入解压后的文件目录octave-3.6.4/,执行“./autogen.sh”检测编译工具和依赖关系包是否完整,并参考http:
//wiki.octave.org/GraphicsMagick资料,可知Octave所需库文件如表1所示。用编译Octave的同一工具链依次编译表1所列库文件。
#cd octave-3.6.4/
#./autogen.sh
2.3 Octave的配置、编译、安装
Octave源码安装时运行“./configure-help”,参照其中README和INSTALL文件进行环境配置。交叉编译好的可执行文件存放路径:
/usr/local/gnome/octave/octave-3.6.4,交叉编译工具链路径:/work/tools/4.6.3/bin,详细配置信息如下:
#./configure-help
#./configure–build=arm-linux-gnueabi–host=arm-linux–target=arm-linux–prefix=/usr/local/gnome/octave/octave-3.6.4 CC=/work/tools/4.6.3/bin/arm-linux-gnueabi-gcc CXX=/work/tools/4.6.3/bin/arm-linux-gnueabi-g++ FC=/work/tools/4.6.3/bin/arm-linux-gnueabi-gfortran–enable-shared–disable-static–disable-readline–with-magick=GraphicsMagick
./configure配置过程中,尽管已经安装了很多依赖文件,仍然可能出现缺库现象而中断编译。根据configure信息反馈,交叉编译安装所缺库文件。configure配置成功,执行“make”和“make install”,编译、安装通过,将会在上述prefix路径下生成编译好的库文件、头文件,Octave的可执行二进制文件存在prefix路径下的bin目录。
#make
#make install
2.4 Octave应用程序移植[9]
将编译好的Octave可执行文件移植到Devkit8500D评估板,Devkit8500D的SDRAM大小为512 MB,由于Octave依赖库文件很多,所以编译生成的Octave文件大于600 MB。考虑内存资源大小限制,借助TF卡移植Octave到开发板,将TF卡在Ubuntu环境下格式化为ext2/ext3格式,拷贝prefix路径下的Octave及所有库文件、头文件到TF卡。
TF卡插入开发板TF-CARD插槽,参照prefix配置路径,设置Octave库文件lib在评估套件Devkit8500下的路径:
#export LD_LIBRARY_PATH=/usr/local/gnome/octave/octave-3.6.4/lib/octave/3.6.4:$LD_LIBRARY_PATH
进入上述设置路径的bin目录当中,运行Octave,操作命令如下:
#cd/usr/local/gnome/octave/octave-3.6.4/bin/
#./octave
切换进入图3所示的Octave运行界面。整个核能谱系统至此搭建完毕,Octave应用程序移植结束。
3 基于Octave的核能谱分析
运行Octave,进入Octave命令行,通过调用gnuplot提供的命令集,读取原始核能谱数据到嵌入式平台,命令行界面如图4表示。加载核能谱数据,基于Octave的核能谱显示如图5,横坐标代表核元素的道址,纵坐标代表核元素的计数。依靠能量刻度曲线,根据峰能量能够查找出该峰可能是哪种核(元)素产生,从而进行核素识别[10]。系统同时具有谱数据显示、能量刻度、谱光滑、寻峰、谱峰面积以及能量计算等功能[11],供研究人员选择使用。借助TFT液晶屏幕上显示的探测物质能谱图,研究人员可以读取元素能谱的峰值、道址以及峰位对应的能量等相关数据。
4 结束语
参考文献
[1] 邓明华,罗培东,钟佳明.基于Cortex-M3的TFT触摸屏在环境监控系统中的应用[J].现代电子技术,2010(13):198-200.
[2] 王敏.基于ARM的核能谱数据采集系统的研究[D].成都:成都理工大学,2006.
[3] 杨忠,魏涛.基于嵌入式及触摸技术的核谱数据处理系统设计[J].核电子学与探测术,2012,32(7):852-855.
[4] EATON J W. GNU Octave and reproducible research[J].Journal of Process Control,2012,22(8):1433-1438.
[5] 龚泽挚,蓝晓柯,郑雅羽.基于Android和DM3730的视频编码软件开发[J].电视技术,2013,37(17):76-79.
[6] 方益平,姚鹏,庄镇泉.基于DM3730的中距离虹膜识别系统设计[J].计算机工程与设计,2013,34(12):4178-4183.
[7] 何剑锋,何月顺,叶志翔.嵌入式Linux下ARM/DSP通信接口设计及驱动开发[J].仪表技术与传感器,2009(5):47-49.
[8] He Jianfeng, Fang Fang, He Yueshun, et al. Design of gamma spectrum data acquisition and processing system based on ARM/DSP[J]. Journal of Harbin Institute of Technology, 2013,20(2):27-32.
[9] 周正,童维勤.嵌入式系统应用程序移植的研究[J].微计算机信息,2006,22(29):145-147.
[10] 贾景关.基于NaI(Tl)探测器的γ能谱分析技术及软件设计[D].衡阳:南华大学,2011.
[11] 汤彬,葛良全.核辐射测量原理[M].哈尔滨:哈尔滨工程大学出版 ,2011.
[12] MARKOWSKY L, SEGEE B. The Octave fuzzy logic toolkit[C]. Proceedings of 2011 IEEE International Workshop on Open-source Software for Scientific Computation (OSSC-2011),2011:118-125.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!