随着医疗仪器设备向智能化、微型化、系列化、数字化和多功能方向的发展,医疗设备中逻辑控制器件也由采用中、小规模的集成芯片发展到应用现场可编程门阵列fpga(field programmable gate array)。使用fpga器件可以大大缩短医疗设备的研制周期,减少开发成本,同时还可以很方便地对设计进行在线修改,因此fpga在医疗设备中有很广泛的应用[1]。
本文主要搭建一个多生理参数测量系统的数据处理平台,在fpga中嵌入一个32位nios ii软核处理器,用于控制数据的传输、存储及显示。主要完成了此数据处理平台硬件系统的定制及编写相应程序,以控制数据的采集、存储及显示。
采用nios ii处理器为核心进行设计,可以将全部的接口电路集成在同一片fpga上,结构简单。同时,利用nios ii软核可在线配置的优点,通过软件编程改变fpga的内部结构即可迅速、方便地实现系统性能的扩展、升级,大大缩短了系统的开发周期,提高了性价比。
多生理参数测量系统的总体设计
一个完整的生理参数检测系统结构可分为三部分:前端检测电路、接口部分、数据处理平台,分别完成生理信号
的采集、传输和信号的处理功能,系统层次结构如图1所示。
前端检测电路主要完成信号的采集和量化。通过连接不同的传感器,可以对不同的生理信号进行采集,包括心电信号、脉搏信号、体温等常见生理信号。采集到的生理信号经过一些放大、滤波、模数转换处理后,通过串口发送至数据处理模块进行处理,得到所需要的各种生理参数,zui后进行显示或者无线传输。本文主要完成基于fpga技术的数据处理平台的搭建。
基于fpga技术的数据处理平台的设计
本设计搭建的是一个以nios ii软核处理器为核心的数据处理平台,首先控制串口接收数据,并存储在相应的存储空间,经过相关的数据处理,通过控制显示外设显示相应的波形和参数。niosⅱ是基于哈佛结构的risc通用嵌入式处理器软核,能与用户逻辑相结合,编程至altera的fpga中。处理器具有32位指令集、32位数据通道和可配置的指令以及数据缓冲[2-3]。
硬件平台的构建
在本设计中,niosⅱ软核处理器作为控制核心,通过连接串口、存储器件、显示外设构成基本的数据处理平台。因此搭建了如图2所示的硬件平台。
硬件平台主要在terasic公司的altera de2开发板上实现,系统的主要组件有niosⅱ的内核、片内存储器、定时器、vga控制器、lcd控制器等,都集成在一块altera的cyclone ii fpga芯片上,使用sopc builder来配置生成片上系统。sopc builder自动产生每个模块的hdl文件,同时自动产生一些必要的仲裁逻辑来协调系统中各部件的工作[4]。
niosⅱ软核系统的定制
根据图2所构建的硬件平台,利用sopc builder定制32位niosⅱ cpu以及参数化的avalon接口总线,然后再通过适当增添平台中所需的元件核,以适应niosⅱ系统功能的需求,生成如图3所示的基本定制。
软件设计
软件部分主要是控制数据的接收、存储以及显示。在自定义ip核模块中可以设计一些数据处理的算法,如数字滤波算法、某些生理参数值的计算,包括血压值、心率等。
数据接收模块的设计
本设计使用串口接收数据,nios ii开发中使用的uart串口模块是一个sopc builder组件,它包含在nios ii开发包中。在开发包中还预定义了一些关于uart的数据结构和常用的uart函数,这样可以方便地对uart进行编程。
首先,要在sopc builder中对uart的参数进行设置,包括波特率、传输的数据帧格式等。当在sopc builder下完成系统的硬件设计时,会自动生成一个硬件抽象层(hal)文件,作为软件和硬件的接口,同时会在excalibur.h头文件中声明uart模块的相关数据结构。软件通过外设的抽象地址映射接口接入硬件。本设计使用串口中断的方式接收数据,其流程如图4所示。
数据显示模块的设计
在nios ii系统中,vga是一个外设ip核。设计中zui重要的部分是vga时序的产生,它是正常输出显示的关键,包含在vga控制器中。vga控制器是用sopc builder中的interface to user logic生成的,首先用硬件描述语言定义一个时序输出和rgb信号输出模块,点时钟25.175mhz由开发板提供的时钟经锁相环分频产生。锁相环是通过megwizard工具加入系统的。该模块实现了vga输出所需的点时钟、复合同步控制信号、复合消隐控制信号、行同步和场同步信号;同时也完成了从寄存器内读取输出显示命令及颜色值。其中点时钟