打印
[应用相关]

STM32与尿液分析仪设计开发

[复制链接]
楼主: wangjiahao88
手机看帖
扫描二维码
随时随地手机跟帖
41
wangjiahao88|  楼主 | 2018-11-28 12:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
    STM32F4xx系列单片机内核为Cort exT"'-M4F,该内核包含用于高级调试功能
的硬件。利用这些调试功能,可以在取指(指令断点)或取访问数据(数据断点)
时停止内核。当内核停止时,可以查询内核的内部运行状态和系统的外部运行状
态。查询完成后,将恢复内核及系统并恢复程序运行。当调试器与STM32F4xx MCU
相连并进行调试时,将使用内核的硬件调试模块。本测试系统可以通过JTAG接
口对应用程序(测试程序)进行调试和加载,本设计采用ARM公司提出的工作电压
为3. 3V的标准20脚JTAG仿真调试接口,由于采用了JTAG调试接口,使得我们
可以随时检验程序运行的准确性,使程序调试与检验变得更加方便〔3`' o STM32F4xx
单片机.丁TAG调试接口电路图如图5. 7所示。

    JTAG引脚定义,具有JTAG口的芯片都有如下JTAG引脚定义:
1.  TCK,该引脚主要用于检测时钟的输入。
2.  TD工,该引脚主要用于检测数据的输入,数据经TD工端输入到JTAG口。
3.  TDO,该引脚主要用于检测数据的输出,数据经TDO端从JTAG口输出。
4.  TMS,该引脚主要用于测试模式选择,JTAG口测试模式由TMS端进行设置〔38]0
    JTAG的输入引脚端不可以悬空,因为该引脚需要与触发器相连,而此触发
器主要功能为控制调试模式。为避免工0口电平浮空,器件在JTAG引脚上内置
有内部上拉和下拉:
    .TRST:内部上拉
    .TD工:内部上拉
    .TMS:内部上拉
    .TCK:内部下拉

使用特权

评论回复
42
wangjiahao88|  楼主 | 2018-11-28 12:49 | 只看该作者
    由于在整个尿液试纸检测过程中,试纸条上试剂块的颜色深浅是分析计算病
人待测液中各项物质浓度信息的关键,而不同的照明装置,使得试剂块上的颜色
随光源的不同而显示出不同的效果,为了更好的获取试纸条上试剂块颜色信息,
最大限度的降低光源照射所带来的干扰,这就使得在图像获取中光源的选择变得
至关重要。光源的特性将会影响到试纸条的成像质量,从而关系到测试数据的准
确性。
    在综合了现有的各种光源的亮度及均匀性等因素的基础上,本设计采用了环
形白光LED光源作为照明光源。LED光源其优点为消耗能量低,使用寿命长,
不易破碎,绿色环保,不会产生辐射,安全系数高,LED体积小,适用于易变的
环境,且环形光源因其分布均匀,光照范围广,所以可以降低因为光照角度问题
而产生的阴暗死角对图像处理的影响,本设计的照明光源及摄像头装置图如图
5. 10所示。

    由图5. 10可见,LED光源均匀的分布于摄像头周围,可以最大限度的实现
每个角落的照射,将试纸条置于摄像头图像采集范围内,光源均匀的照射在试纸
条的各个试剂块上,使得各个试剂块的颜色受光源照射的影响降低,由此降低了
实验结果因光源照射所带来的误差,提高了测试结果准确性。



使用特权

评论回复
43
wangjiahao88|  楼主 | 2018-11-28 12:51 | 只看该作者
    基于图像的尿液分析仪软件的功能是通过程序的编写及加载使得各个功能
模块协调有序地工作。软件部分主要分为图像的数据采集及图像的数据处理两大
部分,图像数据采集部分主要由主控芯片控制传感器采集图像数据,并将图像数
据通过DMA传输通道送至液晶屏。图像数据处理部分主要为对传送至液晶屏上的
图像信息进行试纸条边框检测来确定试纸条位置,再对检测到的边框内的图像信
息进行中值滤波。先检测再滤波的原因是若对整幅图像进行滤波则会大大降低数
据处理的速率,所以先检测后滤波可以只针对有用部分进行操作,使得处理速率
得到了提升,且仍然保证了数据的准确性,再找到试纸条上的各试剂块的位置,
对试纸条上的各个试剂块进行数据处理,得到各个试剂块的平均R, G, B值,通
过前文提到的反射率算法对数据进行处理,得到测试结果,将测试结果与对比参
数进行比较得到各测试项的含量,从而判定被测试者的身体健康状况。最后通过
液晶屏对测试结果进行显示,以便于测试者更直观的观察到自己尿液中各项成分
含量。
    系统软件开发工具使用的是Keil MDK,也可称之为MDK-ARM, Realview MDK,
I-MDK, uVision4等,MDK-ARM软件为以Cortex-M, Cortex-R4, ARM7, ARM9为处
理器的设备提供了良好的开发环境。MDK-ARM的开发设计主要是为了满足微控
制器的应用,且MDK-ARM因其强大的功能,使用简单及较强的实用性,从而满足
了大多数用户的要求〔43' o Keil MDK支持软件在线调试及JTAG硬件仿真调试,支
持c, c++语言程序的编写。Keil MDK集成了强大的Simulation设备模拟,可以
进行目标设备的仿真,集成了Flash烧写模块,性能分析等功能。
    基于图像的尿液分析仪的软件程序的编写是由C语言来完成的,在Keil  u
Vision4集成开发环境中进行开发,Keil  a Vision4集成开发环境操作简单,界
面清晰,并且具有很强大的调试功能,操作者可以根据自己的需要选择相应的窗
口进行观察,非常适合本设计的使用。Keil  a Vision4集成开发环境界面如图
6. 1所示。
    由于Keil MDK提供了很好的实时调试跟踪功能,使得操作者可以准确的掌
握片内运行情况,通过debug功能对各处运行信息进行操作浏览,可以实现对可
执行代码的运行监测,变量值的查看,并且可以通过设置断点等调试操作来实时
的观测各部分程序运行状态,并通过调试功能找到运行过程中的错误所在,通过
debug功能实时调试界面如图6. 2所示。

使用特权

评论回复
44
wangjiahao88|  楼主 | 2018-11-28 12:52 | 只看该作者

使用特权

评论回复
45
wangjiahao88|  楼主 | 2018-11-28 12:52 | 只看该作者

使用特权

评论回复
46
wangjiahao88|  楼主 | 2018-11-28 12:52 | 只看该作者
    基于图像的尿液分析仪的软件部分的主要工作流程为:当控制系统检测到开
始按键后即开始执行摄像头采集图像数据功能,并通过DCM工摄像头接口获取图
像数据经DMA通道传送给液晶屏,同时控制系统对图像数据进行分析处理,并将
最终结果送至液晶屏显示,使得试验人员可以很好的观测到所测项的数值。软件
部分主程序流程图如图6. 5所示。

使用特权

评论回复
47
wangjiahao88|  楼主 | 2018-11-28 12:53 | 只看该作者

使用特权

评论回复
48
wangjiahao88|  楼主 | 2018-11-28 12:53 | 只看该作者

使用特权

评论回复
49
wangjiahao88|  楼主 | 2018-11-28 12:53 | 只看该作者

使用特权

评论回复
50
wangjiahao88|  楼主 | 2018-11-28 12:54 | 只看该作者
    图像的数据处理是本设计的核心部分,由处理后的数据方可得出来测试的最
后结果,才能检验病人的身体状况。对于通过图像采集而得到的静态图片首先要
进行边框检测,再对边框内的数据进行滤波处理,此种方法既可以提升运行速率
又可以保证数据的准确性。本文采用的滤波方法为中值滤波法,对于中值滤波的
滤波原理及算法前文己经介绍过,在本文的3. 1节中己经给出含有椒盐噪声的试
纸条图像及含有高斯噪声的试纸条图像经中值滤波后的效果图〔43],由效果图可以
很清楚的看出,中值滤波对于椒盐噪声及高斯噪声具有很好的滤波效果

使用特权

评论回复
51
wangjiahao88|  楼主 | 2018-11-28 12:54 | 只看该作者

使用特权

评论回复
52
wangjiahao88|  楼主 | 2018-11-28 12:54 | 只看该作者

使用特权

评论回复
53
wangjiahao88|  楼主 | 2018-11-28 12:55 | 只看该作者
    在得到了试纸条的整体边框并对边框内的图像进行了中值滤波后则应对各
个小的试剂块进行数据处理,得到各测试项相对应的试剂块的像素点的平均R,
G, B值。首先根据实际试纸条上各试剂块所占试纸条的比例关系来确定采集到
的图像的各试剂块在试纸条上的位置,然后找到各试剂块的中点位置,以此中点
为圆心画一半径为试纸条宽度一半的圆,取圆内的最大正方形区域内的像素点,
得到这些像素点的平均R, G, B值,此种方法既去掉了边缘的影响,又提高了测
试准确性。
    因为要排除尿液自身颜色的干扰,所以试纸条设计有空白补偿块,通过空白
补偿块的显色反应来去除尿液自身颜色的干扰,所以我们在获取了各测试试剂块
的平均R,  G,  B值的同时还应获得滴有待测试剂的空白补偿块的平均R, G, B
的值。根据空白补偿块在试纸条上所占的比例关系我们同样可以得到空白块的像
素数据,以白细胞测试块及空白补偿块为例,对试剂块的检测效果如图6. 11所
不。
    由图6. 11可见,通过此种方法可以准确的定位每一个测试块的位置,且所
画圆形均能最大限度的选取试剂块中央部分的数据,这样就保证了数据量,又减
少了边缘模糊数据的干扰,为了更加清晰的观测各小试剂块的定位情况,此处给
出了细节处的清晰效果图,白细胞测试块检测效果图如图6. 12,空白块检测效
果图如图6. 13所示。

使用特权

评论回复
54
wangjiahao88|  楼主 | 2018-11-28 12:56 | 只看该作者
    由图可见此方法可以有效的确定各试剂块位置,得到准确的像素均值R, G,
B,并将得到的值分别标于屏中,以便于观测,用到的部分程序为:
LCD_ Draw Circle (xzl, yzl, kc/2-2);
LCD Show Number (30, 240. xyl. r, 3, 24);
    其中LCD_ Draw Circle()函数为在液晶屏上画一圆,xzl, yzl为中心点横纵
座标,kc/2-2为半径,画此圆的目的为便于观察运行效果。同样,对于其他试
剂块的测试采用同样的方法。LCD_ Show Number (30, 240. xyl. r, 3, 24);为在液晶
屏某处显示数值函数,其中xyl为我们所定义的结构体中的变量,此处用来显示
测试块的平均R值,其他值同理。应用此种方法可以很直观的观测各试剂块像素
值及最后测试值C,为了方便我们的操作,此处的C值显示的为扩大1000倍的
值。

使用特权

评论回复
55
wangjiahao88|  楼主 | 2018-11-28 12:56 | 只看该作者

使用特权

评论回复
56
wangjiahao88|  楼主 | 2018-11-28 12:56 | 只看该作者

使用特权

评论回复
57
wangjiahao88|  楼主 | 2018-11-28 12:56 | 只看该作者

使用特权

评论回复
58
wangjiahao88|  楼主 | 2018-11-28 12:57 | 只看该作者

使用特权

评论回复
59
wangjiahao88|  楼主 | 2018-11-28 12:57 | 只看该作者

使用特权

评论回复
60
wangjiahao88|  楼主 | 2018-11-28 12:58 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则