一种智能多协议通信适配器的设计

发布者:AdventureSeeker最新更新时间:2013-12-06 来源: dzsc关键字:PDIUSBD12  通用串行总线  通信适配器 手机看文章 扫描二维码
随时随地手机看文章

0    引言

  目前电力系统的通信、监控和数据采集系统采用的是一种分布式的通信结构。伴随着新设备、新技术的应用,在当前我国的电力系统内,对终端单元的通信、监控和数据采集存在着三大问题:一是分布式系统的工作效率较低;二是终端种类繁多,并且通信协议互不兼容;三是主站的数据采集前端子系统(工控采集板、协议转换板等)适应性较差,实际使用效果难以令人满意。

  电力系统所需要的,应该是这样一种主站数据采集前端子系统:首先它应该可以实现与多种类型的终端单元进行通信与数据采集;其次,它应该可以兼容多种通信协议;然后,最为重要的是它可以智能地、自动地完成对终端单元的数据采集和协议转换任务;最后,这个子系统还应该价廉物美,具有良好的经济性。

1   采集与监控系统结构

  在变电站和工业现场的微机监控应用系统中,要采集许多远程现场数据点,这时主站PC机与下位机通过串行通讯来完成命令与现场采集数据的传输。目前比较通用的是在PC机或工控机内安装数据采集板卡,如A/D卡及422、485卡。这些数据采集设备存在以下缺陷:安装麻烦、价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。通用串行总线(Universal Serial Bus,简称USB)是1995年康柏、微软、IBM、NEC等公司为了解决传统总线的不足推广的一种新型串行通信标准。该总线接口具有安装方便、高带宽、易扩展等优点,已经逐渐成为现代数据传输的发展趋势。基于USB的数据采集系统充分利用USB总线的上述优点,有效解决了传统数据采集系统的缺陷。本设计就是将RS-232、RS-485与传输距离短但高速、可靠易扩展的USB相结合,形成了能够多点、快速、可靠、低成本的远距离数据采集系统。

 

                                        

2   适配器的硬件电路实现

  通信适配器硬件结构如上图1所示。微控制器采用AT89C52,该控制器具有运算速度快、兼容MCS51指令集的特点,内部集成8Kflash,性价比高。外接看门狗电路MAX706,可为微控制器提供可靠的保护。为了防止外界干扰对MCU的影响,单片机与下位机通讯的接口采用光耦隔离,控制接口的隔离采用TLP521-2,收发的RXD、TXD采用6N137隔离。

  USB接口采用PHILIPS的USB控制芯片PDIUSBD12,该控制芯片能够实现微控制器的并行总线到USB口的总线接口功能,而且编程方便,适用于多种微控制器,内部集成实现USB功能的PLL、SIE、FIFO模块,与普通的微控制器配合就可以实现功能完备的USB外设。对于一个微控制器而言,PDIUSBD12就象一个带8位数据总线和一个地址位(占两个位置)的存贮器件。与USB的连接是通过1.5kΩ上拉电阻将D+(用于高速USB器件)置为高来实现的。1.5kΩ上拉电阻集成在PDIUSBD12内部,默认状态下不与VCC相连。连接的建立通过外部/系统微控制器发出命令来实现。这就允许系统微控制器在决定与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。

  考虑到现在工业领域常用的总线有RS232、RS485等,采用MAXIM公司的MAX232、MAX485接收发送器实现电平转换。与外界的接口采用光电开关,通过上位机初始化设置总线类型选择与外界的接口方式,从而有效的避免了设置值与实际操作中接法的不一致。又因为RS-485总线为并接式二线制接口,一旦有一只芯片故障就可能将总线“拉死”,因此对其二线口VA、VB与总线之间应加以隔离。通常在VA、VB与总线之间各串接一只4~10Ω的PTC电阻,同时与地之间各跨接5V的TVS二极管,以消除线路浪涌干扰。如没有PTC电阻和TVS二极管,可用普通电阻和稳压管代替,同时在该芯片外接0.1uf的电容,也可以有效的防止外界的干扰。

