本文设计了基于FPGA的X射线安检设备控制器,该控制器通过加载Thin TCP/IP接入以太网,使得多台PC共同对可疑物品的图像数据进行分析,进而提高鉴别精度。 工作原理及控制要求 X射线安检设备主要由X射线源、传送装置、控制器、X射线线性阵列探测卡、以太网控制器(CS8900A)、屏蔽辐射所需的机械装置、装有该设备配套软件的PC等组成,X射线安检设备原理如图1所示。 图1中,当控制器产生X射线触发信号时,X射线源发出圆锥形X射线束,该射线束经准直器后变为扇形平面射线束。射线束穿过传送带上待检测物,X射线部分能量被吸收,最后轰击X射线线性阵列探测卡上的晶体管。被检测物体以某一速度相对于探测卡和X射线源移动时,探测卡逐行采集经过物体的射线,晶体-光电二极管将X射线转换成一个正比于所吸收的X射线流量和能量的电流信号,经放大和积分后,得到一个正比于积分电流乘积分时间的电压,再经A/D转换后送往图像数据处理单元。 图1 X射线安检设备原理示意图 CS8900A工作原理 CS8900A是一个集成了ISA总线接口的10Base-T以太网控制器。发送数据时,可以采用中断模式和查询方式。如果采用中断模式发送数据帧,在收到主机发来的命令后检测内部空间,若空间足够大,芯片通知主机传送数据,主机接到通知后发送数据包。发送过程中由CS8900A自动为要发送的数据帧添加前导符、定界符、CRC校验码等。若相应的寄存器已被设置,还会引发发送成功中断。如果采用查询方式发送数据,则主机对相应的寄存器进行查询,若可以发送,CS8900A将数据帧加帧头,生成校验码,最后发送至以太网中。 接收时,CS8900A将自动地从网络中读取数据包,在经过解码、去掉帧头和地址检验等步骤后,将数据帧在片内进行缓存。在CRC校验通过后,CS8900A会根据初始化配置情况,通知主机收到了数据帧。最后选择I/O模式、Memory模式、DMA模式中的一种,将数据传送到主机的存储区中。本设计选用I/O模式对数据进行读取。 FPGA控制器工作原理 系统上电后,FPGA控制器初始化X射线源、CS8900A、X射线线性阵列探测卡等。由于FPGA内部逻辑是并发机制,所以以下进程是并发的:接收到检测信号后触发X射线源、X射线线性阵列探测卡,当接收到ADC的EOC端信号后进行图像数据的接收、处理、发送;接收到CS8900A中断信号后进行数据解析,根据解析的数据进行参数设置、控制传送带的运行状态、报警等相应操作。工作流程如图2所示。 图2 X射线安检设备控制器工作流程图 控制要求 系统需要完成初始化、图像数据采集、控制传送带运行状态、报警等。FPGA控制器通过以太网网卡接收PC发来的参数数据对整个系统控制调节。 控制器设计 根据控制要求,控制器主要实现解析IP分组、数据处理、产生控制信号、生成IP分组等任务。解析IP分组实际上是对TCP/IP协议的解析;生成IP分组就是进行数据的封装。本文是基于FPGA芯片设计的控制器,所以,解析IP分组、数据处理、产生控制信号、生成IP分组都是以逻辑电路形式出现在FPGA中。 FPGA控制器中TCP/IP协议的裁剪方案 随着互联网应用的迅猛发展,TCP/IP协议已成为嵌入式互联网的主体构架。TCP/IP协议通常被认为是一个四层体系结构,包括链路层、网络层、传输层和应用层。在本设计中,根据控制器的具体要求,对TCP协议进行了适当的裁剪,仅实现了四个协议:ARP(地址解析)、IP(网络协议)、ICMP(控制报文协议)、TCP。 TCP是一种面向连接的协议,它能提供高可靠性服务。通过使用序列号和确认信息,TCP协议能够向发送方提供到达接收方的数据包的传送信息,从而实现端对端的通信,为了保障图像数据的可靠性,本控制器采用该协议。 FPGA控制器片内逻辑设计 本文采用VHDL分模块设计了基于FPGA的安检设备控制器。FPGA片内逻辑设计框图如图3所示。 图3 FPGA片内逻辑设计框图 数据接收模块、数据解析模块 图3中,数据接收模块实现CS8900A与FPGA内数据解析模块的链接。当控制模块产生确认接收数据信号时,数据接收模块将CS8900A接收缓冲区中的数据读出,然后将其写入数据解析模块。数据解析模块实际上是将上述TCP/IP裁剪协议硬件化,主要用于解析来自数据接收模块的数据,将解析的数据与预存于FPGA内的数据表对照。若解析的结果是指令和外设参数,将其分别写入控制模块和外设参数配置模块,否则将其丢弃。 控制模块 控制模块是FPGA控制器的核心模块,主要用于接收检测信号后触发X射线源、探测卡;接收ADC的EOC端信号后对图像数据接收模块产生采集数据信号;接收CS8900A中断信号后对数据接收模块产生接收网卡缓冲区中数据信号;据解析模块所处理的指令,相应地有如下响应:产生外设参数配置信号、产生控制传送带运行状态信号、产生报警信号。 外设初始化和参数配置模块 外设初始化模块在系统上电时,对控制器外设发送初始化信号,然后检测控制模块对其是否发送指令,若有指令,则重新初始化外设。外设参数配置模块用于对外设进行参数设置,当控制模块对其产生参数配置信号时,该模块将参数写入初始化模块,
图像数据接收、处理及发送模块 图像数据接收模块实现ADC与控制模块、图像数据处理模块链接。当控制模块产生图像数据采集信号时,接收模块给X射线线性阵列探测卡发送启动采集信号,然后将ADC图像数据写入处理模块。处理模块针对内置几何校正、灰度变换、伪彩色等多种清晰度增强算法,利用数字图像处理技术,将图像对比度和清晰度进行增强。发送模块对处理模块处理好的图像数据进行IP封装,然后将其写入CS8900A发送数据缓冲区,启动网卡,将此数据发送到所连接的网络上。 实验与验证 由于VHDL是并发程序,所以要把顺序执行的思想转化为并发设计思想。本设计采用Xilinx公司的ISE8.1在Virtex- xc2v6000芯片上实现了控制功能,在Modelsim SE6.1b中进行了仿真。由仿真结果得出,控制信号时序正确,符合控制要求。 结语 本文在分析X射线安检设备部分组成器件工作原理及控制要求的基础上,设计了FPGA内部逻辑,给出了控制器的工作流程,验证了控制信号时序的正确性。预计此种控制器可以带来可观的经济效益和市场前景。
|