首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
USB总线在远程抄表系统中的应用
来源:本站整理  作者:佚名  2009-12-22 10:27:30




  在主程序中完成对系统、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]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:257,738.30000 毫秒