学术刊物 生活杂志 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 接口设计论文

接口设计论文精品(七篇)

时间:2023-03-22 17:38:05

序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇接口设计论文范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。

接口设计论文

篇(1)

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

篇(2)

地面测试台的测试对象为某采编存储器。测试台的主要功能包括向采编存储器提供模拟信号供其采集,向采编存储器下发控制命令,接收采编存储器下发的高速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所示。

3.2CPCI局部总线实现方法

3.2.1PCI9054工作模式选择PCI9054总线控制芯片有3种工作模式,即M模式、C模式、J模式。其中,C模式最为简单,类似于单片机的工作方式,它的地址线和数据线分开使用,可以很方便地控制本地时序。所以本设计中PCI9054工作于C模式,由FPGA逻辑控制本地时序来完成CPCI局部总线与功能板卡之间的通信。

3.2.2CPCI总线访问本地总线PCI9054的访问方式选择DMA方式。PCI9054作为主控设备,通过内部的DMA控制器来实现局部总线上数据与CPCI总线上数据的传输。在DMA访问方式下,一个总线周期的时序如图4所示。当CPCI总线访问本地总线时,PCI9054内部的DMA控制器发出LHOLD信号来申请控制局部总线,当其收到响应信号LHOLDA后,才获得局部总线的控制权。当ADS#信号有效时,局部总线上的地址信号LA为有效地址;当BLAST#信号有效时,代表一次单周期访问开启;READY#为本地总线的状态反馈信号,只有当其有效时,表示本地总线已经准备好,才可以进行访问;当LW/R#为高时,代表单周期访问为写操作,当LW/R#为低时,代表单周期访问为读操作。在本设计中,FPGA通过识别地址信号LA来判断具体的操作类型。当上位机向接口卡下发控制命令时,为CPCI总线到本地总线的数据传输,具体的工作流程为:当上位机下发命令时,启动一次单周期写访问,同时下发特定的写地址LA1,FPGA反馈READY#信号,并判断到LW/R#信号为高,即得知上位机要下发数据,便从该特定地址LA1将命令代码读出,进行解码之后将命令下发给采编存储器。当接口卡向上位机传输LVDS高速数据时,为本地总线到CPCI总线的数据传输,具体的工作流程为:当图1中所示的LVDS数据缓存FIFO内数据量达到2kbyte,启动一次DMA传输,即一次DMA传输将2kbyte的数据上传给上位机进行实时显示与处理。上位机通过下发特定地址信号LA2来向FPGA查询FIFO内数据量是否达到2kbyte,一旦其得到缓存FIFO内数据量满足要求的信息,立即启动一次单周期读访问,并向FPGA下发数据传输地址LA3,FPGA反馈READY#信号,并判断到LW/R#信号为低,便将LVDS数据通过地址LA3上传给上位机。

4设计验证

将信源卡和接口卡分别插到背板上的2号和3号物理槽中,1号物理槽为系统槽,打开计算机系统,安装驱动之后,两块功能板卡均能够被识别。分别对两块板卡进行操作,均能实现各自的功能且互不影响,说明EEPROM的配置正确可行。以接口卡为例,用Chipscope来监测CPCI总线对本地进行读、写操作的实际过程,图5和图6分别为单周期读访问时序截图和单周期写访问截图。如图5所示,当FIFO内数据量达到2kbyte时,信号f_fifo_hf变高,此时启动一次单周期读访问,LW/R#为低,通过地址0008h将数据87h上传给上位机。实际时序与第3节介绍的本地总线向CPCI总线传输数据的理论时序一致,对接收到的数据文件进行分析,数据结构完整,数据包计数连续,没有丢数现象,验证了本设计中本地总线向CPCI总线传输数据的正确性。如图6所示,上位机向FPGA下发控制信号,此时启动一次单周期写访问,LW/R#为高,FPGA通过地址0004h获得命令代码67h。实际通信时序与第3节介绍的CPCI总线向本地总线传输数据的理论时序一致,且命令下发正确,验证了本设计中CPCI总线向本地总线传输数据的正确性。

