美章网 资料文库 接口设计论文范文

接口设计论文范文

接口设计论文

接口设计论文范文第1篇

1)燃气炉、电阻炉上位机控制系统升级。对铸铁、铸钢、锻压三个分厂的60台燃气炉、64台电阻炉共计124台炉窑进行改造,添加实时数据接口。此项内容时间紧、炉窑设备多、调试难度大(软件新、工控机老、调试过程设备问题复杂)。在软件调试过程中,对DCOM配置问题比较突出,因为现场工控机操作系统版本有WIN2000SP1~4、WINXPSP1~3等多个版本,在同版本中,有些系统的默认设置也不尽相同,所以在设置时有些工控机通过简单设置就可以,但是有些工控机却不能通讯。经过上网查阅大量的文档、说明,并结合现场测试结果才找到了几个重点的系统设置服务参数项:①配置服务器和客户机相同的用户名和密码。②关闭网络防火墙,设置相同的IP段,设置ICMP允许传入回显请求。③在本地安全策略中,本地帐户的共享和安全模式设置为经典;让每个人权限限于匿名用户启用。④在组件服务中,设置默认权限、OPCEnum、服务器程序相应的权限。2)对锻压分厂的压机设备、碾环机设备、电力能源设备和铸钢的钢水测温系统、轧辊冷却测温系统、喷淬机、淬火油池等设备以及铸铁的电阻炉群电力平衡系统进行了软件开发或软件升级改造,使其具备相关控制功能并具有OPC实时数据接口功能。

2OPC数据接口

(1)主要采用OPCServer嵌入控制软件或单独调用OPCServer程序。程序代码(略)。(2)燃气炉加载OPC接口数据见表1,电阻炉、离心机等设备的数据接口类似。

3应用效果

在电阻炉群控软件中,对每台炉窑添加多功能电量表,对每台炉的用电情况(三相电压、三相电流、瞬时功率、累计电量)进行实时监控,并对每炉次的用电量进行统计。为此,电阻炉的实时上传数据为:炉次,炉内各控制偶温度,炉内各监测偶温度,工件上各铠装偶温度,各区设定温度,各区输出功率,设定工艺参数,工艺运行参数,设备报警信息,电量信息等。在燃气炉群控软件中,对没有煤气流量计的炉窑添加了流量计,对每台炉的煤气用量情况(瞬时流量、累计流量)进行实时监控,并对每炉次的煤气用量进行统计。为此,燃气炉的实时上传数据为:炉次,炉内各控制偶温度,炉内各监测偶温度,工件上各铠装偶温度,各区设定温度,各区输出功率、设定工艺参数,工艺运行参数,煤气压力,助燃风压力,炉膛压力,设备报警信息,每支烧嘴控制大小火情况,每支烧嘴大小火信息,煤气消耗量信息等。通过以上实时数据的统计、分析和传递,在生产管理和设备管理等方面可达到以下效果:(1)生产调度方面。生产管理者可以快速了解各热处理设备的使用及运行情况,可以优化设备的使用率和生产工艺流程的顺畅。(2)能源调度调配方面。能源管理者可以快速了解设备的能源消耗情况,并可对能源消耗费用进行控制(对于电阻炉,可以实现错峰用电,实现能源成本的节约),对整个厂内耗能的热处理设备实现监控与调配,防止供电负荷变化过大和煤气消耗量不稳。(3)设备管理方面。设备管理人员可对炉窑设备进行实时监控,对存在的设备隐患和问题及时发现并处理,设备维修保养更快捷,设备运行更顺畅。(4)成品管理及质量跟踪方面。对出现问题的工件可以查看其在锻造加热和热处理工艺过程中各种工艺参数和温度参数,追溯到存在问题的环节。(5)安全管理方面。对于容易出现安全问题的设备进行实时监控,及时发现安全隐患并消除,防止安全事故的发生。对于发生安全事故的设备,通过查看其报警记录及其它相关参数,方便查找事故原因,并进一步针对事故原因进行分析解决。(6)成本管理方面。通过对炉窑设备的实时数据记录,可计算单支产品在加热锻造和热处理工艺流程中的能源消耗,实现单支产品的成本统计分析。(7)通过个人办公室全过程信息化联网计算机可以查看任何一个产品当前所在的生产流程位置、状态、已消耗费用等,另外设备总体使用率,各产品生产周期和生产成本等也一目了然。从而可根据生产数据信息化分析处理系统了解是否满足市场及客户需求,企业内部的运行效率如何,优化内部管理,企业系统如何有效的适应外部的变化。为企业发展管理决策提供第一手参考资料和依据。

4结语

接口设计论文范文第2篇

1.1接口描述当传感器网络的Zigbee网关节点不断地将网络节点中监测到的温度、烟雾等信息发送给上位机时,上位机的通信模块必须及时响应接收数据。数据监测上位机通信接口采用VB6.0中MSComm控件,利用串行端口传输和接收数据,为应用程序提供串行通信功能,具体包括2种处理通讯方式,一种是事件驱动通讯,利用OnComm捕获并处理通讯时间;另一种是通过检查CommEvent的值,来查询事件和错误[5]。设计中采用第1种方式,在用户界面设置好相应的控制参数,如波特率为38400bps、无校验位、8数据位、1位停止位等。当传感器网络节点监测的的温度、烟雾等信息发送给上位机时,将触发监测程序中MSComm控件的OnComm事件,进而改变ComEvent的值,程序根据ComEvent的值执行相应的操作,如解析数据、发送数据、错误分析等,然后更新内存节点树中当前节点的实时数据、采集信息(如温度、烟雾等)存入数据库。

1.2实现方法MSComm控件可以设置以二进制或者以文本方式接收,若设置为二进制接受,控件会自动将其转变成十进制。在该系统中,数据帧的数据是十六进制的,设置以二进制方式进行接收,从接收缓存中获取到的是十进制的数据。

2数据结构与数据解析

