嵌入式开发<串口调试工具>


前言

   为何设计此调试工具软件,完全因为在工作中遇到的问题。如产品开发过程中涉及到众多的命令调试(可能需要使用人员记住各种命令),参数及状态数据查看、修改,串口或网口通信调试,软件在线升级等等。同样,在测试及生产过程中也会涉及到诸多的操作需求,甚至对于测试中的问题跟踪提供便利操作,包括跟踪信息、操作日志跟踪等等。所有这些可能的需求,都将其集中在一个工具软件中执行,其所具有的功能完全已经超出了普通的串口助手或网络调试助手。
   这里本人对日常产品开发中对设备参数做一个说明。

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)字体

  可设置显示区域的字体大小

软件说明 本软件用于单个串口调试或多个串口设备的监视和控制。 本软件的授权 本软件为共享软件。未注册用户每次启动会有注册提示。注册后不再提示。 软件特点: 1:支持多个串口同时工作,采用多线程技术,CPU占用率极低,完全不影响系统其它操作。 2:可以设定需要监控的串口数,最多可以同时监控256个串口。 3:支持十六进制数的发送和接收,支持十六进制数的显示。 4:可以设定回车换行符的发送。 5:支持向串口发送已定制的命令,命令可以为多条,可以设定命令的发送顺序,发送周期,发送间隔。 6:每个串口的应答支持轮询发式和中断方式。每个串口独立工作,可以同时轮询而互相没有任何影响。 7:可以设定每个串口的发送和接收。 8:监控窗口可以设定横向和纵向以及层叠排列方式。 9:支持手工单次向每个串口发送测试命令。 10:可以统计每个串口的发送接收信息 版本信息 2016-12-15 2.0.1.9:集成北斗RDSS调试环境。 2016-12-08 2.0.1.7:增加对长文本发送的支持,比文本文件发送更直观。 2016-12-07 2.0.1.6:采用多线程进行文件发送,增加文件发送时间控制的精确度。 2016-12-06 2.0.1.5:文件发送增加文本文件类型的支持。 2016-12-05 2.0.1.4:优化界面显示,增加暂停显示接收数据的功能(数据仍然保持接收,只是不显示)。 2016-12-05 2.0.1.3:优化界面显示,自动检测USB串口插拔,不用在插拔USB串口时手动关闭串口。 2016-12-04 2.0.1.2:提高定时发送精度到1ms,优化串口数据接收显示,全面提升定时发送性能。 2016-12-03 2.0.0.1:增加发送文件预览功能。 2016-12-02 2.0.0.0:增加单个串口的调试功能(注册码:6017 7729 6154)。 2011-11-24 1.0.0.7:命令参数设置可选发送还是不发送。 2003-11-07 1.0.0.6:在输入十六数时候,可以用空格键分隔。 2003-08-27 1.0.0.5:增加同时设置全部串口参数的功能。 2003-08-25 1.0.0.4:增加设置串口实时性的参数(把间隔时间设为0),实时(无延时)响应串口数据。 2003-08-25 1.0.0.3:修改当接收到0x00时,显示出现的小问题。 2003-08-25 1.0.0.2:修改把波特率115200错误写成112000的问题,可以自定义速率。 2003-08-25 1.0.0.1:增加窗口的层叠功能。 2003-08-24 1.0.0.0:完成。 备注 如果你发送:再透明一点 or 再不透明一点 ,会有惊喜哦
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值