• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于GPRS的远程心电实时监护仪软件系统设计

基于GPRS的远程心电实时监护仪软件系统设计

录入:edatop.com     点击:

3 软件系统关键技术

    监护仪软件系统的核心是管理Flash、GPRS网络、无线模块的GSM功能及LCD。

3.1 Flash管理

    Flash存储器用于存储心电数据和控制信息,以保证心电数据在断电时不遗失及日后查看监护过程的相关控制信息。

    内存映射(Memory Map)模型把Flash作为一个整体,各种不同数据按照类别预先分配存储空间。操作Flash数据时,首先把内部索引(譬如数据索引或者消息索引)映射到分区地址,剔除无效存储单元,再通过Flash操作函数读取或写入相应的数据。

3.1.1 Flash分区结构

    (1)Head Seg:大小为1个块(Block),用于存储分区版本号、坏块表及其余分区的基本信息,包括分区起始地址(BaseAdd)、分区跨度(以块为单位)、分区最高地址、数据区(Data Seg)中的数据范围、数据区中数据的格式(FMT)、消息区(SMS Seg)所有消息的联系人列表等,每个分区的基本信息占一页(Page)。本分区占Flash存储器的第一个块。根据Flash的技术资料可知,第一块正常使用时不会出现无效存储单元,因此许多关键数据保存于此。

    (2)Data Seg:大小为1000个块,即1000个连续的有效块,用于存储心电数据。如果采样频率为400Hz,采样位数为8位,数据区可存储11.37小时的原始心电数据,所有的心电数据从采样起始点0开始依次编号即心电数据索引,利用该索引寻址。

    (3)SMS Seg:大小为20个块,即20个连续的有效块。每个块存储一条消息的位图,消息的到达时间、发送者存储在该Block的第一页(该块中相对地址为0的页)。消息存满则从头开始覆盖已有消息,利用消息的索引号来寻址。

    Flash分区结构示意图如图2所示。
\
3.1.2 Flash接口函数

    Flash的读操作,首先从存储单元中以页(page)为单位把数据读入Flash内部的寄存器中,然后再把数据导入处理器的存储器。读操作的操作耗时为几十微秒,与单片机的指令周期大致匹配。读操作以页为基本单元,以读取整页数据效率最高。Flash页读取操作一般不会产生错误,Flash文件系统会有纠错操作,最简单的纠错码可以把非连续的单个位错误改正。而对于当前处理器上的内存映射模型,纠错码的引入将大大降低运行效率,因此不做纠错处理。

    (1)FlashPageRead():首先锁存起始操作字节的行列地址,送入Read指令,随后的每个读操作时序把当前字节读出,当前地址指针加1并把数据存储到读操作缓冲区中,同时调用函数时须给出读出字节的总数。

    Flash的写操作,又称为对Flash的编程,即把数据存储到Flash存储单元中。存储单元事先必须已擦除(Erase)过才能写入数据。写操作耗时为几百微秒,擦除操作耗时最多为几毫秒,在数量级上已大大超过了RAM的写操作。利用内存映射模型操作Flash的难点在于合理调度使Flash存储单个字节的耗时与处理器的指令周期相匹配。每次写操作要尽可能多地写入数据,一般每页(512B)写入一次。写操作与擦除操作可能产生坏块,因此须通知主程序是否产生坏块。

    (2)FlashProgram():首先锁存写入数据起始字节的行列地址,随后按照函数调用时给定的写入数据总数,每个写操作时序向Flash寄存器存储一个字节的数据。当寄存器满,送入Program操作指令即可把寄存器中的数据存储进入物理存储单元中。

    (3)FlashECGDMap():根据分区内页索引和坏块列表检索出实际的操作页地址。首先把分区内页地址换算为理想实际地址,即不考虑坏块,然后检索坏块列表及剔除无效地址并给出实际操作地址。

    (4)FlashStoreECGData():在数据分区中存储心电数据,首先检查Flash是否处于繁忙状态,若空闲则立即占用Flash,把采样数据导入Flash写缓冲。如果写缓冲达到存储操作条件,则调用FlashECGDMap()获取实际的操作地址并检查是否Flash的该操作块需要擦除。若需要擦除,则调用FlashErase()函数,擦除状况检查完毕即调用FlashProgram()保存数据。若所有操作完毕,则释放Flash的控制权。

    (5)FlashLoadECGData():从数据分区中读取一定字节数的心电数据。首先需要在Flash空闲状态下获取Flash的控制权,随后利用 FlashECGDMap()获取实际操作地址并判断是否出现跨页读操作。如果不需跨页,则调用FlashPageRead(),读出相应数据到读缓冲即可;若跨页,则分别在两页分两次读取规定字节个数的连续心电数据。

3.2 GPRS网络接口设计

    硬件平台的通信模块是Wavecom公司的2406B。GPRS又称无线分组服务,用于在GSM网络上传输数据。在进行GPRS数据发送的同时,短消息和语音服务不会被禁止,但GPRS数据服务和GSM服务不能同时进行。2406B模块的GPRS上行速率可以达到10kbps,通过设置数据发送串口的波特率为9 600bps,可使数据进出流量匹配。

上一篇:拨号、宽带接入“面面观”比较九种上网方式
下一篇:固网全业务才能支撑三网融合速突破

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图