使用串口还要做好设定,也就是要确定它的波特率、帧格式及校验处理。波特率控制数据发送与接收速率,只有通信双方传输速率相等,所发送的数据才能被正确接收。帧格式是指起始位、数据位及停止位的分配。常用的是1位起始位,7或8位数据位,1或2位停止位。校验有奇或偶校验,也可设为不用校验。帧格式及校验处理通信双方也要设定一致。注意,如果传输的为十六进制数,而不是ASCII码,则必须用8位数据位。
此外,还有数据流的控制。因为接收方在收到数据后,总是要进行处理的。如果接收方处理速度较慢,也有可能未把所接收的数据处理完毕,接收缓冲区还未清空,发送方又把数据发来。这样,就要造成数据丢失。这当然是不允许的。流控制就是接收方通过控制信号通知发送方是否发送或停止发送数据。
流控制有两种办法:硬件流控制及软件流控制。
硬件流控制:硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。为此,必须将相应的电缆线连上。在编程时,要根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,在接收端将CTS置逻辑0,当发送端的程序检测到CTS为逻辑0后,就停止发送数据。当接收端缓冲区的数据量低于低位时,再将CTS置逻辑1。这时,发送端的程序检测到CTS为逻辑1后,又继续发送数据。
软件流控制:由于有的串口不使用控制信号线,流控制可用软件流实现。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端回应X OFF字符(十进制ASCII码值19),而发送端接收到“X OFF”字符后,就停止发送数据。当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端回应“X ON”字符(十进制的ASCII码值17),而发送端接收到“X ON”字符后,继续发送数据。(www.xing528.com)
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
串口的设定多数是用软件在串口初始化时实现。有的设备也可使用硬件开关选定。
此外,对PLC串口,由于功能的增加,其设定的选项也相应增多。除了选定通信参数,还要选定所使用的功能及相关协议。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。