ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools

付费 ¥1.99付费 ¥1.99

该内容已接入现有member/付费system,解锁后可View完整Resources或Download附件。

View解锁方式
ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 软件说明
  2. 2. 软件使用说明
  3. 3. ECOM 串口AssistantAssistantDownload

软件说明

ECOM串口Assistant是一款带 CRC  计算 的 串口(RS232) debug软件。由我爱 IC 导航网工作室开发发 。ECOM串口Assistant支持常用的 110 ~ 921600bps Baud rate,能设置校验、data bit和stop bit, 能以 ASCII 码或hexadecimalreceive或send任何data或字符(包括中文),能send任意大小的Text文件,可以任 意设定自动send周期,并能将receivedata保存成Text文件。带有文件或data串的 Modbus CRC16校验、CRC16  校验、累加和校验、XOR check,Modbus LRC 计算Tools,是工程师debug单片机串口的好AssistantTools。

软件界面

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图

软件特点

1 、 支持 Windows 9x / 2000 / XP / 2003 / Vista / Win7 system;

2 、 绿色软件,不需安装。运行解压软件,将压缩包解压到指定目录即可。卸载时只需将程序目录Delete;

3 、 支持常用的 110 ~ 921600bps Baud rate;

4 、 端口范围是 COM1-COM255,支持扩展端口(USB 转 RS232);

5 、 能设置校验、data bit和stop bit;

6 、 能以字符或hexadecimal收发data,支持中文字符的收发;

7 、 支持文件data的send;

8 、 dataSending Area允许设置send周期,自动senddata;

9 、 支持键盘输入,将键盘datasend到串口;

10 、支持定时保存receive窗口data,便于View长timedebug记录信息;

11 、effective的检测通讯Error,避免软件死机(如 USB 转串口设备拔出检测);

12 、datareceive窗口及文件send均采用多线程设计。

13 、带有文件和data帧 ModebusCRC16 校验、CRC16 校验、累加和校验、XOR check,ModebusLRC 计算Tools。send的data帧可选添加Computation result,将校验结果连同data帧一同打包send出去。

1.3.1 V2.00 版本增加Function

1、添加 Xmodem Function(128 个bytesend,只支持 CRC verification)。

2、增加 Xmodem-1k Function(1024 个bytesend,只支持 CRC verification)。

3、支持命令启动 Xmodem-1k Function(可以做自动传输文件Function)。

1.3.2 V2.20 版本增加Function

1、添加Customizationdata帧头,data帧尾Function。

2、Add data帧 ModebusCRC16 校验、CRC16 校验、累加和校验、XOR check,ModebusLRC 等校验协 议。

3、Add data包镜像回发Function。

4、添加receive对话框字体修改button。

5、添加转义符号选择。

6、支持命令串文件send(具体见命令串文件模板使用说明)。

7、添加窗口总是浮在最前面button,添加命令串隐藏显示button。

1.3.3 V2.40 版本增加Function

1 、 增加 110 、300 、600 Baud rate。

2 、 修正receive窗体字体设置buttonFunction,增加receive窗体背景色设置button。

1.3.4 V2.60 版本增加Function

1 、 增加“校验结果”button,实现文件或者data帧的 ModebusCRC16 校验、CRC16 校验、累加和校验、 XOR check,ModebusLRC 的Computation result显示。

2、

1.3.5 V2.80 版本增加Function

1 、 修正校验算法data type。

2 、 增加部分 TTY 仿真终端debug协议,可以简单的debug Linux 命令。

3 、 receive窗口可粘贴send字符串命令。

4 、 增加 1Kxmodem,1Kxmodem autoget receive文件Function。

5 、 增加终端控制命令,可以通过receive命令来控制debug串口的receive窗口。

软件使用说明

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图1

图 2  命令启动 Xmodem-1k

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图2

图 3  命令串文件send

常规的使用

常规的使用比较简单,具体见图一说明,这里就不详细说明。

键盘datasend

将鼠标光标放在receive框,然后输入键盘键值,ECOM 串口Assistant自动将键值send到串口上。

1.4.3 Xmodem  Xmodem-1k

