在看 can 和 cia402 相关协议的时候会出现这个东西,比特率。
我不是硬件或者嵌入式出身的程序员,完全不了解这个概念.
于是查了下。
波特率是信号符号变化的次数,也就是每秒钟信号能够变化多少次。
根据资料来说,can 点击采用的是
NRZ 编码,全称 Non-Return to Zero(不归零编码)
这里就引入了很多概念了。
比特率(Bit Rate)是什么?
比特率是每秒传输的比特数,也就是每秒钟传递多少个二进制位(0 或 1)。
也就是说 如果波特率每次只传输一个 bit 那么 波特率 = 比特率
这里就是我的知识盲区了。
首先就是信号是通过电压的变化来传递的,这个我真的是大开眼界…
拿 canopen 的双绞线来说.
| 状态 | CAN_H 电压 | CAN_L 电压 | 电压差(CAN_H - CAN_L) | 比特值 |
|---|---|---|---|---|
| 显性(Dominant) | ~3.5 V | ~1.5 V | ≈ 2 V | 0 |
| 隐性(Recessive) | ~2.5 V | ~2.5 V | ≈ 0 V | 1 |
我么传的 1 和 0 tmd是通过这个传过去的。
网线也同样,只是他双绞线多,并且通过调制解调器,不仅仅是一次符号变化只有一个bit,可能是多个bit
每个比特用一个固定的电平(电压)来表示,
0 和 1 对应两个不同的电平,
在一个比特时间内,电平保持恒定 不变化,也就是说不会中途“回零”或切换其他电平,直到下一个比特开始。
这是他的核心概念。
电平就是电压,每一个bit,就是一种电压。
每次传输,就是bit周期,保证电压不变
那么网线呢?
PAM-5,他多个符号,可能大于1个bit。
他电压就是会变化的。
简单说了下比特率和波特率的区别,以及他们背后的原理。
怎么也没想到这个网络世界居然就是靠电压的差别支撑起来的。。
太牛逼了。