接口设计论文范例6篇

前言:中文期刊网精心挑选了接口设计论文范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

接口设计论文

接口设计论文范文1

船舶导航信息系统处理和储存多种信息,首先,系统需要处理硬件接口递交的监测信息,并根据上层用户的需求给予硬件设备相应的反馈;其次,系统需要将处理和合成之后的信息显示给用户,同时从用户的输入设备中收集用户的需求并进行处理;最后,系统还需要与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结语

接口设计论文范文2

结合数据处理接口模块的需求,系统的复位源设计有3个,分别是软件复位、手动复位和上下电复位。其中软件复位由使用数据处理接口模块的主机发出,手动复位由维护人员通过地面测试设备发出,上下电复位通过5V电源监控芯片MAX791实现。软件复位和手动复位通过二极管线与的方式接入MAX791的MR端。系统在以下4种情况时会产生复位:1)上电复位:上电过程中,当VCC>4.65V时,复位信号保持200ms有效后变高;2)下电复位:下电过程中,当VCC<4.65V时,复位信号一直有效;3)软件复位:由主机中的CPU发出,当底板总线信号XRE-SET#有效时间>25μs时,产生复位,XRESET#无效后复位信号保持200ms有效;4)手动复位:由地面测试设备发出,当底板总线信号TS_RE-SET#有效时间>25μs时,产生复位,TS_RESET#无效后复位信号保持200ms有效。利用MAX791的看门狗功能,还可以对板上DSP的工作状态进行监控,一旦出现软件跑飞等情况,看门狗狗叫会导致DSP的NMI中断发生,并且上报给主机GO/NOGO#信号有效。

2软件设计

数据处理接口模块的软件主要由硬件初始化、自测试程序、周期数据收发和命令响应四大功能组成。其中周期数据的收发包含消息层和数据层两个层次。消息层负责命令的辨识和数据的组织搬运,数据层负责协议的执行和发送接收等底层任务。数据层基本数据帧的格式见图4所示。这里的同步字、数据长度、校验方式由主机在初始化时确定。其中校验方式可选择两种,若采用和校验,则检验位占用1字节;若使用CRC校验,校验位占2字节。在周期数据收发的数据层中,RS422链路分为测控链路和任务链路两部分。测控链路用于检测设备的连通性和硬件的正确性,任务链路用于任务系统之间的通信。因此,将用于测控通信的链路设计为无链接协议链路,将用于任务通信的链路设计为有链接协议链路。有链接协议的任务链路的状态转移图见图5所示。任务链路的工作原理是:上电后首先进行通信测试,主端首先发送LTST,若从端回复ALTST为正常,测试完成后,转入空闲工作状态;空闲状态时主从定期进行握手操作,当主机存在发送命令时,转入消息发送状态,当从端发来数据帧前导码LHDR时主端转入消息接收状态;消息发送完成后会进行发送检查,如果从接收无误会发来ACK握手信号,当出现超时或从发来NACK信号时进行重新发送状态,重试超过门限进入通信测试状态;消息接收状态时若消息正确则进入空闲状态,若接收超时或消息错误时发送NACK通知主端重新发送,当错误次数超门限时进入通信测试状态。

3低功耗设计

简易无人机携带燃料有限,而实际任务中往往又要求其尽可能长时间的滞空,这就要求各类设备尽可能地以较小的功耗完成较多的功能。因此本文从硬件软件等不同层面设计来降低模块的功耗。降低功耗总的来说有关闭无用功能、减少无用操作和合理器件选型三个方法。在不使用DSP内部的AD、eCAN、SCI等资源时,可将对应的资源的时钟HSPCLK和LSPCLK关闭,同时不使能这些资源,以达到降低功耗的目的。作为降压型线性电源,TPS74401芯片的耗散功率PD=(VIN-VOUT)×IOUT,即电源的转换效率取决于输入输出电压差的大小,因此在电源转换电路的设计上应在满足电源芯片的最小dropoutvoltage的情况下尽量减小LDO器件输入输出电压差,可提高转换效率减少发热功耗,本文中1.8V电源由最接近1.8V电压的3.3V电源转换而来。为保持较好的信号完整性,模块上的印制板走线阻抗均按照单端50Ω差分100Ω控制。在RS422的发送端和接收端进行阻抗匹配以优化信号质量。在发送端使用33Ω串联匹配方式,接收端采用120Ω并联匹配方式,由于正常工作时差分电平约±5V,为降低直流功耗在并联匹配电阻处串接一10pF电容,这样既满足瞬态的信号完整性要求,也可在稳态时达到隔离直流,减小匹配电阻上直流功耗的目的。详见图6所示。在软件设计方面,采用定时查询和中断接收相结合的方式,减少DSP对外设的多余操作,避免不必要的轮询操作所产生的功率消耗。本文介绍的串行数据接口板在今后的改进设计中,可以注意合理的器件选型,以达到降低功耗的目的。例如:现设计中1.8V电源转换效率为54%,今后可结合实际电流消耗状况选用合适的开关电源代替线性电源[4],并使开关电源工作在中等或较重负载状态,可提高电源效率至80%左右;现有设计中CPLD动态功耗约为0.7W,由于该模块中逻辑占用资源并不多,因此后期可考虑用更小功耗的中小规模可编程逻辑器件替换。目前现有设计中未考虑模块的睡眠唤醒功能,今后可结合主机实际的需求,添加相应功能的电路,以降低待机功耗。

