软件설명
ECOM시리얼 포트助手은(는)带 CRC 계산 的 시리얼 포트(RS232) 디버깅软件。由我爱 IC 导航网工作室개발发 。ECOM시리얼 포트助手支持常用的 110 ~ 921600bps 통신 속도,能设置체크섬、데이터 비트和정지 비트, 能以 ASCII 码或16진수수신或보내기任何데이터或문자(包括중국어),能보내기任意大小的文本文件,可以任 意设定自动보내기周期,并能将수신데이터저장成文本文件。带有文件或데이터串的 Modbus CRC16체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬,Modbus LRC 계산도구,是엔지니어링师디버깅单片机시리얼 포트的好助手도구。
软件界面

软件特点
1 、 支持 Windows 9x / 2000 / XP / 2003 / Vista / Win7 系统;
2 、 绿色软件,不需安装。运行解压软件,将压缩包解压到指定目录即可。卸载时只需将程序目录삭제;
3 、 支持常用的 110 ~ 921600bps 통신 속도;
4 、 포트范围是 COM1-COM255,支持扩展포트(USB 转 RS232);
5 、 能设置체크섬、데이터 비트和정지 비트;
6 、 能以문자或16진수收发데이터,支持중국어문자的收发;
7 、 支持文件데이터的보내기;
8 、 데이터보내기区允许设置보내기周期,自动보내기데이터;
9 、 支持键盘입력,将键盘데이터보내기到시리얼 포트;
10 、支持定时저장수신窗口데이터,便于보기长时间디버깅记录信息;
11 、有效的检测通讯错误,避免软件死机(如 USB 转시리얼 포트设备拔出检测);
12 、데이터수신窗口及文件보내기均采用多线程设计。
13 、带有文件和데이터帧 ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬,ModebusLRC 계산도구。보내기的데이터帧可选추가계산 결과,将체크섬结果连同데이터帧一同打包보내기出去。
1.3.1 V2.00 버전추가功能
1、추가 Xmodem 功能(128 个바이트보내기,只支持 CRC 검증)。
2、추가 Xmodem-1k 功能(1024 个바이트보내기,只支持 CRC 검증)。
3、支持命令启动 Xmodem-1k 功能(可以做自动传输文件功能)。
1.3.2 V2.20 버전추가功能
1、추가自定义데이터帧头,데이터帧尾功能。
2、추가데이터帧 ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬,ModebusLRC 等체크섬协 议。
3、추가데이터包镜像回发功能。
4、추가수신对话框字体修改버튼。
5、추가转义符号选择。
6、支持命令串文件보내기(具体见命令串文件模板使用설명)。
7、추가窗口总是浮在最前面버튼,추가命令串隐藏显示버튼。
1.3.3 V2.40 버전추가功能
1 、 추가 110 、300 、600 통신 속도。
2 、 修正수신窗体字体设置버튼功能,추가수신窗体背景色设置버튼。
1.3.4 V2.60 버전추가功能
1 、 추가“체크섬结果”버튼,实现文件或者데이터帧的 ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、 XOR 체크섬,ModebusLRC 的계산 결과显示。
2、
1.3.5 V2.80 버전추가功能
1 、 修正체크섬算法데이터유형。
2 、 추가部分 TTY 仿真终端디버깅프로토콜,可以简单的디버깅 Linux 命令。
3 、 수신窗口可粘贴보내기문자串命令。
4 、 추가 1Kxmodem,1Kxmodem autoget 수신文件功能。
5 、 추가终端控制命令,可以通过수신命令来控制디버깅시리얼 포트的수신窗口。
软件使用설명

图 2 命令启动 Xmodem-1k

