2396|5

927

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

这是我刚写的通讯协议,请指教 [复制链接]

// 通讯协议:
// 接收: 数据六位
//                 第一位为指令类别位:0--修改SysId, 1--读取SysId,2--读取电流, 3--读取转换系数, 4--修改系数,5--读取主差值, 6--修改误差值;
//                 第二三位为SysId:低8位在前,高8位在后;
//                 第四五位为数据位;
//                 第六位为xOr校验位。
//
// 发送:六位加有效数据
//       第一位开始标志位:oxFF;
//                 第二位类型位:1为数值,2为SysId;
//                 第三位为长度:总字节数;
//                 第四五位为SysId:低8位在前,高8位在后;
//                 第六位以后为数据位;
//                 最后一位为xOr校验位。
此帖出自51单片机论坛

最新回复

不客气,485走modbus有很多例程的,可以参考一下。如果就做那么几个,自己定义协议也可以,毕竟简单。如果有可能给别人用,或者为了通用性强的话最好用比较通用的协议  详情 回复 发表于 2015-4-6 22:39
点赞 关注
 

回复
举报

927

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
一个多路电流监控模块跟上位机的通讯协议,上位机需要读取设备采集的电流值,读取设备编号(SysId)或修改设备编号,设置电流允许的最大误差,设置AD采样后的校正系数。
此帖出自51单片机论坛
 
 
 

回复

927

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
第一次写通讯协议,肯定会考虑得不周全,这是我参考一个485读卡器写的。

例如我想修改 0x0001设备的机号为0x1234: 0x00 0x01 0x00 0x34 0x12 0xOR 最后一位是异或校验值
如果我想读取机号为0x0002设备的数据:0x02 0x02 0x00 xx xx 0xOR 第四位和第五位可以是任意值,第六位异或校验。
此帖出自51单片机论坛
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

4
 
用标准的modbus吧,通用性比较好,也比较简单。
此帖出自51单片机论坛
 
 
 

回复

927

帖子

0

TA的资源

纯净的硅(中级)

5
 
谢谢,我先了解一下modbus。
此帖出自51单片机论坛
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

6
 
不客气,485走modbus有很多例程的,可以参考一下。如果就做那么几个,自己定义协议也可以,毕竟简单。如果有可能给别人用,或者为了通用性强的话最好用比较通用的协议
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表