PIC单片机之通信协议
扫描二维码
随时随地手机看文章
当人们晚上迷失在野外手上只有一个手电筒,此时有直升机飞过。人们用手电筒发出三短三长三短的光线。用这个国际通用的SOS求救信号,告诉飞行员来救你。人们规定的三短三长三短的光线,代表SOS就是一种通讯协议。
单片机处理通讯协议的方法其实也类似。只不过用的不是光线而是电平。比如我们完全可以模仿SOS求救信号的方法。来创造属于自己的通讯协议。
例如:我们模仿SOS ,用高电平代替亮,用低电平代替暗。10MS(毫秒)为短,20MS为长。A单片机从一个I/O输出如下的电平。可以看出单片机输出了三短三长三短的的高电平。 B单片机从一个I/O接收如下的电平。当B单片机接收到信号的后,就可以根据程序做任何事,这个信号的代表什么,可以是SOS,可以开启一些设备,可以是一切的意思。A单片机可以运用这个协议,命令B单片机做任何事情。只要我们自己编程前先确定好就行。
所以说协议本身是很随意的,只要发送和接收双方事先规定好就行了。但是如果每家公司,每个人都定一个通信协议。这样协议就太多太乱。所以规定了几种通用的协议如USART,I2C,SPI,这样通信协议就能规范了。
我们稍稍讲解下关于通信协议的几个专业术语:
串行通讯和并行通讯。
如果我们手上有8个苹果,我们想丢给另一个人。你可以一个个丢,丢完一个再丢另一个,这就是串行通讯。你可以8个一起丢,这就是并行通讯。只是对于单片机丢的不是苹果而是位(bit)。
串行通讯只用一个数据(Data)线,发送数据所以只能一个个位的发送。
并行通讯要同时传递多少个位的数据,则用多少个数据线。
全双工通讯和半双工通讯。
简单的来说:比如两个人聊天,如果A说话,B只能听,B说话,A只能听。A 和B两个人不能同时说话,只能一方发出信息,另一方接收信息。双方不能同时发出信息这就是半双工。
如果两个人聊天,两个人可以同时说话,可以同时听。双方都以同时接收和发送这就是全双工。
异步和同步。
对于单片机而言,如果在同一个时钟下,动作和步调都是一致同步的。
如果不在同一个时钟下,动作和步调是不一致的是异步的。
如果想让两个单片机,进行同步通讯,就必须工作在同一个时钟下。所以它们之间连接着时钟线。如果它们之间没有时钟线连接,则说明是异步通讯。