一.串口通信的电平传输规范
1.1RS232协议
是基于串⼝的;在电⽓接⼝做了处理,编程没有任何区别
RS232协议是在1970年由美国电⼦⼯业协会(
EIA)联合⻉尔系统、调制解调器⼚家,计
算机终端⽣产⼚家共同制定的⽤于串⾏通信的标准;规定了采⽤⼀个标准的连接器,对每个连
接器的每个引脚的作⽤都加以规定,还对信号的电平加以规定;
接⼝:
最开始有25(DB-25)根线 每个线上信号内容都有规定
然后有IBM的PC机简化成了DB-9,但是现在⼯业上基本只⽤了
三跟线
,rx,tx,gad 其
他的线主要做⼀些同步做的;
信号:
1 -5v 到 - 15v
0 5v到15v
提升抗⼲扰能⼒,增⼤了通信距离,可以达到15M
1.2、串⼝存在的问题(收发时序,没有规定⾼低电平和连接器)
电⽓接⼝不统⼀
uart只是对信号的时序进⾏了定义了。⽽未定义接⼝的电⽓特性;(⾼低电平的电压值,51单
⽚机他是使⽤的5v 0v,stm32 5v 0v)芯⽚⼚家有关;
uart通信时⼀般直接使⽤处理器使⽤的电平,即TTL电平,单不同的处理器使⽤的电平存在差
异,所以不同的处理器使⽤UART通信时,⼀般不能直接相连;
uart没有规定不同器件连接时连接器的标准,所以不同器件直接通过uart通信时连接很不⽅便;
(只有)
抗⼲扰能⼒差
uart⼀般直接使⽤TTL来表⽰0和1,抗⼲扰能⼒差,数据在传输过程中很容易出错
通信距离极短
⼀般只能⽤⼀个电路板上的两个不同芯⽚之间的通信;
2.1 RS485,TTL
RS485协议(主从设备但是没有规定)(电⽓机制)
由电信⾏业协会和电⼦⼯业联盟定义:使⽤该标准的通信⽹络能在远距离条件下以及电⼦噪
声⼤的的环境有效传输信号;该标准允许连接多个收发器,即具有多站能⼒,可以利⽤单⼀的
RS485接⼝⽅便地建⽴⼀个设备⽹络;
2.2 RS485采⽤差分信号(⽤两根线的差值)进⾏数据传输;
两线间的电压差为+2v到+6v为1;
两线间的电压差为-2v到-6v为0;erer
有效减少噪声的⼲扰,延⻓通信距离,
距离可以达到1500M;
RS485接⼝信号的电平⽐RS232降低,不易损坏接⼝电路的芯⽚,且电平与TTL电平
兼容,可⽅便地与TTL电路连接
接⼝ 422(四线不经常⽤)
采⽤两线制可以
总线式扑结构
,在同⼀个总线上可以同时存在多个节点;属于
半双⼯
,编程时也
需要加以处理;
二.串⼝通信(只规定发送时序)
串⾏:数据是⼀位⼀位的发
并⾏:数据是多位⼀起发(
并⾏数据传输是以计算机的字⻓,通常是8位、16位、32位为传输单
位,⼀次传送⼀个字⻓的数据
)
1 通讯模式:
单工模式(Simplex Communication)通信的数据传输是单向的。通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线。
半双工模式(Half Duplex)通信使用同一根传输线,既可以发送数据又可以接收数据,但不能同时进行发送和接收,数据传输允许数据在两个方向上传输。
全双工模式(Full Duplex)通信允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。在全双工模式中,每一端都有发送器和接收器,有两条传输线,信息传输效率高。
2.同步通讯和异步通讯
串口通信分两种一种是同步通信,一种是异步通信,像ps\2键盘就是同步,一般的单片机下载都是异步通信,起始位表示过了这个位就是数据位了,接着8位数据,然后校验,然后停止位,停止位表示这一桢数据结束
假如我要发0xff时,起始位低电平,空闲的时候是⾼电平,我发数据的时候,也是⾼电平。
所以 区分不了,所以要有起始位
数据位(先发低位,后发⾼位)5到8位的数据
校验位
:校验⼀下数据的正确性;(可有可⽆)
奇校验
:就是让原有数据序列中(包括你要加上的⼀位)1的个数为奇数
1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数
个。
偶校验
:就是让原有数据序列中(包括你要加上的⼀位)1的个数为偶数,偶校验实际上是
循
环冗余校验
的⼀个特例,通过
多项式
x
+ 1 得到1位
CRC
。
1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了
停⽌位
1 位和1.5位和2位