美章网 精品范文 接口设计论文范文

接口设计论文范文

接口设计论文

接口设计论文范文第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篇

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结语

接口设计论文范文第3篇

1.1公共信息模型(CIM)概述现代电力系统是一个实时变化的复杂系统,它覆盖发电、输电、配电和售电等多个环节,包涵发电机、变压器、断路器、线路、继电保护、电能计量,用电设备等各种电气设备,随着经济社会的发展,电力系统还会日益庞大和复杂。CIM为电力系统的建模提供了一种行之有效的方法,CIM采用先进的面向对象的建模技术,使用统一建模语言(UML)将CIM定义成一系列逻辑包,每一个包含一个或多个类图,用图形方式可以方便地表示包中所有类之间的关系[2],使得复杂的电力系统在抽象逻辑层次上得到可视化和模块化,用分而治之的思想统筹分析电力系统。

1.2CIM/XML解析CIM解析模块用于将CIM/XML与CIM/E格式的文本读入内存,同时经过XML文档解析建立起数据关系,最终将CIM中的各对象及其属性存入字典结构中。凭借着C#丰富的库资源,CIM/XML文本的解析是极为方便的,使用foreach循环语句与Elements()等方法,少量的代码便能实现XML文本的全文检索,同时还具有优秀的性能。

1.3CIM/E解析虽然CIM/E文本借鉴了XML的语法风格,但它在设计之初就摒弃了常规XML繁琐冗余的标签,正是这样才成就了E语言的高效能。因此CIM/E文本的解析与2.2有所不同,它的实现有更多面向结构的特点。

1.4拓扑分析CIM定义了终端和联结点用以表示导电设备间的连接。大多数导电设备是双端连接的,这就涉及到2个联结点。这种模式描述了电网全部的原始的信息,称作开关/节点模型(Node/Breaker),如图2(a)所示。但对于一些高级应用来讲,例如潮流计算、状态估计等,根据等电位原理(如变电站中互通的母线、刀闸、断路器等)形成了逻辑上的拓扑点[3]。这种由拓扑点和拓扑点间带阻抗的电气设备连接表达的电力网络模型,叫做母线/支路模型(Bus/Branch),见图2(b)。开关/节点模型是母线/支路模型的基础,因此它又被称为物理模型。通过对开关/节点模型进行所谓的拓扑分析,就能得到母线/支路模型(计算模型),这种模型归纳出了电网的拓扑结构,而隐藏了诸如开关等设备的开闭状态,是潮流计算能够接受的模型。本节的文本解析模块所得的结果与原始CIM文档一致,都是基于开关/节点模型,那么如何合理地省略闭合的刀闸、断路器,形成拓扑点,实现到母线/支路模型的转换,是本节拓扑分析计算模块要完成的任务。根据图论相关理论,在同一个拓扑点中,以其包含的联结点为顶点,以联结点之间的开关为边,实际上构成了一幅树形或带环的无向连通图。结合电力系统的实际特点,该连通图中不存在自身环(起点和终点都是同个点的边),并且任意2个顶点间的边不会超过1条。换言之,对于相邻的若干个开关类(switch)元件构成的无向连通图,一幅图对应一个拓扑点,显然,这在电路理论上是成立的。因此,存在这么一种算法,通过对图的遍历尝试找到该图所对应的拓扑点及其所属的所有联结点。从给定的连通图中任一顶点(联结点)出发,沿着一些边遍访该图中所有的顶点,直至每个顶点都只被访问一次为止,称作图的遍历。目前遍历连通图的算法主要有2种:深度优先搜索DFS(depthfirstsearch)和广度优先搜索BFS(breadthfirstsearch)。本文采用前者算法,结合CIM的导电设备模型,进行顶点的合并处理。深度优先搜索也叫纵向优先搜索算法,其基本思路是:访问了起始顶点v之后,选择某一个与v相连但未曾被访问过的顶点w访问之,再从顶点w开始进行深度优先搜索。当到达一个与其连接的顶点都被访问过的顶点时,就从这个顶点开始,依次回退到还有相连顶点未被访问过的顶点u,从u开始再次进行深度优先搜索。如此往复,直到所有顶点都被访问过。综上所述,DFS算法具有如下特征:1)每访问到的当前顶点需要作已访问标志。2)整个遍历是个递归过程。归纳出DFS算法的基本框图如图3所示。

2BPA数据接口

2.1BPA数据卡片的填写要求在CIM模型被转换为母线/支路模型之后,事实上已经奠定了潮流计算的数据基础,接下来只需根据BPA数据格式的要求输出数据文件即可[4]。BPA软件采用的是较传统的“数据卡片”设计概念,特别强调数据卡片的格式要求[5]。BPA程序支持的数据卡片众多,本文使用到的只占其中很小一部分,包括B卡(交流节点卡)、L卡(对称线路卡)、T卡(变压器卡)三大类。现以B卡为例,说明卡片的填写方法。如:BQXIJING113.8GX65.50.37.-25.1.0的填写方法如表1所示。数据长度:卡片中的每一个数据项均不能超过起始列号与结束列号所规定的长度。例如BusName从第7列开始,到第14列结束,那么其长度只有8列,如实际节点名长度不足8列,留空即可;超过8列的只能保留最多8列。数据类型:BPA数据卡片中一般有3种数据类型:空、字符、浮点数。1)字符:其格式表示为An,其中n为长度。例如上文中的BusName,格式为A8,A可以理解为ASCII字符,8是指字符个数。每个数字、大/小写英文字母和其他ASCII字符均占1个长度,特别地,一个中文汉字占2个长度,因此对于A8格式来说,若全部填中文,最多只能填4个汉字。2)浮点数:BPA程序广泛使用缺省小数点规则增加数据的有效位数。浮点数的格式表示为Fn.n,其中n为位数。例如表1中的“安排的Vmin(标幺值)”,格式为F4.3,F可以理解为Float,即浮点数,“4”表示浮点数位数(包括小数点),“3”表示缺省的小数点后位数。填法3和填法4即缺省小数点法。对于F4.3格式来说,如果不填小数点,BPA程序将自动取3位小数。如果要使电压控制在1.015,只需填入1015,显然此时用缺省小数点法是最合适的。