5总结

篇(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)

关键词:PCI总线TM1300以太网通信接口pSOS+内核pNA+

1概述

TM1300是Philips公司推出的新一代高性能多媒体数字信号处理器芯片。基于TM1300的DSP应用系统适合于实时声音、图像处理,可广泛应用于会议电视、可视电话、数字电视等应用场合。它不仅具有强大的处理能力,同时还具有非常友好的音频和视频以及SSI和PCI等I/O接口,因此可以根据应用的需要灵活地构造各种视频通信系统。鉴于目前计算机网络的普及和网上视频业务的发展,很有必要为TM1300视频编码系统开发一个以太网接口以拓宽其应用范围。开发以太网接口的一种合理思路是利用TM1300集成的PCI接口来驱动专用的以太网接口芯片。由于目前多数以太网接口芯片(如Real-tek8029,Realtek8139等)都采用PCI接口,因此,可以用PCI总线将数据从TM1300传输到这些专用的以太网接口芯片后,再由它们发送数据,而且TM1300可以在嵌入式操作系统pSOS中运行,同时由于系统pSOS带有TCP/IP协议栈因此可以方便地完成编码码流的TCP/IP封装。

根据以上思路笔者在进行了前期测试的基础上进行了电路板的设计并顺利完成了调试。目前这个以太网接口已经基本开发成功。本文将对这个设计的技术要点从硬件和软件两个方面进行详细介绍。

2TM1300及PCI总线接口

该系统的硬件结构框图如图1所示。本系统硬件设计的重点是PCI总线接口。PCI总线根据数据位的宽度有32位和64位之分,64位的数据线与32位是兼容的。PC机中常见的是32位PCI总线,它的有用引脚总数是110个,可以分成3组。第一组是基本功能信号线,包括32位共享数据地址线AD〔00..31〕、接口控制线、仲裁线、时钟线、系统复位线、中断线;第二组是附加功能信号线,包括错误报告线、cache功能支持线、JTAG边界扫描线;第三组是电源线,包括设备耗电量标识线、3.3V电源线(12根)、5V电源线(13根)、地线(22根)。

因为Realtek8029不具备PCI的附加功能信号线所支持的cache功能和JTAG边界扫描功能,同时虽然它具有奇偶校验错误报告功能引脚,但该脚可以悬空不用。所以,设计时只需考虑第一组功能信号线的连接即可。

PCI接口的设计有以下几个要点:

(1)PCI总线的仲裁

这里先说明两个概念。首先,PCI总线是多设备共享的,由于PC机里可以有多个PCI设备,所以需要使用仲裁器;其次,PCI设备有主设备和从设备之分,主设备可以发起PCI数据的传送从设备只能被动地响应主设备的操作以对读操作和写操作做出响应。PCI的仲裁引脚是REQ和GNT,分别为请求线和授权线,而且只有PCI主设备有这两个引脚。一般情况下,REQ通常和GNT成对地连到仲裁器,而设备与设备的REQ和GNT通常是互不相连的。

PCI总线的仲裁过程是这样的:PCI主设备把REQ电平拉低以表示向仲裁器请求占用总线。经仲裁获准后,仲裁器把这个设备的GNT电平拉低以表示请求获准,此后该设备便可以使用总线了。当它不再使用总线时,应使REQ信号变为高电平仲裁器就不再给它分配总线资源。在本系统中,TM1300是PCI主设备,而Realtek8029是PCI从设备。由于它们不存在共享总线的问题,所以不需要仲裁器,而只是简单地把REQ和GNT短接即可,这就相当于TM1300自己给自己授权。

(2)PCI_IDSEL信号线在设备的PCI配置读写中的作用