3    适配器的软件设计

  适配器的软件主要包括AT89C52微控制器的软件以及上位机的管理软件。考虑到上位机的处理速度优势,将协议转换的工作交由上位机的客户服务程序来完成。单片机AT89C52主要实现智能的终端与协议识别以及与下位机的通信和数据转存。由于采用USB接口与上位机通信不占用上位机系统的CPU时间,这样即把上位机从通信瓶颈中解脱出来,又充分利用了上位机的速度优势。

3.1 单片机控制程序设计

  单片机的控制程序由三部分组成:首先是初始化部分,完成单片机和所有外围电路(包括PDIUSBD12)的初始化以及终端和协议的识别;其次是主循环部分,等待来自数据采集或上位机的数据并实现数据的转存;最后是中断服务程序,完成相应的中断处理功能。

  设备安装完后准备运行前,操作人员可利用上位机管理软件提供的用户界面初始化一些系统参数,如总线类型、终端类型等等。当选择智能搜索终端时,单片机按次序调用储存在其内部闪存中的各种相关协议,并通过通讯接口向外发出握手指令等待终端响应。如果终端返回信号并且信号格式与单片机发出的相同(即二者的协议相同),则认为该终端有效;如果终端返回信号与单片机发出的不同,或者连接超时,则认为该终端无效或不存在。单片机将最终搜索结果即终端信息表写入存储器指定单元,并通知微机读取,以备随后的通信使用。[page]

  当选择从智能终端采集数据时,单片机通过顺序查询上述储存的搜索结果,得到终端的类型。然后,根据不同的终端调用相应的协议,发出采集数据的指令。适配器上的CPU与下位机之间是一对多的通信模式,默认状态下,采用循环采集,各终端有一预先指定的固定的通信地址。对一个固定的终端而言,CPU发出握手信号,远方终端响应,则相应的信息经RS232/RS485接收,由CPU存入RAM62256的指定地址;接收完成后,CPU将接收到的数据经D12传给上位机;上位机的客户服务程序对上传上来的数据进行解码、校验,如有误,通知终端重传;如无误,则将解码后的信息转存入计算机指定的内存,并备份到相应的文档,供其他的客户服务程序使用。根据系统的特点,还可以采用定点采集方式对指定终端进行数据采集与监控。以下给出单片机主程序流程图(图2)。

 

                              图2:微控制器主程序流程图

                         

3.2 上位机的程序设计

  从上位机来看,适配器为它的一个USB外设。因此上位机必须提供USB外设的驱动程序。上位机的管理软件包括客户服务程序以及USB驱动程序。

  客户服务程序(Client software)是驻留在上位机的与USB系统软件交互作用的软件。它确定需要与功能(即USB外设)进行什么样的传输,当它需要与功能进行传输时,提出一个请求,并生成一个IRP(I/O中断请求包),然后进行USBD(USB Driver)调用,把IRP通过USBD接口传送给USBD。当该传输请求被服务后,客户服务软件接收IRP完成状态的通知。如果该传输涉及功能到主机的数据传输,则客户服务软件可以访问与该IRP有关的数据缓冲区中的数据。

  USB驱动程序(USBD)是驻留在上位机的为客户提供通用服务的软件实体,它管理主控制器上的一个或多个功能。它通过调用适当的主控制器驱动程序(HCD)将用户IRP中的数据转化为设备端点的数据,或通过回调适当的HCD将设备端点的数据转化为客户IRP中的数据。USBD接收来自配置软件的配置请求,该配置软件是驻留在上位机上的负责配置USB设备的软件,它描述所希望的设备配置:端点、传输类型、传输周期、数据规模等。USBD基于带宽有效性以及总线容纳该请求类型的能力,接受或拒绝配置请求。如果它接受了一个请求,则USBD为所希望类型的请求者创建一个管道。一旦设备被配置,软件客户可以请求IRP在它与其功能端点之间进行数据传送。

  主控制器驱动程序(HCD)是从主控制器中抽象出来的USB软件层,它提供了一个SPI(系统编程接口)与主控制器交互作用,并隐藏了主控制器的硬件实现细节。当用管道传送IRP时,HCD把它们添加到事务表中。当一个IRP完成时,HCD会通知发出该请求的软件客户IRP已经完成。如果IRP包括从功能到软件客户的数据传送时,则把数据放在客户指定的数据缓冲区。

  USB驱动程序的编写往往是USB设备开发过程中最困难的,通常采用Windows DDK来实现。目前有许多软件厂商提供各种各样的驱动程序生成工具,如Computerware的DriverStudio,BlueWaters的DriverWizard等。本设计中笔者就是采用DriverStudio软件生成的程序框架,添加了适当的用户代码,完成了适合与本设计的驱动程序的编写。

  上位机的客户服务程序是用VC++6.0编写的,协议转换是根据智能终端与协议识别所形成的终端信息表调用相应的协议转换程序来实现的。用户可以很方便的扩展用户所需的协议。

