USB总线在远程抄表系统中的应用

工控自动化 时间:2009-12-22来源:网络


  在主程序中完成对系统、PDIUSBD12的初始化,以及完成对d12的枚举,将数据的发送接收都放在中断程序中。PDIUSBD12有3组端点,使用默认端点0和端点2。将端点2作为数据传输的通道,当PDIUSBD12从USB收到一个数据包时,就对CPU产生一个外部中断请求,CPU立即相应中断,在中断服务子程序中,将数据包从PDIUSBD12内部缓冲区移到循环数据缓冲区中,随后清零PDIUSBD12的内部缓冲区,对数据校验,如果接收得数据正确,直接调用RS485数据发送子程序,将数据发送到RS485网络。

  3.3 计算机软件设计:

  计算机软件主要包括,驱动的设计,动态连接库的设计。驱动程序采用飞利浦提供的驱动,上位机程序使用api函数并封装RS485总线的上层协议,提供给用户使用的接口。本例采用VC编写用户程序和动态连接库。从驱动中读数据的程序如下,

  void readdata(unsigned char *rec)

  { unsigned char outbuf[105];

  HANDLE hFile, hDevice=0;

  BOOL bResult;

  ULONG nBytes = 25;

  hFile = open_file(PIPE02);

  if(hFile == INVALID_HANDLE_VALUE)

  {return;}

  hDevice = open_dev();

  bResult = ReadFile(hFile,outbuf,10,nBytes,NULL);

  if(bResult==FALSE)

  { DeviceIoControl(hFile,IOCTL_D12_RESET_PIPE,0,0,0,0,nBytes,NULL); }

  CloseHandle(hFile);

  CloseHandle(hDevice);

  }

  在使用这个函数的时候,只需要添加如下说明。

  extern C DllImport void readdata ( unsigned char * );

  4 结 论

  由于采用了USB总线,克服了原来使用RS232接口速度慢的瓶颈,提高了远程抄表系统的数据传输速率,该方案已经成功的得到应用,稳定可靠,有广阔的应用前景。

1 2 3

关键词: USB 总线 远程抄表系统 中的应用

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版