基于ADS1298和STM32F407的心电采集与显示系统设计(3)
时间:2025-03-11
时间:2025-03-11
心电采集模块
选择ILI9328,主要以列为单位控制屏幕的点亮和刷新,以行为单位控制灰度。所有的数据存在GRAM(Graph icsRAM)中以减少数据传输工作,只有必须更新的数据才被传送。门驱动有320个,与列数相同,所送出的波形可以依次将每一行的TFT打开。源驱动有720个,每屏幕上生成了不同颜色的点和图像。
3个控制1个点的灰度。门驱动与源驱动相配合,即在
SDATAC命令,接着使用RREG和WREG命令查看和修改寄存器配置。完成后,使START变为高电平,开始转化数据,系统每完成一次数据转换,会发出一个DRDT信号,将该信号作为中断,在中断中发送RDATA命令,取回当前数据,
并做一定的处理。
图5SPI时序图
3.2
使用的TFT LCD利用薄膜晶体管(TFT)产生电压
μC/GUI功能模块
来控制液晶分子转向。μC/GUI的所有命令其实是对驱动芯片寄存器的读/写操作,通过写入多个寄存器的值来控制特定像素点的颜色,形成需要的图像[8]。
μC/GUI将最底层的读写寄存器的函数封装起来,
形成画点、画线和画矩形等底层驱动函数。在此基础上,对驱动函数做二次封装,形成适合μC/GUI的核心函
图4
信号处理、显示、存储模块结构图
数。对于复杂任务,μC/GUI设计了一套基于消息的机制,即所有操作是通过发消息方式实现。为了方便用户使用,μC/GUI定义了视窗(类似于Windows的窗口)的概念,并设计了一些窗口控件。在本系统中使用了TEXT、BUTTON和GRAPH窗口控件,其中TEXT控件用于显示特定文字,BUTTON组件及相应的回调函数实现不同通道间数据的切换,GRAPH组件用于绘制图形及图形坐标。
μC/GUI是应用消息驱动的,以BUTTON组件为
3软件设计
根据系统功能要求,将基于主控STM32F407芯片
的软件功能设计分为:SPI功能模块、μC/GUI功能模块以及SD功能模块。3.1
SPI接口作为基于ADS1298前置放大电路与基于SPI功能模块
STM32F407数字信号处理模块的传输媒介,是至关重要的环节。ADS1298芯片提供了两种读数据的模式[7]。一种为RDATAC模式,即连续读数据模式,在该模式下,芯片会按照预先设定的速率不停地采集并转换数据,直到
例。观察BUTTON_Create→BUTTON_CreateEx中的WM_CreateWindowAsChild、WIDGET__Init等函数,并没
有对LCD屏的操作,大部分是对参数的记录及赋值。这些函数并不涉及操作,只是将要做的事情以消息的形式发送,称为μC/GUI消息的收集机制,通过该机制,μC/GUI“明白”要做什么。真正的显示是在GUI_Exec函数中,GUI_Exec()→GUI_Exec1()→WM_Exec()→
系统收到STOP命令或SDATAC命令。该模式为默认模式,如果需要进入别的模式,比如RREG读寄存器模式,必须首先使用SDATAC命令退出连续读数据模式,否则命令无效。第二种为RDATC模式,即命令读数据模式。在此模式下,每发送一个RDATC命令,系统转换一次数据。一般用于经常变动寄存器设置的场合,为了方便计算和控制数据个数,本系统采用第二模式。ADS1298芯片有26个寄存器,需要使用RREG和WREG命令来配置诸如转换速率、复用器功能、SPI模式和右腿驱动等功能。图5给出了本系统中SPI的时序。
如图5所示,片选信号变为低电平后,首先要发送
WM_Exec1()→_DrawNext()→_Paint()→WM__Paint _Paint1()→WM_SendMessage()将所有信息发到对应调用核心函数完成最后的绘制。
图6是基于μC/GUI的LCD屏实时显示的通道二采集到的心电信号,即I导联信号。
WinAndOverlays()→_Paint1()一系列函数负责剪切,即根据收到的消息,确定LCD需要重新绘制的区域。于BUTTON组件的_Paint函数,_Paint函数接收此信息,
上一篇:加强文明礼仪教育培养现代公民论文
下一篇:33高血压危象抢救流程