大家好,请教一个串口编程的问题 点击:250 | 回复:6



hoige

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-10-21 09:07:15
楼主

大家好

是三菱的空调

rs485总线

看说明书,提到控制指令的说明如下:

(3) 传送格式
1数据组的传送格式构成如下所示。

STX ?| SA?| UA | 记录长度(可变长)?| ETX | ?BCC

① STX:测试开始字符
② SA:自身地址
③ UA:用户地址
④ 记录:最大20文字的测试(由指令?代码决定记录长度)
     指令:9文字,监控要求:2文字,监控应答:20文字
⑤ ETX:测试结束字符
⑥ BCC:测试错误检出数据
   从SA到ETX止的数据是以XOR数据作为BCC。

?

(2) 「监控要求」指令
Data№?? 项目??????????????????????????????????????????????????????????????????????????????????????????? ?? 数据构成????????????????????????????????????????????????????????????? ?代码?????????? ? 备注
1?????? ?STX (Start of Text)?????????????????????????????????????????????????????????? ???????????? 02h??????????????????????????????????????????????????????????????????????? ?HEX
2 SA (Self Address)????????????????????????????????????????????????????????????????????????????? ?00h (Host Address)????????????????????????????????????????????? HEX
3 UA (User Address)???????????????????????????????????????????????????????????????????????? ?01h~1Fh (Sub I/F Address)??????????????????????????????? HEX
4 未使用????????????????????????????????????????????????????????????????????????????????????????? ?? ?00固定?????????????????????????????????????????????????????????????????????? ?ASCII???? 旧I/F时是地址

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ,而本I/F是使用SA
5 未使用
13 ETX (End of Text)?????????????????????????????????????????????????????????????????????????? ?03h??????????????????????????????????????????????????????????????????????????????? ?HEX
14 BCC (Block Check Code) 从SA到ETX????????? xor之和??????????(计算)????????????????????????????????????????????????????????????????????????? ? H EX

?

请教:这个BCC怎么计算??因为从SA到ETX既有16进制的HEx又有ASCII ,需要把ASCII的字符(这里恒定是00)转换为16进制ASCII再进行Xor吗??还是世界用0参与计算???(其实就相当于不考虑)

?

谢谢

另外,有其他人开发过这个程序吗??怎么通过RS485总线转成IP虚拟串口通信无法建立???谢谢谢谢

?







hoige

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-10-21 09:13:16
1楼

怎么出来这么多的?号??其实这些问号是空格

实际上是一个表格,表格头是 Data№ 项目 数据构成 代码 备注 4项

总共7行:1、2、3、4、5、13、14 其中4行和5行的数据是00 代码是ASCII,1行的数据是02 HEX ;2行的数据是00,HEX ;3行数据是??? 01h~1Fh???? HEX;13行数据是 03 HEX;14行就是BCC需要计算了,不知道如何计算

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2008-10-21 09:31:08
2楼

看不清楚你在说什么,因为上面的问号实在太多了,看得头昏。。。

至于BCC的计算,如果你不是非常清楚,可以参阅我发的帖子:

原创:数据帧校验总结(CRC_LRC_PC_SC_S-XORC校验等)??? http://www.gongkong.com/Forum/ForumTopic.aspx?Id=2008101411312700003

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2008-10-21 09:33:05
3楼

请教:这个BCC怎么计算??因为从SA到ETX既有16进制的HEx又有ASCII ,需要把ASCII的字符(这里恒定是00)转换为16进制ASCII再进行Xor吗??还是世界用0参与计算???(其实就相当于不考虑)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------所有计算校验码,都要把ASCII转为其他进制来计算的,一般转为16进制。

hoige

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-10-21 13:17:12
4楼

谢谢。问号好象是论坛的问题

“所有计算校验码,都要把ASCII转为其他进制来计算的,一般转为16进制”,那这样的话,发送时候也需要把这些ASCII转化为HEX吗???真实奇怪,为什么手册上单独把这个内容列出是ASCII,不是自己制造混乱吗???

系统是三菱AK控制I/F 系统,哪位大侠弄过指教一下

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2008-10-23 12:53:36
5楼
对三菱空调这个产品我就不清楚了,一般来说,发送时候也需要把这些ASCII转化为HEX。

周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2008-10-23 13:04:21
6楼
ASCII数字的16进制码在30H~39H之间。

热门招聘
相关主题

官方公众号

智造工程师