2.2BPA数据输出模块在实际开发过程中,格式问题其实是相对简单的部分,但是仅仅满足BPA程序的数据卡片格式要求是远远不够的,还必须考虑其他问题以保证转换出来的数据文件的正确性。下面分述之。

2.2.1多回线路的回路标志问题为确保供电可靠性,电力系统广泛存在双回甚至多回线路。以双回线为例,从2.4节可知,这种线路即2个拓扑点间存在2个连接,如果以此为基础直接转换生成2个对称线路卡(L卡),则BPA程序会报错终止计算。为解决这个问题,需要按照BPA有关数据文件的要求,给系统中所有双回线路赋予回路标志号(1,2,…,n)。

2.2.2无功补偿问题BPA软件提供了可投切电抗、电容器组卡(X卡)来输入无功补偿数据。本文的接口程序根据电力系统实时数据的特点,并没有直接输出X卡,而是将各拓扑点的无功补偿容量(如果有的话)进行累加,作为“并联导纳无功负荷”添加到B卡中,从而避免了生成X卡的困难,并能简化数据文件[6]。

3计算规模的处理

在工程实际中,往往需要选取不同大小规模的电网进行计算,因此接口程序必须能灵活处理以适应这种要求。最简单的情况是,从调度中心的EMS接口获取实时数据,经过模型解析和数据转换,生成符合BPA数据格式的.dat文件后,直接在BPA软件里打开该.dat文件执行潮流计算。如此一来,计算的电网规模与EMS中的模型是一样的。省调或地调除了关注所调度区域的运行情况,往往还参考上一级调度下达的所谓全网模型,即包含区域外电网数据的更详细的.dat数据文件。为了能使省调或地调的计算达到全网规模,本文的接口程序能将区域电网数据嵌入至全网模型中,方便考察区域电网在全网中的运行状况。具体做法如下:1)搜集区域电网与外部电网相连的联络线,那么这些联络线在区域电网内的节点所围成的范围即是区域电网。2)从1)中得到的节点出发,进行网络扫描,找出所有区域电网内的节点、线路和变压器。3)将2)所扫描出的区域电网(对应于BPA的B卡、L卡、T卡)在全网模型文件中删除。4)把EMS数据转为BPA格式后,插入至全网模型文件中,形成包含更新后的区域电网的全网模型文件。

4BPA软件潮流验算

本节数据源采自南瑞继保PCS-9000调度自动化系统,选取2014年3月11日11时27分42秒广西主网断面,遥测合格率98.92%。利用本文程序将实时数据转化成BPA潮流数据文件,指定岩滩电厂1号机组为全网平衡机(BS卡)。计算结果收敛,牛顿-拉夫逊法迭代次数为5次。平衡机(额定有功300MW)出力数据如表2所示。

5结论

接口设计论文范文第4篇

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结语

接口设计论文范文第5篇

在OAuth2.0中,客户端通过访问令牌来访问受保护资源,其认证流程如图1所示,总共有如下三个阶段。(1)客户端向资源拥有者申请获得授权,申请可以直接发往资源拥有者,也可以通过授权服务器为中介(步骤1),资源拥有者许可授权,并向客户端发送授权许可(步骤2),授权许可代表着资源拥有者授权的凭证,可以是四种标准许可类型(或扩展许可类型)中的一种;(2)客户端通过与授权服务器进行认证,并出示授权许可来申请访问令牌(步骤3),授权服务器与客户端完成认证并确保授权许可合法性,向客户端颁发访问令牌(步骤4);(3)客户端向资源服务器出示访问令牌来申请对受保护资源的访问(步骤5),资源服务器验证访问令牌的合法性,向客户端提供服务(步骤6)。

1.1获得授权许可此阶段的目的是为了获得授权许可,标准定义的四种基本授权许可类型分别为授权码、隐式、资源拥有者口令凭证和客户端凭证,此外用户可以自定义扩展的授权许可类型。授权过程中需要利用两个服务接口:授权接口和令牌接口,客户端使用授权接口通过用户重定向从资源拥有者获得授权,另外客户端使用令牌接口来获得访问令牌。为了获得授权许可,客户端需要在HTTP请求中加入所需的参数并将请求发往授权接口,这些参数包括response_type、client_id、redirect_uri、scope和state。client_id是一个独一无二的客户端标识符,在客户端注册时颁发客户端标识符,同时还颁发客户端机密(client_secret),客户端标识符不能单独用于客户端认证。redirect_uri是重定向接口,客户端注册时需要设置该接口,授权服务器通过使用重定向接口将资源服务器用户回送到客户端。scope是访问请求的作用域,如果客户端忽略该值,授权服务器必须使用预定义的默认作用域。state被客户端用于维护请求状态。当授权许可类型是授权码时,response_type参数的值必须为code。当授权码类型是隐式时,response_type的值为token。当授权码类型为资源拥有者口令凭证时,response_type的值为psword,客户端必须向服务器提交客户标志、客户端标识符和客户端机密。当授权码类型为客户端凭证时,客户端只需要将值为client_credentials的response_type参数发送。当客户端使用授权码许可类型且资源拥有者批准授权请求,需要在给客户端的应答中颁发授权码,应答中可能包含的参数有code和state。code是授权服务器生成的授权码,为了降低安全风险,授权码必须在颁发后尽快失效,规范中推荐授权码最大生存时间为10min。在客户端授权请求时如指定了state,则授权服务器的应答中state必须与从客户端接收到的值保持一致。如果客户端使用其他三种客户端凭证类型将在此步骤直接获得访问令牌。OAuth2.0相比OAuth1.0做了较大简化,比如在OAuth1.0中需要向服务接口发送由HTTP请求URL和其他参数计算而来的签名值,而在OAuth2.0中不再计算签名,此外,OAuth2.0也取消了oauth_timestamp和oauth_nonce两个参数。同时,OAuth2.0对认证过程中的数据传输保密性提出了更高的要求,强制使用TLS来保障数据安全。

