薛定谔的猫

感知医疗2——帧结构说明

0
阅读(3229)

在目前版本的医疗项目中,初步定义了以下几种帧:

  1. 网关发送频点设置帧给SINK(串口方式)
  2. SINK广播频点设置帧(无线方式)
  3. CM回复ACK给SINK(关于频点设置的回复—无线方式)
  4. CM上报数据给SINK(无线方式)
  5. SINK回复CM数据帧(无线方式)
  6. SINK上报数据给网关(串口方式)

 

首先来定义两种串口帧:

串口帧格式如下所示:

 

0x55+0xaa+length+sink_id+frame_type +content

 

其中0x55和0xaa为串口帧起始位,如果在后面的内容里出现0x55或者0xaa,不必理会,通过length来确定帧是否结束,另外,在串口发送中加了简单的CRC校验,在本版本里认为串口通信可信,不需回复ACK。串口帧类型定义为0x8x,即(0x80—0x87)

 

串口频点设置帧(网关发送给SINK):

 

0x55

0xaa

length

sink_id

frame_type

fre_num

其中,length长度为3(不包括length本身),frame_type为0x80,fre_num为频点设置,由网关界面输入。 

SINK上报数据给网关

 

0x55

0xaa

length

sink_id

cm_id

frame_type

data

crc

其中,frame_type为0x81;

      sink_id 为01,为基站ID;

   length 从  sink_id到data末尾;

   crc计算从Length到data末尾,对之前数据取异或;

   data 对应监护仪上传数据格式中的03—13;

   cm_id范围从0—7,一共8个;

无线帧有四种,其中包括两种ACK帧,先声明几个宏定义:

typedef struct _PHY_HEAD_            (CC1100固定,不可更改)

{

  INT8U length;

  INT8U dest;

  INT8U src;

}PHY_HEAD;

 

typedef struct _MAC_HEAD_

{

  PHY_HEAD phy_head;

  INT8U seq;

  INT8U frame_type;

}MAC_HEAD;

 

SINK广播频点设置帧:

 

length

dest

src

seq

frame_type

fre_num

其中前五个为MAC帧头(下同),dest为0xff(广播),src为SINK的ID,frame_type为0x00(SINK无线发送帧类型为:0x00—0x07),fre_num为频点设置号。

CM回复频点设置帧:

 

length

dest

src

seq

frame_type

其中dest为SINK的ID,src为CM的ID,frame_type为0xA0(CM无线发送帧类型为:0xA0—0xA7

CM上报数据帧:

 

length

dest

src

seq

frame_type

data

其中dest为SINK的ID,src为CM的ID,frame_type为0xA1

 

SINK回复数据帧:

 

length

dest

src

seq

frame_type

cm_seq

其中dest为CM的ID,src为SINK的ID,frame_typ为0x01,cm_seq为接收到的数据帧的seq。

enum _FRAME_TYPE_

{

  FRAME_SINK_To_GATEWAY,

  FRAME_GATEWAY_To_SINK,

  FRAME_COMMAND,

};

#endif

监护仪上传数据格式

03    心律              80           0x50       次/分

04  脉搏       65     0x41   次/分

05  收缩压差   40     0x28   mmHg   实际压力:收缩压=40+80=120

06  舒张压     80      0x50   mmHg

07  平均压     92     0x5c   mmHg

08  血氧       98     0x62   %

09  体温       37.6   0xb0   ℃     实际显示:(200+数据)/10

10  呼吸      16     0x10   次/分

11  ST段数据  -0.1   0xf6   mV     显示范围:CEH~32H -0.50~0.50

12  早搏       2      0x02   次/分