Xmodem 与 Xmodem-1k 通讯协议详细见 Xmodem 规范,这里也不详细说明。

命令启动 Xmodem-1k

命令启动 Xmodem-1k 方法:选择常规串口设置后,文件传输选择“AutoSend”选项,当 ECOM 串口 Assistant软件receive到“<auto>+文件夹/文件名+</auto> ”命令,软件就会自动启动 Xmodem-1k 传输协议,并将 “<auto>+文件夹/文件名+</auto>”内指定的文件进行 Xmodem-1k 传输。命令中的文件夹连同文件一起放 在 ECOM 串口Assistant软件的通一个目录下。

命令串文件send

ECOM 串口Assistant V2.20 版本以上支持该Function,允许用户Customization命令串文件,选择send时,ECOM 串口Assistant会依次Parse用户的命令,逐条往下send。命令串文件send同时支持选择命令串文件中的某条标号命令 send,也支持send时,跳转到指定的命令编号开始依次往下send,命令串文件模板如下:

[52ic.net]
; send command条的start条数
start_52ic=0
; 命令条总数,不要写错了,否则会出错,最大 100 条。
total_52ic=4
; 循环多少次后退出。最大 100 次循环。
cycle_52ic=5
; 检验方式。
check_52ic=4

[Sending]
; send对话框是否 HEX formatsend
HEX0=0
; 包尾是否加校验
CHECK0=1
; 是否使用转义符
TAILED0=0
; data头是否选择
HEAD0=0
; data头data
DATAHEAD0=data头--
; data尾是否选择
TAIL0=0
; data尾data
DATATAIL0=--data尾
; send对话命令条
DATA0=欢迎使用我爱IC导航网
; senddata后延时多长time才执行下条命令
DELAY0=1000

; send对话框是否 HEX formatsend
HEX1=0
; 包尾是否加校验
CHECK1=0
; 是否使用转义符
TAILED1=0
; data头是否选择
HEAD1=1
; data头data
DATAHEAD1=data头--
; data尾是否选择
TAIL1=1
; data尾data
DATATAIL1=--data尾
; send对话命令条
DATA1=欢迎使用我爱IC导航网
; senddata后延时多长time才执行下条命令
DELAY1=1000

HEX2=1
CHECK2=1
TAILED2=0
HEAD2=1
DATAHEAD2=AA AAAAAA
TAIL2=1
DATATAIL2=BB BB BB BB
DATA2=01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 12 13 14 15 16 17 18 19
DELAY2=1000

HEX3=1
CHECK3=1
TAILED3=0
HEAD3=1
DATAHEAD3=AAAA
TAIL3=1
DATATAIL3=BB BB
DATA3=01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 12 13 14 15 16 17 18 19
DELAY3=1000

[END]

表 1   命令串文件关键字说明

命令命令命令说明备注
[52ic.net]参数设置区 
start_52icsend command条的start条数必须小于命令条总数
total_52ic命令条总数,不要写错了,否则会出错最大 100 条
cycle_52ic循环send command串次数,loop sendingComplete后退出最大 100 次循环
check_52ic检验方式选择,大于等于 0,小于软件支持的校验协议条数 
[Sending]命令dataSending Area 
HEXsend对话框是否选择 HEX formatsend,0 表示不选择 
CHECKdata时候加校验,0 表示不选择 
TAILED命令串末尾时候加转义符,0 表示不选择 
HEAD命令串时候加data头,0 表示不选择 
DATAHEADdata头data 
TAIL命令串时候加data尾,0 表示不选择 
DATATAILdata尾data 
DATA命令串data 
DELAYsenddata后延时多长time才执行下条命令 

data帧format

Ecom  串口软件支持Customizationdata帧头, data帧尾Function。同时支持data包多种校验协议, 如: ModebusCRC16 校验、CRC16 校验、累加和校验、XOR check, ModebusLRC 等。data帧仅校验data输入框 中的data,不计算帧头和帧尾的data,每次send时,软件根据用户选择的不同校验算法进行data校验,并 将Computation result和原来的data拼成一个完整的data帧send。帧format见下表。

表 2   V2.20 以上软件版本data帧format说明

