EZW算法和SPIHT 算法主要是利用树结构来表示这些不重要系数,利用了子带间不重要系数的 相关性,但是没有充分利用同一子带中不重要系数的相关性,因此Asad和 Pearlman提出了SPECK算法,用以提高编码效率。 参考赵安等人的研究,系统拟采用基于整数小波变换和嵌入式编码技术结 合的心电数据压缩算法,不仅能够实现有损压缩,也可实现无损压缩,即在条 件允许或某些特殊情况下,采用无损压缩来提高信号可信度,而在对精度要求 不是非常严格的场合,采用有损压缩来提高压缩比。 采用基于整数小波变换和嵌入式编码技术实现ECG信号压缩的步骤大致如 下: (1)先对原始信号进行去均值处理,即原始信号减去其均值的整数部分,以 减少一些编码所需的比特; (2)进行整数小波变换; (3)对变换系数使用嵌入式算法进行编码。 需要注意的是,编码的时候对最低频系数要无失真的传输,以避免大的误 差。 硕士学位论文 第七章数据无线传输 7.1 GPRS模块工作原理 为降低管理需求,实现更好的无缝漫游效果,系统选用GPRS模块完成数据 的无线传输。GPRS(General Packet Radio Service,通用无线分组业务)是介于 第二代和第三代之间的一种无线通信技术,通常称为2.5G。GPRS在原有的基于 电路交换(CSD)方式的GSM网络上引入了两个新的网络节点:GPRSJ]艮务支持节 点(SGSN)和网关支持节点(GGSN)。SGSN和MSC在同一等级水平,通过跟踪单 个MS的存储单元实现安全功能和接入控制,通过帧中继连接到基站系统。GGSN 支持与外部分组交换网的互通,并经由基于P的GPRS骨干网和SGSN连通。GPRS 终端通过接口从客户系统取得数据,处理后的GPRS分组数据发送到GSM基站。 分组数据经SGSN封装后,SGSN通过GPRS骨干网与网关支持接点GGSN进行通 信。GGSN对分组数据进行相应的处理,再发送到目的网络,如Intemet或X.25网 络。若分组数据发送到另一个GPRS终端,则数据由GPRS骨干网发送到SGSN, 和 再经BSS发送到GPRS终端【55】。 ‘ 7.2 GPRS网络连接建立 对于自带TCP佃协议的GPRS模块则可以直接通过串口往GPRS模块写入 AT控制指令实现网络功能。对于使用不带TCP/IP协议的GPRS模块进行无线 数据传输,则必须利用系统的资源实现GPRS网络的支持。 从成本上考虑,系统选择了无自带协议的Q2403,驱动GPRS模块后,终端 上即可通过构建的嵌入式Linux系统加载PPP协议、编写拨号脚本实现GPRS 无线网络连接,为后续数据传输准备好环境。添加PPP协议支持只需在make menuconfig时将Network Device Support下PPP协议的各选项选中编译进内核即 53 第七章数据无线传输 可。通过GPRS模块在ARM平台上实施PPP拨号上网常见有三种方式:使用智 能拨号软件wvdial、脚本方式、使用命令pppd call script方式。第一种方式智能 稳定,它不需要chat程序,使用集成的wvdial工具包直接连接ISP,安全稳定, 可以断线自动重拨,但是交叉编译较难且配置文件占用的系统空间较大。第二 方式,使用chat程序,很多的参数需要自己去配置,比较灵活,但是如果遇到 了拨号错误调试过程较为复杂。本文采用第三种方式,主要包括/etc/p1)p/目录下 gprs—connect-chat脚本,它在PPP底层会话的时候给chat进程一些“期望/发送” 的组合序列参数;/etc/ppp/peers/gprs脚本,它给pppd进程提供配置参数:/etc/ppp/ 目录下chap-secrets和pap-secrets文件,它们完成本地pppd与对端pppd的 chap/pap认证,成功后,再进行ncp层的ip的分配;/etc/ppp/ppp-off脚本,它用 于断开PPP连接;/etc/ppp/rmlock,它主要是为确保拨号成功准备的用于判断并 删除无效的串口的lock文件。上述配置完成后在系统启动脚本rcS中添加几条 shell语句,即可实现开发板上开机自动拨号上网。具体如下: /etc/ppp/rmloek /usr/bin/pppd call /usr/bin/sleep 30 /sbin/ifcontig ethO 群判断并删除无效的串口的lock文件确保拨号成功 gprs群自动拨号 撑给定拨号时间 down撑禁用ethO网口使通过PPP端口联网 最后是实现GPRS应用,通过交叉编译PPP?2.4.4.tar.gz得至Upppd、chat两个可 执行文件,添加到触驻./SbiI虾,再在/etc/ppp下添力Igprs-connect-chat、pap-secrets、 chap-secrets几个配置文件,/etc/ppp/peem/-F添加调用的gprs脚本。系统完成后可 在shell下用命令pppd call gprs完成GPRS的拨号上网功能。 硕士学位论文 第八章系统应用程序开发 8.1嵌入式图形界面 为终端上设计友好的用户环境,需在终端平台上添加图形用户界面程序支 持。在嵌入式领域,GUl种类繁多,常用的有Microwindows、MiniGUI和Ott561。 其中,Microwindows能够在没有任何操作系统或其他图形系统的支持下运行, 能对裸显示设备进行直接操作,便于移植到各种硬件和软件系统上。但是其免 费版本进展很慢,几乎处于停顿状态,且国内没有一家公司专业队其提供技术 支持、服务和担保;MiniGUI是国内做得较好的自由软件之一,由我国自主开发, 是在linux控制台上运行的多窗口图形操作系统,应用于机顶盒、掌声电脑等诸 。 ‘:…’” 多场合;Ot是Trolltech公司开发的一个跨平台的CH图形用户界面应用程序框 架,包含了直观的API和丰富C++类库、用于GUI(图形用户界面)开发和国 际化的集成工具,支持使用JavaTM和C++语言进行开发‘571。Qt采用面向对象 设计,可移植性好。基本上所有Linux内核均支持Frame Buffer(帧缓冲),而 Qt可以直接在Frame Buffer上显示图形【58-591。因此可以在嵌入式Linux下移植 Q,从而实现嵌入式Linux上的GUI程序开发。 8.2 QT/Embedded支持 嵌入式Linux系统提供Qt GUl支持主要是拷贝相关依赖库及对应Qt版本的 平台库到根文件系统的合适位置。这里的合适位置指的是要将Qt支持的所有文 件放置于与编译安装设置一致的位置,如在主机上编译时将Qt4编译完成的内 容放置在/usr/local/Trolltech/QtEmbedded-4.5.0.alms目录下,则开发板上系统应 建立对应目录放置所有文件。同时,若采用tslib支持触摸屏,也应该将tslib安 装后文件位置放对。 添!JIIQT的支持,需完成QTI具包的交叉编译以得到库文件和测试程序,它 5S 第八章系统应用程序开发 的编译由以下几步完成:(1)安装好ARM下的交叉编译工具,后续采用这个交 叉编译工具编译q源代码,从而产生ARM平台上运行的Qt库。(2)交叉编译 jpegsrc.v6b.tar.gz、e2fsprogs—1.40.2.tar.gz,需要注意的是QT的触摸屏功能支持需 要在编译中添加,通常添力Itslib触摸屏驱动支持,因此还需编译tslib源码。最终 得到库文件libjpeg、libuuid和libts等备用;(3)前应先配置Qt交叉编译器export ￥PATH=/usr[10cal/arm/3.4.5/bin:￥PATH;(4)QTI具包交叉编译配置configure, 配置选项用.I、.L设置上述编译好的几个功能支持的头文件和库文件所在目录; (5)make&make install得到图形界面支持的所有文件。 8.2.1 Qt依赖库文件编译获取 Qt需要一些库依赖来提供GUI图片的支持,在编译Qt之前应先准备好这 些库。Qt编译所需的相关库包括jpeg库、uuid库,如果需要触摸屏支持还要添 加tslib等的支持。依赖库获取过程为:(1)解压安装包;(2)配置选项;(3) 修改Makefile设置平台编译器;(4)编译安装。在此以jpeg库文件获取为例进 行说明: tar zxfjpeg-6b.tar.gz解压源码包; cd￥PWD/jpeg-6b ./configure-enable-shared配置为允许动态链接jPeg库; vi Makefile修改:CC=arm-linux-gee;JUP arm-linux.ar此; AR2=arm.1inux.ranlib设置平台编译器; make&make install编译安装: 8.2.2 Qt2编译配置 无论是哪个版本的Qt,编译安装主要的是配置选项的不同,配置选项的功 能是让q的功能禁止或者激活,禁止掉不需要的功能可以减少内存的使用。可 以通过./configure-help进行可配置选项的查看,本文采用Qt2配置如下: SS 硕士学位论文 Qt2配置:./configure—qte’-embedded-rio—xft—xplafform linux-arm一矿+-qconfig qpe-depths 1 6,32一nO—qvfb-system-jpeg-gif-qpe’一xplatform linux-arm—g++-edition pda—displaysize 240x320’。Qt/E是Qtopia的基础类库,在安装Qtopia前需要先 装Qt/E,因此先用一啦选项进行Qt/E的安装配置,然后再通过一qpe配置Qtopia。 在此,Qt/E与Qtopia均通过选项一xplafform配置为ARM平台,Qtopia采用pda 型桌面系统,3.5寸240x320的LCD显示。 完成配置后运行命令:make&make install即可完成Qt2库的编译与安装。 默认Qt2在源码目录下的qtopia/image/opt/Qtopia下生成Qt2的PDA GUI桌面系 统上常见的功能如电话簿、日程表等应用程序相关文件及移植所需的库文件。 8.2.3 Qt随机启动支持 誊, 要实现随文件系统启动支持Qt,需要有一个脚本文件先对q进行配置。在 此在/bin目录下放置关于Qt4的可执行脚本文件。在此均使用tslib提供触摸屏 驱动支持。因此,在脚本的最开始应先设置好tslib相关的环境变量,包括: TSLIB—TSDEVICE TSLIB TSLIB 、TSLIB—CONFFILE 、TSLIB—PLUGINDIR 、 CALIBFILE,其中TSLIB TSDEVICE对应驱动的设备文件矿 CONFFILE设置触摸屏配置文件,TSLIB PLUGINDIR设定插件目录, CALIBFILE设置触摸屏校准文件。 TSLIB 设置完触摸屏相关环境变量后采用命令 export export PATH=￥QTDIR/bin:￥PATH LD_LIBRARY_PATH=￥QTDIR/Iib:/usr/local/lib:￥LD_LIBRARY_PATH 在shell环境变量和库环境变量中添加q支持。对于Qt2,直接在脚本文件 最末尾调用exec命令执行qpe启动桌面系统,由于Qt4没有桌面系统支持,可 以通过加载一个demo程序来查看图形界面支持效果,如执行 cd/usr/localffrollteeh/QtEmbedded-4.6.3.arm/demos/embedded/fluidlauncher 第八章系统应用程序开发 ./fluidlauncher_qws,加载fluidlauncher这个应用程序。 根文件系统中的inittab文件执行中会调用/etc/init.d/rcS文件,rcS的内容是 一些自动运行的命令,完成文件挂载,口地址配置及shell启动等。要实现Qt2 随机启动,除了必备的库文件外,主要就是在rcS中设置好脚本程序调用。在rcS 中添加语句:/bin/qtopia&则启动Qo.版本支持。其中,qtopia就是启动时设置 环境变量和启动程序的脚本。应用中,若想实现Qt2与Qt4兼容,可将两者的 启动脚本同时放置在文件系统中,需要哪个版本只要通过修改rcS中调用的脚本 即可实现同一个嵌入式Linux系统中对这两种版本Qt的兼容。如图8.1是加入 q支持的系统启动画面。 图8-1 Qt启动界面 Fig 8-1 Qt’s stratup 8.3应用程序实现 有YGUI图形库支持,接下来就可以进行应用程序的图形界面开发。移动医 疗终端上应用程序需负责心电采集、处理、传输及音频通信。