作业帮 > 综合 > 作业

如何实现单片机与相位计串口RS232通信?相位计需要用到CTS,RTS;不能只用三线通信.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/01 11:17:01
如何实现单片机与相位计串口RS232通信?相位计需要用到CTS,RTS;不能只用三线通信.
这是相位计串口要求:
9 pin 9 pin
GND 5 --------------------------------------------------------------------- 5 GND
RX 2 --------------------------------------------------------------------- 3 TX
TX 3 --------------------------------------------------------------------- 2 RX
CTS 8 --------------------------------------------------------------------- 7 RTS
RTS 7 --------------------------------------------------------------------- 8 CTS
CTS 4 --------------------------------------------------------------------- 6 DSR
串口半双工方式下会用到cts (clear to send)rts (ready to send)dsr (data set ready)
没什么大不了的,这些都是流量控制,也就是说你没响应cts之前对方不会发送数据,会等你响应.
两个方法:
1,多使用两个单片机引脚来做CTS和RTS,按串口协议操作这两个信号,也就是根据读到的信号改变另一个信号通知对方可以发送,或者通知对方我要发送然后等对方响应再发送而已,半双工的数据收发就是有控制的收发,需要根据信号量来决定是否执行动作.
2,你单片机是全双工的,所以不存在收发状态等待的问题,也就是只要对方有动作,你随时都可以收发,根本不需要信号状态控制,那么就把对端的CTS和RTS和DSR短接在一起就好了,这样对端任何时候有请求都可以直接发送,不需要你单片机确认
再问: 非常感谢您的回答,我下午将相位计的4,7,8引脚短接,但还是没有实现控制和通信
再答: 要看DTE设备的CTS RTS DSR DTR 是否标准串口定义吧,CTS和RTS直连肯定没问题,但常规来说DSR应该是接DTR的,你图上那一端是单片机?单片机应该做DCE。外部设备做DTE。 那么你试试将外部设备的DTR悬空,DSR和CTS,RTS短接。 这里有个问题,你要确定外部设备是被动发还是主动发,如果是被动发的话,短接可能达不到目的。 那样的话,只有根据协议规定的流程,看看这几个信号量在串口协议里应该如何处理。
再问: 图上右端是单片机(6/7/8引脚),左端是相位计(4/7/8)。单片机发生“s1”,相位计再发送数据。我上次已经将相位计的(4/7/8)引脚短接,没有实现通信。 是否应该4/6短接,7/8短接? 如果用其它引脚代替单片机6/7/8,应该如何操作?
再答: 单片机要操作CTS RTS等几个信号估计很麻烦,一般单片机串口实际就2根线,一收一发,进232电平转换,不支持DTS等信号量的对接,要另外想办法。 这个操作用单片机很困难。试试用PC先和相位计调通,看看几个信号量怎么工作的,电平变化,再考虑怎么短接合适。因为相位计的几个信号量定义不知道是不是按足串口协议的,如果他自己有重新定义就没得搞了