2.1内存中节点多叉树的建立图2节点数据结构图通信监测模块接收数据后,为了便于以图形方式实时显示网络拓扑和节点监测信息,以及提高查询数据的运行速度,需要在内存中构建一个动态多叉树,用于存储节点最新的数据信息。节点数据结构图如图2所示。在内存中建立一个关于节点的动态多叉树,节点的唯一标识是它的自身ID,根据数据帧中包含的父子关系可构建出一棵多叉树。首先定义一个名为treeNode的类,它的每一个实例都代表着一个节点,里面包含节点的属性(例如ID、温度、烟雾等)和方法(例如获取类中节点数据的getData方法)。为了将节点间的父子关系表现出来,可在类treeNode中定义一个类型为treeNode的动态数组NodeChild(),用于存放子节点。如某节点ID为0000,子节点ID为0001,将子节点0001存放在节点0000的NodeChild()数组中,即可完成节点间的连接。当需要找某个节点时,从根节点开始查找,若根节点的孩子没有要找的节点,则查找根节点的孩子的孩子,直到遍历完所有节点。当某数据帧发送到上位机时,解析出来的原始数据分别放在相应的变量,假设原始的温度数据是3F4A,数据结构中温度变量名为Temperature,类型为String,则直接将3F4A转换为String类型存在Temperature中。按上述方法构建的动态多叉树能够适应网络拓扑动态变化的应用场景,相比于定长的数组,其更为节省内存,不足之处是查询算法较复杂。

2.2数据解析通信监测模块接收到Zigbee网关节点发送来的一组数据(数据帧)后,需要对收到的数据进行协议解析,然后根据解析数据建立当前动态多叉树。由于通信中难以避免数据帧出错、截断、丢失等情况,故数据解析部分根据数据帧的格式制定了一套协议,丢弃异常数据帧。数据帧的部分格式如下:FFXXXXXXXXFF01XXXX02XXXX2FF之间,开头2个字节为节点ID,紧跟的2个字节节点的父ID01代表温度类型,后面2个字节是温度数值02代表烟雾类型,后面2个字节是烟雾值,依次类推…。2个FF后的字节都是数据,其格式如下:数据类型(01,温度类型)+2个字节的数据(XXXX)。具体操作流程如图3所示。首先检验从串口进来的数据帧开头一个字节是否FF,若是,则开始解析。直到下一个FF,则节点ID部分解析结束,后面都是数据。继续读取下一个字节,若为01,则将后面紧跟的两个字节存进相应的温度变量,读取下一个字符;若该字节所表示的数据类型未定义则跳过该字节及后面紧跟的两个字节,继续读取下一个字符。该过程一直执行直到解析完整个数据帧。由于数据帧是不定长的,而且没有结束字符,所以每收到一个数据帧程序便立即从缓存中读取并解析,以避免多个帧合并为一个数据帧导致解析错误。当出现多个数据帧并合情况时,则丢弃后继的帧。在帧解析完毕后,可以对解析出来的监测数据信息进行处理,将数据信息一份存进内存中节点多叉树,一份存进数据库,实现实时更新数据和记录当前信息。以下是有关串口通信事件响应及数据解析的部分代码:

3数据库的构建与连接

3.1数据库关系数据库关系图如图4所示。由于每个节点都有大量历史数据,所以每一个节点都创建一个表;USERS表用于保存监测系统的用户信息;NodeTran用于保存数据帧转发路径;Nodelist用于保存节点列表;Limit用于保存监测系统的阈值管理设置值;Node_XXXX为节点XXXX的历史数据表。除了用户表,所有数据都采用varchar类型。

3.2存储过程的创建为了提高通信监测模块与数据库之间通信的效率,将一些常用且较为复杂的SQL语句存放在数据库中,使用时只需要调用存储过程,输入必要的参数即可完成相应的SQL语句操作,这样可以大大减少程序与数据库之间的通信量。

3.3使用ADO将VB6.0与SQL2005连接ADO是为Microsoft最新和最强大的数据访问范例OLEDB而设计的,拥有一个易于使用的应用程序层接口。通过使用ADO2.0对象模型中的Recordset和Connection对象实现两者连接和数据的存取。Connection对象包含关于某个数据提供程序的信息,如数据库用户、密码、数据库名等;Recordset对象包含某个查询返回的记录,可以创建一个Connection对象,在同一个连接上打开多个Recordset对象[8]。操作流程图如图5所示。

4结语

接口设计论文范文第3篇

船舶导航信息系统处理和储存多种信息,首先,系统需要处理硬件接口递交的监测信息,并根据上层用户的需求给予硬件设备相应的反馈;其次,系统需要将处理和合成之后的信息显示给用户,同时从用户的输入设备中收集用户的需求并进行处理;最后,系统还需要与GIS、卫星通信系统等模块进行交互,实现信息的分析和更新。因此,导航信息在系统的流动过程中形成3个闭环,如图2所示。在硬件信息闭环中,硬件接口产生的信息主要为经纬度、航向、航速等初始信息,并通过硬件设备本身接口输出该信息。然而,由于不同设备采用不同的标准并由不同的厂商制造,因而其产生的数据格式差异较大,无法被信息接口直接使用,因而需要信息收集与格式化模块进行数据的格式化。该模块从硬件接口中收集数据,并根据预先定义的数据结构将数据重新组织,并以一定的格式提交给信息接收接口,在信息接收接口中,则对数据的合法性进行检验,同时识别数据的类型,交付给相应的中央处理功能。在用户信息闭环中,中央处理模块将处理完毕的信息,按照一定的消息格式,通过信息交付接口输出给用户界面,并显示给终端用户。因此可以看出,用户界面的设计需要相应的信息交付接口的支持,同时用户根据自己的需求,通过用户界面对导航信息系统进行相应的操作,该请求也通过信息交付接口递交给中央处理模块,进行进一步的处理。在外部信息闭环中,中央处理模块需要借助一些外部系统获取需要的信息,如通过GIS可以结合数字地图等平台,直观地显示导航信息,而通过卫星通信网络,可以将通信功能集成入导航信息平台中,实现多节点的位置和导航信息交换。在整个过程中,中央处理模块根据实际的需要向外部系统提交信息请求,并从外部系统中下载相应的信息。需要注意的是,外部系统中采用的消息格式往往有较为明确的标准,因而信息扩展接口必须具备相应的适配机制,支持相应的标准,识别对应格式的数据和消息,并将其转换为中央处理模块能够处理的数据结构。