1.2获得访问令牌授权码类型客户端获得授权许可后,需要向授权服务器发送HTTP请求以获得访问令牌。HTTP请求包括以下参数:grant_type、code、redirect_uri和client_id。当平台使用授权码许可类型时,grant_type值必须为“authorization_code”。code参数值是在授权许可步骤中从授权接口获得的授权码。redirect_uri和client_id与前一步骤相同。授权服务器收到HTTP请求后,需要对客户端进行认证,并验证授权码合法性。如果通过授权码合法性验证,授权服务器需要向客户端发送应答,颁发访问令牌access_token和可选的刷新令牌refresh_token。此外,应答中可能还包括token_type和expires_in参数,其中token_type参数是访问令牌类型,expires_in参数来指定访问令牌的有效期。

1.3访问受保护资源客户端通过向资源服务器出示访问令牌来访问受保护资源,资源服务器需检查访问令牌,确保访问令牌合法。如果访问令牌合法则正常受理访问请求,如果令牌过期,则要求客户端重新获取访问令牌。如果在此之前授权服务器已经向客户端颁发过刷新令牌,则使用刷新令牌来获取新的访问令牌。

2.OAuth2.0客户端认证接口实例

本文以某社交平台授权机制为例,分析OAuth2.0客户端注册和认证的流程,并以CocoaTouch为基础实现了认证客户端。

2.1客户端注册第三方开发人员在设计新的客户端之前需要在官方网站上注册应用,注册信息包括应用名称、应用平台、应用介绍等,注册成功之后将获得AppKey和AppSecret,这两个字符串分别对应client_id和client_secret参数。

2.2服务接口开放平台提供了若干服务接口(API),与OAuth2.0认证相关的服务接口有五个,其中两个API接口将在下文中使用到,分别是请求授权和获取授权。请求授权用于图1流程中第1、2步骤,地址。获取授权用于图1流程中第3和第4步骤,地址/oauth2/access_token。

2.3客户端实现及安全考虑为了便于认证客户端的实现,可以定义一个OAuth2Utility类,下面是类中几个主要的方法。(void)authorizationRequest;//申请获得授权(void)authorizationResponse:(NSString*)authorizationCodeclientState:(NSString*)state;//客户端接收到授权许可(void)accessTokenRequest:(NSString*)authorizationCodegrantType:(NSString*)type;//使用授权许可申请访问令牌(void)accessTokenResponse:(IHTTPRequest*)request;//客户端接收到访问令牌在移动客户端API中,申请访问授权需要提交的参数包括client_id、response_type和redirect_uri,如需要支持移动客户端html5特性,需提交参数display,并将该值设置为“mobile”。所有参数需要使用x-www-form-urlencoded格式进行编码,并通过HTTPGET/POST方式发送。比如使用授权码类型的客户端发送的HTTP请求可能。RFC6749规范定义的四种标准授权许可类型中,授权码许可被广泛支持,而在隐式许可类型中,访问令牌作为重定向URI的一个部分直接返回给客户端,不颁发刷新令牌。资源拥有者口令凭证许可类型和客户端凭证许可类型由于存在巨大的安全风险,一般只在特别的场合下使用。开放平台的请求授权服务接口将授权码通过用户发回给客户端,在本例中服务接口发回客户端的HTTP应答可以,URL中的code值就是授权码。不少服务接口并没有完全遵循规范的要求进行设计,比如本文的例子,容易造成很多安全隐患。Homakov[5]利用跨站请求伪造(CSRF)攻击来非法访问第三方资源,攻击者可以利用这个被挟持的账号继续挟持其他网站的账号[6]。此外,攻击者还可以使用猜测授权码、恶意客户端授权、授权码钓鱼、用户会话模仿等方式来获得授权码。搜狐微博OAuth2.0授权曾经由于设计不当,被发现在获取授权码的时候没有返回state参数而造成安全隐患。为了规避安全风险,建议服务接口设计时应采纳state参数,并在客户端注册期间使用完整的重定向URI[7]。此外,为了减少授权码重放攻击带来的危害,应该尽可能缩短授权码的有效期。客户端获得授权码之后就可以向获取授权服务接口要求交换访问令牌,交换访问令牌需要提交的参数包括client_id、client_secret、grant_type,如果grant_type类型为授权码时,还必须提交code和redirect_uri参数。所有参数经过编码之后,通过HTTPPOST方法发送到获取授权服务接口。HTTP发送的数据可以。获取授权服务接口对客户端提交的参数进行验证,如验证通过则向客户端发送应答,应答中包括access_token、expires_in、remind_in和uid。access_token是颁发的访问令牌。expires_in是令牌有效期,令牌有效期取决于令牌泄漏的风险,由许多不同的因素决定。该平台为几种客户端分别设置了不同的令牌有效期,比如测试客户端的有效期为1d,普通客户端为7d。remind_in即将废弃,现已使用expires_in代替remind_in。uid是当前授权用户的编号。服务接口应答数据采用JSON编码,JSON是一种基于Javcript轻量级的数据交换格式。客户端需要使用JSON的开发库来帮助解读JSON格式数据。客户端获得访问令牌之后就可以使用令牌访问资源,比如读取公共信息或者发信息等。以读取公共信息为例,客户端向公共信息服务接口提交访问令牌就能获得最新的200条公共信息,客户端可以通过提交参数count来设置单页返回记录的条数。客户端通过HTTPGET提交数据,返回的数据使用JSON格式编码。

2.4客户端测试本例中客户端应用平台为iOS,客户端在MacOSX10.8.3系统以及Xcode4.6.2开发环境下测试通过。图2是客户端运行的效果截图。

3.结语

接口设计论文范文第6篇

1.1主体结构设计由于配网通信结构复杂,难以采用单一的通信技术满足所有配网系统需求[9,10]。因此,采用异构网络构架组成混合式网络是配电通信网的重要解决方案。所提出的典型异构配电通信网络分为三层,包括骨干通信网(骨干网)、接入通信网(接入网)和终端层(用户驻地网),如图1所示。其中,骨干网是服务器端的信息网络,实现配网通信主站之间的通信,这些主站包括各高压变电站(110/35kV变电站)、电厂等;接入网实现配网通信子站与配网通信主站之间的通信,配网通信子站主要包括10kV变电站[12]驻地网实现用户侧用电信息的收集和监视。图1配电通信网的异构式混合结构骨干网中由于站点相对较少,各站点地位均等,因此适合采用光纤通信方式,搭建光纤自愈环网,具有高速、可靠、实时的优势。接入网则由于用户较多,需要根据网络覆盖地域特点进行选取。对于用户集中的地方,如城区、县城、工业园区等地,接入网也适合采用光纤通信方式。而对于郊区或者农村,用户分散,采用光纤接入代价巨大。因此,可以采用GPRS/3G技术实现接入。对于驻地网,可以分别选择Wi-Fi,ZigBee或者总线技术。例如,在城区的用户家庭或者办公室可以选择ZigBee子网,而在配电房则选择总线。

