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

发布者:phi31最新更新时间:2009-12-22 来源: 维库开发网 关键字:USB总线  RS485  PDIUSBD12  远程抄表 手机看文章 扫描二维码
随时随地手机看文章

   1 前  言

  随着供水部门、供电部门、供气部门对“一户一表”工程改造的推进,以及对自动化的要求,远程自动抄表系统已成为水、电、气自动化管理和智能化控制不可缺少的组成部分。

  采用集中抄表系统能够杜绝人工抄表产生的误抄、漏抄、估抄等人为错误,提高工作效率,减轻劳动强度,减员增效。一般抄表系统采用RS485总线,然后通过485/232模块与监控计算机连接,计算机通过串口轮巡采集电表数据。由于串口速度慢,这成为抄表系统传输速率提高的瓶颈,而使用485/usb模块,能很好的解决这个问题,USB 1.1规范的最高传输速率为12 Mb/s。USB总线除了用于外围设备和PC机之间的连接之外,在其它领域也有广泛应用,包括测量和自动化应用。

  2 硬件设计:

  模块的硬件包括: 微控制器、RS485 总线通信接口和USB 通信接口,如图1:

  RS485定义了一个基于单对平衡线的多点、双向(半双工)通信链路,采用平衡式发送,差分式接收的数据收发器来驱动总线,每次通信只能有一个主站,适合轮巡方式通信。RS485收发器采用TI公司的75LBC184,它使用单电源供电,电压在+3-+5.5V范围都能正常工作,能完成TTL与RS485之间的转换。在电路中,使用了TLP521进行隔离,提高了系统的可靠性。

  USB 通信接口采用PDIUSBD12,负责与上位机和微处理器进行信息交换。PDIUSBD12是PHILIPS公司推出的一种价格便宜、功能完善的USB并行接口芯片,支持多路复用、非多路复用和DMA并行传输,它遵从USB1.1协议,适合于不同用途的传输类型。PDIUSBD12需要外接微控制器来进行协议处理和数据交换,对MCU没有特殊要求,接口方便灵活。微处理器采用P89C51RD 单片机。

  3 系统软件设计:

  3.1 RS485软件子程序设计:

  RS485软件编程非常简单,它使用处理器的串口。数据到来时存放到串口缓冲区中,并产生串口中断。

  RS485协议只是物理层,上层协议需要用户自己定义。 由于介绍RS485总线的文章很多,其他程序略。

  3.2 USB软件设计:

  USB设备与主机通过四根线连接,电源、地,以及两根数据线,该模块使用计算机提供的5v电源。连接速度由D+ , D-连线上的电阻位置决定的, 如果D+ 线上有上拉电阻, USB 设备为全速设备,如果D-连线上有上拉电阻, 则USB 设备为低速设备。PDIUSBD12 的softconnect 技术在片内集成了1.5k的上拉电阻, 可以通过微处理器发送命令来控制D+上的上拉电阻是否与电源连接。

  在usb设备中,我们使用描述符区别不同的设备、端口等。描述符主要包括设备描述符、配置描述符、接口描述符,在设备中预先设置这些参数,主机通过对这些描述符的读取,获得该设备的信息。

  当一个设备刚插入计算机时,主机需要对该设备枚举,读取该设备的相关参数,首先使用默认的设备地址0进行通信。主机端先向设备地址0,端点0发送Get_Descriptor(获取描述符)请求来查询接入什么样的设备,设备使用设备描述符回答,然后通过发送Set_Address(设定地址)请求来分配一个单独的地址给设备。设备读取这个请求,返回一个确认且保存新的地址。主机给新地址发送一个Get_Descriptor请求来读取这个设备完整的描述符,包括端点最大包的大小,设备支持的配置号,以及该设备的其它信息,主机将这些信息用于往后的通信中。而后发出Get_configuration_Descriptor(获取配置描述符)命令,用来获取设备的节点和端点的配置信息。而后发出(Set_configuration)设定配置请求,以该配置号配置设备。设备就完全正确处于可操作状态,完成了枚举过程,便可以通过端点进行数据传输了。

  以下是主设备读取从设备描述符的过程

  主机发起的setup包,使用默认的地址0,端点0。其中SYNC字段为同步序列数据域,固定为01H,紧接着为标识符数据域PID字段,用来表示数据封装包的类型,可分为令牌、数据、握手或特殊四种封装包类型。其中令牌封装包细分为OUT,IN,SETUP,SOF四种封装格式。随后为地址数据域ADDR字段,用来寻址高达127个外围设备,每个设备只有对应唯一的地址,ENDP字段为端点数据域,最多可寻址32个端点,它仅在IN,OUT,SETUP令牌封装包中,最后为CRC校验和。

  主机发送数据,其中数据域中的数据80表示设备标准请求,06描述符命令(get_descriptor)00 01 代表请求设备的描述符,00 00为语言类型,40 00,指出期望从设备返回的数据个数,如果描述符的个数大于指定的字节个数,则按照指定个数返回,如果描述符小于指定的字节数,返回实际的字节个数。

  该帧为设备收到数据后的确认帧

  该帧为向设备发送数据请求。

  12为描述符长度,01为设备类型,10 01 为usb版本号,bcd码,这里是usb1.1,00 为设备类型码,00为子类设备代码,00为USB分配的设备协议代码,10为端点0最大包的大小,d8,0d为厂商编号,01 c0为产品编号,04 01为设备出厂编号,01为厂商字符串索引,02 为产品字符串索引,00为序列号,01为设置编号。


  在主程序中完成对系统、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接口速度慢的瓶颈,提高了远程抄表系统的数据传输速率,该方案已经成功的得到应用,稳定可靠,有广阔的应用前景。