2信息接口设计

在第2节中,对系统应用的信息接口进行了介绍,并对其功能进行了较为详细的描述,根据其功能和作用位置的不同,可以将其分为信息接收接口、信息交付接口和信息扩展接口3类。

2.1信息接收接口信息接收接口的主要功能是:接收由硬件提交的信息,并对信息的格式进行检验和分类,最终递交给中央处理模块。其主要结构和工作流程如图5所示。如图5所示,在信息接收接口中,收到的信息首先存储在消息缓冲中,信息格式模式匹配单元通过预先定义的合法消息格式,对消息缓冲中的信息进行匹配,监测其合法性,当出现异常时,反馈控制单元调度消息缓冲,根据异常消息的来源,向相应的硬件接口做出反馈,进而将异常消息丢弃或封闭/重置相应的硬件接口。合法的消息被送入消息分类单元,该单元维护若干个列表,列表中存储格式化的消息数据。当中央处理模块或其他模块,调用相应的功能时,则通过相应的功能子接口,将对应的数据取出并交给相应的功能。信息接收接口是基础硬件设施和软件处理单元之间的桥梁,通过扩展消息格式化的适配功能,能够有效拓展支持的硬件种类,从而使得系统的功能更加强大。

2.2信息交付接口信息接收接口面向的是底层硬件设备和系统,而信息交付接口面向的是上层的用户和用户界面,其功能是:将中央处理模块处理完毕的数据和信息,按照不同的种类递交给用户界面,在用户界面中进行集成和显示。其主要结构和工作流程如图6所示。与信息接收接口的不同之处在于,交付接口担负了双向的信息传递功能。首先,通过数据调用单元可以将处理完成的数据交付给用户界面使用,根据类型的不同有图形化数据、字节化数据、GIS数据等,用户界面通过调用这些不同种类的数据,即可按照实际需求,合成和显示出包含丰富内容的导航信息图示。同时,用户通过用户界面对导航信息系统进行控制、设置或调用其需要的单个数据,此时用户指令被传递到用户指令解释单元,若用户指令合法,则通过编译器对指令进行解释,产生针对系统每个模块的具体指令,并通过控制信息产生单元将具体指令转换为系统模块能够识别的具体控制信息。然后利用系统控制接口,对系统的软件和硬件进行直接的控制或设置等操作。信息交付接口是实现用户界面的基础,其并不关心用户界面如何实现,终端用户有着怎样的具体需求,仅仅是提供了一系列标准化的数据交付接口,这样就可以根据不同类型的船舶和不同的应用场景,设计不同的用户界面,而不需要受到核心软件系统的束缚。

2.3信息扩展接口与前2种接口不同,信息扩展接口是向外部开放的接口,通过这个接口,例如卫星通信网、GIS系统、AIS系统等,均可以连接入导航信息系统,为系统提供更加丰富的信息和更加强大的功能。其主要结构和工作流程如图7所示。信息扩展接口同样需要担负数据的双向传递任务,一方面其运行有相应数据交换/传输协议的协议栈,如AIS数据传输协议栈、VSAT卫星通信协议栈等,以便通过相应系统的接口下载和传输消息,同时将接收到的消息转换为系统能够识别的数据结构,供中央处理模块处理。另一方面,系统根据需要,提出相应的信息下载请求,该请求通过请求处理单元,转换为相应系统的控制和请求指令,封装为合适的控制消息后,发送给对应的外部系统。信息扩展接口可以通过扩展外部数据交换协议栈来扩展其可以支持的外部系统种类,从而能够综合更多的外部信息,丰富导航信息系统的内容。

3仿真与实现

根据以上研究和设计,本文采用软件实现的方法对导航信息系统进行仿真和模拟。采用的环境是Corei31.8GHz,4G内存,Win764bit,采用Java作为程序开发语言。仿真的重点在于实现各个接口的功能,验证各个接口工作的有效性和高效性,依托当前较为成熟的中央处理模块[7],实现对信息的处理和存储,并使用Java语言开发整个模拟系统,模拟系统界面如图8所示。通过编写相应的代码,模拟各种硬件设备,信息接收接口成功地收集和转换了不同种类的消息,并通过信息交付接口递交给用户界面,从图8可以看出其成功地实现了信息的收集和显示。如图9所示,进行信息设置的测试,通过设计控制面板,设置相应的参数,观察能否对系统进行有效控制。通过以上实践证明,在理论上本文所设计的接口能够发挥相应的功能,实现导航信息的收集、处理和交付等功能,说明了本文提出的方案具有一定的可行性。

4结语

接口设计论文范文第4篇

本设计采用了Xilinx公司提供的ISE为开发平台。ISE软件是Xilinx公司推出的FPGA/CPLD集成开发环境,不仅包含了逻辑设计所需的一切,还具有大量的简便易用的内置式工具和向导,使得I/O分配、功耗分析、时序驱动设计收敛、HDL仿真等关键步骤变得容易而直观。因此要掌握XilinxFPGA开发,就必须掌握ISE。ISE界面友好、操作简单、集成度高。利用ISE进行FPGA逻辑设计的主要流程包括设计输入、功能仿真、设计综合、设计实现和配置下载,简易设计流程图如图1所示。

2ISA总线逻辑接口设计

