通用报文编解码与串口测试软件的研究与实现
使用Keil软件模拟调试单片机串行口

使用Keil软件模拟调试单片机串行口单片机串行口是单片机中很常见的接口之一,常用于与外界通讯,如与PC机通讯,接收或发送数据等。
Keil软件可以帮助我们模拟及调试单片机串行口,下面是详细介绍。
一、Keil软件简介Keil是一款强大的单片机编程软件,具有模拟器和仿真器。
其可支持多种嵌入式系统和多种编译器。
同时Keil具有标准C 编译器,专门用于单片机编程,而且具有与某些模拟器和编译器的集成,可提供完整的嵌入式开发环境。
二、使用Keil软件模拟1. 连接软件与硬件在开始模拟之前,需要将单片机与电脑通过串口连接好。
打开“Options for Target”对话框,选择“Debug”选项卡,选择正确的COM 端口,设置存根速度,完成调试设置。
2. 添加串行口文件在Keil软件中打开设计文件,键入“#include <reg52.h>”来添加注册头文件,其中包含了需要使用串口的相关寄存器位。
利用如下代码,可以对串行口的各项参数进行设置,例如波特率、校验位等等。
void init(){SCON = 0X50; //使串口工作在方式1,即8位数据,可变波特率TMOD |= 0X20; //TMOD的高4位设为0010,使Timer1工作在方式2TH1 = 0XF3; //波特率设为2400bpsTL1 = 0XF3;TR1 = 1; //启动Timer1ES = 1; //开启串口中断EA = 1; //打开总中断}3. 编写数据收发代码在调用串口的过程中,我们往往需要使用到接收和发送两个函数。
在接收方面,我们需要设置好接收中断模式以及缓冲区的异步处理。
编写简单的数据接收收发代码如下:void send_data(unsigned char dat){SBUF = sdat; //将数据传输到SBUF当中while(!TI); //等待发送完成TI = 0; //完成发送}unsigned char receive_data(){while(!RI); //等待接收完成RI = 0; // 完成接收return SBUF; // 返回接收缓冲区}4. 最后进行模拟完成串行口配置和数据处理之后,就可以开始模拟调试了。
串口读写程序

串口读写程序一、概述串口是一种广泛应用于嵌入式系统中的通信方式,其具有简单、可靠、稳定等特点。
串口读写程序是指通过编程实现对串口进行数据的读写操作,从而实现与外部设备的通信。
二、串口基础知识1. 串口通信原理串口通信是通过将数据转换成电信号在串行线路上传输,接收方再将电信号转换为原始数据进行处理。
在传输过程中,需要设置一些参数来确保数据传输的正确性和稳定性。
2. 串口参数设置常见的串口参数设置包括波特率、数据位、停止位和校验位等。
波特率指每秒钟传输的比特数,数据位指每个字符所占用的比特数,停止位指每个字符结束时发送一个停止位以示结束,校验位则用于检测传输过程中出现的错误。
3. 串口读写操作在进行串口读写操作时,需要先打开对应的串口,并设置好相应的参数。
然后可以通过调用相应的函数实现数据的读取和发送。
三、Windows平台下C++实现串口读写程序1. 准备工作首先需要安装一个支持串口编程的库文件,在Windows平台下常用的库文件有WinAPI和MFC等。
这里以WinAPI为例进行说明。
2. 打开串口在WinAPI中,可以通过CreateFile函数打开串口。
具体实现代码如下:HANDLE hComm;hComm = CreateFile("COM1", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);if(hComm == INVALID_HANDLE_VALUE){// 打开串口失败}其中,"COM1"表示要打开的串口号,GENERIC_READ和GENERIC_WRITE分别表示读和写的权限。
3. 配置串口参数在打开串口后,需要设置相应的参数。
可以通过DCB结构体来设置波特率、数据位、停止位和校验位等参数。
具体实现代码如下:DCB dcb;memset(&dcb, 0, sizeof(dcb));dcb.DCBlength = sizeof(dcb);GetCommState(hComm, &dcb);dcb.BaudRate = CBR_9600; // 设置波特率为9600dcb.ByteSize = 8; // 设置数据位为8dcb.StopBits = ONESTOPBIT; // 设置停止位为1个dcb.Parity = NOPARITY; // 不使用校验位SetCommState(hComm, &dcb);4. 读取数据在配置好相应的参数后,就可以开始进行数据的读取了。
ComMonitor捷通串口调试软件使用手册

ComMonitor捷通串口调试软件使用说明书(6)编写:捷通模拟通讯实验室Email:***************捷通模拟通讯实验室二零零九年十一月目录一、介绍 (2)二、软件界面 (2)2.1 软件主界面 (2)2.2 最大化界面 (3)2.3窗口置顶 (4)三、显示区控制 (6)3.1显示发送 (6)3.2帧换行 (6)3.3显示保存发送和接收时间 (7)3.4关键字过滤 (8)3.5 保存显示区内容 (8)四、发送区数据发送控制 (10)4.1 发送区数据格式说明 (10)4.2手动控制 (10)4.3自动发送 (11)4.4 校验码计算 (11)五、轮发功能 (13)5.1 发送区轮发 (13)5.2文件轮发 (13)5.3定时轮发 (15)5.4 帧回应轮发 (15)六、常见问题索引 (18)6.1 串口不能打开 (18)6.2 接收到的数据不对 (18)6.3 接收区没有显示 (18)6.4 自动发送为什么没有发送数据 (18)6.5 如何获得最新的ComMonitor软件 (18)6.6 关于ComMonitor软件源代码 (18)6.7 ComMonitor软件注册 ............................................................................. 错误!未定义书签。
一、介绍ComMonitor捷通串口调试软件追求的是方便易用,能调试大多数的串口通讯应用。
本软件参考了串口调试助手,但又根据自己多年的工作经验,添加了更多的实用功能。
具体来讲,它除了具备一般的串口调试工具的功能以外,还具有以下特别之处:1、支持多达20个串口,对于使用多串口卡或虚拟串口的用户是很必要的;2、加入了接收显示与保存的关键字过滤功能;3、具备接收显示与保存时帧换行功能,40ms未受到数据,认为一帧结束;4、具有记录发送和接收时间的功能;5、支持3个独立的发送区;6、3个发送区可以以定时或响应等两种方式进行轮发;7、具有计算CRC16、CRC8等校验码的功能;8、自动保存上一次使用的端口配置;9、自动保存上一次发送区的数据;10、具有文件按行发送轮发功能,发送方式也可以采用定时和响应两种方式;11、轮发响应方式中,加入了超时判断,和自定义多次重发功能;12、所有参数和数据支持运行时改变,不需要重新启动;13、轮发时可以选择只轮发一遍,还是不断轮发;14、收发报文用不同的颜色显示,红的为接收,篮的为发送;ComMonitor捷通串口调试软件设计开始就是针对调试串口设备通讯的。
PCIE接口8B10B编、解码的实现

学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注应用的内容外,本文不包括任何其他个人或集体已经发表或撰写的成果作品,本人完全意识到本声明的法律后果由本人承担。
作者签名:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
本学位论文属于1、保密囗,在年解密后适用本授权书2、不保密囗。
(请在以上相应方框内打“√”)作者签名:年月日导师签名:年月日本科生毕业设计(论文)任务书学生姓名专业班级指导教师工作单位设计(论文)题目: 基于QuartusII的PCIE接口的编解码原理及其实现设计(论文)主要内容:1.熟悉了解PCIE接口的结构及特点。
2.学习并掌握PCIE接口中所使用的8b/10b编、解码原理。
3.对Verilog硬件设计语言进行学习掌握。
4.对QuartusII开发软件及ModelsimSE仿真软件进行系统学习。
5.8b/10b编、解码电路的设计、硬件语言描述及其仿真。
要求完成的主要任务:1.查阅不少于15篇的相关资料,其中英文文献不少于2篇,完成开题报告。
2.熟悉Verilog语言以及FPGA的开发流程。
3.完成8b/10b编码及解码电路的设计,包括功能定义、功能仿真及逻辑综合。
4.完成不少于20000字的英文文献翻译。
5.参考文献20篇,其中5篇外文参考文献,完成不少于15000字的毕业论文,论文中图纸折合成3张1~2号图纸,不少于15张图。
必读的参考书目[1]Steve Kilts.Advanced FPGA Design Architecture,Limplementation andOptimization[M].NewYork:John Wiley & Sons,2007.[2]杨跃.FPGA应用开发实战技巧精粹[M].北京:人民邮电出版社,2009.[3]李有谋.8b/10b编码器的设计及实现[J].电讯技术,2005(6):26—36.指导教师签名系主任签名院长签名(章)____________武汉理工大学本科学生毕业设计(论文)开题报告目录摘要 (1)ABSTRACT (2)1 绪论 (3)1.1 PCIE综述 (3)1.2 8B/10B简介 (4)1.3 FPGA综述 (4)1.4 Verilog HDL综述 (6)1.5 研究内容及预期目标 (6)2 8B/10B编码及解码原理 (8)2.1 编码原理 (8)2.2 解码原理 (13)3 FPGA单元结构及系统设计思想 (16)3.1 FPGA单元结构 (16)3.2 系统设计思想 (17)4 系统设计 (21)4.1 编码系统设计 (21)4.2 解码系统设计 (23)5 逻辑综合及仿真实现 (26)5.1 逻辑综合 (26)5.2仿真 (27)6 总结与展望 (31)6.1 总结 (31)6.2 展望 (31)参考文献 (32)附录A 8B/10B编码表 (33)附录B 控制字符的编码和定义 (36)附录C 部分源程序VERILOG代码 (37)致谢 (46)摘要PCIE全名为PCI Express,是第三代高性能总线接口,在计算机和通信平台领域广泛地应用在外围设备互连上。
DVB_CI通用接口协议的实现研究

,-.$/0 两种接口的协议都是分层的,这既便
于扩展, 也便于其协议栈的软件实现。通过 ,-.$/0 接口, 可以在机顶盒和多个模块间建立连接, 并且 还能使机顶盒识别哪个模块能对接收到的码流进 行解扰。
(
,-.$/0 接口协议要点
,-.$/0 协议定义了机顶盒端为实现交互所必
MKK 等 /1 信 息 的 软 硬 件 模 块 , 以 及 在 屏 显 示 OPJ,Q 与 /1 和用户购买节目相关的信息。它输出解
KLMN 数据流透明地传入外部模块,立即启动外部
解扰模块并把解扰后的码流通过 ,-.$/0 传送接口 传回。而命令接口较为复 杂 , 它提供外部模块运行 的应用程序和主机资源之间的通信。
,-.$/0 把 所 有 外 部 模 块 /1 系 统 的 细 节 对 机
顶盒都屏蔽掉,但用户可以和所挂接的 /1 系统透 明交互。因此, 可在同一 个 机 顶 盒 上 支 持 多 个 外 部 模块; 支持主机和模块之间复杂的组合事务; 与机 顶盒为模块提供资源的可扩展功能原语。
J/39K 的定时器模块三大部分。
电视技术
!"
!""# 年 第 $ 期 总 第 !%# 期
&$9:’;<!&:$ !#’;&$<=
! 初始化 模 块 , 初 始 化 协 议 各 个 层 次 的 状 态
机链表。如设传输层起始 状 态 为 空 闲 状 态 , 初始化 发送和接收缓冲区对其加 以 清 零 , 把对硬件的驱动 建立 &’ 卡的通信连接等。上图所 注册到 !"#$% 中, 示其它模块也是由初始化模块启动的。
【 ; 9>=?484>=6: 699;55( ; D7>8>9>: 7;6:4C684>= ./0 12+3) 】 ,-.$/0 ( 9>BB>= 4=8;7<69; ) /1 )
Visual Studio串口通信与测控应用编程实践

4.1.1 单片机测控系统 的组成
1.单片机测控系统的 硬件组成
2.单片机测控系统的 软件组成
4.1.2 单片机开发板B 的功能
4.1.3 单片机开发板B 的主要电路
1.电源电路 2.时钟电路 3.复位电路 4.数码管显示电路 5.串口通信驱动电路
4.2 PC与单片机开发板B组成的测控系统
2017
3.1 典型数据采集卡简 介
3.1.4 PCI-1710HG数据采集卡安装与测 试
1.数据采集卡的性能
2.基于PCI-1710HG数据采 集卡构成的测控系统组成
3.PCI-1710HG数据采集卡 的安装
4.PCI-1710HG数据采集卡 的测试
5.ActiveDAQ控件的安装
3.2 PC与PCI-1710HG数据采集卡组成的测控系统
2.2 PC与西门子S7-200 PLC组成的测控系统
2.2.5 PC端VC++.NET测控程 序设计
1.利用SerialPo-200 PLC组成的测控系统
2.2.6 PC端C#.NET测控程序 设计
1.利用SerialPort控件实现 2.利用MSComm控件实现
03
Part One
3 基于PCI数据采集卡的测控系统
3.1 典型数据采集卡简介
1
3.1.1 数据采集系统概述
2
3.1.2 基于PC的DAQ系统组成
3
3.1.3 .NET语言数据采集与控 制的方式
4
3.1.4 PCI-1710HG数据采集 卡安装与测试
3.1 典型数据采 集卡简介
3.1.1 数据采集系统概述
2018
1.2.3 三菱 PLC端测控程
序设计
串口通信回环测试参考文献

串口通信回环测试参考文献引言串口通信是一种常用的数据传输方式,在嵌入式系统、工业自动化、电子设备等领域广泛应用。
为了确保串口通信的可靠性和稳定性,需要进行回环测试。
本文将通过参考文献,介绍串口通信回环测试的原理、方法和实施步骤,以及常见问题的解决方案。
一、回环测试的原理和目的回环测试是通过将串口的发送引脚与接收引脚连接,将发送的数据直接回读,验证数据的准确性和传输的稳定性。
回环测试的目的是检测串口通信是否正常,以及排除硬件和软件方面的故障。
二、回环测试的方法和步骤1. 硬件回环测试硬件回环测试通过连接发送引脚(TX)和接收引脚(RX)实现。
具体步骤如下:(1)将一根串口线的发送引脚(TX)和接收引脚(RX)连接在一起。
(2)打开串口终端软件,设置串口号、波特率等参数。
(3)发送数据,然后查看接收到的数据是否与发送的数据一致。
2. 软件回环测试软件回环测试通过使用串口调试助手等工具模拟串口设备,实现数据的发送和接收。
具体步骤如下:(1)下载并安装串口调试助手等工具。
(2)打开串口调试助手,设置串口号、波特率等参数。
(3)发送数据,在接收窗口查看接收到的数据是否与发送的数据一致。
三、常见问题及解决方案1. 数据接收异常问题描述:发送的数据无法正常接收。
解决方案:检查串口线是否连接正确,检查串口参数是否设置正确,检查串口驱动是否安装正确。
2. 数据传输错误问题描述:发送的数据与接收的数据不一致。
解决方案:检查串口线是否接触良好,检查串口参数是否设置一致,检查串口通信的时序是否正确。
3. 传输速率异常问题描述:数据传输速率过慢或过快。
解决方案:检查串口波特率是否设置正确,检查串口设备的硬件支持的最大传输速率。
4. 数据丢失问题描述:发送的数据在传输过程中丢失。
解决方案:检查串口线是否损坏,检查串口设备的缓冲区是否设置合理,增加数据传输的校验机制。
四、总结串口通信回环测试是确保串口通信可靠性的重要步骤。
通过硬件回环测试和软件回环测试,可以验证串口通信的正常性,并解决常见问题。
友善串口调试助手使用

友善串口调试助手使用导言:友善串口调试助手是一款常用的串口通讯工具,可以用于串口数据的发送与接收,同时还提供了一些其他功能,如数据格式转换、数据保存等。
本文将介绍友善串口调试助手的基本使用方法,帮助用户快速上手并正确使用该工具。
一、安装友善串口调试助手友善串口调试助手可在友善速搭官网上进行下载。
下载完成后,双击安装包进行安装,根据安装向导逐步完成安装。
二、打开友善串口调试助手成功安装完成后,在桌面上会有一个快捷方式图标,双击图标即可打开友善串口调试助手。
打开后,会出现一个简洁的界面,包含多个功能面板。
三、配置串口参数在使用友善串口调试助手之前,首先需要配置串口参数。
点击界面上的“串口设置”按钮,会弹出一个配置面板。
在该面板上,可以设置串口的端口号、波特率、数据位、停止位、校验位等参数。
根据实际需求设置好参数后,点击“确定”按钮保存配置。
四、打开串口配置好串口参数后,需要点击界面上的“打开串口”按钮来打开串口。
成功打开串口后,可以在界面上看到实时接收到的串口数据。
五、发送数据友善串口调试助手支持对串口进行数据的发送。
在界面的发送面板中,可以输入要发送的数据。
支持多种发送方式,可以选择发送字符、发送十六进制、发送文件等。
输入完数据后,点击“发送”按钮即可将数据发送到串口中。
六、接收数据友善串口调试助手实时显示串口接收到的数据。
在界面的接收面板中,可以看到串口接收到的数据,可以选择显示字符、显示十六进制等方式展示数据。
同时,还可以设置数据的显示格式,如设置显示的数据长度、分隔符等。
七、数据格式转换友善串口调试助手还提供了数据格式转换的功能。
可以将接收到的串口数据转换为指定格式的数据。
在界面上的数据转换面板中,可以选择转换的数据格式,如ASCII码、十六进制等,设置好转换后,点击“转换”按钮即可将接收到的数据进行格式转换。
八、数据保存在使用友善串口调试助手时,可以将接收到的数据进行保存。
点击界面上的“保存”按钮,会弹出一个保存对话框,可以选择保存的文件路径和文件名,保存完成后,可以随时打开保存的文件查看数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通用报文编解码与串口测试软件的研究与实现 【摘 要】为提高串口测试软件的通 用性和灵活性、提高测试效率,提出一种 通用报文编解码与串口测试软件的实现方 案,重点对报文编解码所涉及的关键技术 进行研究。 【关键词】串口测试串行通信报文 编解码自动化 【中图分类号】G【文献标识码】A 【文章编号】0450-9889(2015)06C- 0189-02
在串行通信系统系统的测试工作 中,报文协议是一项非常重要的测试内 容,需要对各种报文协议进行大量的测 试。测试人员在设计测试用例时针对每 个报文协议手工编制大量的测试报文, 再通过串口调试工具来进行串行通信并 完成相关测试,最后根据报文协议来人 工判读测试数据,工作量相当繁重。此 外,报文协议的复杂性、枯燥性,以及重 复性地输入输出数据给手工测试带来了 很大的困难,大量测试报文的编制和解 析更增加了手工测试的难度和出错率。 编写专用的串口测试程序是提高测试效 率和准确性的有效途径,但是各类系统 的报文协议种类多、区别大,使用专用的 串口测试程序只能完成特定系统、特定 报文协议的测试任务,无法灵活满足新 系统、新报文协议的测试需求。 针对上述问题,本文以提高串口测 试软件的通用性和灵活性、提高测试效率 为主要目标,提出一种通用报文编解码与 串口测试软件的实现方案,重点对报文编 解码所涉及的关键技术进行研究。 一、软件系统组成 在数字通信中,一次通信所要传输 的所有数据称为报文。待测的串行通信 系统各个组成部分以及系统与外界之间 必须按照协议来传输报文数据,因此在 对系统进行测试的过程中,报文协议是 一项非常重要的测试内容,需要进行大 口南宁职业技术学院 黄 伟 量的报文编码、串口调试及报文解析工 作。因此,通用报文编解码与串口测试软 件总体上由报文元数据管理模块、报文 管理模块、串口测试模块、报文解析模 块共4个模块组成。 报文元数据管理模块主要实现 报文系统的元数据定义功能。元数据 (Metadata)是描述数据的数据(data about data),主要是对数据属性(property)的描 述性信息。对于报文系统而言,元数据描 述了报文协议的数据结构和报文字段的 格式。报文元数据管理模块通过友好的用 户界面,让用户方便地输入和维护待测试 报文协议的报文元数据。 报文管理模块提供一个直观的报 文编辑界面,根据指定的报文协议的元 数据信息,将数据帧结构中各项参数的 具体含义和可选值等信息通过友好的用 户界面呈现给用户,并根据用户设定的 各项参数值生成十六进制的报文数据。 串口测试模块负责将报文管理模块 生成的一条或多条报文数据发送到对应 的串口,并接收串口的应答报文。 报文解析模块负责解析不同应答 报文的具体含义,将报文的内容和意义 直观展示给用户。由用户指定需要解析 的应答报文以及期望匹配的报文协议, 该模块根据报文协议的元数据信息,将 十六进制的应答报文解析为用户可以理 解的报文状态参数值。 二、关键技术实现 (一)数据存储方式。报文元数据既 可以存储于XML文件,也可以存储于关 系型数据库,两种方式各有利弊: 1.XML文件随系统软件存储于本地 计算机,适合在单机环境使用;XML的 语法非常适合描述数据,能清晰地表示 数据的逻辑结构,易于用户理解,用户使 用操作系统自带的文本编辑器即可对报 文元数据进行维护。但报文元数据均以 明文方式存储于XML文件之中,缺乏安 全性保护机制,如果是多用户共用则可 能造成用户敏感数据的泄漏。 2.关系型数据库 ̄IISQL Server既能 有效地存储报文元数据,又提供了很好 的安全性保护机制,适合在单机环境和 网络环境使用。但是采用关系型数据库 增加了系统部署的工作量和难度,不利 于非专业人员使用。 本文采用SQLite来存储报文元数据。 SQLite是一款轻量级的关系数据库,具有 零配置的特点,无需安装和管理配置,是 存储在单一磁盘文件中的一个完整的数 据库。SQLite可以为数据库文件设置访问 密钥,从而实现基本的数据安全保护。由 于SQLite既适合在单机环境使用,无需安 装和管理配置,又具有关系型数据库的优 点,因此是一种比较理想的数据存储方 式。如果采用抽象工厂设计模式,还可以 方便的迁移到其他诸 ̄IISQL Server等数据 库系统以实现C/S模式运行。 (二)报文元数据管理。本文研究的 串口数据帧由帧头、数据及帧尾3部分组 成。帧头标记每帧报文的开始,长度和 值由串口通信协议具体定义。数据域存 放数据帧的信息内容如方位角、俯仰角, 或控制指令如自检命令、授时命令等。帧 尾是整个数据域与帧头的校验码,常用 的校验方式有累加和校验、异或和校验、 循环冗余校验等,有的协议帧尾使用固 定的值,甚至没有帧尾。
图1通信数据帧格式 一个典型的串口数据帧示例如表1 所示。 表1串口数据帧示例 字节序号 内容 备注 1 帧头1 0xA5 2 帧头2 0x5A 3 速度高八位 4 速度低八位 5 高度高八位 6 高度低八位 7 目标大小 8 校验码 l ̄7累加和 据此设计报文元数据的存储结构, 包括数据帧表、帧头表、数据域表、位域 表及枚举值表。具体作用如—Fo 1.数据帧表:包含某一类报文的描 述性名称,帧头长度,数据域长度以及校 验方式。 2.帧头表:存储某一类报文帧头各 个字节的描述性名称和值。 3.数据域表:存储某一类报文数据 域的各个数据项的描述性名称、数据类 型、存储方式等信息。数据项的存储方 式又定义为高中低3个字节、高低2个字 节、不含位域的1个字节、包含位域的14" 字节等类型。所谓“位域”是把一个字节 中的84-2进位划分为几个不同长度的区 域,这样就可以用一个字节的二进制位 域来同时表示几个信息。如果数据项包 含位域,还需通过位域表来进一步描述 各个位域的具体信息。 4.位域表:存储组成某个字节的各 个位域的描述性名称、位域长度、是否 提供枚举值、是否有默认值等信息。 5.枚举值表:用于创建报文编辑界 面的时候,为枚举型的位域提供输入选 项,如是,否、有效/无效、正常/故障,等 等。枚举值表存储这些选项的描述性名 称和对应位域的二进制值。 (三)报文管理。报文管理模块主要 解决两个关键问题:一是从报文元数据 加载指定的报文协议定义,并动态生成 报文编辑界面;二是用户根据用户在报 文编辑界面设定的各项报文参数,动态 生成十六进制的报文数据。 1.动态生成报文编辑界面。由于不 同报文协议的报文格式、内容及长度不 一,因此报文编辑界面必须根据具体的 报文协议来动态生成。.NET Winform的 TableLayoutPanel控件提供了一个表格 布局模版,适合以表格形式在窗体上动 态添加控件,表格的行数也可以根据报 文长度动态增加。本文使用单选按钮控 件,提供默认值、枚举值及自定义值等 选项来给用户指定各个报文字段的值, 单选按钮控件与其所代表的报文元数据 的名称和值(Name-Value)绑定,用户选 中单选按钮即可将其对应的报文字段值 显示在当前行。 2.动态生成报文数据。这是本文所 述系统的关键功能,实现的算法是根据 报文元数据所定义的字节和位域顺序, 在报文编辑界面依次查找和读取各个报 文字段的当前值,并将读取到的十六进 制或二进制值,经数据转换和重组之后 形成一条相对完整的报文。 对于占1字节、包含位域的报文字 段,程序将该字节各个位域的二进制 值,全部拼接成一个8位二进制字符串, 再转换为十六进制值。 对于占2字节的报文字段,值范围 为十进制数0~65535,需要程序对用户输 入的值进行数据转换,分别提取其十六 进制表示的高八位和低八位。例如十进 制数60110,转换的结果为0xEA(高八 位)、0xCE(低八位)。借助c样语言中 StructLayout和FieldOffset特性,可以比 较方便的实现相关的数据转换。 (四)发送报文。报文管理模块生 成的报文并未包含校验码和帧尾,并不 是完整的一条报文。在串口测试工作中, 校验码也是一个重要的测试内容,还需 要对缺少校验码或校验码错误的情况进 行测试,如果由报文管理模块来自动计 算出校验码,会对后续的串口测试工作 造成不便。因此本文在设计软件时,将 添加校验码和帧尾的工作放在串口测试 模块实现。用户在窗体上设定校验码为 “无、自动计算、随机生成错误值”三个 选项之一,以及指定是否在报文末尾附 加固定的帧尾值,报文将按指定的要求附 加校验码和帧尾之后才被发送到串口。串 口测试模块还可提供串口参数设定、自动 定时发送、接收串口数据等功能。 (五)报文解析。报文解析是报文编 码的逆过程。报文解析模块有两种实现 方案:一是对串口测试模块接收到的报 文数据进行实时的解析,二是先保存接 收到的报文再进行解析。相比之下后者 更为合理,因为系统在短时间内可能会 接收到大量的报文数据,如果对这些数 据进行实时解析和显示,界面上信息刷 新的速度会非常快,用户可能还没有看 清楚某个报文的具体意义,界面上的信 息就已经发生了变化。因此,为了分析测 试数据的需要,报文解析模块应当先保 存捕获到的报文,等到捕获的报文数量 达到一定值时自动或手动停止报文的捕 获,然后再开始对报文进行分析。 报文解析模块根据报文的数据帧 格式来读取通过串口测试模块接收到的 串口数据,并根据报文元数据的定义,将 串口数据逐字节、逐位域的解析还原为 有具体含义的报文信息,最后通过友好 的界面将报文的内容和意义直观展示给 用户。报文解析功能有助于测试人员观 察待测系统对于测试数据的响应是否与 测试用例的预期结果相符,减少了测试 人员人工判读测试结果的工作量,提高 了测试效率和准确性。 综上,本文探讨和实现了一种通用 报文编解码与串口测试软件的实现方案 以及涉及的关键技术。实际应用情况表 明,该软件能减轻测试人员的工作量, 避免了测试过程中人为的疏忽和错误, 提高了测试效率和正确率,同时也提高 了串口测试软件的通用性和灵活性。当 然,该软件还存在继续改进的空间,例如 可进一步朝着自动化测试产品的方向改 进,根据测试脚本自动生成测试用例,并 自动形成测试结果和报表,最终实现测 试过程自动化和测试结果自动化。
【参考文献】 [1]刘烨,王永斌,刘宏波.报文解 析工具中的XML数据字典[J].计算机工 程,2009(3) [2]陈乃澍,吴国庆.炮兵指挥系统测 试的报文通用解析编辑模型[1].火力与 指挥控制,2009(6) [3]马贤颖,刘文红,夏烨.航天测控 系统遥控软件自动化测试仿真平台研究 [J].系统仿真学报,2014(4) [4]董延杰,宋朝辉,陈静.嵌入式软 件串口通信自动化测试工具的研究[T].自 动化应用,2014(1O) [5]曹佳佳.应答器报文编译码的研 究与设计[J].科技信息,2012(1) [6]侯高雷,黄明山,李志华.基于 C-#的终端自动化测试系统设计与实现 [J].现代电子技术,2012(2) [7]张婷婷.基于,NET的RS一232高 效串口调试程序设计与实现[J]计算机光 盘软件与应用,2012(17)