- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于RS485总线通信调试和编程时需要注意的问题
以下经验是自己在开发广电1KW多类型激励器数字发射机项目时的一些经验之谈,尤其对于新同事可能在今后工作中遇到类似问题时,也许在读完本文之后或许有可能会让他们少走点弯路吧,于是乎,在此记录下来。
关于RS485总线之于RS232的通讯距离更远、实现一对多通讯等等的多种优势就跳过直接不谈了,主要讲述一下实际工作中的遇到的问题、解决方法。
在本次工作前期,更换激励器,无非首要任务是要让新激励器与CCU通讯上,原设备采用的是串口复用方式在同一个RS485串口上与主备切换板等多个模块进行通信,在与系统组态的时候如果发现部分设备通信不上,我们就应该注意以下问题。
(一)、硬件层面:
(1)、确保线路不短路,不断路。
其实这应该不是问题,但却是我们部分(尤其是软件工程师)容易忽视的问题,往往认为线路没有??动应该肯定是没有问题的,结果在软件上找了半天,最后发现原来却是最基本的断路问题就尴尬了。之所以提出来是因为以前好像也有类似情况发生过,再者,大家不要笑话我,我在这也卡了一个下午,因为当时供应商只提供了一台新激励器,测试部和研发部以及其它部门都要用它,过于频繁的插拔线导致后面RS485与主备切换板的通讯线看似完好,实则里边断路了。
(2)、确保RS232转RS485时转出来时的接口线序问题。
很多时候惯性思路的以为,一般转出来的不就是RS232或者RS485的标准接口嘛,这不可能是问题,而一旦出现问题就很难发现,就比如这次德兴激励器,由于供应商德兴的激励器的硬件版本变化很快,他们做出来的RS232接口和配套的RS232转RS485的接头的数据收发TX和RX居然是与标准头是数据收发接头是反的。当时也正是自己的“以为”也给我的通讯调试造成了一点滴小困扰。
(二)、系统层面:
(1)、波特率配置
这个应该一般人通讯不上,都会想到的,只是在这里再提一下。
(2)、通讯协议
通讯协议就相当于语言规范,二个模块和设备通讯上不时,我们在确保硬件线没有问题后再确保是否所发命令是否按相关通讯协议在通信的。
(3)、地址位
二个模块要通讯上,当然首先要能识别对方,一般采用地址位识别,如果通讯不上,我们首要检查的这个,事实上很多设备的地址位是可设的,就比如激励器,主备机的地址位不同且可调。感觉有点像也是属于通讯协议的范畴。
以上是通讯调试时应该注意的问题。接下来要说的是一些关于RS485软件编程要注意的问题。
(三)、软件编程:
通信交互方式
RS485基本上采用一问一答的交互方式,主设备向从设备(这里是激励器)发送一条指令,从设备执行指令之后,返回一条应答命令。为了减少数据流,德兴激励器的处理方法是在设置时并没有回复一个设置确认包来确认是否设置成功,而事实上我们是在不断查询激励器的数据回复包的,通过查询判断设置前后数据包的差异性来是完成可以判断是否设置成功的,这样很好的减少了没有必要的数据流在总线上的交互。
数据接收处理方法
(a)方法1:
对于数据接收,最直观的想法是每接收到第1个字符之后,就立刻判断是否与本机地址匹配,否则停止接收数据,等待一段时间之后再接收。(停止接收数据的目的在于丢掉该帧后续的数据。)暂且把这个方法叫做方法1,事实上,对于这种方法,停止接收的时间段一般是固定的且预留得比较宽,有可能在停止接收的这个时间段内收到属于本机的数据帧,却没收到。如过总线上数据量大的话,可能会一直存在这种问题,一直通信不上。所以数据接收处理方法不合理也是会通讯不上的哦。
(b)方法2:
和方法1不一样的是,在收到第1个字符之后,不立即处理,直到接收完整的长度(德兴激励器数据回包是LEN=65字节)后,再根据长度描述符定义的长度,接收完一帧之后再处理。处理包括地址判断、CRC校验、以及协议解析等。此方法2的特点:能很快的接收到完整的数据包,但是不是本地的数据包也接收进来了,对低端的CPU来说是个压力。不过还好,我们公司的公司好歹是ARM9,应该问题不大。
(c)方法3:
目前采用的是方法3,它也许不应该叫方法3的,因为只是在方法2的基础上增加了超时处理机制,收到1个字符之后,如果超过多长时间没有接收到下一个字符,则认为是数据包结束,对数据进行处理。显然这样处理以后,虽然对CPU也许会有一定的压力(由于我们用的不是低端CPU,这里只是充分利用,不予以考虑),但是接收效果肯定是最好,且响应迅速。
消息队列接收、发送阻塞与非阻塞的注意事项
阻塞和非阻塞书上说的很专业,看起来有时也许都会晕,其实用我自己理解的意思就是:阻塞就是干不完不准回来;非阻塞就是你先干,我先看看有其他事没有,完了告诉我一声。
之所以提出这点,是因为当时调试的时候一度CPU占用率过高,有怀疑过是这里的原因。
消息队
您可能关注的文档
- 六年级语文知识竞赛试卷.doc
- 六年级语文第七单元综合练习题.doc
- 六年级语文第六单元教案.doc
- 六年级语文词语名句专项练习题.doc
- 六年级语文质量调研试题.doc
- 六年级近义词反义词总复习.doc
- 六校第一次联考试题(语文).doc
- 六级上品德与社会复习资料有答案.doc
- 六级小学生现代诗知识竞赛题.doc
- 六级毕业模拟考试语文试题.doc
- 面向SAR目标识别的稀疏表示方法:原理、应用与优化.docx
- 构建个人投资风险偏好程度评价体系:理论与实证探究.docx
- 城市土地交易综合评标:方法构建与实践探索.docx
- 从平面到立体:浮雕艺术在服装设计中的创新融合与实践探索.docx
- 商业银行信贷风险剖析与防控策略——基于A公司的深度洞察.docx
- 腹部CT扫描:结直肠癌术前治疗决策的关键影像学指引.docx
- 探秘BMP4:驱动头颈鳞癌细胞上皮—间质转化与转移的分子密码.docx
- 大气传输过程对成都经济区有机氯农药分布的影响及机制研究.docx
- 风险导向跟踪审计:建筑工程招标的风险防控与价值提升.docx
- 基于模块化的多角色Web系统设计:原理、实践与创新.docx
文档评论(0)