ISA总线:(IndustryStandardArchitecture:工业标准体系结构)是IBM公司为PC/AT电脑而制定的总线标准,也称为AT标准,为8/16位体系结构,最高工作频率为8MHz,数据传输率大约是16MB/S,地址线24条,可寻访16M字节地址单元。由于本文使ISA总线工作在8位I/O传输模式,使用了ISA总线信号中的时钟线(ISA_CLK)、地址线(ISA_ADDR):A0~A9、数据线(ISA_DATA):D0~D7、读信号线(ISA_IOR)、写信号线(ISA_IOW)、地址锁存使能(ISA_ALE)、地址选通信号(ISA_AEN)等。本设计采用了与C语言较为相似的VERILOGHDL硬件描述语言对ISA总线逻辑接口进行了描述。

本文要实现的是ISA接口通过FPGA访问串口芯片16C554,16C554是内部带有16字节收发FIFO的通用异步收发器,具有独立的收发控制电路。4路标准的MODEM接口,通过软件可分别设置允许每一路中断。波特率、数据帧格式等也都可由软件编程设置。具体硬件结构如图。由图2可知上位机通过ISA总线对串口芯片16C554串口芯片的访问需要FPGA作为桥接媒介,因此串口芯片的控制信号均由FPGA给出,其逻辑控制信号的VERILOG描述如下。当上位机对串口芯片进行读写时,首先需要通过FPGA将ISA地址信号译码为芯片的片选信号,设置串口芯片基地址为0x300,由于9位地址线的低三位为串口芯片的内部地址,因此芯片的片选信号由地址总线的高七位决定。

3结束语

为了验证基于FPGA的ISA逻辑接口的正确性,将上述逻辑接口利用VERILOG硬件描述语言在赛灵思提供的集成开发环境ISE中实现。

接口设计论文范文第5篇

CY7C68013A固件程序是指在EZ⁃USB芯片内部RAM中运行的程序代码,固件程序是USB接口设计的核心部分。固件代码的作用就是控制芯片执行指定的设备功能,即处理上位机下传的各种USB设备请求,控制芯片与电路进行数据传输。EZ⁃USB芯片内部集成增强型8051内核,USB芯片的固件程序实际上就是单片机程序文件,可以采用汇编语言或C语言编写。CYPRESS公司提供的EZ⁃USBFX2固件程序开发包中提供了固件程序的基本框架,这为用户开发基于EZ⁃USBFX2芯片的USB设备提供了很大的方便。

1.1固件框架固件程序框架主要包括设备初始化,处理标准USB设备请求和USB挂起时的电源管理等。程序框架使用KeilC51编写,它是现成的直接可以编译为HEX文件的8051程序代码,使用者只需要改写USB描述表,在一些固定函数下添加功能代码,主要是EZ⁃USB芯片的初始化配置和实现USB外设功能的代码。固件框架的流程图如图2所示[4]。复位后固件先初始化一些全局变量,然后调用初始化函数TD_Init(),该函数初始化USB设备到没有配置的状态,并打开中断。循环1s进行一次设备重枚举,直到端点0收到一SETUP包,然后进入while循环语句,开始TD_Poll任务处理函数。依次执行下列过程:(1)TD_Poll()用户任务调度函数;(2)如果发现USB设备请求,则分析该请求并执行;(3)如果收到USB挂起信号,则调用TD_Suspend()挂起函数,内核挂起,直到出现USB远程唤醒信号,调用TD_Resume(),内核唤醒,从新进入while循环。固件框架包含的文件如表1所示。

1.2固件代码编写USB固件程序主要的功能有2个:一是PC机的Windows系统能够检测与识别相应设备;二是数据的上传与下传。Cypress公司为EZ⁃USBFX2系列芯片提供的固件程序框架极大的简化了固件开发。一般的固件开发只需要修改用户调度函数文件Periph.c与USB描述符列表文件Dscr.a51,这两个文件在KeilC51编程器中都可打开。Periph.c文件中只需要修改TD_Init()与TD_Poll()函数。在本设计中为了能进行高速的数据传输,EZ⁃USB芯片采用SlaveFIFO接口方式。此方式下,USB内核不参与数据的传输,所以TD_Poll()函数不用写代码,设置成空函数就可以了。这样USB固件程序的开发主要任务就是改写TD_Init()函数与USB描述符列表文件Dscr.a51。在本设计中配置端点6传输方向为IN,传输方式为块传输,缓冲大小设置为1024B,深度为2级,作用是上传采集的数据。配置端点2传输方向为OUT,传输方式为块传输,缓冲大小设置为1024B,深度为2级,作用是下传FPGA的命令配置参数。固件程序的编译使用KeilμVision2集成编译环境,集成编译环境中包括有C51编译器,A51汇编器等工具与调试器。代码中还需包含头文件FX2.h与Fx2regs.h,库文件Ezusb.lib。对修改后的代码进行编译与链接,最后生成HEX文件。HEX文件可直接下载到EZ⁃USB中运行。HEX文件也可根据需要通过CYPRESS公司提供的EZ⁃USBFX2固件开发包中的Hex2bit.exe应用工具生成IIC文件,IIC文件用于烧写到EEPROM中。

2固件程序的装载

