微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 一种智能多协议通信适配器的设计

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

时间:10-12 来源:21IC电子网 点击:

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

  当选择从智能终端采集数据时,单片机通过顺序查询上述储存的搜索结果,得到终端的类型。然后,根据不同的终端调用相应的协议,发出采集数据的指令。适配器上的CPU与下位机之间是一对多的通信模式,默认状态下,采用循环采集,各终端有一预先指定的固定的通信地址。对一个固定的终端而言,CPU发出握手信号,远方终端响应,则相应的信息经RS232/RS485接收,由CPU存入RAM62256的指定地址;接收完成后,CPU将接收到的数据经 D12传给上位机;上位机的客户服务程序对上传上来的数据进行解码、校验,如有误,通知终端重传;如无误,则将解码后的信息转存入计算机指定的内存,并备份到相应的文档,供其他的客户服务程序使用。根据系统的特点,还可以采用定点采集方式对指定终端进行数据采集与监控。以下给出单片机主程序流程图(图 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由于其连接的方便性、通信速度的快速性、接口的简单性,必将在计算机技术应用领域得到广泛的应用。本文提出的智能多协议通信适配器可以广泛地应用于实时监控、实时数据采集等场合,也可以增强协议辨识和增加协议转换功能,使它能自适应地应用于与具有标准通信协议和规范化的数据格式而又缺少详细技术资料的智能终端通信中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top