1.2城市配电通信网以所提出的三层网络基本构架为基础,本文所设计的城市配电通信网整体结构如图2所示,其中,骨干网采用的通信技术为光纤通信技术,并采用光纤环作为基本的网络结构。图2城市配电通信网结构考虑到城市用户集中,10kV变电站分布均匀,适合采用以太网无源光网络(EthernetPassiveOpticalNetwork,EPON)+以太光纤环接入网。其中,EPON接入网主干是由子站汇聚交换机组成的以太网光纤环。每个35/110kV高压变电站可以连接一个或者多个以太网光纤环。每个子站汇聚交换机连接一个光线路终端(OpticalLineTerminal,OLT),或者子站汇聚交换机与OLT集成为一个OLT交换机。每个OLT对应一个10kV的变电站,下面分接多个光网络单元(OpticalNetworkUnit,ONU)。每个ONU单元都负责收集一个或者多个驻地网络的信息。城市配网驻地网可以为无线网络或者有线网络,无线网络可以是ZigBee[16]、红外、WiFi等局域网,而有线网络一般是总线网络。无线网络包括一个协调器和若干个节点。节点即为用户家中的智能电表、智能插座等,而协调器则负责组建此无线网络,汇聚各个节点的信息并转换成适合接入至ONU的接口(如RS485)传输至ONU。同时,也负责将从ONU接收到的数据信息广播至各个节点。有线网络一般为总线网络,如RS485总线。

1.3农村配电通信网本文所设计的农村配电通信网整体结构如图3所示,其中,农村配网骨干网与驻地网的功能与结构与城市配网相同。考虑到农村用户分散,覆盖面广,10kV变电站分布稀疏,农村配网接入网并不适合采用EPON+以太光纤环接入网。由于农村用电信息监测实时要求不高,也没有严格的可控性要求,因此采用GPRS/3G/4G接入方式网络结构最为简单。采用此方式主要租用网络运营商的无线网络,将数据送回网络运营商的后台系统,然后该后台再通过专线和配网系统进行互联。GPRS/3G/4G接入方式对用户的数量没有限制,用户无需建网和维护,具有建设周期短、业务开展快、网络成本低等特点。

2异构配电通信网多址与数据聚合方法

2.1多址与数据聚合方法基于上述异构配电通信网,本文采用驻地网网关来解决配网通信系统中的多址与数据聚合问题,其位于驻地网与接入网之间,作为多个异构驻地网与接入网中一个接入点的连接,如图4所示。图4驻地网网关在网络中位置在上行通信中,驻地网网关首先接收来自挂接在该网关上的N个驻地网的短数据包,并按照驻地网进行分类存储。例如,来自驻地网n的短数据包存储在第n号存储器,n=1,2,…,N。每个短数据包含有其在本驻地网的地址和数据包长度。然后,每接收短数据t秒,驻地网网关将接收到的存储于N个存储器中的短数据包进行封装。在封装帧的过程中,帧头包括驻地网网关ID和子帧个数,如图5所示。帧体由各子帧组成,每一个子帧封装来自同一个驻地网的所有已经接收到的短数据包,即存储于同一个存储器中的所有短数据包。值得指出的是,有可能t秒内某驻地网没有数据包发送,此时对应的存储器为空。因此,子帧的个数可能小于N。子帧帧头包括驻地网网关下面驻地网ID和短数据包个数,如图5所示。子帧帧体由若干个数据包组成。这些数据包即是在t秒内接收到该子帧所对应的驻地网的所有数据包。驻地网网关将帧封装好后,将其传送给该网关所连接的接入点。随后,驻地网网关再次接收并分类存储N个驻地网的短数据包,并对短数据包进行封装及传送,如此循环。在下行通信中,驻地网网关首先接收来自接入点的数据帧。该数据帧的封装结构与如图5所示的上行通信时封装帧结构完全一致。然后,驻地网网关按照图5所示结构,对数据帧进行解析,分别得到各个子帧。最后,驻地网网关依次解析每一个子帧。根据子帧中的驻地网ID,将该子帧内所有的数据包发送至该驻地网协调器。值得说明的是,上述介绍的通信方式中,一个网关下的多个驻地网回传时间间隔(t秒)是相同的。然而,在实际使用中,更为普遍的情况是多个驻地网的采样间隔和回传间隔是各不相同的。这种情况下,网关需要根据每个驻地网的回传间隔和采样间隔进行处理。网关的回传将是以驻地网为单位进行。这样就不需要使用图5所示的帧结构。