4   结语

  USB由于其连接的方便性、通信速度的快速性、接口的简单性,必将在计算机技术应用领域得到广泛的应用。本文提出的智能多协议通信适配器可以广泛地应用于实时监控、实时数据采集等场合,也可以增强协议辨识和增加协议转换功能,使它能自适应地应用于与具有标准通信协议和规范化的数据格式而又缺少详细技术资料的智能终端通信中。

关键字:PDIUSBD12  通用串行总线  通信适配器 引用地址:一种智能多协议通信适配器的设计

上一篇:基于RC测量系统的设计方案
下一篇:基于单片机与传感器的振动信号分布式检测方法

推荐阅读最新更新时间:2024-03-16 13:31

使用stm32cubemx的usb-host-cdc库驱动EC20模块
开发环境: 开发板:正点原子F407探索者 代码生成工具:STM32CubeMX v5.4.0 IDE: eclipse + ac6工具链 实现功能: 单片机可以通过usb接口和EC20的AT指令虚拟串口通讯。 为了方便测试,配置串口2,将 模块- 单片机 方向的数据通过串口2发送到电脑,将电脑通过串口工具发送到单片机的数据,转发给模块。 开始 1、使用STM32CubeMX配置工程,生成基础代码 1.1.1 配置晶振 1.1.2 配置时钟 1.2.1 配置串口2 1.2.2 配置DMA 1.2.3 开串口中断 1.3.1 配置USB Host_Only,不使用VBUS SOF 1.3.2 在M
[单片机]
使用stm32cubemx的<font color='red'>usb</font>-host-cdc库驱动EC20模块
基于CY7C68013A的USB通信程序开发设计
  0 引言   CY7C68013中集成有增强的8051微控制器及I2C兼容控制器,其传输速率可达100 kHz或400kHz。LabVIEW是一种以图形化语言为基础设计虚拟仪器的软件,LabVIEW采用图形模式的结构框图来构建程序代码,LabVIEW程序由数据流驱动,数据流控制着程序的执行顺序。LabVIEW功能强大,它带有可扩展函数库和子程序库的通用程序设计系统,它的VISA(Virtual InstrumentSoftware Architecture)是一个用来与各种仪器总线进行通讯的高级应用编程接口(API),且不受平台、总线和环境的限制。   I2C (Inter-Integrated Circuit)总线是由飞
[单片机]
基于CY7C68013A的<font color='red'>USB</font><font color='red'>通信</font>程序开发设计
USB2.0特性及USB单片机
  摘要: 对USB总线的基本特性,特别是对USB2.0标准进行比较详细的介绍,并对新型8位和16位USB单片机的结构和性能特点进行了介绍。 关键词: USB总线 USB单片机 USB2.0 标准 一、 USB总线简介    通用串行总线USB(Universal Serial Bus)是由Intel等厂商制定的连接计算机与具有USB接口的多种外设之间通信的串行总线。目前,带USB接口的设备越来越多,如鼠标、键盘、数码相机、调制解调器、扫描仪、摄像机、电视及视频抓取盒、音箱等。    USB总
