赞
踩
串口会存在什么问题?
串口传输距离近,容易受到干扰。在一般的项目中,很少用到串口通信的去实现两台不同的机器间的通信。
具体的问题如下:
电气接口不统一
UART只是对信号的时序进行了定义,而未定义接口的电气特性;
UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连;
UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便;
抗干扰能力差
UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错。
通信距离极短
因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不芯片之间的通信
注意:stm32串口的数据位是包含校验位的。
RS232协议
RS232协议是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家、计算机终端生产厂家共同制定的用于串行通讯的标准。
该标准规定采用一个标准的连接器。标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定;
RS232接口
该标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定)还对各种信号的电平加以规定;后来IBM的PC机将RS232简化成了DB-9维接器,后来成为事实标准;现在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线;
信号
该标准规定逻辑“1”的电平为-5v到-15v,逻辑“0”的电平为+5v到+15v,选用该电气标准的目的在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m;
RS232帧格式与UART串口通信一样。他们只是在电气的特性上不同。
虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS232标准的信号,所以一般我们还需要在处理器外部去添加电路对信号的电平进行转换;经过芯片的电平转换后,TTL信号就变成了RS232信号。我们想要发送的信息就以RS232的信号的方式发送给接收方,接收方也需要一个RS232转TTL电平的电平转换器,把RS232信号转换位TTL电平。
现在的电脑上,一般也很少用RS232了,现在电脑上主要是以USB为主。但是在嵌入式中,RS232还是经常使用的。
RS232相当于串口来说,只是电气的层面不同,在帧格式上都是相同的,即软件编程都是相同的。
RS232存在以下几个问题:
为了解决RS232的通信易受到干扰,传输距离短问题,又定义了一种新的协议-RS485协议。
该标准由电信行业协会和电子工业联盟定义;使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。
RS485在工业上经常使用到。
RS485都是基于串口的,帧格式与串口的相同。与串口和RS232只是电气的特性不同,软件的编程都是差不多的。
由于采用了差分信号,RS485 只能采用半双工的方式工作,只能同一时间发送数据或者接收数据。在编程48时,需要注意这一点。
虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号,所以一般我们还需要在处理器外部去添加电路将TTL信号转换成差分信号;
RS485的接口是A对A,B对B。
我们开发板采用SP3485作为收发器,该芯片支持3.3V供电,最大传输速度可达10Mbps,支持多达32-个节点,并且有输出短路保护。该芯片的框图如图
代码网络上都有,
注意串口波特率得设置相同,不然接收到的数据都是00
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。