PCI有一种特殊的读写周期,称为配置读写。这是因为在系统引导时,如果没有给设备配置I/O或内存地址,软件就只能通过配置来读写访问设备。配置读写有两种,分别称为0型和1型具体采用哪一种取决于总线的硬件连接。配置读写操作不经过PCI桥时,使用0型,当需要经过PCI桥时,则要用1型,0型读写的地址直接就是总线上的地址,1型读写的地址则要经过PCI桥的译码才能成为最终的总线地址。本设计中,TM1300和Realtek8029是用PCI总线直连的,所以使用0型配置读写。

AD〔00..31〕是PCI总线的共享地址和数据线,每一次PCI传送都分为地址周期和数据周期。在地址周期,采用0型读写时,AD〔00..31〕的内容如下,AD〔00〕和AD〔01〕总为“00”,因为配置读写是以双字为单位的,AD〔02〕~AD〔07〕是要读写的PCI配置空间的寄存器号AD〔08〕~AD〔10〕是设备的功能号在一块PCI卡上有多个功能设备时,为了进一步区分不同的设备就要用到这几位,由于Realtek8029是单功能设备,故这几位全为0,AD〔11〕~AD〔31〕是设备选择位,其中必须有且仅有一位为“1”,如图2所示,这在物理上表现为总线的AD〔11〕~AD〔31〕中有一根为高电平如果输出高电平的这根线与某块PCI卡的PCIIDSEL引脚相连,这块卡就会被激活,这样,在紧接着的数据周期中,它就会将其PCI配置空间相应寄存器中的内容放到总线上以供读取。

(3)PCI_FRAME、PCI_DEVSEL、PCI_IRDY、PCI_TRDY引脚的处理

上述四个引脚均是低电平有效,因此需要接上拉电阻,以保证在设备未驱动该引脚时处于稳定的无效状态,上拉电阻的阻值在1kΩ~10kΩ范围内,阻值越小,则将该信号驱动为有效的时间越短,但太小又会导致电流过大,所以,要权衡考虑,本设计选用4.7kΩ。

上述三点对脱机情况下PCI设备的互连具有较普遍的参考意义,除此之外,本设计还有以下比较特殊的几点:

应将TM1300的PCI,INTA引脚配置为输入,以便接收Realtek8029的中断;

PCI时钟由TM1300提供;

Realtek8029的复位信号也就是TM1300的复位信号,该信号由外部电路提供;

TM1300的PCISTOP、PCISERR引脚悬空,表示Realtek8029不具备相应的附加功能。另外,TM1300的PCIINTB、PCIINTC、PCIINTD引脚可以用作用户中断。

3软件设计

该接口设计的软件结构框图如图3所示。其中TM1300运行于pSOS,它是一个简单的实时多任务嵌入式操作系统,带有pNA+网络组件,其pNA+相当于TCP/IP协议栈的扩展,它向上可提供应用程序编程的socket接口,向下可定义一个与网络接口层交互的接口,其中包括8个函数,分别是:ni_init(接口芯片初始化)、ni_broad-cast(发送广播分组)、ni_send(发送普通分组)、ni_getpkb(申请发送缓冲区)、ni_retpkb(归还接收缓冲区)、ni_ioctl(I/O控制操作)、ni_pool(统计量查询)、Announce(网络接口驱动调用它把接收到的数据包提交给pSOS)。其中网络接口层在本应用中就是Realtek8029的驱动程序,它通过硬件抽象层来驱动Realtek8029(硬件抽象层是PCI总线的配置读写和I/O读写指令集的总称)。

软件执行的流程大致是:系统首先启动pSOS,并由它加载网络接口驱动程序,然后调用驱动程序的ni_init函数,同时初始化Realtek8029的PCI配置空间并设置Realtek8029的工作参数,之后启动用户任务。在这里,用户任务为H.263编码进程。它对VI口读入的源图像进行压缩编码后,将调用socket的接口函数sendto(sendto是UDP套接口专用的发送函数),然后把码流发送给pSOS由pSOS根据UDP协议进行封装后,再调用ni_send函数,并由ni_send完成数据包从系统主内存到Realtek8029片上RAM的拷贝,然后启动Realtek8029发送数据。在接收情况下,Realtek8029收到一个完整的数据包后会用中断通知CPU,然后由CPU执行中断服务程序。当中断服务程序将数据包从Realtek8029片上RAM中拷贝到系统的主内存后,系统将调用Announce函数并把数据块的指针、数据长度和其它信息提交pSOS,最后由pSOS将数据包沿协议栈一层层上传并作出相应的处理。

