BMS中涉及到的数字通信的概念与类型(上)
一直想找个机会把通信方面的基本概念与类型总结下,总感觉我这方面的知识比较凌乱,不成体系,下面一起来看下。
首先看一下相关的基本概念。
串行通信与并行通信
二者为常见的MCU与外设之间的通信传输方式,简单讲串行通信是通过一路数据线来传输信号,一次只能传输一个bit,这样一位一位地依次传输(如下图);这种形式多见于MCU外部的数据接口,适用于远距离通信,占用IO少,但是速率相对慢。
而并行通信是通过多条数据线来传输信号,以下图举例说明,它一次可以传输八个bit,这样就可以一字节一字节地依次传输;这种形式多见于MCU内部的数据接口,适用于短距离通信,占用IO多,速率相对较快。在数据通信中,数据在线路上面的传送方式可以分为单工、半双工与全双工三种方式;理解起来也比较容易,单工是指数据只能固定向一个方向传输,不能实现双向通信,如下图:半双工是指允许数据在两个方向上面传输,但是同一时刻数据只能在一个方向传输,在下一时刻数据可以在另外的方向传输,分时复用。全双工是指数据可以同时在两个方向上面传输,不受限制。单端信号指信号由一个参考端和一个信号端组成,参考端一般为地,例如下图中的AD采集信号,它就是典型的单端信号。而单端通信就比较好理解了,例如LIN通信,它的通信线只有一条,参考端为地(下图来自于NXP官网)。差分信号我们一般比较常见的是在差分采样上面,例如SHUNT上面的采样信号是两条线的差值电压,每条线对地都可以看成是单端信号,但我们实际要用的是这两条线之间的差值电压。而差分通信是指使用两条信号线进行传输,这两条线上面的信号振幅相等,相位相反;典型的例子就是CAN通信,两条信号线CANH与CANL之间就是差分通信。同步通信是指发送端与接收端之间采用外部共同的时钟来约束每个数据位的采集时刻,二者是同步的;例如SPI通信中就有一条专用的时钟(SCLK)线,它就是一种同步通信。下图为SPI(模式0)的通信数据波形,数据的读取在发送端与接收端都是规定在时钟的上升沿。异步通信不使用单独的外部时钟线,而依靠发送方与接收方各自的时钟来实现数据的同步;具体的,异步通信在数据里面使用起始位与停止位来识别数据的开始与结束,典型的例子如BMS里面的菊花链通信(下图来自于ADI官网)。一种菊花链通信数据波形如下图(图片来自于NXP官网),每一帧数据都有一个起始位与一个停止位来实现同步。这次把通信相关基本概念都总结到一起,后面会介绍BMS上面涉及到的几种主要的通信方式;以上所有,仅供参考。