微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 急寻串口问题解答

急寻串口问题解答

时间:10-02 整理:3721RD 点击:
1。异步串行通信中前一个字节的停止位和后一个字节的起始位之间一般要留多长时间的间隔,不留行不行?
2。怎样避免校验字节和帧头相同?
3。半双工通信中(如RS485)如何协调双方的收发,即如何确保一方发的时候另一方一定为收,会不会出现双方同时发送的情况?

1.停止位和起始位之间需要设置多长停止时间,取决报文通信协议。实现是需要根据协议来决定状态机的反转,以及状态机的工作频率
2.为了避免校验同帧头相同,一般采取的有两种方式。第一种是把帧头做长,且做的有规律。第二种是对帧头以外的数据进行扰码发送
3.RS485协议是有冲突检测协议的,总线上永远只能有一个端点在发送数据

谢谢上面的兄弟。由于非通信专业,有些概念不是很懂,仍然感谢。
关于3.再问下,如是说,冲突检测是靠软件进行的,我用MAX481半双工芯片,那应该怎样通过检测它的引脚来确定是该接收还是可以发送呢?

1,现用比较多的串口通信可以调整停止位长度的,1~2个bit可调,以满足通信要求,从应用的角度考虑,发送端希望你的接收端更好的接收数据,停止位要长些,相当于增加了延时,同样接收时反推下;如果你用的是7816协议,那就另当别论了。
2,概率肯定是有的,关键还是通信时的软件控制,可以参考以太网的通信协议:7字节前导,1字节帧定界符,目的地址,源地址,帧长度,数据单元,4字节CRC校验;平时上网你已经测试过它的通信质量了。
3,如果是主从设备的话,就不会存在冲突问题,如果从设备也想主动发送数据,这个处理起来会很麻烦。RS485协议应该不能做到冲突检测的,冲突检测必须是同时发送同时接收。如果从设备上用2个485实现,这个还是可以实验下。

是主主通信,双方都可以主动发数据,用MAX481半双工芯片。
现在RS485应该很普遍呀,只是初学想问问,有知道的兄弟给点提示,简单讲一下收发机制也行,谢谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top