4结束语

接口设计论文范文3

关键词:CPUIC卡TDA8007ISO7816

IC卡(IntegratedCircuitcard)即集成电路卡,是将一个集成电路芯片镶嵌于朔料基片中,封装成卡的形式,外形与常用的覆盖磁条的磁卡相似。IC卡芯片具有写入和存储数据的能力。IC卡存储器中的内容根据需要可以有条件地供外部读取,或供内部信息处理和判定。根据卡中所镶嵌的集成电路的不同,可以分成存储器卡、逻辑加密卡、CPU卡三类。其中CPU卡即为由中央处理器CPU、EEPROM、随机存储器RAM以及固化在只读存储器ROM中的片内操作系统COS(ChipOperationSystem)组成的IC卡。IC卡按与外界数据传送的形式来分,有接触式和非接触式两种。

图1T=0的CPU卡APDU指令实现流程

1CPUIC卡T=0的协议介绍

目前大多数CPUIC卡采用T=0模式。所谓T=0,即CPUIC卡与接口设备(即读写器)中数据传输方式为异步半双工字符传输模式。

从T=0协议的功能出发,该协议的实现可以分为物理层、数据链路层、终端传输层和应用层。其中物理层和数据链路层可以具体参看ISO7816标准。在T=0协议应用,终端传输层和应用层实际上是不易分割来说明的,下面简单说明。

终端传输层根据卡片返回的过程字符和状态字节执行相应的操作,使读写器对数据的处理过程明朗清晰。卡片返回的过程字节和状态字节跟应用层发送给卡的APDU(ApplicationProtocolDataUnit,应用协议数据单元)和VPP使用等有关。表1为VPP未用时的终端传输层中返回的过程字节。

表1

字节值结果

ACKINSVPP空闲,所有其余的数据字节相继续被传送

INS+''''FF''''VPP空闲,下一个数据字节随后被传送

SW1SW2VPP空闲,接口设备等待SW2字节

应用层即为由CLA、INS、P1、P2、P3作为命令头组成的命令消息体的APDU响应和应答处理层。其中CLA为指令类别,INS为指令码,P1、P2为参数,P3为根据APDU的不同格式为发送给卡的数据长度或期望响应的数据长度。APDU的几种情况如表2所列。

表2

命令头发送数据长度发送的数据期望应答的数据长度

通用APDUCLAINSP1PLCDataLE

情况一CLAINSP1P

情况二CLAINSP1PLE

情况三CLAINSP1PLCData

情况四CLAINSP1P2LCDataLE

CPU卡对接口设备(即读写器)的应答APDU情况如表3所列。

表3

体尾

数据DataSW1SW2

其中体中的数据字节数由命令APDU中的LE指出;SW1、SW2是必备的,可以指明命令APDU执行正确或执行出错的错误类型。

2基于T=0传输协议的CPUIC的APDU指令流程

根据目前CPU卡的常用T=0协议、自带编程升压电路的应用情况,以及本读写器接收IC卡数据报文直接发送PC机处理的特点,本读写器可行的APDU命令和响应的处理流程如图1所示。

3读写器的硬件组成

读写器的硬件部分主要由IC接口管理芯片TDA8007、MCUAT89C52、外部数据存储器W24257S、串口电平转换芯片MAX3226、安全IC卡座(即SAM卡座)、应用IC卡座、键盘口供电的串口通信线及其它相关元器件组成。

