RS-232接口符合电子工业联盟(EIA)建立的串行数据通信接口标准。
RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。
逻辑“1”为+3 ~ +15V;逻辑为“0”: -3 ~ -15V。
特点
1.传输速率低。在异步传输中,比特率为20Kbps;因此,在51CPLD开发板中,集成程序波
特率只能是19200。
2.接口采用信号线和信号回波串,形成共同的接地传输形式。
这种标准的接地传输容易受到共模干扰,因此抗噪性较弱。
3.传输距离有限。最大传输距离为50英尺。
它只能达到大约15米。
MAX3076 IC 是常用的 485、422 转换芯片。
1.上拉电阻计算(当 485 总线上的电压在-200mV~+200mV时,
485 收发器可能输出高电平也可能输出低电平,
但一般总处于一种电平状态,)
2. 终端匹配电阻
(终端电阻,防止阻抗突变引起的信号反射问题
,提高信号质量)
通常在总线两端加 120Ω的。
3. RS-485 通讯端口的过压过流保护电路由 TVS+PPTC(保险丝) 组成。
TVS 管用于吸收高压对 RS-485 收发器的冲击。
RS-485串行总线用于通信距离必须为几十米到几公里。
RS-485使用平衡的发射和差分接收,可以抑制共模干扰。
RS-485使用半双工工作模式,任何时候只发送一个点。
因此,发射电路必须由使能信号控制。
RS-485对于多点互连非常方便,可以节省许多信号线。RS-485应用可以联网以形成一个分布式系统,允许多达32个驱动器和32个接收器并联连接。
特点
电气特性:
逻辑“1”由两条线路+2V~+6V之间的电压差表示
逻辑“0”由两条线路之间的电压差-6V~-2V表示。
电平标准 | 发送端 | 接收端 |
逻辑1 | +2V~+6V | >200mV |
逻辑0 | -6V~-2V | <-200mV |
-200mV~200mV 之间为不稳定状态,可能会引起通讯数据异常,因此设计时需要在接收端留足余量。
接口信号电平低于RS-232,不易损坏接口电路芯片。
该电平与TTL电平兼容,便于与TTL电路连接。
最高数据传输速率为:10Mbps
RS-485接口的最大传输距离为4000英尺,实际上可达3000米。
RS-232接口仅允许一个收发器连接到总线,即单站功能。
相比之下,RS-485接口仅允许在总线上连接多达128个收发器,即多站能力。用户使用单个RS-485接口可以快速建立设备网络。
RS232 和 RS485 的区别
工作模式:RS232 为全双工,RS485 为半双工。
传输方式:RS485和RS232只是物理协议的通信(即接口标准),RS485是差分传输方式,
信号线:RS485接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线 。
抗干扰性:RS485采用差分接收器的组合,抗噪声干扰性好。RS232容易产生共模干扰。
传输距离:RS485接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。
通信能力:RS485 总线上是允许连接多达128个收发器。 RS232只允许一对一通信。
传输速率:RS232传输速率较低,在异步传输时,波特率为20Kbps。RS485的数据最高传输速率为 10Mbps 。
电气电平值
如果使用RS485通信,则只需在RS232端口上连接RS232至RS485转换头,无需修改程序。
电气接口
特点 | RS-485 | RS-422 | RS-232 |
协议类型 | 半双工/全双工 | 全双工 | 全双工 |
连接方式 | 点对多点,最大32个节点 | 点对多点,最大10个节点 | 点对点 |
最大传输速率 | 15M@10Mbps | 15M@10Mbps | |
最大传输距离 | 大约1200米, 100Kbps | 大约1200米, 100Kbps | 约15.25米,19.2Kbps |
最小输入电压 | 200mV | 200mV | ±3V |
差分类型 | 差分信号,抗噪能力强 | 差分信号,抗噪能力强 | 非差分信号,抗噪能力弱 |
电平标准 | 逻辑1:输出A、B之间的电压差+2~+6V输入A、B之间的电压差>200mV | 逻辑1:输出A、B之间的电压差+2~+6V输入A、B之间的电压差>200mV | 逻辑1:-3~-15V |
逻辑0:输出A、B之间的电压差-3~-6V输入A、B之间的电压差<-200mV | 逻辑0:输出A、B之间的电压差-3~-6V输入A、B之间的电压差<-200mV | 逻辑0:+3~+15V |
4.CAN通信
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。异步半双工通讯。要优于RS485总线,是目前比较常用的一种工业总线,如汽车的电气部分就采用CAN总线实现通信。
ISO标准化后有两个标准ISO11898标准和IS011519-2标准。其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通信标准(闭环),而IS011519-2是针对通信速率为125Kbps以下的低速通信标准(开环)。
Kbps:总线的通信速率,指的是位速率。或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是 bps 或者 b/s (bit per second)。
原理
每个部分的多个器件都挂载在CAN总线上(一个CAN总线上的所有器件通讯速率必须相同),各个部分再汇集到网关,由网关分配实现各个不同速率的部分之间通讯。
CAN的组成一般有两种方式:
1:CPU与CAN控制器集成到一起、再外接CAN收发器;
2:另一种是CPU与CAN控制器分开的,使用的时候需要配置CAN接口电路,比较麻烦。
STM32中就是采用第一种方式,将CAN接口集成在芯片内
,使用的时候再外接CAN收发器。
CAN收发器是用于TTL电平与差分电压信号相互转换的,
TTL电平即单片机引脚直接提供的电平,逻辑0代表低电平,
逻辑1代表高电平;而差分电压信号则为固定的电压值。
一条是黄色的CAN_High一条是绿色的CAN_Low
CAN_High - CAN_Low < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1",即高电平。
CAN_High - CAN_Low > 0.9V 时候为显性的,逻辑信号表现为"逻辑0",即低电平。
没有数据发送或者发送数据0时,两条线的电平一样都为2.5V,两条线的电压差小于0.5V;当发送数据1时,CAN_High电压升高,CAN_Low电压降低,两条线电压差大于0.9V时,认为数据为逻辑0;
所以CAN使用的是差分信号,差分信号稳定性更好。
在总线上显性电平具有优先权,只要有一个节点输出显性电平,总线上即为显性电平。而隐形电平则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强)
通信过程
通俗地讲,就是发送方通过CAN收发器使总线电平发生变化,将其信息传递到CAN总线上。接收方通过监听总线电平,将总线上的消息读入自己的CAN收发器。
在总线空闲状态下,任意节点都可以向总线上发送信息。另外:最先向总线发送信息的节点获得总线的发送权;当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。
这个数据里不仅有数据,还有本身的ID信息或者其他的控制指令,应称为数据包(数据帧)。
数据帧是在 CAN 通讯中最主要、最复杂的报文,它以一个显性位(逻辑 0)开始,以 7 个连续的隐性位(逻辑 1)结束。分为仲裁段、控制段、数据段、CRC 段和 ACK 段。
由于 CAN 没有时钟信号线,报文中没有用于同步的标志,要怎么进行正确的采样呢?
位同步的方式来确保通讯时序
CAN总线通讯协议的每一个数据帧可以看作一连串的电平信号,每一个电平信号代表一位(一个字节8位的位),所以一帧中包含了很多个位,由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。 一位又分为4段, 同步段(SS)、传播时间段(PTS)、相位缓冲段 1(PBS1)、相位缓冲段 2(PBS2)。
USB 1.0(low speed),传输速率最大为1.5Mbps
USB 1.1(full speed),传输速率最大为12Mbps
USB 2.0(high speed),传输速率最大480Mbps
USB 3.0(super speed),传输速率最大5Gbps
USB 连接器包含四条线:
2 条用于电源供电( VBUS 和 GND)
2 条用于 USB 数据传输
D+ (USB数据正信号线,USB Data Positive,即USB-DP线,简写为D+)
D-(USB数据负信号线,USB Data Minus, 即USB-DM线,简写为D-)
VBUS 提供 5V 电源,电流可达 500mA。D+ 和 D- 为双向信号线,信号传输速率为 12Mbps (每位 83ns)。D+ 和 D- 信号电平为 3.3V 。
USB信号使用分别标记为D+和D- 的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。