Chinaunix首页 | 论坛 | 博客
  • 博客访问: 671364
  • 博文数量: 845
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:22
文章分类

全部博文(845)

文章存档

2011年(1)

2008年(844)

我的朋友

分类:

2008-10-15 16:28:16

 近年来,可编程逻辑器件的发展,使得SOPC (System On A Programmable Chip,可编程片上系统)成为可能, 即在一块可编程芯片上实现整个系统。Nios是Altera公司开发的可用于SOPC设计的处理器软核。

    1 引言

  基于Nios软核的SOPC系统,其最大特点就是灵活,可以根据自己的需要灵活改变Nios的外围设备,使得硬件利用效率达到最高,同时它具有ISP(In System Programmable,在系统编程)的功能,可裁减,可扩充,可升级。本文充分利用了Nios系统灵活定制的优点,设计实现了一套CT机扫描系统控制器。

  2 CT扫描系统控制器

  CT机是根据不同密度和厚度的物体对X射线的吸收程度不同的原理,通过计算机成像技术,对病人身体成像的一种医学设备。CT机扫描系统由X射线发生系统,数据采集系统,对准栅三个子系统组成,如图1所示。扫描系统由扫描架承载,扫描架是一个旋转体,扫描系统随着扫描架旋转,以获得不同角度下的人体信息,扫描架旋转一周所得数据可产生图像。

  扫描系统的三部分中,X射线发生系统产生射线,扫描系统控制器通过CAN总 
线和它通信,发送X射线参数和动作指令,同时接收X射线发生器的状态信息。数据采集系统负责对X射线采样和传输数据,它扫描系统控制器采用RS422总线与其通信,发送控制指令,并接收指令执行状态。同时有IO接口用作采样触发脉冲和采样使能。对准栅通过挡板来调节X射线的开口宽度,挡板由一个步进电机驱动。扫描系统控制器接收来自上级的开口宽度指令,然后发出控制脉冲,控制步进电机到达指定位置,通过编码器接收步进电机转子位置信号,形成闭环。

  CT扫描系统控制器负责三个子系统的协调控制,为扫描系统中设备的通信中心和控制中心。首先它和上级控制单元通信,接收指令和汇报各子系统状态,其次与各子系统通信,发送控制指令,并接收子系统的状态信息。它根据接收到的控制指令和扫描架的位置信息,控制对准栅到达指定宽度,产生控制X射线发生和采样的时序。可见,CT扫描系统控制器包括了实时通信、电机控制,时序控制,是一个多任务的系统。并且对实时性要求也很高,任何一点时序发生偏差,都会对病人造成不必要的伤害。

  本文使用SOPC的方式,设计了以一片FPGA为核心的CT机扫描系统控制器硬件,定制了基于Nios软核的FPGA系统,然后设计了基于实时操作系统Nucleus的应用软件,实现了CT机扫描系统控制器的上述功能。

CT扫描系统组成


  3 基于Nios的硬件设计

  本文使用了Altera 公司的FPGA Cyclone EP1C20,它拥有充足的可编程资源来实现SOPC。因为系统所有功能均由FPGA实现,硬件电路除FPGA外只需加上器件和一些物理层接口芯片即可。本文使用了一片8M Byte FLASH、一片16M Byte SDRAM,CAN总线收发器和RS422总线收发器等作为FPGA的外围设备,硬件电路的结构简单明了,提高了系统的可靠性。FPGA系统运行时钟为50MHz,保证了系统的运算速度。

  通过Altera的SOPC Builder软件包可以定制基于Nios软核的FPGA系统,它提供了一些基本的Nios外设模块,如UART控制器、定时器、FLASH控制器、SDRAM控制器等。本文设计的CT扫描系统控制器FPGA内部结构如图2所示。

FPGA内部结构


  Nios是流水线结构的RISC 软核处理器,它可以选择32位架构或者16位架构。本文使用32位架构,并在SOPC Builder中设置了4K Byte数据缓存和指令缓存,以节省CPU读取数据和指令的时间,提高系统性能。

[1]   

【责编:Luzi】

--------------------next---------------------

阅读(336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~