图 3 命令串文件보내기
常规的使用
常规的使用比较简单,具体见图一설명,这里就不详细설명。
键盘데이터보내기
将鼠标光标放在수신框,然后입력键盘键值,ECOM 시리얼 포트助手自动将键值보내기到시리얼 포트上。
1.4.3 Xmodem 与 Xmodem-1k
Xmodem 与 Xmodem-1k 통신 프로토콜详细见 Xmodem 사양,这里也不详细설명。
命令启动 Xmodem-1k
命令启动 Xmodem-1k 方法:选择常规시리얼 포트设置后,文件传输选择“AutoSend”选项,当 ECOM 시리얼 포트 助手软件수신到“<auto>+文件夹/文件名+</auto> ”命令,软件就会自动启动 Xmodem-1k 传输프로토콜,并将 “<auto>+文件夹/文件名+</auto>”内指定的文件进行 Xmodem-1k 传输。命令中的文件夹连同文件一起放 在 ECOM 시리얼 포트助手软件的通一个目录下。
命令串文件보내기
ECOM 시리얼 포트助手 V2.20 버전以上支持该功能,允许用户사용자 정의 명령串文件,选择보내기时,ECOM 시리얼 포트助手会依次분석用户的命令,逐条往下보내기。命令串文件보내기同时支持选择命令串文件中的某条标号命令 보내기,也支持보내기时,跳转到指定的命令번호开始依次往下보내기,命令串文件模板如下:
[52ic.net] ; 명령 보내기条的시작条数 시작_52ic=0 ; 命令条总数,不要写错了,否则会出错,最大 100 条。 total_52ic=4 ; 循环多少次后退出。最大 100 次循环。 cycle_52ic=5 ; 检验방식。 check_52ic=4 [Sending] ; 보내기对话框是否 HEX 형식보내기 HEX0=0 ; 包尾是否加체크섬 CHECK0=1 ; 是否使用转义符 TAILED0=0 ; 데이터头是否选择 HEAD0=0 ; 데이터头데이터 데이터HEAD0=데이터头-- ; 데이터尾是否选择 TAIL0=0 ; 데이터尾데이터 데이터TAIL0=--데이터尾 ; 보내기对话命令条 데이터0=欢迎使用我爱IC导航网 ; 보내기데이터后延时多长时间才执行下条命令 DELAY0=1000 ; 보내기对话框是否 HEX 형식보내기 HEX1=0 ; 包尾是否加체크섬 CHECK1=0 ; 是否使用转义符 TAILED1=0 ; 데이터头是否选择 HEAD1=1 ; 데이터头데이터 데이터HEAD1=데이터头-- ; 데이터尾是否选择 TAIL1=1 ; 데이터尾데이터 데이터TAIL1=--데이터尾 ; 보내기对话命令条 데이터1=欢迎使用我爱IC导航网 ; 보내기데이터后延时多长时间才执行下条命令 DELAY1=1000 HEX2=1 CHECK2=1 TAILED2=0 HEAD2=1 데이터HEAD2=AA AAAAAA TAIL2=1 데이터TAIL2=BB BB BB BB 데이터2=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 데이터HEAD3=AAAA TAIL3=1 데이터TAIL3=BB BB 데이터3=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] | 매개변수设置区 | |
| 시작_52ic | 명령 보내기条的시작条数 | 必须小于命令条总数 |
| total_52ic | 命令条总数,不要写错了,否则会出错 | 最大 100 条 |
| cycle_52ic | 循环명령 보내기串次数,반복 전송完成后退出 | 最大 100 次循环 |
| check_52ic | 检验방식选择,大于等于 0,小于软件支持的체크섬프로토콜条数 | |
| [Sending] | 命令데이터보내기区 | |
| HEX | 보내기对话框是否选择 HEX 형식보내기,0 表示不选择 | |
| CHECK | 데이터时候加체크섬,0 表示不选择 | |
| TAILED | 命令串末尾时候加转义符,0 表示不选择 | |
| HEAD | 命令串时候加데이터头,0 表示不选择 | |
| 데이터HEAD | 데이터头데이터 | |
| TAIL | 命令串时候加데이터尾,0 表示不选择 | |
| 데이터TAIL | 데이터尾데이터 | |
| 데이터 | 命令串데이터 | |
| DELAY | 보내기데이터后延时多长时间才执行下条命令 |
데이터帧형식
Ecom 시리얼 포트软件支持自定义데이터帧头, 데이터帧尾功能。同时支持데이터包多种체크섬프로토콜, 如: ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬, ModebusLRC 等。데이터帧仅체크섬데이터입력框 中的데이터,不계산帧头和帧尾的데이터,每次보내기时,软件根据用户选择的不同체크섬算法进行데이터체크섬,并 将계산 결과和原来的데이터拼成一个完整的데이터帧보내기。帧형식见下表。
表 2 V2.20 以上软件버전데이터帧형식설명
| 最先보내기 | 其次보내기 | 依次보내기 | 接着보내기 | 最后보내기 |
| 데이터帧头 | 데이터 | 데이터帧체크섬 | 데이터帧尾 | 转义符 |
| 使能데이터帧头버튼 | 填写要보내기的데이터 | 选择데이터체크섬 방식 | 使能데이터帧尾버튼 | 使能转义符버튼 |
终端控制命令
ECOM 시리얼 포트助手可以通过수신命令来控制시리얼 포트助手的수신窗口,便于保持시리얼 포트传输的데이터。
| <ecomclear> | 清除窗口데이터 |
| <ecomset>dipset=1</ecomset> | 设置窗口표시 형식为 HEX |
| <ecomset>dipset=0</ecomset> | 设置窗口표시 형식为문자 |
| <ecomsave></ecomsave> | 自动저장窗口데이터,저장文件用系统时间来命名 |
| <ecomsave>+name+</ecomsave> | 저장窗口데이터,文件名用户指定,例如 |
| <ecomsave>데이터.txt</ecomsave> | |
| <ecomsave>up데이터\\데이터.txt</ecomsave> | |
| <ecomdel>+name+</ecomdel> | 삭제用户指定的文件 |
| <ecomdir>NewDir</ecomdir> | 在软件运行的目录下创建制定的目录, |
命令执行错误返回 0x15,命令执行成功返回 0x06;통신 속도越低发生错误的概率越大,主要受到一帧 데이터수신超时的原因照成的。
文件及데이터체크섬
1. 文件체크섬
Ecom 시리얼 포트软件带有계산文件 ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬,ModebusLRC 的계산도구,계산方法是在“传输프로토콜 ”열기文件对话框中열기待계산的文件,选择“데이터체크섬형식 ”,点 击“체크섬结果 ”버튼,对话框中将显示계산 결과,如果需要저장结果,클릭“저장窗口 ”버튼即可。