2.2驻地网网关的软硬件实现驻地网网关的硬件设计并无特殊要求。根据上述驻地网网关的基本功能,硬件系统需要包括RS485接口、CPU和RJ45接口,如图6所示。其中,RS485接口用于连接驻地网网关与驻地网,接口数量视驻地网数量而定;RJ45连接驻地网网关与接入网,一般为1个。CPU处理驻地网数据的采集、存储和回传。驻地网网关的实现重在软件设计。这里考虑更为一般的情况,即每一个驻地网都有独立的采样间隔和回传间隔。由于串口对象与文件都是独占式的,软件设计的重点在于如何处理好资源的调配。下面以微软的VS2010平台为例进行详细介绍。(1)整体思路在整体设计上,采用定时器进行处理。CPU为每个子网设定一个采样定时器,周期性采样数据,保存到本地缓存txt文件中。此外,CPU为每个子网另设一个回传定时器,周期性向服务端发送缓存的txt文件,发送完毕后该文件清空。(2)串口收发处理CPU通过CMSComm类对象访问串口。由于只有一个串口对象,需管理多个异步串口,故采用抢占式设计,即“先到先得,后到跳过”。当某一个子网采样定时器触发时,先判断当前串口对象是否被使用。如果否,即串口空闲,则将串口占用,执行该定时器内的行为,当串口信息接收完毕时解除串口占用;如果是,即串口当前被占用,则本次定时器跳过。采样定时器触发时,如果串口并未被抢占,则将串口配置成驻地网对应的参数,然后打开串口,根据当前设备号,配置设备地址,并获取相应指令,将其转换为十六进制格式向串口发送,从而实现对当前设备的数据采集。如有多条数据需要采集,则短暂间隔后更新设备地址重复发送采集命令。串口接收到驻地网上传的采集数据就会触发接收函数。接收函数被触发时,首先将数据转换为字符串类型保存在数据缓存中,并判断此时缓存中的数据是否可以提取出完整指令。若否则继续接收数据;若是则提取出完整指令,存储在对应的最新数据变量中,以供服务端查询,并且根据需要写入缓存txt文件中或发送到服务端。(3)文件操作驻地网网关管理着多个缓存txt文件,每个驻地网网关对应一个文件。网关采集到数据之后需要存储在文件中;同时,网关需要将文件传输到服务器。显然,由于采样定时器和回传定时器是异步的,读写文件也是异步的。因此,也需要对文件操作进行异步管理。将网关回传采集到的数据至服务器的过程称为缓存同步。缓存同步采用调用子线程的方式执行。所有子网文件对应同一个子线程。当某一子网的缓存同步定时器触发时,将先判断当前子线程是否被调用,若未被调用,则调用该子线程。在子线程内,文件发送将分3部分进行:1.发送文件名,以便服务器创建该文件。2.发送文件内数据。3.发送文件发送完成信号,通知服务器文件发送完成。同时,为了避免同一文件被多次打开,规定缓存同步的优先级高于缓存文件写入,即在缓存文件进行同步的时候不允许写入数据到该文件。(4)Socket操作通过CSocketClient类对象访问Socket端口(RJ45)。当收到来自服务端的消息时,调用指令解析函数分析其数据包头,根据协议判断其含义,响应对应行动。Socket消息响应包括:a.停止查询:停止向服务端发送采样数据。b.开始查询:向服务端发送采样数据。首先将最新数据变量中的数据发送至服务端以供显示,然后每次都将当前的采样数据发送。c.配置采样/回传时间:设置各子网采样/同步缓存的周期。当回传定时器触发时,判断同步缓存子线程是否已被调用,如果否则跳过,如果是则配置好当前数据包头信息,并调用缓存同步子线程。该线程将根据协议向服务端发送相应缓存文件,并重建该文件。

3实例与分析

为进一步说明所提出的三层异构网络体系结构及多址与数据聚合方法,针对城市异构配电通信网络,图7给出了一种基于驻地网网关的配电网络。其中,骨干网部分只给出了总服务器,对应110/35kV高压变电站,用于收集、监控本高压变电站下属所有中、低压变电站和用户的信息。EPON接入网的以太光纤环网节点直接采用4个OLT交换机用光纤呈环状连接,每个OLT交换机兼具OLT单元与子站汇聚交换机的功能,每个OLT下面挂接若干个ONU。ONU与OLT交换机之间、以及OLT交换机之间都是光接口。ONU与驻地网网关之间以及OLT交换机与总服务器之间均采用高速的RJ45以太网接口。图7基于驻地网关的城市配网通信系统在图7中,驻地网网关与3个驻地网相连,连接接口均为RS485,因为RS485是工业领域最为常用的接口。3个驻地网中有两个ZigBee网络和一个485总线网络,每个ZigBee子网由一个ZigBee协调器和若干个节点。协调器则负责组建ZigBee子网,汇聚各个节点的信息并转换成适合接口接入至驻地网网关。同时,协调器也负责将从驻地网网关接收到的数据信息广播至各个节点。ZigBee协调器与驻地网网关之间的接口为RS485。此实例采用的3种驻地网具有不同网络结构、不同传输媒质、不同业务类型,充分体现了驻地网络的异构特点。3种驻地网涉及典型的智能插座、智能电表和无源温度传感监测,都是电力领域典型应用。通过驻地网网关的解析与统一封装,服务器端不仅能够清晰地知道是哪个驻地网中的哪个用户发来的信息,而且大大减少了短数据包的数量。如果这3个驻地网中每个驻地网有L个节点,t秒内共收集到3L个短数据包。驻地网网关将这3L个短数据包封装成1个,使得服务器端的解析处理数据包的频率降低了3L倍,大大提升了服务器端的处理效率。

4结论

接口设计论文范文第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篇

C8051F000、SRAM、地址锁存器之间的硬件连接框图如图2所示。微处理器C8051的地址线和SRAM的地址次线分别对应相连,进行地址的选通;“CS”、“WR”、“RD”等控制指令分别相连,进行读、写的控制,AD[7:0]为地址、数据复用总线,分别与锁存器和SRAM的输入输出接口相连,进行相应的地址与数据的通信。检测装置C8051F000、(128k× 8)SRAM和地址锁存器硬件电路接口部分采用地址和数据总线复用的方式以减少所需要的端口引脚数。当传输数据时低位地址保持在一个锁存器中。图3给出了该实现方案经过验证的电源电路图和C8051F000、SRAM、地址锁存器之间详细的电路配置图。

双向端口操作 接口部分采用地址和数据总线复用的方式以减少所需要的端口引脚数。当传输数据时低位地址保持在一个锁存器中,“Data1”用作数据输入总线输出总线和部分地址总线,对总线的复用需要对端口的配置进行动态改变使端口按需要设置为输入或输出。为了将一个端口引脚配置为输入,必须将其相应的端口配置寄存器位(PRTnCF.x)设置为“0”使其输出方式为“漏极开路”,寄存器锁存位(Pn.x)必须设置为“1”,使其输出状态为高阻态。例如下面的代码将端口0的所有引脚配置为输入:movPRT0CF,#00h;漏极开路输出方式movP0,#0ffh;高阻抗下面的代码将端口0的所有引脚配置为推挽输出方式:movPRT0CF,#0ffh;推挽输出方式SRAM_Read子程序(见程序代码部分)给出改变端口方向的一个例子,在程序执行的前一阶段“DATA1”口被配置为输出,将低字节地址输出到端口锁存器,在程序执行的第二阶段“DATA1”口被配置为输入,从外部SRAM读取数据。

