首页 > 文章中心 > 接口设计论文

接口设计论文范文精选

开篇:润墨网以专业的文秘视角,为您筛选了十篇范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

CPCI总线接口设计论文

1地面测试台整体结构

地面测试台的测试对象为某采编存储器。测试台的主要功能包括向采编存储器提供模拟信号供其采集,向采编存储器下发控制命令,接收采编存储器下发的高速LVDS实时数据并进行后续处理。测试台的整体结构如图1所示。CPCI总线上挂有3个CPCI板卡,分别为CPU卡、接口卡、信源卡。其中,CPU卡为处理系统,接口卡和信源卡为功能卡。本文将以接口卡为主要依据来介绍如何以FPGA逻辑控制来实现CPCI局部总线接口和高速LVDS接口。

2LVDS高速数据接口实现

2.1LVDS接口硬件电路设计由于趋肤效应和介质损耗,高速信号在传输过程中会衰减。因此,当传输距离较长时,往往要使用电缆驱动器和均衡器来保证高速数据传输的准确性。电缆驱动器将信号以最大功率耦合到电缆上[4],延长信号的传输距离,电缆均衡器可以对传输的信号进行高频补偿,以至达到标准逻辑电位。本设计中,LVDS串行器/解串器分别选用TI公司的SN65LV1203和SN65LV1224,信号驱动器/电缆均衡器分别选用NS公司的CLC001和CLC014。LVDS接口电路结构如图2所示,采编存储器的FPGA控制LVDS串行器将10bit并行数据转换成差分串行数据,再通过电缆驱动器将信号耦合到电缆上。地面测试台的电缆均衡器对接收到的信号进行高频补偿之后传送给解串器,解串器根据参考时钟将差分串行数据转换成10bit的并行数据,由FP-GA进行后续的处理。

2.2FPGA逻辑控制LVDS数据接收由于CPCI接口传输的时钟和LVDS数据接收电路的时钟不匹配,为了保证数据传输的可靠性,在编写VHDL语言程序时FPGA内部调用一个异步时钟控制的缓存FIFO[8]IP核来对接收到的LVDS高速数据进行缓存,如图2所示。上位机通过配置PCI9054的传输计数寄存器,将一次DMA传输的数据量设置为2kbyte。写FIFO的时钟为18.432MHz,读FIFO的时钟为36.864MHz,当FIFO内数据量达到2kbyte时,FPGA立即通知上位机启动一次DMA传输。经计算,从FIFO内读走2kbyte数据大约耗时54μs,在这个时间段内写入FIFO的数据量大约为1kbyte,所以,当DMA传输结束时,FIFO内数据不足2kbyte,上位机直到FIFO内数据量再次达到2kbyte时才会启动下一次的DMA传输。为了避免PCI9054不能立即执行DMA传输而导致FIFO数据溢出,FIFO容量要大于2kbyte。本设计中选择容量为4kbyte的FIFO,经验证,不会出现FIFO溢出现象。

3CPCI局部总线接口实现

实现CPCI接口协议一般有两种方法。其中一种方法为:利用FPGA实现接口逻辑。这种方法虽然可以充分利用FPGA的资源,减小成本,但PCI逻辑十分复杂,可靠性不能得到保证,且开发周期长。另外一种方法为:采用专用的PCI接口控制芯片。专用接口芯片功能强大,性能稳定,设计方便,很大程度上减少了设计者的工作量,缩短了开发周期。所以,本设计中选择使用PCI9054接口控制芯片与FPGA配合工作的方式来实现CPCI局部总线接口通信。

3.1EEPROM的配置在Windows环境下,为有效管理多块CPCI板卡资源,实现多卡协同工作。通过设置EEPROM配置选项中的ClassCode/REV值,解决使用同一驱动情况下,多块CPCI板卡识别问题。地面测试台含信源卡和接口卡两块CPCI功能板卡,图3为接口卡的EEPROM配置文件截图,各板卡需要设置不同的ClassCode/Rev(图中红色选框部分),上位机程序通过识别不同的ClassCode/Rev达到控制不同板卡的目的。ClassCode/Rev为一个32bit数据,规定高8bit作为不同板卡区分标志,低24bit保留。其中D31~D28功能标识,区分是否为信源卡、接口卡等功能卡。D27~D24数量标识,区分当前功能卡的数量,具体约束如下表1所示。

全文阅读

船舶导航接口设计论文

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仿真与实现

全文阅读

编码器接口设计论文

1曼彻斯特编解码器模块设计

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)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及特殊方式指令下方式标志的产生等。

全文阅读

通信接口设计分析论文

