新闻中心

EEPW首页 > 医疗电子 > 设计应用 > 基于USB的便携式医疗设备数据采集和传输系统设计

基于USB的便携式医疗设备数据采集和传输系统设计

作者: 时间:2010-04-08 来源:网络 收藏

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

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

  void interrupt (__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){//写中断特征数据}

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

}

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

}

4上位机中的程序设计

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

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

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

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

(1)初始化PC104-USB卡

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

助听器原理相关文章:助听器原理




评论


相关推荐

技术专区

关闭