二、接口电路程序控制实现

该程序控制系统由初始化SRAM接口逻辑程序、读外部SRAM程序、写外部SRAM程序等组成,功能是通过该接口电路程序实现硬件间的有效连接,实现稳定的通信,从而实现对记录盘的各种配置以及对记录数据进行精确管理。程序代码中的主程序概述了如何对该外部128KBSRAM的每一个字节进行读写,该程序向外部SRAM写入一个字节,再从写入的地址读回,然后比较回读的值与写入的值是否一致,程序接着处理下一个地址,直到整个64K的存储块写完,一旦低存储块写完,程序将“A16位”置1(见示例代码中“常数和声明”一节),切换到高存储块。程序将接着对高存储块的每个字节进行同样的读、写和校验操作。

三、结语

接口设计论文范文第9篇

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结语

接口设计论文范文第10篇

关键词:SDRAM解复用接口

存储器是容量数据处理电路的重要组成部分。随着数据处理技术的进一步发展,对于存储器的容量和性能提出了越来越高的要求。同步动态随机存储器SDRAM(SynchronousDynamicRandomAccessMemory)因其容量大、读写速度快、支持突发式读写及相对低廉的价格而得到了广泛的应用。SDRAM的控制比较复杂,其接口电路设计是关键。

本文首先介绍SDRAM的主要控制信号和基本命令;然后介绍接口电路对SDRAM的主要操作路径及操作过程,应用于解复用的SDRAM接口电路的设计方法;最后给出了实现结果。

1SDRAM的主要控制信号和基本命令

SDRAM的主要控制信号为:

·CS:片选使能信号,低电平有效;

·RAS:行地址选通信号,低电平有效;

·CAS:列地址选通信号,低电平有效;

·WE:写使能信号,低电平有效。

SDRAM的基本命令及主要控制信号见表1。

表1SDRAM基本操作及控制信号

命令名称CSRASCASWE

命令禁止(NOP:Commandinhibit)HXXX

空操作(NOP:Nooperation)LHHH

激活操作(ACT:Selectbankandactiverow)LLHH

读操作(READ:Selectbankandcolumn,andstartREADburst)LHLH

写操作(WRITE:Selectbankandcolumn,andstartWRITEburst)LHLL

突发操作停止(BTR:Burstterminate)LHHL

预充电(PRE:Deactiverowinbankorbanks)LLHL

自动刷新或自我刷新(REF:Autorefreshorselfrefresh)LLLH

配置模式寄存器(LMR:Loadmoderegister)LLLL

所有的操作控制信号、输入输出数据都与外部时钟同步。

2接口电路对SDRAM的主要操作路径及操作过程

一个完备的SDRAM接口很复杂。由于本文的SDRAM接口应用于解复用,处理的事件相对来说比较简单,因而可以简化设计而不影响性能。接口电路SDRAM的主要操作可以分为:初始化操作、读操作、写操作、自动刷新操作。

(1)初始化操作

SDRAM上电一段时间后,经过初始化操作才可以进入正常工作过程。初始化主要完成预充电、自动刷新模式寄存器的配置。操作过程如图1所示。

(2)读写操作

读写操作主要完成与SDRAM的数据交换。读操作过程如图2所示,写操作过程如图3所示。

(3)刷新操作

动态存储器(DynamicRAM)都存在刷新问题。这里主要采用自动刷新方式,每隔一段时间向SDRAM发一条刷新命令。刷新过程如图4所示。

3接口电路的设计

(1)解复用电路

本解复用电路主要完成将1路高速数据流解复用为4路数据流,其结构框图如图5所示。1路数据流进入解复用器后,经过SDRAM缓冲,解复用为4路数据流。

由于要解复用为4路数据流,为了充分利用时隙,满足高速的要求,采用4个bank的SDRAM,各路数据缓冲对应不同的bank。为简化设计,数据流1的缓冲区定为bank0,数据流2的缓冲区定为bank1,数据流3的缓冲区定为bank2数据流4的缓冲区定为bank3。对于每路数据实际上是以高速率集中写入,然后以低速率均匀读出。

由于进行的是解复用,因此写入的数据只有1路,但是有可能4路数据同时都要读出。所以对于4路数据流,其读写地址和读写使能信号是分开的。

(2)SDRAM接口电路的时序控制

高速数据流的速率为3M字节/秒,采用的系统时钟为20倍的字节时钟。送入SDRAM的时钟为60MHz系统时钟。在一个字节时钟内对SDRAM的操作最多有5次(1次读,4次写),而且为了满足刷新的要求,每个字节时钟进行一次刷新操作。根据SDRAM的时序要求,这样的操作是难以实现的。因而要通过多bank操作,尽量做到时分复用来实现。图6给出了在一个字节时钟周期的内数据流1进行读写操作,其它3路数据进行读操作的命令排序时序图。可以看出通过多bank操作,时分复用,在20个系统时钟节拍内所需的读写操作命令刚好很紧凑地排开。

一个字节时钟内对SDRAM读写操作是随机的,这与数据流的复用比例有在。为了满足时序,根据上面的说明,需要把一个字节时钟周期内对SDRAM的命令合理排序,然后按照排好的顺序执行命令。这样就需要把一个字节时钟周期内对SDRAM的操作进行缓存,然后在下一个字节时钟周期内进行排序、与SDRAM命令相对应、将命令译码产生相应的控制信号线,完成操作。缓存排序过程如图7所示。

(3)SDRAM接口电路

SDRAM接口电路中需要专门操作缓冲区存储一个字节时钟周期内的操作,以备下一字节时钟的排序。为了方便处理,对每路数据的缓冲操作内容(或读或写)放在一个缓冲区。由于数据流的连续性,排序的同时仍然会有操作要求,因此每路的操作内容缓冲区分为两块。对一块缓冲区写入时,读出另一块缓冲区中的操作内容,进行排序、译码、执行。根据字节时钟切换对缓冲区的读写,从而避免冲突。对于从SDRAM读出的数据,每路数据写入相应的读出数据缓冲区。同样每路的读出数据缓冲区也分为两块,根据字节时钟切换读写。

