嵌入式软件架构设计之九: 双机通信之通信方式
关键词:双机通信 同步通信 异步通信 对等通信
同步通信和异步通信
这里我们介绍下通信帧的常用通信方式,比较常见的有请求-响应 和 主动上报。在双机通信中,一般会有一个作为主机,主机一般为请求方,从机为响应方。当从机有消息需要发送给主机时,通过主动上报的方式通知给主机,主机不需要响应。请求响应方式为可靠通信,请求发送出去后需要从机响应,如果主机在超时时间内没有收到响应,可以重新请求,这样可以实现重发机制,降低错误率。从机主动上报方式通知给主机的方式为不可靠传输,如果因为某种原因主机没有收到这条主动上报那么就会出现丢帧,如果是重要信息很有可能造成严重后果。所以在一些要求比较高的场合,将通信机制设计成对等通信,互为主机,双方发出请求后,都必须要有应答,没有应答则视为通信失败,可以进行再次重传,如果多次均失败则才认为失败。
不管是主从模式还是对等方式,在请求收发时中有一个同步和异步机制的问题。这里的同步、异步不是指物理层双机通信时钟信号是否一致的同步异步区分,我们这里说的同步、异步是指请求的一方发出请求后,是否必须要得到响应结果才允许做其他操作。同步通信要求请求-响应是一一对应的关系,一次请求发出后,要等待响应结果,只有本次请求结束了(得到了响应或超时失败了),才允许进行第二次请求。异步请求发出请求后在没得到本次响应结果时仍可以发送第二次请求,两次请求不相互影响。