这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 485 在485通讯时,特定条件下遇到的特殊问题

共2条 1/1 1 跳转至

,485 在485通讯时,特定条件下遇到的特殊问题

院士
2006-09-17 18:14:16     打赏
,485 在485通讯时,特定条件下遇到的特殊问题



关键词: 通讯     特定     条件下     遇到     特殊     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问    我在MSP430f123上跑ms/tp协议(系统里嵌了一个小的多任务操作系统),在调试发送数据时遇到了这样的一个问题
   我的发送数据是用的发中断,开始发现我的最后一个数发出的总是 “ff”,经过分析发现,我在执行最后一个数的发中断服务时,我关了关了发中断,把485的收发控制端切换成了收状态,这时发送的“txdbuf”寄存器虽然空了,但是发送的“移位寄存器”才开始发出第一个起始位,我切成了收状态,其他的位就发不出去了,造成最后一个数发出的总是 “ff”
   我想了几个解决的办法,但是总是不太妥当
   1,不用发送中簖,太费CPU时间,发送一帧的数据有70多个字节,如果是9600的拨特率 要等70ms多,任务级高了,其他任务受不了;低了,通讯又不正常了.系统不允许
   2,在发最后一个数后,在中断服务里等“移位寄存器”空后再做切换,但是中断服务的时间有过长了,至少是1ms, 系统也不允许
   3,我在发数时多发送一个数,虽然有用的数据都发出去了,但是造成了一个字节的网络垃圾,给网络系统增加了负担
   4,我想最后的一个数的起始位不会太长,用电容滤掉,但是查了一下手册 发现异步通讯的起始位是沿触发的 用电容会导致通讯不正常
   
   我现在是想不出什么完美的办法了,请大侠们支个招吧 1: 第二个方法可以的啊,时间应该很短的! 2: 不行呀中断用1ms 的时间,任务在这段时间里都没有办法调度了,其他的任务都耽误了 3: 改变程序结构稍晚再切换485的收发状态。
或者用硬件法:
不要单独控485的状态,而用TXD来控制,要记得加反相器。 4: 感谢chunyang!您说的"稍晚再切换485的收发状态"。我考虑过,但是我的是嵌入式系统,退出了中断后不知道跑到哪儿个任务了
您说的"硬件法":
我觉得很可行,能给详细指教一下吗
您说的是不是用一个单稳态触发器,用TXD信号来控制其输入呀,其输出再加上其他的逻辑门来控制485的收发状态,

5: No!No!    TDX经反相器后接收发控制(收及发应并联),这样发“0”时485处于“发”状态,发“1”时485处于“收”状态,配合总线偏置(这样最可靠),对方收到的仍是“1”,明白了?
    但此法速度不能太高,因485切换需要时间,总线加静态偏置对可靠性和提高速度都有利。 6: 我明白了:)   chunyang老师的方法实在是很妙!!我来试试.我们的总线速度最高要到57600,不知道能不能反应过来 7: 请问chunyang总线偏置是什么意思?
发“1”时,485处于收态,对方怎么还能收到“1”,是不是说这时总线上是高电平 8: 用电阻将485静态电平拉成逻辑1(485的标准)即为“总线偏置”,楼上第二个问题是由485芯片的结构决定的。 9: 不错。顶一哈。这样的交流就很有技术讨论的味道了 10: 电阻用多少合适啊?我现在用680欧,节点数多于70。合适不? 11: 偏置电阻吗?偏置电阻用1K即可。 12: 请问chunyang偏置电阻怎么接的,串在A,B上吗?还是接成上拉 13: A上拉、B下拉 14: 那接收的时候怎么办啊用TXD控制收发时,发送的时候是可以,但是接收的时候怎么办啊? 15: 楼上最好分析一下485接口IC的内电路75176的就行

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]