图 4 계산文件的체크섬值
1. 데이터체크섬
Ecom 시리얼 포트软件支持데이터帧 ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬, ModebusLRC 的계산,同时可以支持将계산 결과跟데이터帧一起보내기到시리얼 포트设备上。계산方法是先“将传输프로토콜 ”열기文 件的对话框지우기,选择“데이터체크섬형식 ”,클릭“체크섬结果 ”버튼,对话框中将显示체크섬结果,如果需要保 存结果,클릭“저장窗口 ”버튼即可。如果需要将계산 결과一同보내기시리얼 포트设备上,选择“데이터체크섬 ”选择 버튼,然后选择보내기데이터。

图 5 계산데이터的체크섬值
相关체크섬算法
Ecom 시리얼 포트软件支持 ModebusCRC16 체크섬、CRC16 체크섬、累加和체크섬、XOR 체크섬,ModebusLRC 等协 议,具体算法见下列程序清单。相关的算法请自行查找相关的자료了解,如果下列程序有문제,欢迎문의 我们,我们将及时更正算法。
1. ModebusCRC16 체크섬算法
//**********************************************************************************************************
// 函数名称 : GetModbusCRC16
// 函数功能 : ModbusCRC16 체크섬
// 入口매개변수 : cp 要检验的문자
// leng 길이
// 返 回 值 : 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
// 函数功能: 循环冗余체크섬 CRC16 체크섬
// 入口매개변수: cp 要检验的문자
// leng 길이
// 返 回 值: 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
// 函数功能: 16位체크섬
// 入口매개변수: cp 要检验的문자
// leng 길이
// 返 回 值: 체크섬结果
// 备 注:
//**********************************************************************************************************
// 修改人: 我爱 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 체크섬算法
//**********************************************************************************************************
// 函数名称: GetBccCheck
// 函数功能: BCCXOR 체크섬法
// 入口매개변수: cp 要检验的문자
// leng 길이
// 返 回 值: 체크섬结果
// 备 注:
//**********************************************************************************************************
// 修改人: 我爱 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 유형
}1. LRC 체크섬法
//**********************************************************************************************************
// 函数名称: GetLRC
// 函数功能: 계산 LRC 值。
// 入口매개변수: uint8ptr, 입력的데이터为 8 位指针,含有生成 LRC 所使用的2진수데이터的프레임缓冲区指针
// us데이터Len,프레임缓冲区바이트数。
// 返 回 值: LRC 체크섬码
// 备 注:
//**********************************************************************************************************
// 修改人: 我爱 IC 导航网(http://www.52ic.net/)
//**********************************************************************************************************
unsigned char GetLRC(unsigned char *uint8ptr, unsigned int us데이터Len) {
unsigned char uchLRC = 0; // LRC 바이트初始化
while (us데이터Len--) { // 遍历프레임缓冲区
uchLRC += *uint8ptr++; // 缓冲区바이트相加,无进位
}
return ((unsigned char)(-uchLRC)); // 返回2진수补码
}
下载연결,谢谢
유료了下不了,发我一份
非常感谢
666
666
多条보내기可选某条为HEX,方便