- 1. 软件说明
- 2. 软件使用说明
- 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。
软件界面

软件特点
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窗口。
软件使用说明

图 2 命令启动 Xmodem-1k

图 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_52ic | send command条的start条数 | 必须小于命令条总数 |
| total_52ic | 命令条总数,不要写错了,否则会出错 | 最大 100 条 |
| cycle_52ic | 循环send command串次数,loop sendingComplete后退出 | 最大 100 次循环 |
| check_52ic | 检验方式选择,大于等于 0,小于软件支持的校验协议条数 | |
| [Sending] | 命令dataSending Area | |
| HEX | send对话框是否选择 HEX formatsend,0 表示不选择 | |
| CHECK | data时候加校验,0 表示不选择 | |
| TAILED | 命令串末尾时候加转义符,0 表示不选择 | |
| HEAD | 命令串时候加data头,0 表示不选择 | |
| DATAHEAD | data头data | |
| TAIL | 命令串时候加data尾,0 表示不选择 | |
| DATATAIL | data尾data | |
| DATA | 命令串data | |
| DELAY | senddata后延时多长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帧头 | data | data帧校验 | 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即可。

图 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。

图 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补码
}
Downloadconnect,谢谢
付费了下不了,发我一份
非常感谢
666
666
多条send可选某条为HEX,方便