基于国产CPU的嵌入式医疗电子无线网络设计

  摘要: 传统的医疗电子设备并不具备无线功能,不能实现随时随地的医疗监控。文中提出一个基于IPV6 的用于医疗电子无线网络的路由协议,并基于国产CK610 CPU 和TI 公司的CC2520射频芯片实现了基本无线通信,并在PC 上通过图形界面显示出医疗检验结果。

  0 引言

  医疗电子领域中,在嵌入式处理器方面,目前使用最广泛和主流的象ARM.MIPS 都是国外厂商生产的CPU,而国内的具有自主知识产权的CPU 却很少被人注意。

  此外,随着无线技术的进步和无线设备成本的降低,医疗电子无线化必将是未来发展的趋势。目前已经有一些企业和团体在医疗电子无线化的方向上作出了研究和开发,但是目前的无线医疗电子使用的网络协议基本都是基于IPV4 的,将更加先进的IPV6 网络运用到无线医疗电子是未来发展必须面临的问题。

  本文主要为医疗电子设计了一个基于IPV6 的网络协议,为实现该协议编写了路由协议程序和射频适配程序,实现了医疗电子的无线功能。

  1 系统概述

  主要系统架构如图1 所示: 单个节点由CK610开发板与医疗电子板和CC2520 射频芯片组成,控制器为普通节点与PC 相连接.Linux 用作CK610 的操作系统,CK610 通过操作FPGA IP 核模拟的SPI 来控制CC2520,CC2591 由CC2520 的管脚控制。

  基于国产CPU的嵌入式医疗电子无线网络设计

  在整个医疗电子应用的网络系统中,可以有多个节点,但是只有一个控制器。所有节点数据发送的终点是控制器,距离较远的节点可以通过其他节点转发来传输数据。

  2 网络协议设计

  为了实现图1 的系统架构,需要为系统设计一个基于IPV6 的网络协议。

  2. 1 路由算法设计

  建立和维护无线网络,必须要发送和处理三种形式的数据包,分别是路由请求包。路由广播包和路由汇报包。

  网络中的每个节点都维护一个路由表,路由表的每项都是与本节点相邻的节点。一个典型节点路由表内容如表1所示。

  基于国产CPU的嵌入式医疗电子无线网络设计

  每个节点会对路由表中的每项根据总链路代价进行排序,总链路代价最小的对应的节点会被选为默认路由,只要节点有数据要发送或者转发,都会将数据发往默认路由。

  总链路代价表示的是这条链路信道的质量,该值越小越好,它是本地链路代价和前驱节点链路代价两者之和。前驱节点链路代价是从本节点定期发送的路由广播包中获取的。如果前驱节点是控制器,那么前驱节点链路代价是0.本地链路代价指的是自身节点同前驱节点之间信道的链路代价,表示的是通信信道质量,该值越小越好。为了计算本地链路代价,必须要维护长期发送数据包总数LT.长期发送数据包成功数LS.近期发送数据包总数ST 和近期发送数据包成功数SS 这四个数据。

  ST 和SS 从零开始计数,节点每发送一次数据( 包括重传) ,近期发送数据包总数ST 就会加1,而近期发送数据包成功数SS 则是每成功发送一次数据就加1.这两个值会在RTIMER 定时器到期之时更新完长期发送数据包总数LT 和长期发送数据包成功数LS 之后清零。长期发送数据包总数LT 和长期发送数据包成功数LS 在RTIMER 定时器到期之时更新,更新的规则是将当前长期发送数据包总数LT 加上近期发送数据包总数ST 作为新的长期发送数据包总数LT,将长期发送数据包成功数LS加上近期发送数据包成功数SS 作为新的长期发送数据包成功数LS,如果此时长期发送数据包总数LT 大于0XF000,那么将长期发送数据包总数LT 和长期发送数据包成功数LS 右移一位。这样做有两个好处:

  ( 1) 避免长期发送数据包总数LT 和长期发送数据包成功数LS 无限增大到无法存储。

  ( 2) 离当前时间越远的统计值对计算链路代价的影响越小,符合自然规律。

  本地链路代价的计算公式如下:

  基于国产CPU的嵌入式医疗电子无线网络设计

  节点会在收到邻居节点的路由广播包和RTIMER定时器到期的时候更新路由表链路代价信息。

  2. 2 网络节点的加入

  当节点1 要加入网络中时首先要发送一个路由请求包,申请加入无线网络。控制器接收到这个请求之后,向节点1 发送一个路由广播包。节点1 接收到该路由广播包之后,将网络地址前缀加上自己的节点ID 组成自己的网络地址,并且将控制器加入自己的路由表。此时节点1 的默认路由是控制器。

  同时,节点1 会立即启动TTIMER 和RTIMER 两个定时器,当TTIMER 到期时,节点1 就会向控制器发送路由汇报包,控制器收到该包及时更新网络拓扑。

  而控制器的RTIMER 到期之时,也会给节点1 发送路由广播,节点1 立即更新路由表。

  网络运行的过程中,有新的节点要加入这个网络,且该节点能够直接同控制器通信,此时的情况比第一个节点加入网络的情况复杂些。节点2 启动时,首先发送一个路由请求包,控制器和节点1 接收到该包后会先后发送路由广播包,节点2 收到这些包之后修改自己的网络地址,并且将控制器和节点1 都加入自己的路由表中。当RTIMER 定时器到期时,会发送路由汇报包给控制器,经过一段时间稳定之后,路由汇报包的内容应该包括节点1 和控制器。

  之后节点1 的RTIMER 定时器到期,发送路由广播包,控制器和节点2 都能收到,节点2 更新其路由表,节点2 的RTIMER 定时器到期也会发送路由广播包,此时节点1 将节点2 加入自己的路由表。

  如果新加入的节点无法直接同控制器通信,即节点1 已经存在于网络中,节点2 无法同控制器通信。节点2 启动的时候也会发送路由请求包,这个包只有节点1 可以收到,于是节点1 给节点2 回复一个路由广播包,节点2 和控制器都可以收到。节点2 收到这个包之后,会设置好自己的网络地址,同时将节点1 加入自己的路由表中。此时节点2 的路由表只有节点1 这一项,因此节点2 的默认路由是节点1.节点2 的TTIMER 定时器到期时会向默认路由,即节点1 发送路由汇报包,节点1 收到路由汇报包之后将其转发给控制器。节点1 的RTIMER 定时器到期,发送路由广播包,节点2 更新其路由表。

  节点2 的RTIMER 定时器到期之时发送路由广播包,节点1 接收到该包之时更新路由表。

  2. 3 网络的维护与更新

  网络运行过程中,信道都是随时变化的。为了使整个网络工作正常,必须要及时更新网络参数。

  网络的维护和更新是通过每个节点的RTIMER 定时器实现的,每当该定时器到期,节点都会广播路由广播包,所有接收到该广播包的节点都会更新自己的路由表信息,这样整个网络的信道信息得到了更新。

技术专区

  • 打造Zynq平台性价比标杆,米尔强势推出MYC-Y7Z010/007S核心板
  • 一文了解stm32使用DMA模块的相关操作
  • 异构多处理器产品系列在嵌入式评估板上实现
  • ATxmage入门应用之时钟模块和GPIO模块的介绍
  • ATmega128系统模块,设计一个数控雕刻机系统
  • 基于国产CPU的嵌入式医疗电子无线网络设计已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网