软件的设计和pSOS操作系统的关系比较密切,限于篇幅,本文不对pSOS作详细介绍,。本文接下来重点介绍PCI配置空间的配置过程,这部分对于类似的设计有较普遍的参考意义。PCI配置空间有64个字节,PCI片内的这些寄存器存储了该芯片的厂商号、设备号、设备类型等重要代码,还包括命令寄存器、基地址寄存器等控制其总线行为的寄存器,它们必须在设备初始化时正确配置,否则设备不能工作。

对Realtek8029PCI空间的配置需要三个步骤:

首先是扫描总线,这一步的目的是找到Real-tek8029的配置地址,直观地讲,就是找到它的PCI_IDSEL引脚和哪根AD线相连,因为后续的配置写要根据这个地址来寻址。扫描总线时,要对AD〔11〕到AD〔31〕每根线进行一次扫描,如果哪根AD线连接了一个PCI设备的PCIIDSEL引脚,那么用配置读函数读取PCI配置空间的0号寄存器时,应该返回该设备的设备和厂商代码,如果这根线实际未连接设备,则返回值是0。已知Realtek8029的设备和厂商代码是“0x802910ec”,如果返回值与之相同,说明找到了Realtek8029,这时要记下这根AD线的序号。例如,在硬件上把Realtek8029的PCIIDSEL和AD〔20〕相连,则扫描到的序号就应该是“20”。

其次,用配置写函数配置I/O读写使能,即在command寄存器中写入“0x1”。

最后,用配置写函数配置I/O地址,也就是在I/OBaseAdddress寄存器写入分配给该设备的I/O地址(例如“0xe400”)。具体程序流程图如图4所示。

4调试结果

根据以上设计,笔者在原TM1300视频编码硬件系统的基础上加入了PCI接口,并编写了pSOS下Realtek8029的驱动程序。然后,在这个硬件平台上对Realtek8029的驱动部分进行了数据传送测试。

笔者首先用一个单独的UDP发送任务进行发送速率测试。这个任务主要是高速地向网络上的一台PC发送数据包,数据包的大小是变长的。PC接收并对丢包数进行统计的结果如表1所列。实验表明,在用网线直连的各种测试速率情况下都没有出错,而当接入局域网后,在发送速率为4.5Mbps时有突发的少量错误。由于UDP是不可靠的传输方式,所以这种错误是正常的。测试中,UDP发送的最高速率可以达到5Mbps左右,它与硬件的最高速率(10Mbps)相比还有一定差距,主要原因是数据从系统主内存到Realtek8029片上RAM的拷贝过程目前尚未采用DMA方式,这是需要改进的地方。

表1丢包数统计表(单位:丢包个数/分钟)

连接方式发送速率

800kbps1.8Mbps4.5Mbps

网络直连000

接入局域网002.5

接下来笔者进行了编码和传送的联合测试。编码任务执行H.263数据压缩后,把码流从以太网接口发出,然后在网络上的另一台PC上接收这个码流,并进行解码播放。通过调整编码器的量化步长可以控制编码的输出码率。在实验环境下发现在量化步长大于等于5、码率在700kbps以下时,基本没有丢包现象,解码得到的图像比较稳定,而当量化步长进一步减小,码率接近1Mbps时,就会出现丢包现象,解码的图像会出现彩色方块。出现这种现象是因为H.263编码器对CPU资源的消耗很大,而且数据在主内存和Realtek8029片上RAM之间的复制采用I/O读写方式也需要一定的CPU资源。这样,当量化步长小于5时,处理的复杂度超过了CPU的能力从而产生了一定的误码。解决的途径一方面是改进数据的传送方式(采用DMA),另一方面是需要对编码任务进行优化。