关键字:USB总线  RS485  PDIUSBD12  远程抄表 引用地址:USB总线在远程抄表系统中的应用

上一篇:CEVA和Gennum旗下Snowbush IP部门联手
下一篇:基于SMA7029M多芯片模块的步进电机驱动设计

推荐阅读最新更新时间:2024-05-02 20:57

RS485基本概念及可靠性设计
以下是几个485通信的实用电路: 以下是485接口的几个典型问题: 1 为何A端加上拉,B端加下拉? 由于RS-485芯片的特性,接收器的检测灵敏度为± 200mV,即差分输入端VA-VB ≥+200mV,输出逻辑1,VA-VB ≤-200mV,输出逻辑0;而A、B端电位差的绝对值小于200mV时,输出为不确定。如果在总线上所有发送器被禁止时,接收器输出逻辑0,这会误认为通信帧的起始引起工作不正常。解决这个问题的办法是人为地使A端电位高于B两端电位,这样RXD的电平在485总线不发送期间(总线悬浮时)呈现唯一的高电平,单片机就不会被误中断而收到乱字符。通过在485电路的A、B输出端加接上拉、下拉电阻(1K欧姆),即可很
[嵌入式]
RIGOL开关电源测试方案
  近几年,电力电子设备与人们的工作、生活的关系日益密切,程控交换机、通讯、电子设备、控制设备等都已广泛地使用了开关电源,大大促进了开关电源技术的迅速发展。在开关电源向高频、高可靠、低耗、低噪声、抗干扰和模块化方向发展的同时,也对产品设计验证和功能测试提出了更为严格的要求。本文中将以国内测试测量厂商RIGOL(北京普源精仪科技有限责任公司)的产品为例介绍一些开关电源的常用测试方案。   本测试方案中用到的仪器分别是RIGOL DS1302CA数字示波器、DM3064数字万用表及DG系列函数/任意波形信号发生器。   数字示波器应用方案   1、瞬态响应信号测量:   负载瞬变时间是一项动态时间,它是负载电流瞬变后开关电源的