由于一个字节时钟周期内,每路所需的操作最多有2次,每路的操作内容缓冲区只需两个单元(每个单元存储了此次的读写使能信号、写入数据、地址)即可。对于读出数据缓冲区,由于一个字节时钟每路数据最多执行一次读操作,所以读出数据缓冲区只需要一个字节。这两类缓冲区容量都小,因此人部用寄存器来实现,控制简单。

整个接口电路的结构框图如图8所示。

接口设计论文范文第11篇

关键词:电力线载波消费总线

智能家庭要求家用电器经网络(总线)实现互联、互操,总线协议是其精髓所在。目前,国际上占主导地位的家庭网络标准有:美国的X10[1]、消费总线(CEBus)[2]、日本的家庭总线(HOMEBUS)[3]、欧洲的安装总线(EIB)[4]。

消费总线使用五种类型的介质(电力线、无线、红外、双绞线和同轴电缆),其中以电力线的应用最为广泛。消费总线得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成为美国电力工业协会的标准(EIA600、EIA721)。1997年,EIA600成为美国ANSI标准;2000年6月,微软和CEBus委员会共同宣布支持CEBus的简单控制协议SCP。SCP是未来微中UPNP协议的子集。

1CEBus电力线物理层

鉴于家庭中电力线载波通讯的特殊性,CEBus采用价格低廉、简单易行的线性调频(chirp)扩频调制技术。摒弃了传统电力线载波通常应用的直接序列扩频、调频扩频、跳时扩频等设备复杂、价格昂贵的扩频调制技术。

图2通用通讯模块的原理图

消费总线的物理层有四种码,分别是:“0”、“1”、“EOF”和“EOP”。均为扫频信号,正弦信号载波,从203kHz经过19个周期线性地变为400kHz,再经过1个周期变为100kHz,然后在5个周期中变为203kHz,整个过程用时100μs,也就是1个UST(Unitsymbletime,在消费总线中用多少个UST来度量时间)。其波形如图1所示。

chirps扫频载波需经过放大耦合到电力线上,放大后的幅度应适中。幅度太低,给接收电路带来困难;幅度太大,又会对电力线上的设备产生干扰。CEBus的规定如表1[5]所示。

表1不同条件下的载波幅度值

设备工作电压最小幅值最大幅值负载范围

~120V2.5Vpp7Vpp10Ω~2kΩ

~240V5Vpp14Vpp39Ω~8.2kΩ

表2不同条件下的设备输入阻抗值

设备工作电压设备输入阻抗(在频率20kHz~50000kHz)载波幅值

~120V>150Ω6Vpp

~240V>300Ω12Vpp

同时也规定了电器设备对信号的阻抗。如果阻抗很小,就会将信号吸收从而无法传送国。规定如表2[5]所示。

线性调频技术实现宽带低功率密度传输,从而大大提高抗干扰性能和传输距离。同时,chirps具有很强的自相关性和自同步性。这种自相关决定了所有连接在网络上的设备可以同时识别从网上任意设备发出的这种特殊波形。

2通讯模块的设计

根据P89C51RD2和P300的芯片手册[6][7],设计的通用通讯模块的原理图如图2所示。P89C51RD2和P300之间采用SPI接口通讯,用模拟的I2C总线和串行EEPROM通讯。这样,中断口、串口和有足够的I/O口可以用于实际设备的设计。

3通讯模块电力线接口电路的设计

从P300输出的信号幅度小、驱动能力弱而且还有高次谐波,因此必须经过滤波和放大,然后才能通过耦合电路将信号调制到电力线上。耦合电路将高压和低压隔离开,防止高压击穿通讯电路。另一方面,从电力线来的载波信号又要由P300接收,而电力线上的干扰很大也很不确定,所以需要一个带通滤波器,通过100kHz~400kHz之间的信号,再送到P300的接收端。电路的方框图如图3所示。

其中左边的3根线来自P300,TS是数字信号,控制收发转换。实际上P300的收发类似半双工方式,因为当它在“发送”劣态的时候,实际上并没有输出信号。因此,这个时候它可以处于接收状态,如果接收到了优态,就表示发生了竞争。

3.1滤波电路

输入滤波器电路如图4所示。

这个滤波器有6阶,对高频干扰有很好的抑制,图5是它的频率响应曲线。在高频段400kHz处衰减为3dB。高于400kHz的平均衰减为3dB,高于400kHz的平均衰减为128dB/dec,可以有效地过滤干扰信号。

P300输出的信号包含丰富的高次谐波,为了减小对电网的干扰,先经过带通滤波器再进行放大。滤波器也采用无源电路,原理与上面类似,这里不再多述。

3.2放大电路

P300的输出信号经过滤波之后,其内阻很大,没有驱动能力,而且电压幅度不符合消费总线的要求,必须放大后才能够驱动电力线。放大电路不仅要有强有力的输出能力,还需有禁止输出功能,这样才能使P300接收其它节点发出信号。

电网的性能不确定,有时是容性负载,有时是感性负载。这样就给末级电路采用反馈带来很大困难。因为当负载的阻抗特性变化时,输出的信号相位会发生变化,最终有可能是负反馈变成了正反馈,从而引起振荡。

图6电力载波放大电路

设计的电力载波放大电路如图6所示,虚线的左边的原理图,右边是实现电路图。可以看出,这个电路有两个输入,一个输出。输入信号来自P300的电力载波,输出使能控制放大器运行。图6的左半部分,T1和T2接成互补式OTL输出,它们的偏置电压来自电阻R1、R2的分压。来自P300的信号经过运放U1放大达到期望的幅度,然后通过电容耦合到T1和T2的基极。如果开关S1和S2合上,则T1和T2正常输出电信,P300可以发送数据;如果S1和S2都断开,那么T1和T2的基极都处于悬空状态,输出端也成为悬浮状态,从而不会吸收由电力线传来的信号,P300可以接收信号。

在图6的右边,开关S1和S2也被T7和T8取代,T1和T2被复合管取代,其中的电阻R11用来消除三极管漏电电流的影响。采用复合管是为提高放大倍数,这样可以尽量减小级间耦合,即使输出信号发生了畸变,也不会影响到前级而发生振荡。实际证明这种做法是很可行的。其对容性负载、感性负载以及纯电阻的负载都有较稳定的输出,输出阻抗小于2Ω。