篇(5)

2:吉林省森工集团信息化发展前景与规划.

3: 吉林省林业设计院网络中心网络改造与发展规划.

4: 吉林省林业系统生态信息高速公路构建课题.

二、论文撰写与设计研究的目的:

吉林省的林业分布十分广泛,以长白山系为主要脉络的山地广泛分布各种森林资源,而作为林业及林业环境的发展,林业生态信息则是一个更为庞大的系统,快捷,准确,合理,系统的采集,处理,分析,存储这些信息是摆在我们面前的十分现实的问题.在信息交流的这个世界中,信息好比货物,我们需要将这些货物(信息)进行合理的处理,其中以硬件为主的计算机网络系统是这些货物(信息)交流的"公路"和"处理厂",我做这个题目,就是要为它画出一条"公路"和若干"处理方法"的蓝图.

由于森工集团这样的特定企业,其一,它是一个统一管理的企业,具有集团化的特点,网络的构建具有统一性.其二,它又在地理上是一个分散的企业,网络点也具有分散性.然而,分散中还具有集中的特点,它的网络系统的设计就应该是板块化的.从信息的角度来讲,信息的种类多,各种信息的采集传输处理角度也不尽相同,我们在设计的过程中不仅要考虑硬件的地域布局,也要考虑软件平台的配合.

没有最好,只有更好;更新观念,大步向前.我相信,在导师的精心指导下,经过我的努力,我将为它们创造出一条平坦,宽阔的"高速公路".

1,论文(设计)研究的对象:

拟订以吉林省林业系统为地理模型,以林业网络综合服务为基本需求,以网络拓扑结构为设计方向,以软件整合为应用方法,开发设计一套完整的基于集散集团企业的企业网络系统.

2,论文(设计)研究预期达到目标:

通过设计,论文的撰写,预期达到网络设计全面化,软件整合合理化,网络性能最优化,资金应用最低化,工程周期最短化的目标.

3,论文(设计)研究的内容:

一),主要问题:

设计解决网络地域规范与现有网络资源的利用和开发.

设计解决集中单位的网络统一部署.

设计解决多类型网络的接口部署.

设计解决分散网络用户的接入问题.

设计解决远程瘦用户网络分散点的性能价格合理化问题.

设计解决具有针对性的输入设备的自动化信息采集问题.

合理部署网络服务中心的网络平衡.

优化网络服务系统,营造合理的网络平台.

网络安全问题.

10,基本应用软件整合问题.

[nextpage]

二),论文(设计)包含的部分:

1,地理模型与网络模型的整合.

2,企业内部集中部门网络设计.

3,企业内部分散单元网络设计——总体分散.

4,企业内部分散单元网络设计——远程结点.

5,企业内部分散单元网络设计——移动结点.

6,企业网络窗口(企业外信息交流)设计.

7,企业网络中心,服务平台的设计.

8,企业网络基本应用软件结构设计.

9,企业网络特定终端接点设计.

10,企业网络整合设计.

5,论文(设计)的实验方法及理由:

由于设计的过程并不是工程的施工过程,在设计过程中详尽的去现场建设肯定有很大的难度,也不是十分可行的,那么我们在设计的阶段就应该进行仿真试验和科学计算.第一步,通过小型网络测试软件平台,第二步,构建多个小型网络搭建全局网络模拟环境,第三步,构建干扰源利用小型网络集总仿真测试.

6,论文(设计)实施安排表:

1.论文(设计)阶段第一周次:相关理论的学习研究,阅读参考文献资料,制订课题研究的实施方案,准备试验用网络硬件和软件形成试验程序表及试验细则.

2.论文(设计)阶段第二周次:开始第一轮实验,进行小型网络构建试验,模拟网络服务中心,模拟区域板块,模拟远程及移动网络.

3.论文(设计)阶段第三周次:进行接口模拟试验,测试软件应用平台,完善课题研究方案.

4.论文(设计)阶段第四周次:完成第一轮实验,提交中期成果(实验报告1).

