前言
为何设计此调试工具软件,完全因为在工作中遇到的问题。如产品开发过程中涉及到众多的命令调试(可能需要使用人员记住各种命令),参数及状态数据查看、修改,串口或网口通信调试,软件在线升级等等。同样,在测试及生产过程中也会涉及到诸多的操作需求,甚至对于测试中的问题跟踪提供便利操作,包括跟踪信息、操作日志跟踪等等。所有这些可能的需求,都将其集中在一个工具软件中执行,其所具有的功能完全已经超出了普通的串口助手或网络调试助手。
这里本人对日常产品开发中对设备参数做一个说明。
1,设备参数分类
在实际产品软件开发时,往往对设备来说有较多参数需要设置。对其归纳一下,大致可以分为4类:设备基本信息、设备工作参数、设备通信参数、设备状态,当然可能还会有一些其它参数,比如我在工作中就还会有拟合数据参数,但这不太具有一般性,以下仅说明前述的4类参数。
1) 设备基本信息:主要描述设备名称、设备ID、设备型号、软硬件版本号、生产日期、生产厂商等信息。基本信息主要用于标识一个具体设备,其信息大部分往往是固定;这个参数可读写;
2) 设备工作参数:主要描述设备工作中使用的可变参数,如某个阈值,某个时间值等。这部分参数即可以包括工厂模式修改,也可以包括客户模式修改,只需要软件进行区分即可;这个参数可读写;
3) 设备通信参数:这个参数仅对具备通信功能的设备,可能包括通信参数的修改,也可以包括通信协议的选择(设备支持多种通信协议);这个参数可读写;
4) 设备状态:主要是对设备运行的各种数据的及时读取及显示,可能包括电池电压、设备温度、通信模块信号等;这个参数仅可读;
2,设备参数修改
以上4类参数,实际在软件进行设计时需要考虑如何对其进行读取或配置。不仅在开发调试可能使用,同时在生产、测试时同样需要使用,甚至在产品出货后在用户现场还可能进行配置修改。这就涉及到如何对参数进行修改,也属于软件设计需要考虑的内容。以下对各种修改方式作一个说明。
1) 串口调试工具修改:这是最简单也最原始的方法,也就是软件设计一组命令,并通过调试串口接收命令及数据完成设备参数的读取或修改;这种修改方式有一定的缺陷,即作为产品来说,必须在外壳提供一个串口的接口,否则就需要开盖处理;
2) 网口调试工具修改:这种方式对比串口调试工具稍微方便一些,可以设计为同样的修改方法,并且网口应该属于产品本身具有的一个接口,这样就不需要单独再为此开一个接口;
3) 网页方式修改:这种方式与第二种方式有些相似之处,并且不需要工具软件,属于比较流行的方式。但对设备MCU的资源要求较高,对于一般的单片机,尤其是资源有限的MCU,其必然不太合适;
4) 通信协议方式修改:也就是定义一个通信协议,由上位机或其它设备对它进行读取或修改。这种方式比较适合于有上位机通信的情况,并且其通用性不是太好;
3,调试工具软件
本人根据工作需要自行开发了两款相似功能的软件工具,即串口调试工具和网络调试工具软件,这两款工具软件即具有一般的通用性(如普通的串口助手),也有一定针对性(如考虑到调试或生产的使用)。本文主要针对串口调试工具做一个说明,至于网络调试工具,将在另一份文档中说明。请参考:网络调试工具
此工具软件最大的特点是设计了功能按钮,设备可以输出指定格式的按钮文本,并进行保存,或者用户可以导入指定格式的按钮文本。在此后的调试中,用户无需记住所需的调试命令便可进行操作,同时若设备导入了按钮说明信息,则操作用户还可以查阅使用说明。
同时,工具软件还提供了一套自定义的设备软件升级功能,并提供了协议说明;
此外,工具软件也提供了诸多方便使用的小功能,可以更多的帮助开发人员使用;
串口调试工具软件下载
4,软件新版本说明
以下描述的软件属于比较早期的版本,后续已经更新到V2.51,由于时间原因,不再更新图片及新增功能的详细描述。这里仅简单的说明一下增加了什么功能,具体的请下载最新软件。另外,由于版本更新较多,这个更新情况将最后。
一、软件界面
说明:发送区的功能按钮取消勾选,则显示如下的升级区
二、功能说明
1.串口设置
这个区域与串口助手相似,仅对多出的功能或有特色的功能进行说明
1)串口选择
在点击时,将自动刷新所有串口,使得新连接的串口可立即显示出来;
2)自动换行
串口接收按照设置的分帧时间,在结束时自动添加回车换行符号;
3)接收到文件
可以将串口接收数据输出到指定命名的文件中,使得掉电时的调试信息得以保存在文件中。同时,提供了文件拆分功能,避免一个文件存储过大的内容(当然,不选择也会进行大文件拆分<100M>);
以下是执行后的显示:
可在存储过程中恢复串口数据到接收区,或终止文件存储;
4)保存文件
提供2种格式存储,即文本格式与BIN格式,同时在存储BIN格式时,还可以选择自动识别功能(只需要将鼠标指定在某个位置)。自动识别功能同时将查找指定字符串“完成”或“结束”用以辅助确定数据结束(不提供此字符串则完全自动识别)。
5)查找功能
提供在接收区指定位置开始的文本查找功能,方便调试信息的查阅;
6)保存按钮
自动识别接收区的按钮格式文本,并进行存储;
注:按钮文本可以在设备中按照指定的格式输出,并以此按钮进行保存,后续即可操作按钮完成功能调试;关于设备输出此格式的文本信息,本文档不做说明,会在专门的嵌入式调试文档中进行说明,并提供示例代码。
2.发送操作
这个区域与普通的串口助手区别较大,除了正常的发送操作外,还提供了发送历史数据保存与调出,辅助的校验和计算功能等;
1)打开文本
提供ASCII文本调入功能,同时对于中文字符,可选择GB2312或不选择,这取决于调入文本时是否出现乱字符;
2)清除
发送完成后,可手动清除发送区的数据;
3)自动
勾选时,发送完成后自动清除发送区数据;
4)历史清除
发送数据会自动进行存储(同时会存储数据格式<ASCII或HEX>),并通过”>>”或“<<”选择下一个或上一个历史数据,当执行“历史清除”时则会删除存储的数据;
5)计算校验和
提供了对输入区数据的8/16/32bit累加校验和计算,CRC8/CRC16/CRC32冗余校验和计算,输入数据接受两种格式(ASCII或HEX),输出数据提供了大端与小端格式输出;
注:同时,在发送区也提供了右键菜单,执行常用的多种CRC8/CRC16/CRC32计算;
3.发送区
这个区域主要提供数据输入,并可控制部分辅助功能;这部分的功能与普通的串口助手完全不同,并进行了有效的功能改进。以下重点对改进功能进行说明。
1)发送字符显示区域
除基本的接收输入字符外,额外提供了多种CRC8/CRC16/CRC32的计算,具体包括如下:
CRC8: CRC8,CRC8-ITU, CRC8-ROHC, CRC8-MAXIM;
CRC16: CRC16_CCITT,CRC16_CCITT_FALSE,CRC16_XMODEM,CRC16_X25,CRC16_MODBUS, CRC16_IBM, CRC16_MAXIM, CRC16_USB, CRC16_DNP;
CRC32: CRC32-IEEE802.3,CRC32-MPEG2;
这些CRC的快捷计算,可以非常方便执行通信调试,对应软件开发与测试人员均非常方便。
当然,实际上还有一种更方便的做法,即由设备输出通信协议数据,并生成通信调试按钮,这样更方便于调测与生产测试,这部分同样会在专门的嵌入式调试文档中进行说明,并提供示例代码;
另外,在右键菜单中还提供了HEX数据与ASCII字符串的相互转换功能;
2)发送计数
发送的数据字节数,双击清零;
3)自动发送
提供发送时间间隔、发送次数(设置为0则持续发送),勾选“自动发送”后点击发送按钮,则开始执行,自动发送过程中,取消自动发送选项则立即停止发送。同时,发送的过程中会显示当前发送次数,并在发送完成后也会进行提示,方便测试人员掌握具体的数据。其两种状态分别如下:
发送过程中的显示:
发送完成后的显示:
4)HEX数据
勾选时,发送区数据为十六进制数据,在执行发送时将进行检查;
5)功能按钮
勾选时,在发送区下面的部分将显示功能按钮(同时接收操作中的“保存按钮”功能有效),具体的按钮内容由其旁边的下拉列表进行选择,如下图示:
当取消“功能按钮”选项时,发送区下部分将显示升级区内容(同时接收操作中的“保存按钮”功能无效,并且按钮文件下拉列表也变得无效);
4.接收区
接收区与普通串口助手也增强了部分功能。
1)接收字符显示区域
可显示ASCII数据或HEX数据,其受控于“HEX显示”选项。同时,接收区域提供右键菜单(及快捷键),可执行ASCII数据与HEX数据相互转换,复制选择区域数据以覆盖或追加的方式到发送区,对调测非常方便;
2)接收计数
显示接收串口数据的字节数,双击可清零;
3)字体
可设置显示区域的字体大小