
数执本与用
工业CT系统软件架构基础
赵飞谢里阳李佳张子赛
(东北大学机械工程与自动化学院辽宁沈阳110004)
设计开发
摘要:工业CT扫描成像电含了试件运动扫描与投影数据重建计算两个重要步骤。达就要求工业CT扫描成像系统款件必须即能灵活地控制硬件又能高效地处理数据。国此,工业CT担描成像系统软件架构的设计应满足此要求。据此,本文针对端程语言环境与处理数据类型的选择以及硬件的虚拟方法等软件架构基础性同题进行了详如讨论。得出了以C语言作为编程语言、选择整型数据和浮点型数据进行处理以及利用C语言中的条件预编译语句进行硬件虚拟的结论。
关键词:工业CT软件架构编程语言数据类型虚报硬件
中图分类号:TP311
文献标识码:A
文章编号:1007-9416(2016)05-0161-02
Abstract:Industrial Computed Tomography (ICT) inchxdes two important steps: scan of the moving specimens and reconstruction from the projection data That means the software ofICT system must be flexible to control the hardware and efficient to process the data. Therefore, the design of the software architecture for ICT system should meet the requirements above. According to this, the fiundamental issues of the software architecture are discussed in this paper: the programming language environment, the processing data type selection and the methods for hardware virtualization. And the conclusions are: using C languiage as the programming language of ICT system, choosing integer and floatingpoint type as the processing data types and hardware virtualization by the precompiled statements of C language
Key Words:industrial computed tomography, sofiware architecture, programming language, data type, hardware virtualization
1引言
工业CT扫描成像系统是一种精密复杂的光学成像系统,其扫描成像过程包含了试件运动扫描与投影数据重建计算两个重要步骤。这就要求其管理者(软件)高效地处理数据,并且灵活地控制硬件。所有语言都有其技术瓶颈,一般说来,低级语言的缩程效率较低但运行效率较高,高级语言编程效率较高而运行效率较低,各高级语言的库又侧重不同的应用。整型数据由于占用空间较小,其存储和传输的成本较低,且有利于图像灰度统计运算及显示;但很多投影数据重建算法又要求数据为浮点型。工业CT扫描成像系统中涉及较多硬件,由于设备供货周期和调试场地等因素的影响,调试软件的计算机通常无法同某些(或全部)硬件设备连接,虚拟硬件技术可以让计算机在调试某个硬件或算法软件时,得到其它所有硬件的虚拟的合理反馈信息。因此,必须合理选择编程的语言环境与所处理
的数据类型,并适当进行硬件虚拟。 2选择编程语言
机器语言是唯一不需要翻译而直接被计算机识别的程序设计语言,它是最低级的编程语言,可实现对计算机所有的操作,所有其它的语言都要由编译器编译成机器语言才能运行。汇编语言是机器语言的助记符,它将机器语言用有意义的英文字母缩写替代,可读性较好。它的级别、实现操作,运行效率均与机器语言相同,但也要编译器将其编译成机器语言才能运行。
除了汇编语言和机器语言,其它的编程工具都是高级语言。从
汇编语言开始有库的概念,用户也可以自定义子函数,只不过高级语言中的库针对更具体的处理对象。
LabView的库中有很多控制硬件的专业控件2.3),便于快速生成硬件控制代码,且按钮美观,是控制硬件的良好编程工具,但其处理数据的速度很慢。与之相反,Fortran(FormulaTranslate的缩写) 是数值计算的良好工具,其语法和数据结构运算(如直接对数组和复数进行运算都是为便于数值计算而专门设计,能够高效地实现CT 所需的投影数据重建的运算,但它控制硬件能力很差,
控制硬件和数据处理效率都很高的高级语言是C语言(含C++ 和VisualC++6)。它是高级语言中的最低级的编程语言,具有如下特点:
有强大的监控和调试环境,控制硬件的能力仅次于汇编语言;(2)能够实现LabView的所有功能,它的代码编写速度相对较
慢,
(3)数据处理能力仅次于Fortran和Matlab,必要时可嵌人汇编语言,速度即可与Fortran相媲美,文献[7-9]详细述了C语言中嵌人汇编语言的方法。
Matlab与其说是一种编程语言,不如说是数值计算的实验终端,也有人称它为第四代计算机语言(前三代分别指机器语言、汇编语言和高级语言yio)。早期的Matlab是用Fortran缩写的,1984年的 Matlab版本已经用C语言作了完全的改写叫它结合了C/C++数学库和图形库叫,全部由世界一流专家用C或者汇编语言编制,是世界流水平的数值计算函数库,运行效率极高。它提供了一个终端
表1部分编程语言的特性
语言机器语言汇编 C
Fortran LabView Matlab
缓别最低低
高綫中的低线
高高高
编程效率
极低低
相对其它高级语言较低。但可较高**
较高高
运行效率
最高最高可量高* 较高较高低
附注1:*C语言中嵌入汇编语句,可以提高运行效率和计算速度,但要摘牲部分编程效率。
附注2:**C语言中调用Matlab数学库,可以提高部分编程效率。附注3:各语言的技术瓶颈用斜体字标出。
收稿日期:20160405
作者简介:题飞(1977一),男,河北录县人,博士,讲师,计算机集成测控系统开发。
硬件控制最灵活最灵活灵活
比较灵活难
数值计算最快最快可最快* 很快慢慢
161