5.论文(设计)阶段第五周次:进行第二轮实验,模拟环境(干扰仿真)实验,提交实验报告2.

6.论文(设计)阶段第六周次:完成结题报告,形成论文.

三,论文(设计)实施工具及参考资料:

小型网络环境,模拟干扰环境,软件平台.

吴企渊《计算机网络》.

郑纪蛟《计算机网络》.

陈济彪 丹青 等 《计算机局域网与企业网》.

christian huitema 《因特网路由技术》.

[美]othmar kyas 《网络安全技术——风险分析,策略与防火墙》.

其他相关设备,软件的说明书.

1、论文(设计)的创新点:

努力实现网络资源的全面应用,摆脱将单纯的网络硬件设计为企业网络设计的模式,大胆实践将软件部署与硬件设计阶段相整合的网络设计方法.

题目可行性说明及预期成果:

篇(6)

黄统奎,张艳红

(广东技术师范学院 天河学院,广东 广州 510540)

摘要:该文研究基于Struts2 + Spring + Hibernate的高校毕业设计管理系统的设计与实现。该系统按照毕业设计工作流程实现管理端,教师端,学生端相应的功能。重点实现了业务流程管理、用户权限管理、选题管理、文档管理、文档在线编辑、成绩评定、在线交流、数据备份等功能。该系统具有界面简洁、易用性强,交互性好、功能完善、同时又考虑到数据安全和系统功能的扩充。

关键词: Struts2;Spring;Hibernate;毕业设计;文档管理

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)19-4384-03

1 课题背景

随着大学的扩招,毕业生数量的逐年递增,高校毕业设计教学活动中需要处理的数据和信息也越来越大,在毕业设计管理工作中遇到工作效率低,交互性差,工作量大等问题,这已经成为高校每年毕业设计管理过程中急需处理的问题。同时课题资源过于零散,容易重复, 进一步加大了课题资源整合的难度。综上所述,该文研究基于 Java EE的高校毕业设计管理系统,使用该系统实现快捷高效的毕业设计管理工作。

2 系统分析

通过需求分析,系统确定有三种角色:学生、教师、管理员。

2.1功能模块划分

在具体设计实现毕业设计管理系统时,主要考虑了系统的以下主要功能和模块。

1) 公用模块

(1) 登录模块:验证帐号密码是否正确。

(2) 修改个人信息模块:修改账号密码。

(3) 师生互动模块:师生交流平台。

(4) 浏览信息模块:查看信息。

2) 毕业生模块

(1) 选报课题模块:选择指导老师与课题。

(2) 上传论文模块:上传各阶段的论文。

(3) 下载文件模块:下载指导老师的资料。

3) 指导教师模块

(1) 申报课题模块:申报自己的课题。

(2) 分配课题模块:选择毕业生与其对应的课题。

(3) 上传论文模块:上传各个阶段的论文。

(4) 审批论文模块:审批上传的论文。

(5) 下载文件模块:下载毕业生上传资料。

4) 管理员模块

(1) 公告模块:信息。

(2) 课题管理模块:管理课题。

(3) 账号管理模块:管理毕业生与指导教师账号。

(4) 日常维护模块:数据库备份还原。

2.2业务流程图

2.2.1 管理员业务流程图

管理员定期对系统的信息进行更新和维护,可以对公告、课题、帐号信息进行查看、增加、修改、删除等操作,以及配置系统的参数。业务流程图如图1所示。

图1 管理员业务流程图

图2 教师业务流程图

2.2.2 教师业务流程图

教师登录系统后,可以对课题进行管理,审核选题信息。教师可以查看学生的选题情况和学生个人信息,并确定是否录用学生提交的课题。在选题完毕之后,教师可以在系统中批阅该课题的上交文件,并给出评价及评分。业务流程图如上图2所示。

2.2.3 学生业务流程图