CY7C68013A芯片集成增强型8051内核,内部无ROM等永久性存储器,每次上电后需要从新将固件程序载入到片内RAM中。EZ⁃USBFX2固件程序有3种加载方式:(1)如果没有片外存储器连接到EZ⁃USBFX2上,或者所读取的首字节不是0xC0或0xC2,则芯片枚举为缺省的USB设备,其中描述符,VID,PID由芯片内部硬件逻辑提供。然后固件程序与描述符表由主机下载,EZ⁃USBFX2开始执行下载的代码,首先模拟物理电路的断开与连接,此时EZ⁃USBFX2将再次进行设备枚举,这称为重枚举,重枚举将根据下载的代码对设备进行从新定义。(2)如果USB检测到一个E2PROM,其首字节为0xC0时,芯片也枚举为缺省的USB设备,但VID与PID值将从此EEPROM中读取,USB描述符由芯片内部提供。这种模式称为“C0”加载。主机根据读得的VID与PID值,由固件下载驱动程序将指定的固件程序下载到EZ⁃USBFX2,然后再重枚举。(3)如果USB检测到一个E2PROM,其首字节为0xC2时,固件程序将从此E2PROM中自动下载到FX2芯片上,CPU通过复位后运行下载的程序代码。这种模式称为“C2”加载。其中第一种方式主要是开发阶段使用,它需要主机上有CYPRESS公司提供的开发软件USBCONTROLPANEL,每次手动将程序下载到USB上。第二种方法需要开发者另外再编写一个固件下载驱动程序,而且也需要在电路中外加一小容量的E2PROM。第3种方法是将固件程序烧写到E2PROM中,每次上电自动加载,这种方式简单直接。本设计采用第3种方式。

3驱动程序及INF文件的编写

设备驱动程序是应用程序和硬件之间的连接,应用程序通过驱动程序与设备通信,数据交换,从而获取数据和对设备进行控制。CYPRESS公司为EZ⁃USBFX2提供一通用的驱动程序CYUSB.SYS,其功能完备,使用者不需要修改直接使用[5]。USB设备都具有一个VID和PID,此处的VID和PID与在固件程序转载阶段的值不同,这两个值是用来安装设备驱动程序的,VID和PID放到设备描述符表中,通过设备请求读入到Windows系统中。同时,Win⁃dows操作系统通过INF文件将一VID和PID绑定到某一设备驱动程序。当设备连接到主机上时,读得设备的VID和PID,通过存储在INF文件中的信息找到设备驱动。此后,Windows会将设备的VID和PID值保存到注册表,设备再次连接时,系统就会在注册表中查找设备驱动程序信息。具体操作方法是将驱动安装的模板INF文件的MODEL节中的VID与PID值修改成与USB设备的VID和PID值相同。相应STRING节中也修改。

4与应用程序的接口

图3是驱动程序流程图,从图中可以看到功能驱动程序的位置。用户通过一种规范的方式调用WIN32API函数来访问硬件,不用考虑如何控制硬件的具体细节。USB开发过程主要应知道应用程序调用驱动程序的接口函数,如下介绍,应用程序直接调用这些函数来实现与硬件设备的数据交换。CREATEFILE通过设备名打开设备,获得设备句柄,有设备句柄就可以读写设备。通过下面语句获得设备句柄。DEVICEIOCONTROL读写控制设备,应用程序调用此函数并加以不同的I/O控制码参数,完成应用程序与驱动程序将的数据交换。主要用到的I/O控制码有:IOCTL_EZUSB_BULK_READ该控制码从指定的批量管道中读取数据。读操作阻塞调用进程,直到数据传送完成。IOCTL_EZUSB_BULK_WRITE该控制码向指定的批量管道中写入数据。写操作阻塞调用进程,直到数据传送完成。CLOSEHANDLE通过句柄关闭设备,设备请求完成后通过此函数关闭。

5结语

接口设计论文范文第6篇

从结构上,检测接口可以分为DAC单元、滤波放大单元、二线接口单元、混合单元、信号调理单元、ADC单元和FPGA系统单元。

1.1DAC与滤波放大单元DAC与滤波放大单元用于将数字信号转换为模拟信号,并完成对信号的调理、幅度调节与功率放大功能。其硬件电路如图2所示。该单元由3部分电路组成,分别是DAC芯片电路、无源滤波电路和差分放大电路。DAC芯片为ADI公司生产的高性能、低功耗CMOS数模转换芯片AD9762,AD9762为12位分辨率,支持最高125MS/s的更新速率。该芯片使用5V、3.3V可选单电源供电,最高功耗175mW,2mA~20mA差分电流输出,负载RLOAD为100Ω时输出电压范围为0.2V~2V[2]。FSADJ引脚连接外接电阻RSET,用于满量程电流输出调节。REFIO引脚用于基准电压VRFE输入/输出,选择内部1.2V基准电源时通过一个0.1μF电容与模拟地连接。其差分输出电压VDOUT与输入的12位数字代码(DCODE)的关系式为。无源滤波电路由电感与电容组成截止频率为20MHz的7阶巴特沃斯低通滤波器,用于信号整形和消除毛刺干扰。差分放大电路以全差分放大器AD8476为核心组成,用于将通过无源滤波电路的模拟差分信号进行增益调节和功率放大。AD8476是一款功耗极低的全差分精密放大器,其带宽为6MHz,使用±5V电源供电时的输出电压范围为-4.845V~4.82V[3]。检测激励信号的峰峰值为4.3V和6.2V,而DAC的输出峰峰值电压为2V,因而差分放大电路的增益应当大于3.1,这样才能使得激励生成通道的输出信号幅值符合检测需求。考虑到DAC的转换效率和可能存在的误差,可设计差分放大电路具有两个略大于满幅度输出的增益值。图2中使用外部扩展电阻R1~R6组成反馈电阻网络,其中R1=R2=10kΩ为输入电阻,R3=R6=24kΩ、R4=R5=33kΩ为两组反馈电阻。该电路的增益值分别为A1=R3/R1=2.4,A2=R4/R1=3.3。为了提高检测接口的自动化程度,使用1个2路2:1电子开关ADG736用于两组反馈电阻的切换,通过改变其控制端IN1和IN2的电平逻辑,完成开关动作。ADG736使用5V供电时,导通电阻RON为2.5Ω,带宽大于200MHz,通过峰值电压为5V。