[工业控制]
基于USB接口的无线数据传输系统的设计
引言 通信是信息的交换平台,在人们的工作和日常生活中起着重要的作用。传统的通信技术是通过数据线和串口/并口将设备连接在一起,这样就存在布线困难和其它不方便的因素。而且传统的RS232串口通迅和并口通讯都存在传输速度低、接口的连接过于复杂等不足。本文所设计的基于USB接口的无线数据传输系统利用了USB接口的高传输速率、即插即用等优点,并结合了无线数据传输技术,实现了计算机之间的无线数据通讯,解决了传统通信技术带给我们的不便。 系统硬件设计 基于USB接口的无线数据传输系统总体方案如图1所示,该系统由发射和接收两部分组成。其中,发射(接收)系统由单片机控制射频发射模块和单片机控制USB芯片两部分组成。系统的工作过程为:主机
[嵌入式]
USB保护电路的EMC设计
USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB信号传输电缆通常是双绞屏蔽线,其内部包含3对USB信号线和1对电源线,在传输通道上的输入电压值为4.07-5.25V,传输的最大电流约为900mA.USB接口的传输速率很高,像USB2.0最大的传输速率为480Mbit/s,USB3.0的传输速率更是10倍USB2.0的传输速率。并且USB3.0已经渐渐投入市场,必将是未来发展的趋势!但随着传输速率的增大如何提高USB信号的传输质量,减小电磁干扰EMI和静电放电ESD成为USB设计的关键。瞬雷电子一直致力于这方面的研发,从产品研发到系统设计无不尽心尽力。现以USB3.0为例
[电源管理]
基于CH374的USB摄像头驱动设计
  现有视频监控系统的设计大都采用USB视频采集和以太网传输,并且需要视频压缩方案,通常需要操作系统支持;因此选取的开发平台价格昂贵,造成视频临控系统的成本居高不下,以致使小型工厂和家庭用户难以接受。   本课题采用S3C44BO微处理器的ARM7开发平台,驱动USB接口芯片CH374进行视频数据采集,提供了低成本的视频采集方案。USB视频采集涉及USB同步传输,但是在众多USB主机芯片的设计中,多以控制传输和批量传输为主,对同步传输的讲解极为少见。本文提供了USB同步传输的设计范例。   1 系统工作原理   典型的USB视频采集系统如图1所示。USB系统包含主机和物理设备两个最基本的元素,一个USB系统只能有一个USB主
[单片机]
通用串行总线(USB)电缆隔离器电路 (CN0159)
电路功能与优势 通用串行总线(USB)正迅速成为大部分PC外设的标准接口。由于它具有出色的速度、灵活性,并且支持设备热插拔,因而正在取代RS232和并行打印机端口。工业和医疗设备制造商也非常希望使用这种总线,但苦于没有很好的方式来为控制危险电压的机器连接或者医疗应用中的低泄漏防去颤连接提供必要的隔离,导致应用推广相当缓慢。 ADuM4160主要设计用作USB外设的隔离元件。但在某些情况下,它也可以用于实现隔离电缆功能。为此,必须先解决几个问题。ADuM4160上游和下游的缓冲器完全相同,均能驱动USB电缆,但下游缓冲器还必须能够根据与之相连的全速或低速外设调整速度。上游连接必须像外设一样工作,下游连接必须像
[模拟电子]
<font color='red'>通用串行总线</font>(<font color='red'>USB</font>)电缆隔离器电路 (CN0159)
用于车载USB供电的NCV8852(一)
  一前言   在目前的车载娱乐系统中, USB 接口已经成为系统的标配。随着大电池容量的便携设备的流行,做为车载充电接口的USB电源,需要提高更大的 电流 以满足设备的需要。目前主流方案中,单个USB口的负载能力需要达到2.5A。车载USB系统的架构为:从汽车蓄电池取电,经过降压 电路 后得到5V的稳定电源,提供给USB的VBUS。汽车蓄电池的 电压 并不是一个稳定的电压,其变化范围是非常大的,以小型乘用车为例,其蓄电池电压典型值为13V,电压范围为9~16V,在启停等恶劣情况下,会低至6V,甚至更低。不少整车厂对USB电源有着非常严苛的要求,6V电池电压下要保证5V输出,考虑到输入端的反极性保护及线损,USB电源的输入端电压会更
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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