串行通信鏈路復(fù)用協(xié)議在嵌入系統(tǒng)上開發(fā)
隨著移動通信技術(shù)的迅速發(fā)展,具備無線通信功能的移動終端也迅速發(fā)展起來。這些移動終端支持普通的話音、短消息等業(yè)務(wù),隨著gprs網(wǎng)絡(luò)覆蓋的迅速擴大,越來越多的手持/車載移動終端也開始支持gprs上網(wǎng)業(yè)務(wù)。如何在一個終端設(shè)備上整合這些業(yè)務(wù),這是許多移動終端設(shè)備開發(fā)者面對的問題。筆者在開發(fā)一款車載移動終端過程中,采用了3gpp的ts 27.010協(xié)議,成功地整合了這些業(yè)務(wù)。 1 ts27.010協(xié)議介紹在常用的gsm/gprs通信模塊中(如siemens的mc35mc35、wavecom的q2400q2400等),只能通過一個普通9針的異步串口與終端設(shè)備te(terminal equipment)進行通信。te和ms?mobile station?需要通過這個串口交換各種類型的數(shù)據(jù),例如:語音、傳真、數(shù)據(jù)、sms、cbs、電話號碼本的維護、電池狀態(tài)、gprs、ussd等。如何在一個串口上同時支持這么多的業(yè)務(wù)?例如,在數(shù)據(jù)通信過程中,怎樣發(fā)送或接收sms?為了解決這些問題,3gpp提出了一個協(xié)議--ts27.010協(xié)議(terminal equipment to mobile station multiplexer protocol)。有了multiplexer,即使在數(shù)據(jù)連接過程中,也可以發(fā)送sms。其它業(yè)務(wù)組合也可以同時進行。例如,數(shù)字語音和sms同時發(fā)送。multiplexer的存在使得一個完整的系統(tǒng)能夠根據(jù)需要進行劃分。3gpp 的multiplexer設(shè)計非常靈活,并且獨立于ms/te平臺,已有的應(yīng)用程序不需要改動即可工作。在設(shè)計multiplexer時,特別考慮到采用電池供電的設(shè)備的需求,所以包含了省電模式控制等很重要的功能,并且multiplexer本身在運行時也盡量使用最小的功耗和內(nèi)存。multiplexer基于iso的hdlc標(biāo)準(zhǔn)設(shè)計,工作于有多種選項的單模式下。但是basic option并不遵從hdlc。在基本選項模式下,multiplexer沒有透明機制,也沒有錯誤恢復(fù)功能。但是在高級選項(advanced option)模式下,使用hdlc的透明機制,且multiplexer有一個方便的再同步機制,能夠在dc1/dc3(xon/xoff)流控打開的鏈路上工作,且包含了錯誤恢復(fù)功能。3gpp的multiplexer依賴于一個控制信道。在這個控制信道上,te和ms交換控制信息,例如參數(shù)協(xié)商、節(jié)電控制信息、流控信息等。multiplexer是一個可選項,如果支持這個功能,就應(yīng)使用at+cmux命令激活它。 multiplexer為te和ms在一個起始/停止模式的、具有分幀功能的串行鏈路上傳輸數(shù)據(jù)流提供了一套機制。圖1給出了不同的協(xié)議層及其功能示意。multiplexer?qū)迂撠?zé)將數(shù)據(jù)按字節(jié)流的方式傳輸,不再進行進一步的組幀;如果數(shù)據(jù)需要按一定結(jié)構(gòu)傳輸,就需要增加一個會聚層來完成這些功能。multiplexer為te上的進程和ms上相對應(yīng)的進程提供了一條虛連接,這樣te和ms上的進程就可以通過這條虛連接通信。例如,te上的sms應(yīng)用程序可以通過一條multiplexer通道與ms上的sms處理程序連接起來。 ts27.010規(guī)范使用8bit字符的start-stop傳輸模式,兩個mulitplexer?qū)嶓w間的通信使用了規(guī)定的幀格式。te和ms之間的每個信道稱為一條數(shù)據(jù)鏈路連接dlc(data link connection),這些dlc被依次獨立地建立起來。每個dlc都可以有自己的流控機制。multiplexer有三種工作模式:basic、advanced without error recovery和advanced with error recovery。這三種模式特點如下:·basic:長度標(biāo)識代替hdlc的透明機制;使用與hdlc不同的標(biāo)志字;不能用于具有xon/xoff流控的鏈路;從同步丟失狀態(tài)中恢復(fù)需要更長的時間?!ぃ幔洌觯幔睿悖澹?without error recovery:遵從iso/iec13239的異步hdlc過程;可以用于具備xon/xoff流控的鏈路上;可以更快地從失同步狀態(tài)恢復(fù)?!ぃ幔洌觯幔睿悖澹?with error recovery:使用了hdlc的錯誤恢復(fù)過程。
2 wavecom gsm/gprs模塊multiplexing協(xié)議介紹 筆者選用了wavecom的q2403a,這是一款e-gsm/gprs 900/1800的雙頻模塊。這個模