图2所示为通过PC机控制管理的外置于PC机的接触式CPUIC卡读写器。通过定制的数据线,该读写器的5V直流电源可直接由键盘口提供,同时数据线还负责PC机与读写器的串行数据交换。在大部分IC卡读写应用中,都涉及到IC卡的认证和数据读写的国解密问题,所以本读写器除了提供一个供用户使用的IC卡接口卡座外,还内置了一个SAM卡,即安全IC卡卡座,以方便安装SAM卡,保证应用IC卡读写时的数据安全,保护用户的利益。

硬件的其它组成部分,如处理器,目前采用Atmel的89C52。其4KB的Flash程序存储器可以满足读写器的程序空间需要。由于PC机与89C52、89C52与TDA8007的数据交换要求的暂存数据空间比较大,89C52提供的256字节不够,需外加一片数据存储器。本读写器中使用的是华邦的W24257S。其有32KB存储容量,IC接口部分的主要芯片为Philips的TDA8007。

4IC卡接口芯片应用

下面介绍一下TDA8007及其应用。TDA8007的原理结构如图3所示。

TDA8007芯片能够提供两个能同时满足ISO7816标准及EMV和GSM11-11标准的IC卡读写接口。在本读写器中,一个用于与应用IC通信,另一个用于与安全IC卡通信。与上文CPU卡的触点图相对应,CLKi、RSTi、VCCi、I/Oi、GNDCi、PRESi、C4i、C8i(其中i=1,2;C4i、C8i未用;PRESi可用于检测IC卡是否插入。具体应用可参看TDA8007的技术文档)都直接由TDA8007提供给IC卡接口相连,MCU只需通过其接口控制并行通信来管理TDA8007,便可实现对IC卡的上电、下电及读写数据处理。其中,微处理器既可以通过总线复用把TDA8007内部的所有寄存器作为外部存储器,用MOVX寻址,也可以通过非总线复用方式访问,此时TDA8007用AD0~AD3来区分内部各寄存器。另外,TDA8007的片选信号和外部中断信号线可以方便读写器处理多个IC卡头。TDA8007的特别硬件ESD处理、接口短路处理、电源出错处理等也给IC卡和IC卡读写器提供了比较高的安全保护;同时,TDA8007内部集成的电源管理功能允许TDA8007的供电范围可达2.7~6.0V,并且TDA8007通过电源管理可以给IC卡提供5.0V、3.0V及1.8V的电源,以适合不同工作电压的IC卡应用。

图3IC卡接口芯片TDA8007的原理框图

本读写器是通过总线复用对TDA8007的寄存器进行控制的。其中MCU的P1.5为TDA8007的片选,P0口为与之通信的8位数据线,TDA8007的各寄存器预先被宏定义的成微处理器的一个外部数据单元(下面电程序处的定义),从而方便MCU访问。下面结合TDA8007寄存器的定义和位分配,给出应用TDA8007接口芯片对IC卡进行上电激活和下电的程序。TDA8007的寄存器主要三类。第一类,通用寄存器:①卡槽选择CSR;②硬件状态HSR;③定时器TOR1、TOR2、TOR3。第二类,ISO7816串行处理寄存器:①串行状态USR;②混合状态MSR;③串行发送UTR;④串行接收URR;⑤队列控制FCR。第三类,卡专属寄存器:①可编程分频PDR;②保护时间GTR;③串行控制UCR1、UCR2;④时钟配置CCR;⑤上电控制PCR。注意:对于卡专属的寄存器,即卡接口1、卡接口2分别对应的寄存器,逻辑上具有相同的名及访问地址,因而,对不同的瞳操作,需要通过CSR选择对应的卡槽来切换卡专卡属寄存器的映射的物理空间。所以,接口设备每次从一个卡的上下电或读写转向另一卡,都需要访CSR设定对应的卡槽。对于每个寄存器的位定义不再多述,主动性者可参看TDA8007的技术文档。

5上下电过程及具体程序

图4为IC卡的上电时序图。要实现之,需对PCR进行写操作。其中START=PCR.0,RSTIN=PCR.2,VUP上升表示激活了TDA8007中的电压转换电路。当START置高时,只要能检测到选定卡槽中的IC卡存在,且没有TDA8007能检测到并在HSR中指示的硬件错误出现,则对应IC卡接口的VCC1或VCC2将能被提供响应的电平(5V、3V或1.8V)。随后对应卡的I/O数据线被置成高状态(Z状态),给IC卡提供设定的时钟信号,常用为3.5712MHz。大约在START置高108ETU后,RSTIN置高。因为RST为RSTIN的拷贝,则对应卡的RST被置高。然后,用TDA8007提供的定时器TOR3、TOR2设定对ATR(AnswerToRequest)即复位应答首字节的最大等待时间120ETU(ElementTimeUnit),TOC设定定时器工作方式,便开始等待ATR首字节到来后做相应处理。至此,IC卡上电激活工作完成,随后可以根据ATR字节的要求的工作方式对IC卡进行相应的读写处理。具体见上电程序。

