发布于 2009-06-23 21:18:55
0楼
感激的两位师兄。
我用的波特率是9600的,报文长度是16个字节。
最近我在做用infineon单片机通过uss总线与mm440进行通讯。只能做到向变频器发送报文,不能接受变频器返回的报文,请高手指教。
情况是这样:
硬件环境:infinon单片机+max485(偏执电阻+A上拉电阻+B下拉电阻都已加了),电线虽是自制,但才30cm长,应该干扰不大。因为uss是半双工的,所以只有max485发送使能是才能向变频器发送,接受使能时变频器才能接受。
在发送命令时:开max485发送使能=》延时15ms=》单片机发送报文=>延时20ms=》开max485接受使能=》中断接受 (延时15ms是算的10*11/9600算的 延时20ms是蒙的)
结果:此时变频器能收到单片机传来的报文。能正常启动。但是,p2025,26一直在狂跳,最重要的是单片机接收不到变频器返回报文。
分析:接收不到也许是发送报文后延时了30ms才开接受使能,使得中断接收程序错过了变频器返回的报文。不过如果不家延时30ms,变频器连报文都收不到。
跪求:uss协议上plc是怎么做的,能借鉴一下吗?向MM440发送报文前后延时多少,有必要延时吗?uss半双工下发送和接受的时序是?