学生登录系统后,可以查看公告,修改个人资料。学生在选题中,可以自由选择教师及其提供的课题,也可以自己选取导师并自定义课题。选题后,学生允许提交各个时期的文档文件,并将上传信息显示在教师端界面。学生的业务流程图如图3所示。

图3 学生业务流程图

3 详细设计与实现

为了系统开发以及后期的维护更方便和明确,实现对项目的分割,将项目分为DAO、Service、Action层。根据面向对象思想,建立实体类,实现实体关系,将后台的数据表映射出来到这实体类中,提供给DAO、Service、Action层使用。

在web.xml添加Struts、Spring、Hibernate的filter和listener。在WEB-INF文件夹里面编写Spring的application.xml,整合Spring和Hibernate,实现Spring的IoC和AOP功能。将spring与struts的整合在一起,使用了自动扫描技术和注解的方式为每个类自动配置映射文件,使得程序的可读性变强。

利用Hibernate编写DAO层,为每个模块建立DAO接口,在接口中实现了增删改查等方法,实现JAVA与数据库的数据交互,供Service层调用。

为每个模块建立独立的Service接口,每个接口将实现不同模块的逻辑。Service层是实现系统业务逻辑的接口。利用之前编写的DAO层的接口,编写Service层,实现业务逻辑。合理规划Service的分类,在进行系统维护时会非常便利。

Action层用于处理页面信息,根据不同的处理结果返回不同的页面到客户端。设计Action层,调用Service层方法进行逻辑处理,然后根据处理结果为客户端返回页面,最后对界面进行美化。实现过程如下:

在创建具体的Action时,应当先创建抽象类BaseAction,继承Struts2中的ActionSupport抽象类,声明一个map变量session,这样以后每当实现一个Action,只要继承BaseAction,便可使用到session进行权限控制。同时也要创建PageAction,继承Struts2中的ActionSupport抽象类,并在该类中声明一个分页技术所需要的参数,包括了记录总条目、当前页码和总的页数等参数。

客户端每向服务器提交一次请求,都会先被相应的拦截器(interceptor)拦截并进行校验,拦截器会检验session中的key为actor保存的对象是哪一个对象(Admin、Teacher、Student),若满足拦截器的通过条件,将允许继续进行操作,否则将强制跳转到登陆页。不同的Action将根据设计时规划好的权限设置不同的拦截器。

在线word文件的预览功能,使用的是PreviewAction里面的默认方法获取当前的文件内容,通过里面的execute方法将内容在pageOffice的插件上显示出来,并且如果我们修改里面的内容后直接通过插件的poCtrl1.setSaveFilePage()方法将数据保存起来。那么下次我们点开文件就可以看到保存后的最新内容。

数据管理功能,所要调用到的是DataManageAction里面的execute方法跳转到数据管理界面。其中每当我们点击备份时,我们将数据库名、登陆账号、密码、安装路径等参数传递给DataManageAction里面的backup方法,将数据进行备份出来并弹出备份是否成功的提醒消息,然后将数据库还原时,我们需要先选择备份的文件,最后将页面的参数传递给DataManageAction里面的restore方法,将数据还原并弹出是否还原成功消息。

日志管理功能,所调用到的是LogManageAction里面的execute方法跳转到日志管理界面。其中当我们点击“导出日志”时,我们将调用LogManageAction里面的export方法,将服务器上项目的HTK.log日志文件以流的形式将其下载到客户端,并弹出保存的窗口让用户选择存放的路径。当我们点击“清空日志”时,那么程序将会调用LogManageAction里面的clean方法,将服务器上的HTK.log日志文件里面的内容清空并弹出清空成功消息。

4 总结

设计难点:保证上传信息的导入正确的添加到后台数据库中,对导入的xls文件是通过暂存在服务器读取还是直接从客户端读取。评分功能中,如何确定角色并且实现正确评分。在进行系统详细设计时,必须从一个宏观的角度,考虑某一功能模块设计会不会对其他的功能模块造成不良影响。本系统设计中充分考虑到数据安全性和功能的可扩展性,按照软件测试流程完成了软件测试,确保系统最终满足用户需求。