图4TDA8007产生满足ISO7816标准诉IC卡上电激活时序

TDA8007寄存器访问的预定义

#include<absacc.h>

#defineXXXXBYTE[0x8000]//XXX表示CSR等各寄存器上电程序如下:

P1.5=0;//片选TDA8007

CSR&=0xf8;

CSR|=ncard;//选择卡,ncard=1,2

CSR&=0xf7;

CSR|=0xf7;

CSR|=0x08;//复位UART的寄存器

UCR2&=0xf7;//异步模式,SAN=0

CCR&=0xdf;//时钟停止于低电平

UCR2|=0x60;//关闭附加中断及收发中断

GTR=0xff;//保持时间12ETU

If(v==1)//v为函数变量

PCR|=0x08;//1.8V卡用

elseif(v==3)

PCR|=0x02;//3V卡用

Else

PCR&=0xfd;//5V卡用

UCR2&=0xfc;//CKU=PSC=0,--31

FCR=0x00;//1奇偶校验1FIFO

PDR=0x0c;//Divider=12

CCR=0x00;//不分频

PCR&=0xfb;//RSTIN=0

UCR2|=0x04;//不自动转换

UCR1=0x01;//正向约定

UCR1&=0xf7;//接收模式

flag3=0;//复位定时标志

flagatr=0;//接收ATR首字节定时标志

PCR|=0x01;//激活

TOR2=0x6c;

TOR3=0x00;

TOC=0x61;//RST拉高前等待108ETU

while(flag3==0);//定时时间到,在中断中设置flag3=1

TOC=0x00;//关闭定时器

PCR|=0x04;//给复位拉高

TOR2=0x78;

TOR3=0x00;

TOC=0x61;//RST拉高前等待

flagatr=1;

ATR();//复位应答处理函数

图5为IC卡的下电时序图。相对于上电时序,下电过程对时间的要求不是很严格,只要设计者控制TDA8007按照一定的顺序置低START、RSTIN和停止CLK即可,然后TDA8007会自动逐步释放RST、I/O、Vcc及VUP。具体处理见下电程序。

下电程序:

P15=0;

PCR&=0xfe;//START=0;下电

PCR&=0xfb;//卡的复位脚保持0

CCR&=0xdf;//停止时钟于低

CCR|=0x10;//停止时钟

P15=1;

6使用TDA8007应当注意的问题

TDA8007对于Vcc、RST出错,芯片过热(如图IC卡为电源短路卡或金属片),或IC卡插入拔出时都会产生中断输出。每次中断处理结束,应注意把HSR中的值读入一个临时地址,以便清楚HSR中的标志。

每次发送数据到IC前,即接收IC卡的最后一个数据之前,应设置寄存器UCR1中的LCT位,以便接收完IC卡的数据后,自动切换成发送状态。

对TDA8007部分布线时应注意,时钟信号线与其它线的隔离:最好被地线包围。

对于电路板上TDA8007部分的电容应尽量靠近TDA8007,其中电容Cap、Cbp、Cup尤其如此,并最好不要在这些电容连向TDA8007引脚过程中使用过孔;同时,Cap、Cup、Cbp电容的ESR要尽量小。

对TDA8007处理的两个IC卡座中的任何一个执行上电、下电、读写卡操作之前,必须执行选择卡座的操作函数,以便选中具体的IC卡进行处理。

对IC卡操作中上电时序中的定时,读写卡字节间等待定时等都可使用TDA8007中的定时器及定时控制器操作,注意其定时器为向下计数方式。

接口设计论文范文4

1下弦杆件的焊接

