微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 医疗电子 > 远程心电医疗信号监测系统设计

远程心电医疗信号监测系统设计

时间:01-13 来源:互联网 点击:
3.3 数据采集控制器设计

为了得到经过前端TLC549芯片转换的心电信号,必须设计一个数据采集控制器,实现对AD芯片的控制与数字化心电数据的获取。该控制器根据TLC549芯片的工作时序与后端数据处理的需要,采用VerilogHDL自行设计。该控制器具有多路采集的特点。

在自TLC549的I/O CLOCK端输入8个外部时钟信号期间需要完成以下工作:读入前次A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次A/D转换。则一路采集时间为:0.5μs×(3+8×2+1)=10μs,而芯片转换时间小于17μs,则整个过程时间花费为27μs。为了有效的利用该控制器,在一路A/D转换期间,同时进行另外一路A/D采样,这样就可以在40μs时间内完成对四路信号的采集,大大提高了工作效率。同时,设计中还加入了一个FSM信号来控制采样时间,从而适应不同频率信号的采样频率。AD芯片的时序仿真图如图3所示。



Din为采集数据的串行输入,时钟由系统时钟通过分频系数得到。设计中,设置了fsm作为采样控制时钟,这样可以根据需要来调整采样速率。由于进行一次AD采样的时间很短,无论采用查询还是中断直接读取都是不现实的,这就需要利用缓冲设计,通过把N次转换的数据暂存在缓冲存储器中来降低中断次数。为了取得连续和正确的采集数据,实现无缝缓冲,鉴于FPGA设计的灵活性,本设计采用了双缓冲存储的乒乓操作结构。本设计通过将AD采样时序控制器交替存储在两个512 B的双口RAM(DPRAM)中实现数据的缓存,当其中一个DPRAM1存储满后即转为存储到另一个DPRAM2中并产生一次中断,这样在控制器写数据到DPRAM2中时系统将有非常充足的时间将DPRAM1中的数据取出。

3.4 显示模块设计

为了能够直观地显示出采集的心电波形,需要显示设备的支持。本设计采用的LCD面板是TFT 320*240 LCD。该LCD模块没有显示控制器,因此需要设计显示控制器IP核来驱动LCD面板。本设计实现的显示控制器IP核采用Verilog HDL设计,支持多种颜色模式,包括18bpp,16bpp,8bpp和自定义模式。图像存储器lcd_fifo是采用片内FIFO,可以根据需要进行词整。256色的颜色查找表采用片内RAM来存储。图像信息能够通过AvaIon总线主端口写入的突发块传输方式进行传输,利用DMA从内存中自动读取,在SDRAM图像存储器image_ram与片上图像数据缓存器lcd_fifo之间建立了一条专用DMA通道,该控制器结构如图4所示。



该LCD控制器IP核主要由4个模块组成:接口模块、内存模块、颜色转换模块和时序模块。

接口模块主要是NiosⅡ处理器对LCD控制器进行控制及状态读取。接口模块主要是以寄存器方式存在的,其中寄存器有:控制寄存器、状态寄存器、DMA地址寄存器和中断寄存器。

内存模块是Avalon总线的主接口部分,在系统启动之后,利用DMA传输模式,通过Avalon总线主端口写入的突发块传输方式,完成图像数据存储器image_ram中的图像数据到片上图像数据缓存器lcd_fifo的独立读取。采用DAM传输方式是为了把NiosⅡ软核处理器从频繁地进行数据读取操作的工作中解脱出来,这样可以大大提高系统的工作效率。

颜色转换模块将读取后的数据根据4种颜色模式不同进行数据读取的转换,其中8bpp和自定义模式由于颜色不足,需要接入颜色查询表处理。自定义模式可以手动对调色板的地址进行预设来定义输出的颜色。

时序模块严格按照LCD的时序编写,其中LCD时钟为5 MHz。通过控制数据使能信号启动lcd_fifo数据输出,逐行扫描显示。同时,设计该模块时,在数据有效信号(DE)有效前,须检查lcd_fifo中是否存有数据,以确定是否进行数据读取和传输;须进行调色板模式设置,在帧传输过程中需要进行模式锁定,以免出现传输错误;须根据不同bpp模式,确定不同的读取时间段,18bpp每次都读取,16bpp间隔1次读取,8bpp间隔4次读取。

3.5数据存储模块设计

本设计选用SD卡作为外接存储硬盘。SD存储卡具有大容量、高性能、安全性好等特点的多功能存储卡,被广泛用于数码相机、掌上电脑和手机等便携式设备中。SD卡上所有单元由内部时钟发生器提供时钟,接口驱动单元同步外部时钟的DAT和CMD信号到内部所用时钟。SD卡有两种通信协议,即SD通信协议和SPI通信协议,与SPI通信协议相比,SD通信协议的最大优点是读写速度快,单根数据线理论上可以达到25 MB/s,四线传输可以达到100 MB/s,本设计采用的是四线SD通信协议。

本设计中对SD卡的协议采用软件编写:首先在SoPC Builder里定义了6个I/O口:SD_CMD,SD_DAT0-DAT3,SD_CLK,分别对应SD卡的命令、数据、时钟端口,然后在NiosⅡIDE上按照SD卡的传输协议编写C程序来对6个I/O口进行操作,以此来实现SD卡的传输协议。在完成SD卡数据块的读写基础上移植了文件系统。FAT16,这样在不影响读写速度的条件下节省FPGA的资源。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top