前言
在我们用单片机的时候是不是经常用到各种通信协议。像usart、i2c、spi等各种通信协议。那我们在用这些协议的时候,有没有尝试去想过什么是通信,通信是什么?
我的见解是通讯即是指两个设备之间的数据传输或者IC芯片之间的数据传输。在总线原理上对于通信是这样解释的------通信系统是传递信息所需要的一切设备的总和。
在这里我们由单片机和电脑之间的通讯讲解这个图。
信源(发送端)编辑好要发送的信息,通过发送设备(单片机)进行对其数据处理,即将信源和信道进行匹配起来,对信源传输的数据经过编码的方式,变化成便于传输的信号形式。在传输到信息通道(可能在通过信道的时候会有干扰),在送到接受设备(pc)上进行解码、编译等工作,并传输到信宿(信息接受者)上。这就完成了单片机和pc上的通讯。
这个原理分析完了,那么再来了解通信的基本内容:
1、串行、并行
按数据传送的方式,通讯可分为串行通讯与并行通讯。
串行通信:是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。一般是指设备之间通过少量数据信号线 (一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。
并行通信:是指在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。一般是指使用 8、16、32 及 64 根或更多的数据线进行传输的通讯方式。
区别:并行通讯就像多个车道的公路,可以同时传输多个数据位的数据,而串行通讯,而串行通讯就像单个车道的公路,同一时刻只能传输一个数据位的数据。
2、全双工、半双工及单工通讯
根据数据通讯的方向,通讯又分为全双工、半双工及单工通讯,它们主要以信道的方向来区分。
全双工:是指在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。
半双工:是指在数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输;在同一时间只可以有一方接受或发送信息,可以实现双向通信。
单工:是指数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信。
3、同步通讯与异步通讯
根据通讯的数据同步方式,又分为同步和异步两种,可以根据通讯过程中是否有使用到时钟信号进行简单的区分。
同步通讯:在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据 。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。
异步通讯:在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据,某些通讯中还需要双方约定数据的传输速率,以便更好地同步。