①焊接坡口应在胎架上进行,工件应放平,防止因焊接内应力产生扭曲变形。②先焊接隔板与腹板的立焊缝(隔板与内侧腹板之间的熔透焊缝先少量焊接,待顶板安装焊接及横梁接头安装焊接完成后再全部焊完),再焊接隔板与底板的平焊缝,最后焊接箱内腹板与底板之间的角焊缝。焊接顺序应从中间往两边,由下往上依次对称焊接。③顶板安装完成后,采用富氩气体保护焊对插入部位坡口焊缝进行焊接。焊接时,两侧应对称同时焊接。④焊接杆件棱角焊缝和T形坡口角焊缝时,采用富氩混合气体保护焊打底,埋弧自动焊填充盖面。⑤24小时后对插入部位的焊缝全长范围进行超声波探伤检查。

2杆件的划线

①工件找正:将工件平卧放置在支撑平台上,插入顶板的腹板面朝下,另侧腹板面朝上。腹板面应平行于划线平台。以划线平台为基准,用水准仪对工件进行抄平,误差应小于1mm。②划出杆件两端系统中心线。③划出腹板上各向系统中心线。④对照施工图及划线图,划出钻孔胎模十字对位线,并检查。⑤划出另一侧腹板各向系统中心线。

3杆件的钻孔

①采用覆盖式钻孔胎模钻出节点板上及腹板一端的部分孔群。剩余孔群可采用补孔样板钻出。②采用覆盖式钻孔胎模,通过腹板上一端已钻孔群定位,钻出另一端部分孔群。其余孔群采用补孔样板钻出。③对无法在杆件外面用台式钻床钻制的腹板孔群,可采用磁力钻在杆件箱内通过补孔样板补钻出剩余孔群。④采用覆盖式钻孔胎模钻出杆件顶板箱体部位两端孔群。伸出桥面板部位两端孔群,待横梁接头、桥面板纵肋等附连件安装焊接完成后,再钻出。⑤采用局部钻孔胎模钻出底板两端孔群及一处横梁底板连接孔群。⑥采用小覆盖胎模,通过已钻的一处横梁底板连接孔群定位,依次钻出其余底板连接孔群。

4附属件的组焊

①采用组装胎膜,通过底板已钻孔群定位出腹板位置并焊接;②安装桥面板纵肋,并从中间往两边焊接。如焊接后对极边孔距不能保证,可将纵肋两端1000mm处断开,先安装和焊接中间部位,焊后安装和焊接纵梁两端1000mm段。③采用组装胎膜,通过节点板上已钻孔群,定位腹板接头板,并进行焊接。

5结论

接口设计论文范文5

关键词:插件,软件复用,游戏引擎,CrystalSpace

 

1.Crystal Space及其核心SCF

1.1 Crystal Space

在介绍Crystal Space之前,首先介绍一下游戏引擎和3D游戏引擎,游戏引擎是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等,它是一个处理事务的系统,同时它也是一个控制模块,向所有的子系统发出命令[1]。而3D游戏引擎,除了包含游戏引擎的所有功能外,它还负责处理3D世界的数据结构(包括所有的光源、行动)以及从玩家或相机所在的视点渲染3D世界[1]。

Crystal Space(以下简称CS)是一个开源的3D游戏引擎。除了具备3D游戏引擎应有的功能外,其自身还包含许多独有的特点。首先,CS的框架是一个高度模块化的框架,该框架能更好的为用户提供服务,并且使用户使用CS更方便。其次,CS是一个由构件和库组成的包,虽然它很多的功能都偏向于3D游戏的处理,但是它同样也适用于其他方面的应用,这主要是得益于CS中的大部分插件和库的相互独立性,这使得用户在CS中,可以只使用自己需要的插件以及自定义插件,而不会与其他插件相关联或受到其他插件的影响。科技论文,游戏引擎。最后,CS广泛的支持各种不同类型的硬件和软件平台,具有很好的跨平台性[2]。科技论文,游戏引擎。

1.2 SCF

由于CS高度模块化的框架,而作为其框架核心的SCF(Share Class Facility,共享类工具)为用户设计与开发基于CS的自定义插件提供了便利。科技论文,游戏引擎。SCF与COM(Component Object Model,组件对象模型)[4]类似,但只是一个轻量级的COM。SCF与COM相比,其使用更加简单、方便,并且SCF屏蔽了COM中很多繁琐的部分,却同时具备COM的大部分优势[3]。

在Crystal Space中SCF用来管理引用计数、系统插件、自定义插件和抽象接口。在插件的开发中,SCF技术实现了类接口与类实现的分离,这一方面,使插件使用者只用关心类接口的功能及接口的使用方法,而不用关心它的具体实现;另一方面,它对类实现进行了很好的封装,不会将类实现的任何细节暴露给用户,并且插件开发者对类实现的修改不会对插件的使用造成影响[2]。另外,SCF还提供了插件对象注册器和插件管理器使CS能自动的完成对插件的管理,用户只需要书写少量的代码就能实现对插件的加载、使用及卸载。

