如何判断异步通信和同步通信

今日头条

1141人已加入

描述

今天我们一起学习一下单片机通信:

(第一次写分享,不足的地方希望大家多多指出。后面我会多加提升)

串行/并行通信

串行通信:只有一条通讯线,每次只能发送一个数据。

并行通信:多条通讯线,每次可以发送多个数据。

并行通信传输的速度不一定比串行通信快,因为当传输速度达到很高时,并行通信相互之间会存在干扰。

通信传输分为三种:全双工传输-半双工传输-单工传输

 全双工传输  双方可以同时发送数据或者同时接收数据
 半双工传输  一方发送数据的时候,另一方只能接收
 单工传输  只存在一个方向数据的发送,不存在对方接收数据或者发送数据给对方

如图1:

串行

同步/异步通信

串行

异步通信:双方要规定相同的传输速度才可以进行传输,通信双方约定某一个条件。

一旦双方传输速度不相同,传输的数据就会出现乱码。就像我们使用串口打印数据,代码配置的是115200,串口工具选择的是9600,此时看到打印的数据就会变成乱码。

同步通信:通信的双方需要连接一个时钟线CLK,这样传输的数据双方保持一致。例如,当一方认为2ms接收一个数据,另一方1ms接收一个数据,这样就会造成传输数据错乱问题。CLK就是给双方约定好,一个时钟会有一个数据的发送或者接收。

如何判断异步通信和同步通信:可以根据是否有时钟信号线CLK来判断。

典型的异步通信:SPI,UART

典型的串口通信:IIC

接下来我们进入串口通信:

1、串口电平

串行

平常我们使用杜邦线去连接两个通信模块的时候,传输距离较短,可以用TTL电平。当两个通信模块距离很远,几十米以上的时候,全程使用TTL电平干扰会很大,信号损耗较高。我们此时就要用到RS232/RS422/RS485电平进行转接。

TTL电平:2.4V-5V 等效于逻辑1--高电平

TTL电平:0V-0.4V 等效于逻辑0--低电平

2、串口连接和时序

串行

传输时序:

①空闲状态电平为1,高电平

②电平为0,低电平,标志数据将要开始

③数据发送(数据发送多少可以更改)

④奇偶校验位(校验前面的数据发送是否正确)

⑤停止位,电平置1,高电平

⑥波特率传输:波特率越高传输速度越快,波特率越低传输速度越慢。(波特率的速度是有限的,GPIO的IO口电平的变化速度限制了波特率的传输速度)

这就是今天的分享,明天我会与大家分享使用串口接收和发送数据的代码编写思路。

感谢各位能给予评价,我也会慢慢学习如何去写好一篇知识总结。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分