摘要:文章对多种协议串行通信进行了分析与讨论,给合Linear公司生产的多协议串口芯片,针对传统串口通信实现中的问题以及实际的广域网串行通信的需求,提出了一种多协议串行接口的设计实现方法。

关键词:多协议串口通信;通信协议;收发器;连接器;多协议串口芯片LTC1546/LTC1544

随着通信网技术的进一步发展,越来越多的互连网设备(如路由器、开关、网关、存取装置)中的串行接口在广域网(WideAreaNetwork)中被设计成能够支持多种物理接口协议或标准。广域网串行口协议包括RS-232,RS-449,EIA-530,V.35,V.36以及X.21等。图1所示是一个简单的串行通信接口示意图。由图可知,实现多协议串口通信的关键是将连接器送来的不同传输方式平衡、非平衡和不同电气信号通过收发器转换为终端能够识别并处理的、具有TTL电平的信号。

1传统多协议通信的特点和问题

1.1“子板”方式

广域网串口应用中的通用实现方法是为所需的每一种物理协议提供一个独立的子板。一个支持EIA-232,EIA-449及V.35协议的系统,通常需要三个独立的子板以及三个不同的连接器。这种方法由于每种协议要求配置一块子板,因此系统需要对PCB子板、收发器芯片、连接器等进行管理,这样既浪费资源,又会使管理工作复杂化。

1.2通用连接器方式

为解决“子板”方式的缺点,可使用一块母板及通用连接器。一个母板上有多种收发器芯片,可以满足多串口协议的要求,并可共用一些通用器件,同时可减少资源的浪费。在配置中,应注意因连接器的管脚较少而带来的问题,较好的办法是根据信号而不是根据协议来分配管脚,即给每一个信号分配一个通用管脚,而不管其物理协议如何定义。如对EIA-232,EIA-449,EIA-530,V.35和V.36来说,其TxD信号可连至连接器相同的管脚。即SDa信号连接到管脚2,SDb信号连接到管脚14。然后利用这对管脚来描述所有协议的发送信号TxD。

全文阅读

BPA软件接口设计论文

1CIM数据解析流程与实现

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程序的数据卡片格式要求是远远不够的,还必须考虑其他问题以保证转换出来的数据文件的正确性。下面分述之。

全文阅读

USB接口设计管理论文

摘要:DSP的高速运算性能使它在数字信号的处理上有着独一无二的优势,但是通常数字信号的数据量非常庞大,需要一种非常方便、高速的接口来实现与PC机的接插。本文给出一种基于DSP平台的低成本高速USB接口方案。它采用Philips公司的PDIUSBD12接口芯片,实现DSP图像采集系统与PC机的高速数据传输。最后作出的接口,其数据传输速率达580KB/s以上,效果很好。

关键词:USBDSPPDIUSBD12图像传输接口设计

引言

USB接口(UniversalSerialBus)是一种通用的高速串行接口。它最主要的特点是它的高速传输特性。USB1.1理论速度极限可以达到12Mb/s,USB2.0可达到480Mb/s。这样,它可以很好解决大数据量的数据在嵌入式系统与PC机之间的互传问题;同时,它支持热插拔,并且最多同时支持127个外设,非常适合嵌入式系统的应用。

本次设计是在一个已有的DSP图像采集嵌入式系统的基础上,为它配接上一个USB1.1的接口,以达到DSP图像采集系统高速地将图像数据回传到PC机中的目的。设计的要求主要有:

①在原有平台提供的接口基础上,加入一个低成本、高速度的USB接口;

②通过USB接口,实现PC机对DSP图像采集系统的操作与控制;

③实现图像数据在DSP摄像系统与PC机之间高速的双向传输。

全文阅读

检测接口设计论文

1硬件电路设计

从结构上,检测接口可以分为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芯片采样获得的信号进行增益补偿,实现检测信号的完整性。

全文阅读

ISA接口设计论文

1FPGA开发环境介绍

本设计采用了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中实现。

由于串口芯片16C554地址为基地址+0x05的寄存器LCR其初始值为0x60,因此完成上述软硬件设计后,上位机通过ISA总线读取串口芯片的LCR寄存器数据,其读取过程可利用ISE自带的嵌入式逻辑分析仪实现捕捉,具体读取过程如图3所示。由于串口芯片基地址设置为0x100,而产生其片选信号是有高七位地址信号产生的,而0x100右移三位为0x20。由图3可以看出读地址为0x105的寄存器,读出的数据位0x60,与芯片LCR寄存器吻合,实现了预期目标。因此证明了本设计的正确性。

全文阅读

USB接口设计论文

1EZ⁃USBFX2CY7C68013A固件程序设计

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节中也修改。

全文阅读

OAuth2.0接口设计论文

1.OAuth2.0协议流程

在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参数。

全文阅读