2.设计和使用自定义插件

自定义插件的设计、实现及使用流程如图1所示,用户自定义插件设计时,必须在SCF中的对象注册器中注册,并由插件管理器统一管理,而应用程序对插件的调用及加载也必须通过对象注册器和插件管理器来完成。

图1 自定义插件的设计、实现及使用流程

2.1 设计自定义插件

用户自定义插件的实现包括定义插件的API,自定义插件的具体实现,自定义插件的编译及自定义插件的注册四个部分。

1)定义用户自定义插件的API

在Crystal Space中,使用SCF定义插件的API,其优势在于,将接口的定义和实现进行明确的分离。操作步骤包括:

Ⅰ. 定义插件API所在文件“Myapi.h”

Ⅱ. 定义API的版本号;

Ⅲ. 定义抽象类“iMyApi”,类名以“i”开头,用于标识该类是一个SCF接口。

Ⅳ. 定义两个纯虚函数DoSomthing( )和GetSomething()用于设置/获得一个3D坐标。下面是API定义的具体代码:

struct iMyApi : publicvirtual iBase

{ SCF_INTERFACE(iMyApi, 1, 0, 0);

virtual void DoSomething (intparam, const csVector3&) = 0;

virtual int GetSomething ()const = 0; };

2)创建自定义插件的实现(头文件)

下面是用户自定义插件具体实现的头文件“myplug.h”的定义。其操作步骤包括:

Ⅰ. 实现类必须同时继承iMyApi和iComponent接口,以保证能使用插件管理器来管理插件。

Ⅱ. 定义初始化函数,用于完成插件的初始化工作。具体代码如下:

class MyPlugin : publicscfImplementation2 <MyPlugin, iMyApi,iComponent>

{ …………

virtual boolInitialize (iObjectRegistry*);

virtual voidDoSomething (int param, const csVector3&);

virtual intGetSomething () const; };

3)创建自定义插件的实现(源文件)

下面为用户自定义插件具体实现的源文件“myplugin.cpp”,操作步骤包括:

Ⅰ. 使用CS_IMPLEMENT_PLUGIN通知CS本模块是一个插件

Ⅱ. 申明在CS中,允许使用SCF初始化MyPlugin类的对象,部分代码如下:

…………

CS_IMPLEMENT_PLUGIN

SCF_IMPLEMENT_FACTORY(MyPlugin)

…………

bool MyPlugin::Initialize(iObjectRegistry* r)

{ object_reg= r; returntrue; }

…………

4)在SCF中注册自定义插件

SCF能够自动且动态的查找已定义的插件,并通过查询每个插件的meta-Information来判定插件实现的细节。科技论文,游戏引擎。Meta-information是结构化的XML文档,其中包含插件在SCF中的注册信息,及本插件与其他插件的关联等。科技论文,游戏引擎。插件的meta-Information文档在插件被编译时,将被嵌入插件模块中,方便对插件的查询。科技论文,游戏引擎。下面是自定义插件的meta-Information的设置,内容包括:

Ⅰ. 设置插件的名称

Ⅱ. 指明实现该自定义插件的类的名称

Ⅲ. 对插件的一般描述及设置与该插件相关联的其他插件的名称。具体代码如下:

<plugin> <scf><classes> <class>

<name>crystalspace.mygame.myplugin</name>

<implementation>MyPlugin</implementation>

<description>My Special Game Plugin</description>

<requires> <class>crystalspace.graphics3d.</class></requires>

</class></classes></scf></plugin>

5)编译自定义插件

插件模块的编译取决开发时所使用的开发工具,这里使用Microsoft visual studio 2005进行编译。

2.2 自定义插件在应用程序中的使用

完成自定义插件的设计与实现后,就可以使用了,自定义插件的使用包括加载及调用。

1)在应用程序中加载自定义插件

在应用程序中加载自定义插件的操作步骤包括:

Ⅰ. 导入自定义插件API的头文件,插件使用者通过调用插件API实现对插件的使用。

Ⅱ. 调用对象注册器。对象注册器查询已注册的插件中是否包含应用程序指定的插件。

Ⅲ. 使用csQueryRegistry调用插件管理器,利用插件管理器实现自定义插件的加载(或从应用程序中卸载)。具体代码如下所示:

