同步通信与异步通信
**同步通信**:进行数据传输时,发送和接收双方要保持完全的同步。
如何传输:通过时钟来决定什么时候发送接收数据,当然也要用时钟线来规定传输的开始与结束等。
为了实现同步,要求接收和发送设备必须使用同一时钟,所以同步通信需要一根时钟线(SCL),因此判断是否是同步通信,我们可以通过是否有时钟线来判断,有时钟线则该通信为同步通信。
异步通信:以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。
如何传输:通过制定好通信协议(即制定好起始位、数据位、数据验证位、结束位),双方根据通信协议来确定哪些位是真正所要传的数据。
因此异步通信不需要时钟线。
粗略总结:
同步通信(一定需要时钟线 和 数据线):靠着时钟信号(制定时钟信号规则)来确认何时SDA上才是所要传输的信号,就是根据时钟信号发送和接收数据。
异步通信(不需要时钟线,需要数据线):它先是制定好数据规则,也就是需要制定一些起始位结束位之类的,这样才能区分何时开始接收数据,那些才是数据,哪些只是标志位。
通信效率
通信效率指的是传输的数据有多少是实际有用的数据(真正想要传输的数据,即除开起始位、结束位、校验位等);从上方对同步与异步通信分别的阐述中,我们知道异步通信一般都需要起始位、结束位的,而同步通信不用,所以同步通信的通信效率是要比异步通信要高的。
通信速率
比特率(Bitrate):每秒钟传输的二进制位数,单位为比特每秒(bit/s)。
波特率(Baudrate):每秒钟传输的码元个数。
码元:在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元。 而这个间隔被称为码元长度。
通俗的来讲的就是用一个或一些二进制位表示成一个信号,这个信号就是一个码元,根据需要决定使用多少位二进制来表示一个信号。
例如:我们要表示小黄、小明两人,那我们只用一个二进制位就好了,0和1个表示一个人;但是如果我们要表示小黄、小明、小蓝、小红的话,我们就需要用两个二进制位来表示(00、01、10、11)。
串口通信协议简介
物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。通俗的讲就是硬件部分。
协议层:主要就是规定通讯逻辑,统一收发双方的数据打包、解包标准。也就是软件部分。
通信接口转换实现及使用的硬件
通信常用接口标准及转换
RS232与TTL电平的区别
串口数据包
参考:https://doc.embedfire.com/mcu/stm32/f407batianhu/std/zh/latest/index.html