采用RS_232串行通讯接口传输数据是应注意哪些事项?

2025-03-17 22:59:06
推荐回答(1个)
回答1:

一、基本概念。
串口,一般是指RS232。RS232是协议名称,而串口还应该包括了其它协议,如:RS485、RS422等。
串口也叫UART,有时叫USART(应该写成U(S/A)RT,但是略显累赘),U是通用,A是异步,S是同步,所以,UART跟USRT区别在于有无同步时钟,所以有的串口会有三根线(地线除外)。为了避免混淆,以下均使用RS232,而不使用串口。
RS232发送是靠TXD和GND之间的电压来传数据(接收跟发送雷同),是共模电压,抗干扰能力差,导致传输距离非常有限。
因为RS232的简单、低成本,所以不管是单片机、ARM、DSP都配了这种接口(FPGA可以自制)。
二、封装成帧。
RS232的协议,分成几个部分:起始位、数据位、校验位、停止位。注意,这里用的是位(bit)。
单纯地按照协议规定的去做,会出现一些问题。
1、奇偶校验的校验能力太差。
2、传错一个数据,没法重传。
3、在总线上挂了几个从机,主机如何区分是哪台从机发出的数据(有的设备不能把校验位当地址位用)。
4、如果没有成功发送停止位,那么接收端会不会一直等待。
5、总线上传错了一组数据,没法定位是哪个地方(哪个位)出问题。
鉴于以上诸多问题,我们想到了一种解决办法,就是封装成帧。一帧数据包含多个byte,而一个byte的数据包含多个bit(起始位、数据位等)。