#include <myapi.h>

csRef<iPluginManager>plugin_mgr = csQueryRegistry <iPluginManager> (object_reg);

csRef<iMyApi> myapi =csLoadPlugin<iMyApi> (plugin_mgr,'crystalspace.mygame.myplugin');

if (myapi.IsValid()){ ... }

2)在应用程序中使用自定义插件

最后一个步骤就是使用用户自定义插件,在应用程序中,通过调用自定义插件的API来实现对插件提供的功能的使用,具体代码如下:

myapi->DoSomething (1,csVector3 (2, 3, 4));

printf ('%d ',myapi->GetSomething ());

3.小结

本文设计和实现了一个基于Crystal Space的自定义插件的实例,从中发现,基于Crystal Space技术设计和实现的自定义插件与使用其他方法实现的插件相比具有很多优势,首先,基于CS的插件具有很好的跨平台性;其次,插件的开发实现了类接口与类实现的分离,从而使插件的开发和插件的使用相分离;再次,用户自定义插件的功能不会受到任何限制,能最大限度发挥插件开发者的能动性;最后,SCF提供了插件对象注册器和插件管理器,使CS能自动完成对插件的管理,减轻了插件开发者和插件使用者的开发负担。因此,在实际开发过程中,开发者可以设计及使用符合自己需要的自定义插件,从而使基于CS的游戏开发或软件开发更加便利、快捷。

[参考文献]

[1][美]Andre Lamothe著. 李祥瑞,陈武译.3D编程大师技巧[M].人民邮电出版社,2005.

[2][美]Box.D 著. 潘爱民译.COM本质论[M]. 中国电力出版社,2001.

接口设计论文范文6

论文关键词:智能家电,洗衣机,仿真,AT89S51,PDIP

 

1引言

随着Internet的日益普及,人们通过Internet不仅可以获得现实世界各种状态的实时变化情况,还可以通过Internet实现远程控制和处理工作,可以从全球的任何一个角落实现对设备的监控,可以使用通用的网络浏览软件访问设备,将消费电子、计算机和通信融为一体,而家用电器的网络化、智能化管理越来越突显需求。

智能家居远程控制系统的核心部分是一个嵌入式Web服务器,系统集有线和无线Web服务器于一体计算机论文,用户可以利用办公室的PC或者手机登录家中的Web服务器,在通过用户名和密码验证后,便可以查看并控制家用电器;系统带有LCD和键盘,具有良好的人机界面;用户还可以通过键盘来设定系统的任务;系统留有丰富的功能扩展接口,通过这些扩展接口将来还可以实现防火防盗和智能抄表等应用。系统结构框图如图1所示。

图1 智能家居系统的总体结构

本文旨在研究智能家电管理系统中基于AT 89S51芯片的洗衣机控制系统的模拟实现。

2 AT89S51芯片概述

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机, AT89S51具有4k在线系统编程(ISP)Flash闪速存储器,采用全静态工作模式,具有三级程序加密琐,32个可编程I/O口线,2个16位定时/计数器,能够采用全双工串行UART通道,具有灵活的在系统编程功能,可灵活应用于各种控制领域。

AT89S51根据封装方式不同,大致分为3种型状,本系统的设计中AT89S51采用PDIP封装模式,如图1所示。

图2 AT89S51封装模式

3 洗衣机控制系统模拟实现

3.1洗衣机控制系统的总体设计

在本系统中,硬件主芯片采用意法半导体的STR710,是整个系统的核心。它作为一个嵌入式网关,将外部网络与内部洗衣机控制器连接在一起,是整个系统运行的平台论文格式。在远程操纵洗衣机方面,STR710负责从GPRS接收到短消息和网络芯片上接收到的以太网数据中提取出用户指令,然后根据该指令操纵相应的网络家电或者查询其运行情况,最后将执行结果反馈到用户终端。系统的软件设计采用分层设计,包括硬件设备驱动层、操作系统层、应用程序接口层和应用软件层。

3.2洗衣机控制器系统设计

根据需求设计的洗衣机控制器的系统逻辑结构设计图如图3所示:

图3 系统总体框图

3.3洗衣机控制器电路设计

