ProAnalyzer概要设计文档.docx
- 文档编号:30155638
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:23
- 大小:547.54KB
ProAnalyzer概要设计文档.docx
《ProAnalyzer概要设计文档.docx》由会员分享,可在线阅读,更多相关《ProAnalyzer概要设计文档.docx(23页珍藏版)》请在冰豆网上搜索。
ProAnalyzer概要设计文档
ProAnalyzer项目概要设计文档
张楠
版本号
0.5
创建时间
2013.5.22
更新内容
目录
1引言4
1.1编写目的4
1.2背景4
2总体设计4
2.1需求规定4
2.2运行环境4
2.3基本设计概念和处理流程4
2.4结构6
2.5模块功能设计10
2.5.1ProAnalyzer平台10
2.5.2协议测试功能模块11
2.5.3覆盖性测试模块13
2.5.4协议包14
2.5.5协议解析模块15
3接口设计16
3.1用户接口(界面)16
3.2外部接口16
3.2.1与仿真器接口(TCP)16
3.3内部接口19
3.3.1协议测试,覆盖性测试与协议包接口19
3.3.2FrameInfo类20
3.3.3IProAnalyzer接口20
3.3.4A2Base类21
1
引言
1.1编写目的
构造项目结构,指导系统的详细设计搭建
1.2背景
名称:
ProAnalyzer协议顾问软件
提出:
李雨翔
开发者:
张楠,赵维
运行平台:
PC(windows)
2总体设计
2.1需求规定
本系统是由仿真器实现的单表测试系统的配套软件,用于进行标签的协议测试,可以通过加载不同的协议包实现对TypeC,GJB7377.1,GB,2.4G等多种RFID协议的测量。
详见需求文档。
2.2运行环境
硬件环境:
PC,仿真器
软件环境:
Windows.Net4.0
2.3基本设计概念和处理流程
软件流程图:
软件用例图:
2.4结构
根据对ProAnalyzer需求文档定义,对需求进行分析分解后,确定如下用例:
该项目具有如下扩展性要求:
●协议包可扩展
●不同的协议包具有不同的MAC层参数和前向指令
●测试功能可扩展
基于以上软件用例和如上所述扩展性要求,将软件按照如下结构进行分解:
整个软件分为两个部分:
ProAnalyzer主框架和协议包。
主框架可以加载一个协议包,每个协议包实现一种RFID协议的解析工作,将A2接口接收的原始数据进行分析,再打包成统一的数据帧结构发送到主框架。
主框架将帧信息进行显示,并将同一组的帧合并成时序图进行显示。
软件的基本业务流程图如下:
2.5模块功能设计
2.5.1ProAnalyzer平台
2.5.1.1主界面模块
2.5.1.2功能说明
启动模块是进入软件后的第一个运行的模块,该模块主要包含以下功能:
●对RFID协议仿真器进行管理
●提供进入不同测试功能的选择界面
●打开历史文件
测试功能启动时序图:
2.5.1.3界面设计
2.5.2协议测试功能模块
2.5.2.1功能说明
该模块可以详细显示协议交互的完整过程,以表格的方式列出协议中所有的前向和反向数据帧,并将通信时序过程和状态机跳转过程以图形的方式进行显示。
●帧数据显示
⏹可以显示各帧的时间和名称等基本信息
⏹使用颜色对不同每次通信的帧进行区分
⏹使用颜色对异常的帧进行区分
⏹点击帧可以显示该次通信的时序、状态机跳转和该帧的详细结构
⏹点击帧时时序图上对应数据帧高亮标记
⏹帧数据可以保存为XML文件,也可以从XML文件中导入
●帧结构详细数据显示
⏹显示该帧的原始数据
⏹显示该帧的描述信息
⏹显示每个bit对应MAC参数含义
●时序图显示
⏹显示一次完整通信所有的数据帧时间分布
⏹区分Reader和Tag发送的数据帧
⏹显示两个数据帧之间的间隔
⏹鼠标悬浮在数据帧上可以显示更多的时间信息
⏹点击数据帧时数据帧列表中对应数据帧高亮标记,同时显示该帧结构细节
●状态机图显示
⏹显示一次完整通信中状态机的跳转过程
⏹对于错误跳转的状态机用颜色进行标记
2.5.2.2界面设计
2.5.3覆盖性测试模块
2.5.3.1功能说明
用户通过该模块编辑一个覆盖物理层、MAC层参数的脚本,使用仿真器对脚本中的所有组合情况进行验证,并将验证的错误结果进行记录,同时生成的统计数据和雷达分析图。
●脚本编辑功能
⏹可以自定义频率循环和功率循环
⏹可以针对每种协议组合编辑MAC层参数
⏹脚本可以保存成XML文件,也可以从XML文件中导入
●异常状态显示
⏹可显示脚本中所有的测试异常
⏹显示每条异常的测试参数
⏹可以直接对异常参数进行协议测试
⏹通过颜色区分进行过协议测试和没有进行协议测试的异常项目
⏹对异常状态结果可以进行自定义的筛选功能
⏹异常状态表可以保存成XML文件,也可以从XML文件导入
●统计数据显示
⏹显示脚本总运行次数、成功次数、失败次数
⏹显示被测物的性能雷达图
⏹异常数据和统计结果可以导出到Excel中
2.5.3.2界面设计
2.5.4协议包
2.5.4.1参数编辑模块
2.5.4.2功能说明
由于每种协议的MAC层参数不一样,所以将参数设置界面放在了各个协议包中进行设计。
由于仿真器参数很多,所以参数设置界面中要对不同类型的参数进行分区显示。
●对物理层、MAC层参数进行配置
●将配置后的参数应用到仿真器
●自定义前向指令序列编辑
●保存仿真器参数配置方案到文件中
●打开以前配置的参数方案
2.5.4.3界面设计
2.5.5协议解析模块
2.5.5.1功能说明
协议解析模块是协议包的核心部分,负责将仿真器发回的原始数据根据A2接口定义进行分析,从而得到该帧中所包含的帧命令和命令中的参数数据。
2.5.5.2接口定义
仿真器接口要包含以下几类:
●仿真器基本操作
⏹基本操作主要包括连接、断开等基本指令。
●同步指令操作
⏹同步操作接口中实现了一发一收的操作模式,每次操作都要有返回或者超时后才可以进行下一次操作。
●异步指令操作
⏹异步操作接口中将数据发送到缓存区,驱动采用异步的方式从缓存区中提取数据后发送,另外启动一个接收现成进行数据接收,将接收到的数据以事件的形式回传给调用者。
●参数配置接口
⏹参数配置接口分为两种:
独立参数设置和参数块设置。
●覆盖性测试接口
⏹覆盖性测试接口可以一次设置一个参数组,仿真器将参数组运行完成后返回测试结果。
●帧结构解析接口
⏹接收原始数据和帧名称后,将原始数据解析成MAC层参数,然后返回给调用者。
具体接口定义请参阅《ProAnalyzer-协议包详细设计文档》。
3接口设计
3.1用户接口(界面)
详见模块与功能设计。
3.2外部接口
3.2.1与仿真器接口(TCP)
3.2.1.1第一层
A2接口上的数据包主要分为两类,请求数据包和响应数据包,所有数据均安装相应的规范封装后传送,第一层的帧格式如图表2所示。
在数据帧的发送过程中,当一个字段包括多个字节时,则高位字节传输在前,低位字节传输在后;在同一个字节内,先传输高位比特,然后再传送低位比特。
图表2是第一层帧的封装格式,具体的描述见图表下方。
+0
+1
+2
+3
Bit
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
Start
Protocol
Length
32
Sequence
Version
Reserved
64
Data
图表2第一层的帧结构
帧头中的每个字段说明如下:
1.起始符(start)
固定值0x38,标识一帧的开始。
2.协议类型(Protocol),指示Data中的数据类型
0x00–0x0F:
用于仿真器本身控制
0x00:
通用操作
0x01:
仿真器的功率校准
0x02–0x0F:
保留
0x10–0x1F:
用于HF
0x10:
14443A
0x11:
14443B
0x12:
15693
0x13:
18092
0x14:
NFC1
0x15:
NFC2
0x16–0x1F:
保留
0x20–0x2F:
用于UHF
0x20:
ISO18000-6Type-A
0x21:
ISO18000-6Type-B
0x22:
ISO18000-6Type-C
0x23:
ISO18000-6Type-D
0x24:
GJB7377.1
0x25:
GB
0x26–0x2F:
保留
0x30–0x3F:
用于2.4G
0x30:
GB
0x40–0xFF:
保留
3.长度(Length)
数据包的总长度
4.帧序号(Sequence)
帧序号为0~0xFFFF,通信的双方维护各自的序列号,每初始发送一帧的时候,使用当前的序列号,然后把当前序列号加一,如果超过0xFFFF,则重新计数。
如果是响应对方发出的请求,则使用请求数据包中的序列号。
5.版本(Version)
接口的版本
6.保留位(RFU)
将来使用,应该设为0。
3.2.1.2第二层
图表3是第二层数据帧的封装格式,涉及到了设备的具体控制,详解见图表下方。
0
1
2
3
Bit
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
Mode
P
B
RFU
T
Code
Length
32
Data
图表3第二层的帧结构
7.工作模式(Mode)
000b:
初始状态
001b:
Reader
010b:
Tag
其它:
保留
8.参数序列数据(P)
指示Data区域包含参数序列,数据格式见图表4,这部分数据为可选
9.二进制数据(B)
指示Data区域包含二进制数据,数据无具体格式,这部分数据为可选
10.保留位(RFU)
应该设置为000b
11.操作类型(T)
0b:
请求
1b:
响应
12.操作码(Code)
操作类型
当T=0b时表示请求操作
当T=1b时表示响应操作
13.长度(Length)
数据包的总长度
图表4为参数序列形式的数据格式,主要用于设备控制和请求结果数据的返回。
No表示参数序列数据中的参数个数,占用1个字节。
ID是每个参数的标识符,用于参数的识别,占用1个字节。
Length字段占用1个字节,表示参数所占的字节大小(sizeof(Value)+2)。
Value字段表示参数的值,长度不确定。
Byte
0
1
2
3…
…
n
n+1
n+2...
Field
No
ID
Length
Value
ID
Length
Value
Value
图表4参数序列
3.3内部接口
3.3.1协议测试,覆盖性测试与协议包接口
3.3.1.12.2.1CommandInfo类
经过分析后的RFID命令数据,由协议解析模块对数据解析后,通过此数据结构返回给上层界面进行显示。
经过分析后的RFID命令数据,由协议解析模块对数据解析后,通过此数据结构返回给上层界面进行显示。
3.3.1.2属性
名称
类型
说明
SeqId
int
RawData
string
命令原始数据
Name
string
命令名称
Length
double
命令长度,单位us
Interval
double
与前一命令间隔时间,单位us
Direction
EnumDirect
命令方向
Description
string
命令描述
Status
EnumStatus
命令状态
MacParams
HashTable
Mac参数列表
例如:
RawData=10000000000010101
Name=“Query”
Length=173.5
Interval=75.2
Direction=EnumDirect.Fwd
Description=“StartInventory,Q=(0,256),Session=S0,Target=A,DR=64/3”
Status=EnumStatus.Normal
3.3.2FrameInfo类
FrameInfo类是A2接口的实体类,符合A2接口数据结构定义。
3.3.2.1属性
名称
类型
说明
SeqID
short
帧编号
Protocol
byte
协议
Version
byte
固件版本号
Code
byte
仿真器操作码
Params
List
参数列表
例如:
SeqID=0
Code=0x03
Params={0x20,0x02,0x71}{0x21,0x13,0x88}
3.3.3IProAnalyzer接口
3.3.3.1方法
检查覆盖性测试参数是否应该成功
boolCheckParamAvailable(objectemuparam);
下载仿真器参数
intSetEmuParam(objectemuParam);
获取当前参数实体
objectGetEmuParam();
为仿真器设置指定名称的参数
intSetParamByName(stringparamName,objectparamValue);
通过参数名称获取一个仿真器参数
objectGetParamByName(stringparamName);
设置自定义测试命令序列
intSetCmdTest(SessionInfosession);
获取协议支持的Session列表
List
执行一个协议所支持的Session
SessionInfoInvokeSession(intsessionId,stringsessionName);
覆盖性测试
List
覆盖性测试(重载)
List
3.3.4A2Base类
A2Base类封装了Socket的收发操作,对FrameInfo类进行同步收发和异步收发。
3.3.4.1属性
名称
类型
说明
Address
string
仿真器地址
Protocol
byte
仿真器支持协议
WorkMode
EnumMode
仿真器工作方式
TimeOut
int
仿真器连接超时时间,单位ms
例如:
Address=“192.168.1.61”
Protocol=0x22
WorkMode=EnumMode.Reader
TimeOut=2000
3.3.4.2方法
publicintConnect()
说明:
连接仿真器
参数:
无
publicintConnect(stringaddress,byteproCode)
说明:
连接仿真器
参数:
名称
类型
说明
address
string
仿真器地址
proCode
byte
协议代码
publicintDisconnect()
说明:
断开仿真器连接
参数:
无
publicintReset()
说明:
重置仿真器
publicintInquiry()
说明:
查询仿真器配置
参数:
无
protectedvoidSend(shortseqId,bytecode,byte[]param)
说明:
发送数据(同步)
参数:
名称
类型
说明
seqId
short
帧ID
code
byte
操作码
param
byte[]
操作参数
protectedvoidSend(FrameInfoframe)
说明:
发送数据(同步)
参数:
名称
类型
说明
frame
FrameInfo
帧数据
protectedList
说明:
接收数据(同步)
protectedvoidSend2Buffer(FrameInfo)
说明:
发送数据到缓存区,缓存区的数据会在异步模式下自动发送
publicvoidBeginAsync()
说明:
开始异步模式
publicvoidStopAsync()
说明:
停止异步模式
3.3.4.3事件
publicdelegatevoidA2EventHandler(A2Basesender,objecte)
publiceventA2EventHandlerAsyncFrameReceive
说明:
异步数据接收
publiceventA2EventHandlerConnectInterrupt
说明:
连接出现异常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ProAnalyzer 概要 设计 文档