EDN China > 设计实例 > 工业电子 > 网络与总线 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于USB和便携式医疗设备的数据采集系统实现

作者:杨 勇?? 2008年07月28日 ?? 收藏0

  (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文件的加载、设备的成功打开、缓冲区的清理、数据的上传模式、设置伪中断服务程序等。

上传数据流程图

  图2 上传数据流程图

  Figure 2 procedure flowchart of uploading data

  (1)void Init_PC104-USB()

  {

  ?????? ...................

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

  ?? { //提示语言? }

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

  ?????? if ( CH375OpenDevice( mIndex ) ==

  INVALID_HANDLE_VALUE )?

  ???????? { //提示语言}


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

数据采集? USB通讯? 便携式医疗设备?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