1.2二线接口与混合电路单元二线接口与混合电路单元用于为信号激励与数据采集提供对外二线接口和实现收发信号的双工传输。其硬件电路如图3所示。二线接口电路由电压比为1的变压器以及电阻RS1、RS2和电容C9、C10组成,用于提供检测电路对外的二线接口,实现接收与发送信号的传输,同时可以隔离外部直流信号。RS1、RS2用于与线路负载阻抗匹配并隔离远端反射和提供线路的能量交换,电容C9、C10用于配合组成激励发送端扩展滤波电路。混合单元的功能是一阶模拟回波抵消,用于抵消本地发送信号。图2中R7~R10为输入电阻,同时与C3~C8组成一阶低通滤波器。两个仪表放大器AD8429用于将二线平衡信号转换为单端信号。AD8429为低噪声、高精度仪表放大器,其增益为1时增益精度为0.02%、CMRR为80dB、带宽为15MHz,使用±12V电源供电时其输出电压范围为-10.1V~10.7V,使用单个增益控制电阻RG能够控制其增益范围为1~1000,其增益控制关系为G=1+6kΩ/RG[4]。LT6600-10将一个全差分放大器与一个近似切比雪夫(Chebyshev)频率响应的四阶10MHz低通滤波器集成在一起。芯片为低噪声全差分输入/输出放大器,内部集成两个运算放大器、电阻电容网络,组成1倍增益放大电路和一个10MHz低通滤波器,使用±5V电源供电时其输出电压范围可达到±5V。若线路电阻RS与负载电阻RL完全匹配,则第二个AD8429的增益值为2时,混合电路的输出U′3=U3。考虑到阻抗失配现象的普遍存在,因此选择电位器作为第二个AD8429的增益控制电阻,在线路阻抗失配的条件下,通过调节增益控制电阻来实现混合单元消除近端信号的目的。根据前文所述,可以得到混合电路输出信号U′3与二线输入信号U3比值跟增益控制电阻RG之间的关系。因此只要知道RG的值,就能够通过式(5)准确地对通过混合单元造成的输入信号幅值的线性误差进行修正。为了提高检测接口的自动化程度和实现对RG值的实时感知,选择数字电位计AD5272作为第二个AD8429的增益控制电阻。AD5272为1024位分辨率、1%电阻容差误差、I2C接口和50-TP存储器数字变阻器,最大阻值为20kΩ,可使用5V电源供电[6],其阻值调节步长为1.95Ω。

1.3信号调理与ADC单元信号调理与ADC单元用于将混合电路输出的模拟差分信号转换为输入信号并输入到FPGA,该部分为数据采集的核心单元,其硬件电路如图4所示。由于被测信号的最高频率不超过2.048MHz,根据奈奎斯特采样定理,使用4.096MHz采样速率进行采样就能得到信号完整的信息,但是在工程中,通常使用5~10倍速率进行采样。因此ADC选择12位、10MS/s采样速率模/数转换器AD9220,其为+5V单电源供电,70dB信噪比,86dB无杂散动态范围,内置片内高性能、低噪声采样保持放大器和可编程基准电压源,并具有满量程输出指示功能[7]。使用1V基准电压时其输入范围为2V(峰-峰值)。信号调理电路应当具有抗混叠滤波和信号幅度调节的功能。该电路选择全差分放大器AD8476组成,考虑到检测时输入信号的幅值大于ADC的输入范围,因而选择其输入电阻为10kΩ,选择数字电位器AD5272为反馈电阻RF,则其增益值G4=RF/10kΩ,电路的增益值为0.0002~2可调。放大器输出经过2个100Ω电阻和2个电容组成的低通滤波器后送至ADC。同时,AD8476以ADC的基准电压VREF为共模参考电压。

1.4FPGA单元FPGA单元以Xilinx公司的FPGA芯片XC3S400为核心电路组成,其程序存储芯片为XCF02S,使用40MHz有源晶振,5V电源供电,使用稳压芯片提供电路所需的3.3V、2.5V和1.2V电源。USB接口作为微处理器常用的外部总线接口,目前已经得到了广泛的应用[8],因此考虑选用USB2.0接口作为FPGA与上位机之间的数据接口。同时采用JTAG接口用于FPGA和其配置芯片的程序烧写。关于FPGA电路的设计、开发技术已经较为成熟,本设计相比与其他通用FPGA电路的设计并无独特之处,因此不再对FPGA单元进行详细描述。

2FPGA程序设计

在检测接口电路的设计中,FPGA是检测接口电路的信息传输与控制单元的核心,其可编程配置能力和能够高速、并行处理数字信号的能力是检测接口的灵活性和升级性的关键。其内部程序使用Xilinx公司的FPGA开发环境ISE进行设计并完成烧写。程序设计使用模块化设计思想,其结构示意图如图5所示,可以分USB传输、管理控制、DAC传输、输出增益控制、混合单元控制、信号调理控制、ADC传输控制和增益补偿8个模块。下面就各个模块的功能分别进行介绍。(1)USB传输模块,用于通过FPGA单元上的USB接口电路实现FPGA芯片与上位机的信息传输,具有USB电路的配置功能,并实现标准USB信号封装、解封装功能,将接收到的上位机信号解封装为透明数据传送到管理控制模块和DAC传输模块,将管理控制模块、增益补偿模块输出信号封装为标准USB信号通过USB接口电路传输到上位机。(2)管理控制模块,是整个程序的主控单元。该模块用于接收USB传输模块输出的控制信号,对其余的通信模块进行控制,并输出检测电路的工作状态到USB传输模块,最终传输到上位机。同时用于控制其余模块的工作状态,接收混合单元控制模块、信号调理控制模块、ADC传输模块输出的反馈信息进行工作状判断,根据混合单元控制模块、信号调理控制模块反馈信息控制增益补偿模块的补偿量。(3)DAC传输模块,在管理控制模块的控制下工作,接收USB传输模块输出的激励信号,并将信号转换为DAC芯片的数据输入信号,同时为DAC芯片提供转换时钟。(4)输出增益控制模块,用于在管理控制模块输出的控制信号下工作,根据需求通过两路输出信号IN1和IN2分别控制差分放大电路的2个电子开关ADG736。(5)混合单元控制模块,用于在管理控制模块输出的控制信号下工作,根据需求通过输出I2C信号控制混合单元的数字电位计AD5272的阻值,完成信号混合功能,并将AD5272的阻值信息反馈给管理控制单元。(6)信号调理控制模块,用于在管理控制模块输出的控制信号下工作,根据需求通过输出2路I2C信号控制信号调理电路的2个数字电位计AD5272的阻值,完成信号调理功能,并将2个AD5272的阻值信息反馈给管理控制单元。(7)ADC传输模块,在管理控制模块的控制下工作,接收DAC芯片输出的采样数据,并将数据传输到增益补偿模块,同时为ADC芯片提供采样时钟。该模块同时接收ADC输出的满量程指示信号和数据输入指示信号,并传送给管理控制模块。(8)增益补偿模块,用于接收来自ADC传输模块的采样数据和管理控制模块输出的增益补偿信息,对ADC芯片采样获得的信号进行增益补偿,实现检测信号的完整性。

