串口通信协议
什么是串口通信?
串口通信是将数据在一条数据线上传输。
串口通信的特点是传输线少(相对于并行通信),长距离传输的成本低,但数据的传送控制比并行通信复杂。
常见的串行通信接口包括:USB,RS-485,RS-232
串行通信的基本概念
同步通信是串行通信的一种通信方式,要求双方的时钟必须保持一致,特点是速度快。
异步通信的特点是速度慢,但是成本低,它需要再数据中添加同步的控制位,收发双发需要约定传输的速率。
串口通讯的传输方向
1、单工:数据只能沿一个方向传输
2、半双工:数据可以沿着两个方向传输,但要分开进行
3、全双工:数据可以同时进行双向通信
常见的串行通信接口
UART(Universal Asynchronous Receive/Transmitter)是异步串行通信接口的总称,包括RS232,RS499,RS422和RS485。
如何用C#实现该通信接口?
借助微软提供的System.IO.Ports.SerialPort控件,就可以实现发送和接收数据,在它的DataReceived事件中我们可以接收到数据,代码如下:
var length = this.serialPort1.BytesToRead;var buffer = new byte[length];this.serialPort1.Read(buffer, 0, length);var str = Encoding.Default.GetString(buffer);
发送数据就更简单了,调用SerialPort实例的Write方法即可
this.serialPort1.Write(this.richTextBoxSendMsg.Text);
需要注意的是发送和接收数据的前提是打开COM口,打开端口的前提是电脑中存在指定的COM口,并给SerialPort的实例对象设置好端口名称,波特率,数据位,校验位,停止位。