基于FPGA和以太网技术的X射线安检设备控制器设计
本文设计了基于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中断信号后对数据接收模块产生接收网卡缓冲区中数据信号;据解析模块所处
设备 控制器 设计 安检 射线 FPGA 以太网 技术 基于 相关文章:
- Linux操作系统网络驱动程序编写(04-11)
- 利用udev在/dev下动态生成/移除设备文件(04-21)
- Linux系统对ISA总线DMA的实现(06-19)
- 基于MPEG-4的嵌入式多媒体监控系统中压缩/解压卡的设计与实现(10-15)
- 基于TMS320F240的红外线设备远程报警系统设计与实现(04-17)
- 设备文件系统devfs详解(05-01)