USB便携式多道γ能谱仪的设计与实现

2007-03-09 19:03:27来源: 互联网
摘要:讨论了串行总线(USB)技术应用于便 携式多道γ能谱仪的可行性,并详细介绍了 系统的硬件、固件、设备驱动程序以及应用程序的设计方法,最后给出了其性能测试结果。 关键词:USB γ能谱数据采集 WDM 野外地面γ能谱测量技术主要研究地壳岩石土壤中产生的能量范围约为30keV~3000keV的γ射线,这里面包含着轴、钾等天然放射性核元素信息、核工程活动产生的大量人工放射性核元素信息以及γ射线与地壳相互作用产生的相关信息。而用于获取和处理γ能谱数据的多道γ能谱仪是重要的研究课题,其功能是把从γ射线探测器得到的脉冲信号转换为X-Y轴的能谱形式并显示出来(X轴代表能量,Y轴代表脉冲计数)。 传统的多道γ能谱仪一般采用NIM(Nuclear Instrument Module)插件的标准模式。但其存在体积庞大、抗干扰能力差等缺点,不适合于野外现场测量。为适应多道γ能谱仪智能化、微机化、便携化的实际需要,本设计采用笔记本电脑作为γ能谱仪的上位机。常用接口方式主要有RS-232C串口、红外线端口、EPP并口、USB、1394、Ethernet等。这几种接口方式的特点比较如表1所示。 表1 接口方式特点比较 方式 长度(m) 速度(b/s) 主要优点 主要缺点 串口 15 20k 应用广泛,研发简单 速度慢,逐渐被淘汰 并口 10 8M 速度较快,研发简单 逐渐被淘汰 红外线 2 115k 无线传输 距离短,可靠性差,耗电大 USB1.1 5 12M 传输稳定,速度快,使用方便,具有弹性,代表接口发展方向 协议复杂,研发难度较大 1394 1.5 400M 传输速度快,具有弹性 特定用途(视频),研发难度大 Ethernet 500 10M 传输可靠,使用方便 ,资源共享 特定用途(LAN),研发难度大 经过比较轮证发现,USB作为近年出现的一种代表微机接口发展方向的新型总线规范,其便捷易用、速度快、可靠性高等特点,使之非常适合作为便携式多道γ能谱仪的接口方式。目前大多数笔记本电脑一般都有两个以下的USB端口,USB规范规定每个端口提供5V、500mA的电量,而笔记本电脑在实际应用时,通常是通过自带锂电池供电的,无法提供足够的电量给外设,这时就会造成外设工作不正常,甚至使系统崩溃。考虑到本系统下位机部分功耗较大,因此供电方式使用外置电源。 笔者在吸收借鉴γ能谱测量技术最新研究成果的基础上,进行了USB便携式多道γ能谱仪的设计。本设计主要完成硬件、固件、设备驱动程序以及应用程序等的设计工作。 图2 1 硬件设计 1.1 系统总线结构 图1所示为USB便携式多道γ能谱仪的总体结构框图。下位机硬件部分主要由γ射线探测系统(探头)、脉冲信号调理电路、数字电位器、多道脉冲幅度分析器、USB接口电路以及电源电路等构成,其中探头部分包括闪烁探测器、前置电路和高压电路等,多道脉冲幅度分析器主要包括峰值别电路、控制电路、A/D转换电路以及微控制器系统等。上位机由笔记本电脑系统构成。 软件部分由固件、设备驱动和应用程序组成。 1.2 USB接口电路 由于USB本身的控制协议较为复杂,需要使用相应的USB接口芯片。本设计采用了Philips公司的USB接口芯片PDIUSBD12(简称D12),其优点是可以选择合适的微控制器及其开发系统进行外设开发。 D12内部集成了串行输入引擎(SIE)、320字节的多结构FIFO存储器、收发器以及电压调整器,支持DMA方式,采用双缓冲区技术,遵从USB1.1标准。芯片中串行输入引擎(SIE)模块起着至关重要的作用,完成所有USB协议层功能,如同步模式识别、并/串转换、位填充/解填充、CRC检验/产生、包PID产生/确认、地址识别、握手信号包响应产生等。另外,D12还集成了SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性,提高了系统的性价比。 图4 微控制器采用HYUNDAI公司的GMS90L32,它是一种兼容Intel8032微控制器的产品,其主要特点是工作电压范围宽(2.7V~5.5V)、功耗低、性价比高。D12与GMS90L32的连接如图2所示。本设计使用了多路地址/数据总线复用方式。 此外,本系统选用了美国ST公司的PSD913F2,它是用于8位微控制器的具有大容量FLASH存储器、在系统编程(ISP)能够和可编程逻辑的器件。它将地址锁存器、FLASH、SRAM、PLD等集成在一个芯片内,成功地实现了微控制器系统的“MCU+PSD”两芯片解决方案。这种方案既可简化电路设计,节省PCB印制板空间,缩短产品开发周期,又可增加系统可靠性,降低产品功耗。 2 系统软件设计 2.1 微控制器固件程序 所谓固件程序就是固化在程序存储器中的程序代码。本系统的固件存储在PSD913F2的Flash存储器中,固件开发使用的是Keil C51语言,开发平台为μVision2集成开发环境。 固件的开发是移植与开发相结合。本设计参考了Philips公司提供的D12固件程序范例,对于USB协议操作的相关代码可以直接移植使用,而数据采集、传输、存储等部分则是全新的开发工作。 固件程序结构如图3所示。硬件抽象层对D12的数据读、写以及各种指令的写入进行函数封装;D12命令接口层对D12的所有控制指令的函数进行封装;USB向量请求模块完成USB上电配置、向量请求等各类事件的响应处理;USB协议层包括对USB协议操作的封装以及对USB标准请求的响应;中断服务进程包括USB中断、ADC中断以及定时器0中断(记录测量时间)等。 主程序及ADC中断服务程序流程图如图4所示。主程序首先完成各种初始化,然后进入主循环,等待中断的发生,并根据标志变量执行相应的函数。当打开控制电路时,脉冲峰值别电路自动启动A/D转换,转换结束信号会触发微控制器外部中断1,进入ADC中断服务程序,读取A/D转换结果并存入缓存中,然后中断返回。 当D12有事件需要处理时,将触发微控制器外部中断0,微控制器读取D12的中断状态寄存器,判断中断的来源并作出相应的处理。若由数据端点触发,则相应地读取或写入数据;若由控制端点0触发,则判断请求的类型。标准请求由USB协议处理模块处理,用户自定义向量请求由USB向量请求模块处理。 2.2 USB设备驱动程序的设计 在Windows环境下,USB设备驱动程序遵循WDM(Win32 Driver Mode)方式。为了简化设计,并兼顾驱动程序的运行效率,笔者选用了DriverStudio2.7工具软件中的DriverWorks组件进行USB设备驱动程序的开发。DriverWorks为WDM设备驱动程序的开发提供了完善的支持。其中包含一个非常完善的源代码生成工具DriverWizard以及相应的类库和驱动程序范例,它还支持在C++下进行设备驱动程序的开发。通过DriverWizard生成的代码只需要进行少量的修改可以使用,这使得驱动程序开发者可以将精力集中在驱动功能的实现上,而不必理会太多的WDM开发细节。 本设计在DriverWizard的最后自定义了三个IOCTL接口对USB设备进行控制,如表2所示。然后在自动生成的驱动程序代码中向相应的IOCTL函数添加代码,用函数BuildVerdorRequest构建USB协议的自定义向量请求(Vendor Request)。由编译修改后的源代码即可得到驱动程序文件McaD12.SYS。 表2 自定义IOCTL接口 自定义IOCTL接口 功能说明 Mca_IOCTL_START 启动多道采集数据 Mca_IOCTL_READ 开始读取数据 Mca_IOCTL_START 停止多道数据 2.3 USB应用程序的设计 应用程序的设计在Visual C++6.0开发环境下进行。根据实际要求,本设计需要在软件中对采集的数据进行整理、分析并显示。其功能模块主要有数据采集、谱数据显示、ROI操作、系统刻度、谱分析等,其结构框图如图5所示。 在Win32系统中,USB设备被抽象为一个文件,应用程序只需要通过几个API函数就可以实现与驱动程序中USB设备的通信。API函数如表3所示。 表3 设备文件操作API函数 API函数 功能说明 CreateFile 打开设备 ReadFile 从设读取数据 WriteFile 向设备发送数据 CloseHandle 关闭设备 DeviceIoControl I/O控制操作 本程序设计使用MFC多线程技术。单击开始按钮,程序就创建一个用户接口线程,并且通过IOCTL启动USB设备,然后在此线程每隔一定时间(10~20ms)从USB总线上读取一次数据;而程序自身的主线程则不断地依据读取的数据刷新屏幕,显示多道能谱。当单击停止按钮或是设定采集时间到时,程序则通过IOCTL停止USB设备的数据采集,终止用户接口线程,并且停止屏幕谱线的更新。 当创建用户接口线程时,首先从CwinThread类派生一个CioThread类,然后调用AfxBeginThread()函数创建CioThread类的对象进行初始化,启动线程运行。根据需要可将初始化和结束代码分别放在类的InitInstance()和ExitInstance()函数中。其中,InitInstance()函数是从USB采集数据的线程的主要函数。从中实现对IOCTL的调用、对USB设备数据的读取等功能。其流程如图6所示。 3 测试与结论 实测Cs放射源γ能谱如图7所示。根据能量为0.6641MeV的谱峰,系统可以自动计算能量分辨率,实测能量分辨率小于10%。 经过严格测试,该系统其它主要技术指标为:γ射线能量分析范围为20keV~3.0MeV; γ能谱分析道数为1024道;放射源能量非线性系数小于5%;使用NaI(T1)探测器时,整机功耗小于960mW;实测USB最大数据传输速率约为1Mbps;连续测量数据符合放射性统计涨落规律;设备驱动及应用程序兼容Win98/2000/XP。 上述结果表明,本系统的技术路线和软硬件设计先进,方案合理,并具有一定的创新性和实用价值。对本系统编译稍加修改便可应用于其它基于微机的数据采集、自动化测控系统中。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/others/200703/9926.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved