PIC单片机之通信协议

2019-04-15 12:00发布

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