文献标识码:A
文章编号: 0258-7998(2013)06-0007-03
锥形束CT(Cone Beam Computed Tomography,CBCT)出现于20世纪90年代后期[1-2]。因其具有辐射剂量小、分辨率高和轴向视野大等优点,广泛应用于口腔诊断等医学领域[3]。其中专用于口腔医学的又称为口腔CT(或牙科CT),其主要由机架、C形臂、X射线高压发生器、X射线源和平板探测器等部件构成。系统运行时,C形臂旋转一周,同时X射线源出束,平板探测器采集图像,经过重建获得三维图像。口腔CT 具有成本低、占地面积小、剂量较低、图像分辨率较高以及使用灵活等优点, 在口腔医学领域具有重要的应用前景。国内已经有少数几家单位在研究该类型设备,但尚没有真正的产品推向市场。同步控制是口腔CT采集系统中的一项关键技术,相关技术研究的文献介绍也较少。本文旨在实现机械结构、X射线源以及平板探测的同步工作,确保获取高质量的投影图像。利用Quartus II和Nios II的开发软件设计片上系统,大大减少外围电路设计的复杂度,减短开发周期,同时也使得系统开发更加灵活[4]。
1 平板探测器时序信号特征
本研究所使用的平板探测器是美国Varian公司的PS1313。该型平板探测器读取数据有两种控制模式:一种是内触发模式,另外一种是外触发模式。为了使探测器更好地与X射线源以及机械运动同步并实现剂量的控制,本研究采用外触发模式[5]。根据采集图像的大小,采集窗宽有所变化, 但均在100 ms内。
为了减少人体辐射剂量,口腔CT的X射线一般采用脉冲式出束。所以,不同的采集宽度影响着采集同步时序的控制。理想情况下,平板探测器采集时间、X射线出束时间以及机械结构起止时间一致,就完成一次投影采集。但由于探测元的迟滞性,在采集完后需要充分放电,才能进行下一次采集。因此中间需要停止一段时间,一般是2~3个采集周期。同时,C型臂的旋转可能导致残影的出现,所以也需要停止一段时间后再进行曝光和图像采集。另外,从X射线的开启到X射线出束稳定有一个上升时间,所以X射线的开启时间应该比探测器早。而C型臂的旋转速度与图像重建需要采集的投影数有关,C型臂旋转的速度T按式(1)计算:
3 控制系统软件设计
3.1 系统软件顶层模块设计
顶层模块包含Nios II内核、锁相环、高压发生器和平板探测器脉冲控制模块以及步进电机控制模块。Nios II内核和锁相环在Quartus II平台上根据设计需求手动生成;锁相环有3路时钟信号,分别作为Nios II、高压发生器、探测器脉冲控制模块以及步进电机控制模块的时钟信号;高压发生器和探测器脉冲控制模块以及步进电机控制模块则用Verilog HDL语言编写[6],然后封装成模块。
3.2 高压发生器和探测脉冲控制软件设计
该脉冲控制软件由3个模块组成:(1)通信模块,用于与Nios II内核通信;(2)X射线源高压发生器控制脉冲生成模块;(3)探测器脉冲生成模块。代码设计应用了状态机的设计思想,通信模块接收到Nios II内核信号后,将这些信号分成3个状态:状态1,高压发生器和探测器均为关闭状态;状态2,高发生器打开,探测器关闭;状态3,高压发生器关闭,探测器开启。该部分代码流程图如图3所示。
3.3 步进电机控制模块软件设计
步进电机的控制是通过改变脉冲频率来实现的。步进电机控制脉冲是FPGA通过系统时钟分频得到的,所以为了达到调速的目的,本设计通过Nios II控制步进电机模块改变分频系数来达到改变步进电机速度的目的[7]。步进电机控制的关键是实现平滑的调速,步进电机调速的方法有很多,这里采用S型曲线进行调速[8]。用Quartus II生成一个Rom用于存储调速的频率值,Rom和电机控制共用一个时钟信号。该部分模块化的结果如图4所示。
3.4 Nios II内核软件设计
Nios II内核[9]的作用与初级版本中Atmege128的功能相似。根据图2,Nios II内核代码包含了以下模块:串口通信、按键处理、电源控制、LCD、高压发生器和探测脉冲控制和步进电机控制模块。开机后系统让高压发生器、探测器、步进电机等处于初始状态。按下复位按键后,可以通过电脑上位机软件设定高压发生器参数kV和mA值。按下扫描按键开始扫描,若发现有参数未设置,或者设备初始状态出现故障,则系统停止运行,同时在LCD和电脑上提示错误;若一切正常,则进入扫描状态,此时系统会通过串口定时检查高压发生器的状态。当出现异常时系统停止运行,并提示错误;若正常则系统运行直至扫描结束。其控制流程图如图5所示。
3.5 串口通信
该控制系统中两个串口均采用应答包方式实现握手机制,命令的字段均采用ASCII编码方式,各数据段发送顺序为由高字节到低字节,数据包最大长度为16 B。上位机控制软件采用Visaul Studio 2008开发[10],控制系统电路板软件开发采用Nios II 11.0 Software Build for Eclipse和Quartus II[11]。
串口UART0的参数设置为:115 200 b/s,Even Parity,8 bit Data位,1 bit Stop位。该串口的命令格式如表1所示。
STX为数据包起始数据,固定十六进制值为0x02;CMD为命令字符;SP为间隔字符0x20;ARG为设定参数的范围;分号字符为命令数据包中的固定字符;CS为校验字符,是2的补码;CR和LF为结束字符,十六进制数分别为0x0D和0x0A。
串口UART1的参数设置为:115 200 b/s,Odd,8 bit Data位,1 bit Stop位。该串口的命令格式如表2所示。
STX为数据包的起始段,固定为0x3C;TYPE为命令标志字段;CONT为命令类型字段;PARAM为命令参数;LF为数据包结束标志字段,固定为0x3A。
4 实验结果
设计完成后,对系统进行了联机调试,并将系统上位机软件与口腔CT图像处理软件整合,调试结果表明系统运行良好。
在预设同步频率值为10 Hz的情况下,用示波器分别采集光栅尺反馈信号、平板探测器触发信号以及X射线脉冲信号。通过示波器中CURDOR键进行光标测量,这3个脉冲信号频率均为10 Hz。平板探测器信号和光栅尺信号延迟为40 μs,X射线脉冲信号为20 ms。时序结果与理论分析一致。
该平板探测器自带一个上位机软件,利用这个上位机软件可以设定图像采集速率,采集完图像后也可以获得实际的图像采集速率。下面表3中对图像采集速率设定值与实际的图像采集反馈值以及同步控制系统设定的图像采集频率值进行了比较。从结果看,相对误差均不大于0.2%。根据采集窗宽的变化范围,本设计选择了10 Hz的同步控制速率,根据采集投影数目的多少,扫描一周所需要时间为20 s~36 s,实际出射线时间为4 s~7.2 s;而同样投照面积下德国kavo 3D口腔CT所用时间为26.9 s,出射线时间12.6 s。
本文描述了利用嵌入Nios II处理器的FPGA实现口腔CT控制的设计方案,实现了同步脉冲的输出控制,同时完成了PC机上位机控制软件的设计、高压发生器的状态监测以及显示和存储等附带功能。系统初级版本是采用Atmega128和Altera公司的EMP570实现的,而该方案不仅使得外部电路复杂,而且稳定性相对低。本设计采用EP4CE15F256为核心,嵌入32位内核处理器Nios II,相当于把MCU和CPLD集成在一起,在稳定性和实时性上都优于初级版的设计,并且电路设计更加简单,软件设计更加灵活,缩短了开发周期。
参考文献
[1] SCARF W C,FARMAN A G,SUKOVIC P.Clinical applications of Cone-Beam computed tomography in dental practice[J].Can Dent Assoc,2006,72(1):75-80.
[2] JIANG H.Computed tomography:principles,design,artifacta,and recent advances[M].2nd ed.Bellingham,Wash,SPIE Press,2009.
[3] 唐小山,房莉,曾飞煌,等.CBCT技术在多生牙诊断中的意义[J].CT理论与应用研究,2012,21(2):529-554.
[4] 催莺然,胡宝霞.基于Nios软核处理器的嵌入式系统设计[J].电子测试,2008,11(5):55-99.
[5] 罗守华,催燕南,薄腾飞,等.低辐射CBCT系统成像时序的控制与实现[J].科技导报,2012,30(6):23-26.
[6] 周润景,图雅,张丽敏.基于Quartus II的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社,2007.
[7] 欧海平,周砚江,张华也,等.基于SOPC的步进电机加减速PWM控制IP核设计[J].机电工程,2011,28(6):708-711.
[8] 杨超,张冬泉.基于S曲线的步进电机加减速的控制[J]. 机电工程,2011,28(7):813-817.
[9] 李兰英.Nios II嵌入式软核SOPC设计原理及应用[M]. 北京:北京航空航天大学出版社,2006.
[10] 龚建伟,熊光明.Visual C++ /Tubo C串口通信编程实践[M].北京:电子工业出版社,2008.
[11] 李锐.基于嵌入式Nios II软核的串口直接读写寄存器方式编程[J].现代电子技术,2010,14(37):37-39.