3结论

接口设计论文范文第7篇

在HTTP上执行远程方法调用的方法,通过这一机制在线为用户提供应用服务。SOAP技术基于XML标准,详细描述了在分布式环境下利用HTTP以可靠安全的方式进行方法调用的机制。利用WebService实现分布式系统,首先需要由服务提供者定义并创建其能够对外提供的服务组件;其次需要利用WSDL(WebServicesDescriptionLanguage)来描述服务访问入口和远程调用接口,并将其到网络上的UDDI(UNIVERSALDESCRIPTION,DISVOVERYINTEGRATION)注册中心,服务入口由URL唯一确定,以提供给用户使用。用户通过注册中心找到服务,并根据WSDL文件中规定的远程过程名和参数格式调用远程过程。WEB服务接受请求后执行该过程,执行完毕后向用户返回执行结果。由此可见,WEB服务为用户和服务提供者提供了系统集成的松散耦合的方式,用户和服务提供者相互独立,一端改变不需要通知另一方。此外,WEB服务基于XML的开放协议,能够被广泛接受并向前兼容,适于系统之间的相互集成。

2基于HIS系统的CDD集成的接口设计

HIS系统需要支持医院医护人员的临床活动,收集和处理病人的临床医疗信息,丰富和积累临床医学知识,并提供临床咨询、辅助诊疗、辅助临床决策等功能,提高医护人员工作效率和诊疗质量。为达到这一目的,需将CDD中的知识单元有机嵌入到临床医疗信息中,以期为临床的疾病、用药、手术等提供权威准确的知识服务。Webservices接口使用基于XML的消息处理作为基本数据通讯方式,可方便集成异类系统。由于CDD系统有清晰的分层结构和良好的可扩展性及独立的检索模块,利用Webservices安装HIS系统的需求封装检索模块即可实现CDD与HIS系统的集成。

2.1CDD与HIS系统集成架构CDD与HIS系统集成架构如图1所示。CDD的数据库包括疾病、手术等9个模块,利用NHibernate将关系数据库封装为对象。CDD接口对数据的检索建立在LUCENCE索引上,以疾病库为例,对疾病名、英文名、标准名、并发症、实验室检查、辅助检查、诊断、鉴别诊断、治疗、临床表现、科室分类这些字段建立LUCENCE索引。查询可在上述字段内全文检索,也可对固定字段精确检索。LUCENCE[3]对查询结果做了优化,使得查询更加快速高效。在Spring.NET的框架中,利用IDAL数据层接口完成对数据层的操作并实现了业务逻辑。Webservice接口利用IDAL接口完成数据的检索与获取。

2.2应用分析目前已完成系统接口开发,试用良好。HIS系统可通过配置文件设置CDD系统接口地址及绑定协议等信息。由C#多态性实现用户名密码登陆或者IP登陆后,可通过检索函数获取检索结果。用户通过函数按照疾病名和疾病分类准确查找相关疾病,也可通过SearchDisease(stringicd)函数按照ICD号准确查找相关疾病,亦可通过SearchDiseaseFromFullText(stringkeyword)函数在索引字段中全文检索,检索支持英文及中文检索词。需输入多个检索词时,根据检索需要选择布尔逻辑运算符“()”、“或者(OR)”和“不包含(NOT)”,检索结果由LUCENCE优化排序后返回给用户。以疾病为知识轴,HIS系统可将疾病的12个知识单元和与之相关的相关药品、循证、辅助检查、手术、疾病进展等知识点与HIS的信息流有机结合。手术、药品、循证、辅助检查、疾病进展、操作规范、手术图谱、医保药品的分库检索,如疾病库检索一样。通过测试工具测试CDD的WEB接口。以心血管内科的假性高血压为例,疾病reguest的SOAP以及response的SOAP如图2所示。从图2可见,假性高血压的疾病信息完整地封装在XML格式的SOAP中。

3结语

接口设计论文范文第8篇

1.11553B总线数据格式信号编解码的设计方案由总线传输层特性决定,1553B消息字格式和曼彻斯特码型如图2所示。1553B总线以字为单位进行数据传输,每个字包含20位,其中前3位为同步头,后17位为数据位和奇偶校验位,如图2(a)所示。总线数据传输速率为1Mb/s,采用曼彻斯特Ⅱ双相码编码方式,每位数据中间均有一个跳变沿,由正到负的跳变表示逻辑‘1’,由负到正的跳变表示逻辑‘0’,其码型对应关系如图2(b)所示。

1.2编码器设计编码器的设计相对简单,主要完成对待发送消息字的曼彻斯特编码,并将其并串转换后输出。由于曼彻斯特码每位数据中间均有跳变,故发送时需将每一位分割成两位,分别发送。其工作过程为:(1)同步头编码,若为数据字同步头,则编码为“111000”(由高位到低位,下同),若为状态字或命令字同步头,则编码为“000111”;(2)数据和奇偶校验位编码,若为‘0’,则编码为“10”,若为‘1’,则编码为“01”;(3)按由低到高的顺序将编码后的40位数据串行输出。FPGA采用16MHz主时钟,由于编码后每位数据对应0.5μs,故将主时钟分频后产生2MHz时钟来控制编码器发送40位数据,每个时钟沿发送一位,正好满足1553B总线1Mb/s的速率要求[5]。