采用AT89S51作为控制核心。其中计算机论文,P1.0和P1.1分别用于控制洗衣机的进水阀和排水阀;P1.2和P1.3用于控制洗涤电机的正反转;P1.4~P1.7、P3. 0、P3.1用于驱动7个LED,分别作为工作程序、浸泡和强弱洗指示灯。P3.2接暂停/ 启动键;P3.3分别用于开盖/不平衡中断输入;P3.4被用作输入线,用于监测水位开关状态,为CPU提供洗衣机的水位信息;P3 .5 接程序选择键;P3.7采用分时复用技术,具有两个功能,一方面接强弱选择/浸泡选择键,在洗衣机未进入工作状态时,按触该键可选择强弱洗或开启关闭浸泡功能,另一方面在进水和脱水时,又作为告警声的输出口。

3.4洗衣机控制器软件设计

系统上电复位后,首先进行初始化,洗衣机进入工作程序后,系统首先根据RAM中27H单元的特征字判断洗衣机的洗衣工作程序,洗衣机进入洗涤子程序wash。洗涤是通过驱动电机的正反转实现的。洗涤结束后,退出wash子程序,调用water_out子程序进入排水进程。排水阀排水时间采用动态时间法确定计算机论文,其原理是:根据常用的空气压力水位开关的特性排水结束后,系统调用y子程序进行脱水操作,维持置位状态,保持排水阀开启,离合器在排水阀的带动下使电机主轴与脱水桶联动,实现衣物脱水。然后判断整个洗衣工作是否结束。其原理是:洗衣机在每次洗涤或漂洗工作环节结束后,将存放洗衣工作程序标志的寄存器减1,在脱水工作环节结束后,系统即对该单元进行检测,当检测到为0时,说明整个洗衣工作结束。软件设计主流程图如图4 。

图4 软件主流程图

4 洗衣机控制器仿真工作原理

首先,在通电时蜂鸣器长鸣一声,VD1 被点亮,这表示系统已经准备好接收指令可以开始准备工作了。单片机一直在读取由嵌入式WEB模块通过IIC通道发送过来的状态,当收到嵌入式WEB模块发送的指令后,将得到的数据作为第一项的设置内容计算机论文,即洗涤强度。蜂鸣器短鸣一声进入等待洗涤时间的设置,这个数据同样来自嵌入式WEB模块发送的指令。蜂鸣器短鸣两声进入等待洗涤方式的设置,过程都是相同的长鸣一声后洗衣机按事先的设置开始洗衣, VD1 快速闪烁表示洗衣状态,洗衣机控制器会完成初洗、浸泡、洗涤的工作,之后长鸣表示洗衣结束。洗涤期间单片机的 P2.1 和 P2.3 两个引脚会不断输出高、低电平来操作两个继电器让电机正、反转,同时还要接收嵌入式WEB模块发送的中断信号,以暂停或结束洗涤论文格式。当洗涤过程结束,蜂鸣器长鸣,系统又回到了开机时等待嵌入式WEB模块发送指令的状态。

其次,控制洗衣机可模拟的具体功能有:1、多种程序选择,用户可根据洗涤衣物的材质选择不同的程序,如浸洗、标准、羊毛和快速等。每种洗涤方式有不同的洗涤模式、时间和顺序。2、过程选择,用户可以选择单独洗涤以保留带有洗涤剂的水进行重复使用,可选择单独脱水,犹如脱水机一样计算机论文,等等。3、预约洗涤,用户可根据需要选择几小时后进行洗涤,时间选择范围为1-24小时。4、剩余时间显示,用户可以直接掌握洗涤时间。5、温度控制,可以显示模拟的水温控制。

5 结论

本文设计的洗衣机仿真控制系统连入嵌入式web服务的支持,就能够通过普通PC或GPRS手机访问Internet实现,通过远程控制命令完成对洗衣机参数的设定,对洗衣机进行操作,大大地简化了操作程序。利用单片机AT89S51作为洗衣机的控制器,能充分发挥AT89S51的数据处理和实时控制功能,使系统工作于最佳状态,提高系统的灵敏度。

参考文献

【1】郭维芹.模拟电子技术[M]. 北京: 科学出版社, 1993。

【2】童诗白,华成英,《模拟电子技术基础》,北京高等教育出版社,2001。

【3】吴小许,,黄敏.数字量调节阀的控制算法研究与应用[J]. 化工自动化及仪2004。

【4】宋建国.AVR单片机原理及应用.北京:北京航空航天大学出版社,1998。

【5】胡汉才,《单片机原理及其接口技术,清华大学出版社,1996。

【6】李庆利陈曙薛永祺,洗衣机仿真系统的设计与实现计算机工程2006。