[电源管理]
网络化远程自动抄表系统的设计及实现
0 引言 电力网供电长期以来依靠人力对商业用电和生活用电数据进行抄读,效率极其低下。抄表数据统计主要依靠人力,报表生成周期长,统计结果分析慢,获得结果不能及时反映系统用电量需求分布,对供应系统的网络优化没有参考价值,严重限制了供电系统的供电效率和质量的提高。 传统抄表方式依靠人力抄表,电表数据抄取周期较长,无法获得同一时刻所有用户的电表数据,使得电表数据的获取具有不精确性和时间段的模糊性,导致电网用电量的时空分布结果可信度不高,从而无法给供电管理部门提供有效的参考数据和建议。 自动抄表系统是供电系统监管部门用来对工业和生活用电进行监测、管理和控制,以及对用户用电情况进行统计、分析的重要手段。本文提出了将GPRS通
[工业控制]
USB总线接口芯片CH371及其应用
1 引言 CH371是一种USB总线通用接口芯片。该芯片具有8位数据总线以及读、写、片选控制线和中断输出,可以方便地挂接到单片机、DSP、MCU等控制器的系统总线上;在计算机系统中,通过CH371的配套软件可提供简洁易用的操作接口,从而使其与本地端的单片机通讯就如同读写硬盘中的文件一样简单。由于CH371屏蔽了USB通讯中的所有协议,因而可在计算机应用层与本地端控制器之间提供端对端的连接。在不需要了解任何USB协议或者固件程序甚于驱动程序的情况下,就可轻松地将并口、串口产品升级到USB接口。     CH371的主要特点如下: ●屏蔽了USB协议,可在计算机应用层与本地端之间实现端对端的连接。 ●具有单向数据流和请求加应
[嵌入式]
USB总线在光栅位移传感器检测系统中的应用
  由于光栅传感器测量精度高、动态测量范围广、可进行无接触测量、易实现系统的自动化和数字化,因而在机械工业中得到了广泛的应用。   特别是在量具、数控机床的闭环反馈控制、工作母机的坐标测量等方面,光栅传感器起着重要作用。   目前,USB端口已成为微机主板的标准端口,利用USB总线技术,开发适用于科学研究和工业生产的各种仪器仪表设备,借以取代传统计算机测 控系统中采用的串行RS232、并行接口以及ISA或PCI总线的仪器仪表设备,不仅可使计算机测控系统更加高效实时、方便灵活,而且可满足高质量、高可 靠性、低成本计算机测控系统的要求。本文以光栅位移传感器检测系统的设计背景,详细介绍了系统的硬件、软件设计方法。 光栅位移传感
[单片机]
基于USB总线的高速数据采集系统
1 引言 现代工业生产和科学研究对数据采集的要求日益提高。目前比较通用的是在PC或工控机内安装数据采集卡(如A/D卡及422、485卡)。但这些数据采集设备存在以下缺陷:安装麻烦、价格昂贵、受计算机插槽数量、地址、中断资源的限制,可扩展性差,同时在一些电磁干扰性强的测试现场,可能无法专门对其作电磁屏蔽,从而导致采集的数据失真。 传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。PCI总线虽然具有较高的传输速度(132Mbps),并支持“即插即用”功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个),ISA总线显然存在同样的问题。RS-232C串行总线虽然连结简单,但其传输速度慢(56kb
[嵌入式]
PDIUSBD12芯片在USB接口电路中的应用
1  PDIUSBD12 芯片的性能与特点 Philips公司生产的型号为 PDIUSBD12 的接口芯片是一个具有集成的SIE,FIFO存储器、发送器和电压调整器的高性能USB接口芯片,同时还支持DMA逻辑传输形式。他通常应用于基于微控制器的系统中,并且可以通过高速的并行接口和系统中的微处理器进行通信,其中最高并行接口速率可以达到2MB/s,是一个具有8位数据总线和一个地址的存储与数据交换设备。 PDIUSBD12 芯片的功能方框图如图1所示。         他采用28PIN脚模式,有SO28和 TSSOP28 封装,SIE用来实现USB协议层的完整功能。具体功能如下:
[嵌入式]
RS422/RS485网络的无极性接线设计
    摘要: 给出一种RS422/485网络中,模块可以接收任意极性直流供电和总线信号的设计方法。该方法允许将2根信号线或直流电源线在传输途中任意极性续接,容忍了布线施工中的反接差错,使工程施工大为方便。     关键词: RS422 RS485 无极性 分续线盒 整流电桥 差分曼彻斯特 1 问题提出   现在的很多测控系统是使用RS422或RS485总线互连的。RS422/485总线信号是由4(2)根有极性的差分信号来传输的,不能将其反接。当网络传输距离长或节点多时,在线路上的分续线盒也会很多,很容易将信号线在传输途中接反,从而造成信号无法正常传输。虽然可以查出故障点,但在分线盒很多时,也是一件很费时的
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved