关 闭

新闻中心

EEPW首页>工控自动化>设计应用> USB总线在远程抄表系统中的应用

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

作者: 时间:2009-12-22 来源:网络 收藏


  在主程序中完成对系统、PDID12的初始化,以及完成对d12的枚举,将数据的发送接收都放在中断程序中。PDID12有3组端点,使用默认端点0和端点2。将端点2作为数据传输的通道,当PDID12从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 下一页

评论


相关推荐

技术专区

关闭