Serial Port 系列(3) 通訊模型

很好!這篇還是不打算講程式,應該有很多人開始想打我了。可是我覺得通訊模型會牽扯到程式設計的基本架構,所以非寫這一篇不可。

       很好!這篇還是不打算講程式,應該有很多人開始想打我了。可是我覺得通訊模型會牽扯到程式設計的基本架構,所以非寫這一篇不可。

      

       為了簡化的緣故,基本上我將通訊模型分成四類,而在未來關於實做的文章中,應該還會再提及這些模型:

       (1) 純發送模型:這種模型代表電腦程式只負責不斷地發送訊號出去,也不管設備倒底有沒有收資料,甚至連設備有沒有在線上可能都不介意,就只管送就是了。

        CommModel1

 

       (2) 純接收模型:這種狀況就是設備握有主動權,而電腦就是等待設備發過來的資料決定要做什麼事,某一些警報設備像是家用保全系統有採用這樣的模式。

       CommModel4

 

       (3) 發送回應模型(或稱發送接收模型):這種模式也被稱為Polling (輪詢),由電腦主動發送命令要求設備回應相對應的資料或執行命令後回應成功失敗的訊息,這算滿常見的通訊類型。

       CommModel2

 

       (4) 接收回應模型(或稱接收發送模型):這有點像純接收模型,但當設備發送命令給電腦後,設備端會等待電腦的回應訊息。

       CommModel3

 

       以上的介紹其實是簡化的說法,基本上撰寫通訊程式之前就要先弄清楚電腦和設備的通訊過程,不同的通訊模型在程式撰寫上是會有差異的,所以要詳讀設備的手冊、瞭解其通訊協定,搞清楚該用哪一種模型,而且有一些較為嚴謹的通訊協定還會定義雙方如果傳遞類似TCP的 ACK 與 Non-ACK 來決定資料傳輸已成功或失敗,或是要求重新傳送等等還滿囉唆的,如果不先弄清楚會寫得很累,所以千萬記得,寫通訊程式前務必把通訊協定及過程先搞清楚,可以降低很多不必要的時間浪費。

 

       題外話,這篇圖為什麼這麼多呢?因為字很少! (不好笑 ……)