当前位置:首页 > 电源 > 数字电源
[导读] 引言   传统的医疗设备,特别是便携式的监护、心电、血压测量等设备均是采用标准的RS232串行接口进行数据的通信与传输,已越来越不能满足高速据传输,高数据存储以及频繁的数据采集等要求[1,2]。而USB通讯弥补了

 引言
  传统的医疗设备,特别是便携式的监护、心电、血压测量等设备均是采用标准的RS232串行接口进行数据的通信与传输,已越来越不能满足高速据传输,高数据存储以及频繁的数据采集等要求[1,2]。而USB通讯弥补了这些不足,它有着传输速度快、可靠性高、易于连接、可热插拔等许多优点。基于此,本文就介绍了一种基于USB总线接口芯片CH375实现PC机与便携式医疗设备医学信号的实时数据采集和传输的方法,并给出了相应的源程序。经测试,系统工作稳定可靠。

  1 CH375芯片简介

 CH375 是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE 设备方式。在本地端,具有8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片/DSP/MCU/MPU等控制器的系统总线上。CH375 芯片内部集成了 PLL 倍频器、主从 USB 接口 SIE、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等。

  CH375 芯片内部具有 7 个物理端点。端点 0是默认端点,支持上传和下传,上传和下传缓冲区各是8B;端点1包括上传端点和下传端点,上传和下传缓冲区各是 8B,上传端点的端点号是81H,下传端点的端点号是 01H;端点2 包括上传端点和下传端点,上传和下传缓冲区各是 64B,上传端点的端点号是 82H,下传端点的端点号是 02H。主机端点包括输出端点和输入端点,输出和输入缓冲区各是64B,主机端点与端点2合用同一组缓冲区,主机端点的输出缓冲区就是端点2的上传缓冲区,主机端点的输入缓冲区就是端点2 的下传缓冲区。本系统就是利用批量端点2来下传数据到缓冲区,利用主机端点和端点1来上传数据到缓冲区。

  CH375芯片内置了标准的USB通讯协议,这就免去了开发人员因编写通讯协议而耗费的大量时间,方便了通讯的实现。尤其是其动态链接库提供的文件级接口,更是方便了数据的读写。

  2 系统硬件结构

  系统的工作过程是嵌入式医疗设备即下位机(PC104)于DOS状态下采集医疗信号送显示器显示,然后通过USB接口送上位机(PC主机)处理,上位机工作在Windows环境下[3,4]。

  系统选用带USB接口的PC104工业计算机主板,在开发过程中通过电源接口外接5V直流电源,通过显示器接口外接显示器,多功能接口外接键盘。为方便软件的更新,我们把下位机的工作程序写在优盘,外接于PC104主板的USB接口。[!--empirenews.page--]

  基于CH375芯片的系统还设计了PC104-USB转接板,并把其作为PC104主板的扩展模块通过PC104总线接口与主板相连接。转接板上有两个USB接口,任选其中一个通过 USB转接线与上位机相连即可。这样系统的硬件平台便建立起来了,系统硬件连接如图1所示。下面详细介绍系统通讯的软件实现。

  图1 系统硬件结构图

  Figure 1 system hardware structure drawing

  3 下位机中的程序设计

  USB协议规定任何传输过程都是由主机端发起并控制的,CH375在接收到主机发来的数据时产生中断,为此下位机要做的工作就是等待CH375的中断并作相应的处理。 [!--empirenews.page--]

  下位机工作在DOS状态,软件程序采用BORLANDC语言。主要工作是初始化CH375、查询中断及中断处理。相关程序代码如下:

  (1)处理接收数据的中断服务程序

  void interrupt  USB(__CPPARGS)

  {

      unsigned char len,i;

         //获取中断状态并取消中断请求

  CH375WriteCmd(0x22);

         d0=CH375ReadData(); //读回状态

  if((d0==0x02)||(d0==0x01)) //批量端点2接收到PC机发送的数据

  {//读取数据}

      inportb(0x21);

      outportb(0x20,0x20); //发EOI命令,

                       清除中断

}

(2)写数据子程序

void CH375WriteData( unsigned char dat )

{

       /* 写数据口 */

outportb( PortBaseAddr + 0, dat );

       DelayuS( 1 );

}

(3)读数据子程序

unsigned char CH375ReadData( void )

{

       unsigned char d;

       DelayuS( 1 );

    /* 读数据口 */

       d = inportb( PortBaseAddr + 0 );

       return( d );

}

(4)主程序

int main(int argc,char *argv[])

{

     ..................  

     for(;;)  //等待

        {//软件进入主循环,处理突发事件

         while(kbhit()) ch=getch();

      if(ch==27) break;

      if(ch==59){.//向PC机发送数据}

      if(ch==60){//写中断特征数据}

  readbufUSB();  //读USB接口缓冲区数据

       }

      ..................

 }

4上位机中的程序设计

    因为CH375的动态链接库DLL提供了许多API接口函数,所以应用程序只需通过几条简单的文件操作API函数,就可以实现与下位机的通信。

又因CH375的动态链接库DLL提供了伪中断服务(实际的中断服务仍然是在驱动程序库完成的,只是在完成后向DLL发个通知,再由DLL再调用伪中断服务子程序),基于此,系统采用了伪中断服务来实现数据的上传,这不仅缩短了系统的开发周期,而且很好地满足了下位机的实时性要求。上传数据的程序流程图如图2所示。

数据的下传只需用简单的下传API发送数据。由CH375中断接收即可。

上位PC机工作在Windows环境下,我们采用Visual C++6.0语言编程。具体程序实现如下:

(1)初始化PC104-USB卡

在这里完成对设备的初始化,如CH375DLL.DLL文件的加载、设备的成功打开、缓冲区的清理、数据的上传模式、设置伪中断服务程序等。[!--empirenews.page--]


图2 上传数据流程图

Figure 2 procedure flowchart of uploading data

(1)void Init_PC104-USB()

{

       ...................

if ( LoadLibrary( "CH375DLL.DLL" ) == NULL )

   { //提示语言  }

    // 使用之前必须打开设备

       if ( CH375OpenDevice( mIndex ) ==

INVALID_HANDLE_VALUE ) 

                     { //提示语言}

       else{

              m_pc104usb_ok=TRUE;             

Result=CH375SetTimeout(mIndex, 500, 500 );  // 设置USB数据读写的超时,超过500mS未完成读写将强制返回,避免一直等待下去

      CH375SetBufUpload( mIndex, 1);  //启用内部缓冲上传模式并清除缓冲区中的已有数据

//设置伪中断服务程序

  mPCH375_INT_ROUTINE ptr;

ptr=InteruptProcess;

 Result=CH375SetIntRoutine(mIndex,ptr);

     }

       }

 (2) 接收数据子程序

Void PC_RecievData();

{ .........

// 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1

Long  packnumber=

CH375QueryBufUpload( mIndex);

     if(packnumber>0)

        {

CH375ReadData(mIndex,&m_recev_buf, len)

        }

...........

}

结论

随着嵌入式计算机在医疗设备中的广泛应用以及USB通讯技术的高速发展,本文通过USB总线接口芯片CH375、PC主机以伪中断方式发起上传数据流,以下传API发起下传数据流的通讯方式,并利用一系列的API接口函数,成功实现了上位机(PC)与下位机(PC104)之间的实时数据采集和传输。经测试系统能准确的收发数据,通讯稳定可靠。采用USB通讯,将为传统医疗设备的改造、新一代便携式医疗设备的快速开发和应用提供广阔的前景。

本文创新点:利用USB接口技术,采用USB模块CH 375在PC机与便携式医疗设备之间实现了实时数据采集和传输,而且无需编写复杂的USB驱动程序,利用其动态链接库即可实现。可以使数据采集和传输系统非常方便的从RS232通讯、串行通讯、并行通讯、转向USB通讯,弥补其速度慢的缺点,进行系统升级。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:目前,我国的沙漠及荒漠化面积仍然较大,沙漠地带的植被种植情况并不能够被很好地监测。针对这一问题,设计了一种防风固沙装置,该装置的核心为Arduino主板及辅助传感器组件,具有数据采集及显示功能,能够采集土壤湿度、环...

关键字: 防风固沙 数据采集 数据显示

摘要:针对我国智慧建筑中能耗数据远程采集的问题,将无线485数据通信模块与移动通信网络数据采集模块相结合应用于建筑能耗仪表数据采集过程中,在对《户用计量仪表数据传输技术条件》和《多功能电能表通信协议》进行研究的基础上,开...

关键字: 建筑能耗 多网融合 数据采集

USB-C接口全称为USB Type-C,属于USB 3.0下一代接口,其亮点在于更加纤薄的设计、更快的传输速度(最高可达10Gbps)、更强的电力传输(最高100W),此外USB-C接口还支持双面插入,正反面随便插,相...

关键字: iPhone 15 Lightning USB

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

奥升德功能材料宣布在其HiDura™品牌下推出服务于医疗保健市场的医疗级尼龙66树脂和工程材料新产品组合。奥升德功能材料生产的HiDura MED聚酰胺可用于医疗耐用品、药物输送、外科器械、医疗设备和伤口护理。(能动Ne...

关键字: HID 医疗设备

无锡2022年9月28日 /美通社/ -- 近日,江苏省工业和信息化厅公示2022年(第9批)省级软件企业技术中心拟认定名单,经企业申报、各市推荐、形式审查、专家评审等程序,浪潮卓数大数据产业发展有限公司(简称浪潮卓数)...

关键字: 软件 数据流 数据安全 数据采集

摘要:为了实现对不同品牌机器人的实时监控以及集中管理,实现机器人的互通互联,设计了一套基于NC-Link的机器人远程监控系统。NC-Link适配器通过机器人的二次开发接口对机器人进行数据采集,然后将采集到的数据通过htt...

关键字: 工业机器人 数据采集 远程监控

GRL东莞实验室将与上海和台北实验室一同,提供Windows Host认证服务 加利福尼亚州圣克拉拉市2022年9月22日 /美通社/ -- 高速信号和充电技术测...

关键字: Windows THUNDERBOLT USB OS

接下来测试烧写功能,本次采用串口和USB烧写方式。使用ISP串口烧写这是51单片机常用的方案,本次测试比较顺利,没有遇到什么问题。但是USB烧写没有测试成功,USB烧写方式不需要任何的驱动和硬件支持,直接将USB线和ST...

关键字: PCB控制板 USB 串口

仓储机器人领域的领先企业率先实现这一行业里程碑 马萨诸塞州威尔明顿2022年9月16日 /美通社/ -- 仓储处理自主移动机器人(AMR)市场领先企业Locus Robot...

关键字: ROBOTICS AMR USB 移动机器人

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