图7P300与电力线的耦合电路

3.3耦合电路及保护措施

图7中J1接到电力线,R1是压敏电阻,它可以使尖峰脉冲短路,变压器T1实现了高压与低压的隔离。因为载波的频率比较高(100kHz~400kHz),远远大小电网的频率,这样就使载波信号畅通无阻,而能够隔断高压。电容C1阻断低频高压,阻止变压器饱和;电阻R2取值比较大,作用是在离线时使电容放电,防止在设备插头的两端出现高压。Z1是瞬变抑制二极管(TransientVoltageSuppressor,或称TVS),它可以有效地避免后而电路被高压击穿。L1、D1、D2也是为防止高压击穿放大电路而设计的。电力线上的设备接入或者是断开,都有可能引起尖峰脉冲,并导致收发电路的永久损坏。所以高压保护措施是至关重要的。

接口设计论文范文第12篇

关键词: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中的定时器及定时控制器操作,注意其定时器为向下计数方式。

接口设计论文范文第13篇

工程技术能力是指以建筑设计工程技术为主体的技术能力,它是一个动态发展的概念。随着现代科技的发展,工程技术能力除了建立在科学原理及其特有的经验技能的基础上,还包括技术组织化程度等重要因素。具体就环境设计专业而言,其与建筑学辅车相依,有着不解之缘。因此,与建筑设计相关的材料、预算以及施工技术等知识,便是对比其他艺术设计专业所特有的专长。多数学生在学习了建筑装饰构造课程以后,对构造图纸的制图技能已经游刃有余,但将图纸转换为真实施工项目却只停留在纸上谈兵的地步,故而在此基础上增进工程技术类实践课程刻不容缓。如木工实习、模型实习等,通过动手实践将课堂所述的设计理论更好地转化为可操作的工程技术能力。

二、当今环境建筑设计专业毕业生“三重”

表达能力,缺一不可表达能力是指人通过一定的方式将自己的知识、见解与他人交流或公之于众的能力,包括言语表达能力、文字表达能力、图纸表达能力、数学表达能力等。其中,针对环境艺术设计专业的学生而言,所需强化训练的主要包括图纸表达能力、文字表达能力及口头表达能力。此“三重”表达能力是学生所应掌握理论与实践知识的对应体,更是应用型创新人才的必备条件。

1.图纸表达能力是对所学艺术理论的直接实践表达

就环境设计专业学生而言,绘制本专业各类图纸的图纸表达能力,是在学习期间要研习的基本能力,更是对所学艺术理论的直接实践。目前,随着科技的发展,计算机辅助设计绘制的效果图越来越受到绘画基础薄弱学生的青睐,学生手绘图纸的实践表达能力是亟待突破的难点。目前,仅利用专业设计表达课程对效果图进行理论讲解与实践训练,无论从学生完成的作业水平还是在各系列设计课程的表现环节中,学生的实践能力都显得十分欠缺,这种情况随处可见。实际上,设计草图的推敲就是学生锻炼快速表达的良机,徒手勾勒流畅线条是设计思维的直接表现,随时都可激发学生的设计灵感。

2.文字表达能力是个人设计理论基础的直接体现

文字表达能力即文字水平的能力,是个人设计理论基础的直接体现。运用语言文字阐明自己的设计思想,使其更为系统化、科学化、条理化,无论是书写设计说明还是撰写相关论文及调研报告等,对于学生而言都是十分重要的。除了开设论文写作课程以外,重要的是培养学生善于调查研究、积累材料、积极阅读的习惯,从而加强理论修养,捕捉设计灵感。

3.口头表达能力是创意理论与设计实践的统一体

接口设计论文范文第14篇

    该论文首先对非接触式IC卡进行了概述,介绍了其特点、种类、国际标准,关键技术,典型应用和发展趋势;随后介绍了非接触式IC卡技术的基础:射频识别(RFID)技术,并对目前国际上具有代表性的两大非接触式IC卡技术:LEGIC技术和MIFARE技术进行了对比;紧接着重点介绍了Philips公司的MIFARE技术,对MIFARE卡片和MIFARE非接触式IC卡的读写组件MFCM200进行了全面的阐述;在此基础上,论文详细地阐述了非接触式IC卡读卡器的硬件和软件设计,给出了每一部分的实际电路图和应用程序.读卡器的硬件设计包括电源供应电路、LED状态显示电路、蜂鸣器驱动电路、RS232通信电路、MCU的连接、MFCM200接口电路和读卡器天线这几部分的设计,这些电路分布于两块电路板上,即控制电路板和天线电路板;MFCM200接口电路的设计分为MFCM200与MCU接口电路设计、与电源接口电路设计和与天线射频接口电路设计三个部分.论文介绍了电路的详细设计过程.软件设计分为对MFCM200的应用程序的设计、对读卡器其他电路的应用程序设计和主程序设计三个部分,每一部分都给出了具体程序并对程序进行了详细的说明.

接口设计论文范文第15篇

    该论文首先对非接触式IC卡进行了概述,介绍了其特点、种类、国际标准,关键技术,典型应用和发展趋势;随后介绍了非接触式IC卡技术的基础:射频识别(RFID)技术,并对目前国际上具有代表性的两大非接触式IC卡技术:LEGIC技术和MIFARE技术进行了对比;紧接着重点介绍了Philips公司的MIFARE技术,对MIFARE卡片和MIFARE非接触式IC卡的读写组件MFCM200进行了全面的阐述;在此基础上,论文详细地阐述了非接触式IC卡读卡器的硬件和软件设计,给出了每一部分的实际电路图和应用程序.

    读卡器的硬件设计包括电源供应电路、LED状态显示电路、蜂鸣器驱动电路、RS232通信电路、MCU的连接、MFCM200接口电路和读卡器天线这几部分的设计,这些电路分布于两块电路板上,即控制电路板和天线电路板;MFCM200接口电路的设计分为MFCM200与MCU接口电路设计、与电源接口电路设计和与天线射频接口电路设计三个部分.论文介绍了电路的详细设计过程.软件设计分为对MFCM200的应用程序的设计、对读卡器其他电路的应用程序设计和主程序设计三个部分,每一部分都给出了具体程序并对程序进行了详细的说明.