1.3解码器设计解码器主要完成消息字的解码,并将其串并转换后输出,其工作过程为:(1)检测到总线上有效电平,解码器开始工作;(2)同步头解码,检测到指令字和状态字同步头用“011”表示,检测到数据字同步头用“100”表示;(3)16位数据位和1位奇偶校验位解码;(4)将解码后的消息字(20位)并行输出。同步头和数据位检测示意如图3所示。由1553B协议可知,同步头包含三个位时,在1.5个位时处有跳变。如图3(a)所示,同步头到来后,解码器连续采集48个数,理论上,采用16MHz时钟,如果检测到24个‘0’和24个‘1’,则表示收到有效同步头,但考虑到信号上升时间及下降时间等因素,实际若检测到22个或者23个‘0’和‘1’,就可以判定同步头有效,进行下一步数据的接收。数据位包含一个位时,在0.5个位时处有跳变。如图3(b)所示,在每个数据中间部位,若前一时钟采样到‘0’,后一时钟采样到‘1’,则表示当前数据位为‘0’,反之则是‘1’。另外,如果采到的数没有跳变,为全‘0’或者全‘1’,则产生错误标志,通知协议处理逻辑或子系统进行相应的错误处理。

2协议处理模块设计

2.1协议处理模块响应流程协议处理模块实现BC,RT,MT三种总线终端的协议处理,在FPGA模块设计之前,根据1553B协议对协议处理模块三种工作模式下的响应流程分别进行分析设计。

2.1.1BC模式[6]BC(总线控制器)是1553B总线的核心,总线上任何类型的数据交换都由它发起。BC模式下接口响应流程设计如图4所示。MIL⁃STD⁃1553B协议规定的总线指令可分发送指令、接收指令和方式指令三种,共能实现四种类型的功能:RT到BC的数据传输、BC到RT的数据传输、RT到RT的数据传输和总线管理。根据图4,BC模式下接口主要工作过程为:(1)根据外部系统需求发送相应命令字,发起总线传输;(2)根据指令类型的不同,进入不同响应流程,主要包括数据字发送、数据字接收和状态字接收等;(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及根据收到的RT状态字判断总线终端状态等。需要注意的是,BC如果在规定的时间内没有收到RT状态回复,则需重新发送命令字进行重试(Retry)。

2.1.2RT模式[7]RT(远程终端)是1553B总线上的指令/响应型终端,它响应BC发送的指令,按要求接收或发送数据,在规定时间内回送状态字,并服从BC的总线管理。RT模式下接口响应流程设计如图5所示。根据图5,RT模式下接口主要工作过程为:(1)收到命令字后进行指令分析,根据指令类型进入相应的响应流程;(2)按照流程进行数据字接收、发送,并回复状态字;(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及特殊方式指令下方式标志的产生等。

2.1.3MT模式MT(总线监控器)是总线上的监听单元,它监控总线上的信息传输,完成对总线的上原始数据的记录,但它本身不参与总线的通信。MT模式接口的功能较为简单,主要进行指令字、状态字和数据字的接收并将其写入相应缓存中,方便以后提取分析,可通过BC模式或RT模式下接口相应的子模块实现。

2.2协议处理模块FPGA总体设计根据以上三种模式下接口响应流程的分析,对协议处理模块各FPGA子功能模块进行了划分[8],总体设计框图如图6所示。协议处理模块主要由数据接收部分、数据发送部分和数据缓存部分组成,此外还包括超时检测、地址译码及读写控制、中断管理等辅助部分。由于三种模式下某些功能重复,为了提高FPGA资源利用率,设计时充分考虑了相应模块的模式复用,整个协议处理逻辑可在外部模式选择信号的控制下工作在BC,RT和MT模式。16MHz的全局时钟通过时钟管理模块为各FPGA功能模块提供工作时钟,各模块间通过一定的握手信号互联,保证协议处理逻辑有序工作。整个协议处理模块的基本工作原理如下:按照1553B协议规范,通过接收器接收总线上的数据并存入缓存,通过发送器取出缓存中的数据并发送到总线上,同时不断以中断和握手信号与外部系统进行通信,通知外部系统向缓存中写入待发送数据或从缓存中读取已接收数据,并共同完成差错处理和协议逻辑的管理[9]。

3设计仿真与验证

根据设计方案,编写了重要模块的FPGA代码,模拟实现BC功能和RT功能,采用Active⁃HDL软件仿真,其中BC向RT的数据传输仿真结果如图7所示。仿真通过后,在Virtex⁃5FPGA[10]平台上对设计进行了验证,如图8所示。将BC功能模块和RT功能模块的代码经ISE综合、布局布线后分别下载到两块开发板中实现,开发板通过串口与PC机通信。PC机将指令和数据写入FPGA相应寄存器中,BC和RT在PC机指令的控制下进行1553B协议通信。验证过程中通过示波器查看模拟总线的波形,并通过ChipScope观察和比对协议收发数据。同时,为提高接口性能,用光纤代替传统电缆传输介质,采用8B/10B编解码代替曼彻斯特编解码,并利用FP⁃GA内嵌RocketIO内核,进行了传统1553协议数据的光纤传输[11],传输过程数据比对ChipScope采样如图10所示。验证结果表明,BC和RT功能模块能够正常按照1553B协议进行数据的发送和接收,完成基本1553B协议的处理,实现1553B协议数据的1Mb/s电缆传输和3Gb/s以上光纤传输,数据比对无误,说明该接口设计方案实际可行,具备开发应用价值,同时也为光纤1553接口的设计提供了一定参考价值。

4结语

友情链接