邹良昌
摘 要:回旋加速器是为检测大型集装箱及容器实时成像而设计的。它还可以应用于无损检测的其他领域,使用直线探测器线阵检测高厚工件,及科学研究。该设计是基于飞思卡尔MC68HC908MR32作为加速器的主控制板核心处理器;此MCU运行速度快硬件资源丰富,10路10位A/D用于剂量率、电子能量、温度等模拟量信号采集,16位共6通道定时器用于产生加速器主频电压、电子能量等时序脉冲,扩展AD5724四通道D/A用于模拟量输出;DS1305用于保存自动搜索最大辐射剂量率的D/A数据;该文概要阐述了便携式回旋加速器的单片机C程序设计方法。
关鍵词:MC68HC908MR32 回旋加速器 自动搜索 程序设计 AD5724
中图分类号:TP311.1 文献标识码:A 文章编号:1674-098X(2017)06(c)-0158-02
MC68HC908MR32是8位低成本,高性能M68HC08系列中的一员;除摘要内介绍的特点,还有大容量存储32KB片内Flash存储器,768B片内RAM,非常适合编写C程序; 8 MHz内部总线频率能够满足信号处理及控制的速度要求,还含有串行外设接口模块(SPI)和串行通信接口模块(SCI)等接口。AD5724R是四通道12位电压输出数模转换器(DAC),采用双电源±12V供电,软件选标称满量程输出范围±10V,采用SPI接口能以最高30MHz的时钟速率和MCU通讯,本控制板用3路模拟量输出。DS1305时钟电路采用双电源供电,掉电后由电池供电,具有SPI接口MCU可与之通讯读写数据,内部96字节掉电存储器用来存储最大剂量率的三路D/A数据。
该文结合DAC和ADC及其他硬件,着重介绍在CodeWarriorforMicrocontrollers V6.3编译环境下的回旋加速器C程序设计流程及自动搜索最大剂量率的算法。
1 单片机程序的基本架构
1.1 各部分功能介绍
通讯程序包括控制命令,如启动、停止、复位等;设置参数;读取参数;读取工作状态及故障报警信息。定时中断部分是用来产生加速器时的脉冲波形,包括主频脉冲时序;主磁极脉冲时序;偏转脉冲时序等;自动搜索最大剂量率采用遍历算法,搜索完毕后将最大剂量率保存至DS1305中掉电存储;模拟量信号采集包括最大能量、剂量率、注入电流和温度等的采集, 温度采集用查表方法读取温度,在单片机中做上限报警温度设定和允许开机的下限温度设定,同时实时供上位机读取当前温度值显示。拟量输出包括灯丝电压控制,注入电压控制,聚拢电压控制;为了及时反映设备的运行状况,保护人员安全,当设备异常时及时保护设备并提示设备操作人员,达到及时维护或维修设备的目的,因此做了全面的故障报警程序,包括开关信号、电压、电流等保护。
1.2 自动搜索最大剂量率的算法解析
所谓遍历(Traversal),是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。此方法应用在自动搜索最大剂量率上可以省去调节硬件的麻烦,精确寻找到最佳剂量率的参数匹配。结合实际情况为一个二维数组的遍历,本控制板采用先粗条后细调的方法自动搜索最大剂量率,实现此算法的C程序如下:
while (injectionAdjustnumber>0)
{
contractordata=contractordataunadjusted;
Data_ contractordata (contractordata);
contractorAdjustnumberbuff=contractorAdjustnumber;
while (contractorAdjustnumberbuff>0)
{
currentdoserata=Data_L955A();
if(currentdoserata>lastdoserata)
{
lastdoserata=currentdoserata;
contractordatabuff=contractordata;
injectiondatabuff=injectiondata;
} contractordata=Data_voltageSub(contractordata,contractorAdjustingstep);
Data_contractordata(contractordata);
contractorAdjustnumberbuff--;
} injectiondata=Data_voltageSub(injectiondata,injectionAdjustingstep);
Data_ injectiondata (injectiondata);
injectionAdjustnumber--;
}
实测程序控制两个模拟量电压波形图1。
2 结语
该文介绍了MC68HC908MR32在便携式回旋加速器上的程序设计方案,硬件资源和性能适合并满足此设备的设计要求。飞思卡尔半导体公司(原Motorola公司半导体产品部)的M68HC08系列单片机在很多应用领域内都表现出低成本、高性能的特点,它的体系结构为产品开发了节省了大量时间,此单片机提供了多种集成模块,充分发挥了它的灵活性。
参考文献
[1]常越.M68HC08单片机原理及C语言开发势例[M].北京:北京航空航天大学出版社,2005.
[2]王秀芳,于随然,李元超.基于单片机MC68HC908的后视镜电控系统的设计[J].仪表技术,2007(11):76.
[3]孙保平.通用M68HC08 MCU编程器的设计与实现[D].电子科技大学,2010.endprint