参考文献:

篇(7)

1.1.数据格式

宏观经济数据是多样式显示功能的基础数据。就目前来看,宏观经济主要的来源是统计报表、城市卡片和县卡片。另外,基本单位汇总数据、人口普查汇总数据也是宏观经济数据的一部分。基本年鉴数据一般是报表数据经过处理后的结果,年鉴数据在统计局的业务位置不是很重要,但年鉴数据也是将来系统中可能需要处理的一部分,应该也作为一种宏观经济的数据来源来考虑。

宏观经济数据的组织形式是多种多样的,但透过复杂的数据组织结构,它们也存在着共性,就是每一个统计数据都可以通过空间、时间、指标来确定,用数据库的语言描述就是可以分为地址码字段、时间字段、指标字段,只要数据表中存在这几个字段,就可以完整的描述统计数据。

系统的宏观经济数据存储在SQLServer2005中,表1为典型的宏观经济数据表结构,其中的地址码与空间数据中的地址码(DZM)相对应,实现空间数据与统计数据的统一。查询后的宏观经济数据如2所示。

1.2.功能需求分析

论文重点研究多地区、多年、多指标的宏观经济数据查询结果的多种表格方式显示,具体有以下五种。(1)普通样式:原始表数据显示(2)地区分类样式:以地区为主,显示各个时间的各种指标信息。(3)时间分类样式:以时间为主,显示各个地区的各种指标信息。(4)指标分类样式:以各类指标为主,显示各个地区、不同时间的信息。(5)时间-指标样式:以时间加各类指标为主,显示各个地区的信息。

2.详细功能设计

2.1.界面设计

多样式表格显示模块需要以上述五种方式显示数据。其中,普通样式可以直接显示,不需要进行复杂处理。论文主要论述其他四种样式,具体显示效果如图3所示。如图1所示,时间分类样式为跨时间(年)的多地区、多指标数据显示;地区分类样式为跨地区的多时间(年)、多指标数据显示;指标分类样式为跨指标的多地区、多时间(年)数据显示;时间_指标分类样式为时间+指标的多地区数据显示。

2.2.核心组件设计

本身提供了一个数据绑定控件DataGrid[3]。可以直接将数据绑定到该控件中来显示所有数据,这样就避免的使用for循环实现数据显示,大大提高了程序的开发效率。总体上DataGrid控件是一个二维的数据网格,用表格形式显示数据源数据,并且支持选择、编辑、删除、分页显示和排序等功能。但是DataGrid控件只能显示单列数据,样式简单。SourceGrid组件具有很强的重绘功能,通过简单的命令,如rowspan=2,就可以实现跨行显示。系统基于开源组件SourceGrid开发出SuperGrid控件,如图2所示,可以轻松实现各种表格的跨行、跨列显示。

该组件提供了四个数据多样式显示接口、一个数据处理接口和五个数据输出接口,详细功能如下所示。>SpanState是实现跨地区显示的接口;>SpanYear是实现跨时间显示的接口;>SpanIndicator是实现跨指标显示的接口;>IndividualQuery是实现时间指标样式的显示接口;>ReduceDumensionality是实现降维处理的接口;>ExporHTML是实现HTML格式输出的接口;>ExporWord是实现Word格式输出的接口;>ExporExcell是实现Excel格式输出的接口;>ExporXML是实现XML格式输出的接口;>OutPutTable是实现表格输出的接口。其中,SpanState、SpanYear、SpanIndicator需要提供统一入口参数,即原始表格信息,表格格式为(DZM、MC、YEAR、I1、……、In)。实现时间-指标样式的显示效果,需要首先对原始数据进行降维处理,控件提供ReduceDumensionality方法实现此功能。

3.结论

免责声明:以上文章内容均来源于本站老师原创或网友上传,不代表本站观点,与本站立场无关,仅供学习和参考。本站不是任何杂志的官方网站,直投稿件和出版请联系出版社。
发表咨询 加急见刊 文秘咨询 杂志订阅 返回首页