最先send其次send依次send接着send最后send
data帧头datadata帧校验data帧尾转义符
使能data帧头button填写要send的data选择data校验方式使能data帧尾button使能转义符button

终端控制命令

ECOM 串口Assistant可以通过receive命令来控制串口Assistant的receive窗口,便于保持串口传输的data。

<ecomclear>Clear窗口data
<ecomset>dipset=1</ecomset>设置窗口Display format为 HEX
<ecomset>dipset=0</ecomset>设置窗口Display format为字符
<ecomsave></ecomsave>自动保存窗口data,保存文件用systemtime来命名
<ecomsave>+name+</ecomsave>保存窗口data,文件名用户指定,例如
<ecomsave>data.txt</ecomsave> 
<ecomsave>updata\\data.txt</ecomsave> 
<ecomdel>+name+</ecomdel>Delete用户指定的文件
<ecomdir>NewDir</ecomdir>在软件运行的目录下创建制定的目录,

命令执行Error返回 0x15,命令执行成功返回 0x06;Baud rate越低发生Error的概率越大,主要受到一帧 datareceive超时的原因照成的。

文件及data校验

1.    文件校验

Ecom 串口软件带有计算文件 ModebusCRC16 校验、CRC16 校验、累加和校验、XOR check,ModebusLRC 的计算Tools,计算方法是在“传输协议 ”打开文件对话框中打开待计算的文件,选择“data校验format ”,点 击“校验结果 ”button,对话框中将显示Computation result,如果需要保存结果,点击“保存窗口 ”button即可。

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图3

图 4  计算文件的校验值

1.    data校验

Ecom 串口软件支持data帧 ModebusCRC16 校验、CRC16 校验、累加和校验、XOR check, ModebusLRC 的计算,同时可以支持将Computation result跟data帧一起send到串口设备上。计算方法是先“将传输协议 ”打开文 件的对话框Clear,选择“data校验format ”,点击“校验结果 ”button,对话框中将显示校验结果,如果需要保 存结果,点击“保存窗口 ”button即可。如果需要将Computation result一同send串口设备上,选择“data校验 ”选择 button,然后选择senddata。

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图4

图 5  计算data的校验值

Related校验算法

Ecom 串口软件支持 ModebusCRC16 校验、CRC16 校验、累加和校验、XOR check,ModebusLRC 等协 议,具体算法见下列程序清单。Related的算法请自行查找Related的Resources了解,如果下列程序有问题,欢迎联系 我们,我们将及时更正算法。

1.    ModebusCRC16 校验算法

//**********************************************************************************************************
// 函数名称 : GetModbusCRC16
// 函数Function : ModbusCRC16 校验
// 入口参数 : cp    要检验的字符
//            leng  Length
// 返 回 值 : ModbusCRC16
// 备    注 :
//**********************************************************************************************************
// 修改人 : 我爱 IC 导航网(http://www.52ic.net/)
//**********************************************************************************************************
unsigned short GetModbusCRC16(unsigned char *cp, unsigned int leng) {
    unsigned int j, i, crc = 0xFFFF;

    if (leng <= 0) {
        return 0;
    }
    for (j = 0; j < leng; j++) {
        crc = crc ^ (unsigned int)(cp[j]);
        for (i = 0; i < 8; i++) {
            if ((crc & 1) != 0) {
                crc = (crc >> 1) ^ 0xA001;
            } else {
                crc = crc >> 1;
            }
        }
    }
    return (unsigned short)crc;
}

2.    CRC16 校验算法

//**********************************************************************************************************
// 函数名称: GetCRC16
// 函数Function: 循环冗余校验 CRC16 校验
// 入口参数: cp    要检验的字符
//           leng  Length
// 返 回 值: CRC16
// 备    注: CRC   =X^16 + X^12 + X^5 + 1
//**********************************************************************************************************
// 修改人: 我爱 IC 导航网(http://www.52ic.net/)
//**********************************************************************************************************
unsigned short GetCRC16(unsigned char *cp, unsigned int leng) {
    unsigned short crc = 0;
    unsigned int i, j;
    
    if (leng <= 0) {
        return 0;
    }
    
    for (j = 0; j < leng; j++) {
        crc ^= (int)*cp++ << 8;
        for (i = 0; i < 8; ++i) {
            if (crc & 0x8000) {
                crc = (crc << 1) ^ 0x1021;
            } else {
                crc <<= 1;
            }
        }
    }
    return crc & 0xFFFF;
}

3.     累加和校验算法

//**********************************************************************************************************
// 函数名称: GetCheckSum
// 函数Function: 16位checksum
// 入口参数: cp    要检验的字符
//           leng  Length
// 返 回 值: checksum结果
// 备    注:
//**********************************************************************************************************
// 修改人: 我爱 IC 导航网(http://www.52ic.net/)
//**********************************************************************************************************
unsigned short GetCheckSum(unsigned char *cp, unsigned int leng) {
    unsigned short crc = 0;
    unsigned int i;
    
    if (leng <= 0) {
        return 0;
    }
    
    for (i = 0; i < leng; i++) {
        crc += cp[i];
    }
    return crc & 0xFFFF;
}

4.    XOR check算法

  //**********************************************************************************************************
// 函数名称: GetBccCheck
// 函数Function: BCCXOR check法
// 入口参数: cp    要检验的字符
//           leng  Length
// 返 回 值: 校验结果
// 备    注:
//**********************************************************************************************************
// 修改人: 我爱 IC 导航网(http://www.52ic.net/)
//**********************************************************************************************************
unsigned char GetBccCheck(unsigned char *cp, unsigned int leng) {
    unsigned char bcc = 0;
    unsigned int i;
    
    if (leng <= 0) {
        return 0;
    }
    
    for (i = 0; i < leng; i++) {
        bcc ^= cp[i];
    }
    return bcc; // 无需 & 0xFFFF 因为 bcc 已是 unsigned char Type
}

1.     LRC 校验法

//**********************************************************************************************************
// 函数名称: GetLRC
// 函数Function: 计算 LRC 值。
// 入口参数: uint8ptr, 输入的data为 8 位指针,含有生成 LRC 所使用的binarydata的message缓冲区指针
//           usDataLen,message缓冲区byte count。
// 返 回 值: 纵向冗余校验码
// 备    注:
//**********************************************************************************************************
// 修改人: 我爱 IC 导航网(http://www.52ic.net/)
//**********************************************************************************************************

unsigned char GetLRC(unsigned char *uint8ptr, unsigned int usDataLen) {
    unsigned char uchLRC = 0; // LRC byte初始化
    while (usDataLen--) { // 遍历message缓冲区
        uchLRC += *uint8ptr++; // 缓冲区byte相加,无进位
    }
    return ((unsigned char)(-uchLRC)); // 返回binary补码
}

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图5

ECOM 串口AssistantAssistantDownload

ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图6星耀member¥1.59
ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools插图7璀璨member¥1.19
曜钻memberfree
资源价格 ¥1.99 销售quantity 14 Published 2024年4月11日 更新time 2024年4月22日
已付费?Loginrefresh
技术术语(共 3 个)—— 点击展开
RS232点对点串行通信标准,常用于短距离设备通信
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
串口计算机与外部设备进行串行通信的物理接口
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbus通信协议技术社区 Category Modbus DebuggingTools 字数 8901 字 · 阅读约 23 分钟 更新 2024-04-22 永久链接 https://www.modbus.cn/27602.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时通信debug、register读写、线圈控制、data监控和message分析。 无需安装,微信Search「Modbus DebuggingAssistant」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇Resources用于真实项目?

进入Tools中心进行messageParse、CRC verification和设备debug,或Submit requirements获取选型与接入建议。

工程师member

把这篇文章变成可执行的debugResources

开通后可使用高级messageParse、Resources包Download、Code Example、工程案例和优先Technical Support,适合真实项目交付。

高级Tools不限次
Resources包与代码包
Complete Engineering Case Library
优先Technical Support入口

《 “ECOM串口Assistant-串口sendreceive,Modbus CRC16校验,工程师Debug Tools” 》 有 6 条Comments

发表回复

您的邮箱address不会被公开。 必填项已用 * 标注