短消息電話(huà)中數據鏈路層的控制技術(shù)
本文提及的短消息電話(huà)是在能接收來(lái)電顯示的普通電話(huà)基礎上實(shí)現的。本系統主要由DMTF信號接收發(fā)送電路、FSK信號接收發(fā)送電路、存儲器電路、顯示LCD電路和微控制器電路組成。通過(guò)電話(huà)線(xiàn)與支持固定網(wǎng)短消息業(yè)務(wù)的服務(wù)器連接,實(shí)現短消息的傳輸。本文著(zhù)重從數據鏈路層探討有關(guān)數據通信的控制技術(shù)。
1 系統構成
1.1 系統的硬件組成
短消息電話(huà)是指具有短消息發(fā)送和接收功能的電話(huà)。短消息服務(wù)器和短消息電話(huà)之間采用半雙工通訊方式,通過(guò)FSK(頻移鍵控)信號和DTMF(雙音多頻)信號進(jìn)行數據傳輸,采用交互操作方式。短消息電話(huà)除了具有普通電話(huà)的通話(huà)功能外,還有中文顯示、信息存儲、DTMF信號、FSK信號發(fā)送接收等功能。短消息電話(huà)的功能框圖如圖1所示。

各模塊的功能如下:CMX605、CMX602模塊與電話(huà)機電路提供了DTMF和FSK信號的物理通道,實(shí)現DTMF和FSK信號的發(fā)送和接收及電話(huà)的通信功能;W78E58P單片機為控制中心,協(xié)調和控制各模塊正常工作;SST28SF02存儲器用來(lái)存儲程序代碼、用戶(hù)輸入的信息以及短消息中心傳送的消息;62256為系統正常運動(dòng)提供內存;LCD顯示器和鍵盤(pán)掃描電路實(shí)現人機交互,提供友好操作界面;為了調試方便,增加了與PC串口的接口電路,使得編寫(xiě)的編程可直接到目標機的RAM中運行;此外,PS2接口電路使得用戶(hù)可以利用PC機鍵盤(pán)進(jìn)行中英文輸入。
1.2 系統的信號流程
短消息系統主要是在話(huà)音頻率內傳送數據消息,下行信號(短消息中心到短消息終端)采用半雙工頻移鍵控FSK信號調制方式;上行信號(短消息終端到短消息中心)采用DTMF信號模式或FSK信號調制方式。上行信號采用的方式由當地服務(wù)器決定,而DTMF信號模式又分為編碼方式和非編碼方式,由具體的短消息協(xié)議確定。

短消息電話(huà)接收短消息建立在來(lái)電顯示號碼是短消息中心號碼的基礎上;發(fā)送短消息是在用戶(hù)設定了短消息中心號碼之后,所發(fā)送的信息發(fā)送到所設定的短消息中心。通信過(guò)程如下:首先建立物理鏈接通路,然后與交換機建立普通話(huà)音通道,接著(zhù)通過(guò)中心號碼與短消息中心建立信息通道,短消息中心和短消息終端就可以通過(guò)消息包進(jìn)行交互式通信。
短消息電話(huà)與服務(wù)器的信息交互都由服務(wù)器發(fā)送CTSI命令開(kāi)始,即終端通過(guò)解釋、執行CTSI命令并回送返回值的方式進(jìn)行交互。終端不主動(dòng)發(fā)送內容給服務(wù)器,即使終端的主動(dòng)服務(wù)申請,也是通過(guò)服務(wù)器發(fā)出服務(wù)訪(fǎng)問(wèn)命令后遞交的。
2 數據鏈路層
2.1 數據鏈路層的功能
數據鏈路層提供可靠的數據傳送,主要是將有噪聲的物理信道變成無(wú)傳輸差錯的通信通道,提供數據成幀、差錯控制和流量控制等。短消息電話(huà)中的鏈路層在電話(huà)通信方面,要實(shí)現對電話(huà)語(yǔ)音通路的控制、電話(huà)的來(lái)電顯示和通話(huà)等功能;在數據控制方面,完成數據包的組包和解包,控制終端和短消息中心交互時(shí)序,對數據包進(jìn)行糾錯并對出錯數據包進(jìn)行重發(fā)處理;在電話(huà)機控制方面,解析應用層的命令,實(shí)現對物理層的控制以及對數據包的自動(dòng)接收和存儲功能。

2.2 數據鏈路層的協(xié)議
短消息電話(huà)中數據鏈路層采用的差錯控制類(lèi)似于停止等待協(xié)議,并采用重發(fā)機制保障終端和服務(wù)器在偶然的故障后仍有機會(huì )保持連接。數據鏈路層完成了規定次數的重發(fā)后仍然出錯時(shí),服務(wù)器則斷開(kāi)與終端的連接。
數據鏈路層的上行FSK數據包和下行FSK數據包格式如圖2所示,一個(gè)鏈路層FSK數據包包括六部分:同步引導串,由82bit交替的“01”加8bit“1”構成,具體參見(jiàn)CTSI協(xié)議,對于短消息電話(huà)(終端)本身來(lái)說(shuō)只要讀到至少50bit交替出現的“01”以及同步結束字符后,即可以認為同步建立;消息類(lèi)型,指明信息內容的類(lèi)型,根據協(xié)議規定分為一般類(lèi)型和特殊類(lèi)型,終端根據不同的類(lèi)型進(jìn)行相應的處理;消息長(cháng)度,指消息特征號的字節數(=1)加消息層信息內容的字節數;信息特征號,目前僅使用十六進(jìn)制01一種消息特片號,其余保留以利于拓展新的電信業(yè)務(wù);消息層信息內容,由消息層負責解析,包含一條CTSI操作命令,最大長(cháng)度不大于254字節;校驗和,用于數據傳送過(guò)程中的糾錯,取值為該數據包中除同步引導串值外的所有字節的和,按256取模,再取補后得到的值。
由于終端還可以DTMF形式上送數據,因此DTMF數據包又分為:編碼格式的DTMF上行命令響應信息包、非編碼格式的DTMF上行命令響應信息包和非編碼格式的DTMF上行信息包。上行DTMF命令響應消息包(編碼方式)是終端對SMC的FSK數據的響應信息包;上行DTMF命令響應信息包(非編碼方式)也是終端對SMC的FSK數據的響應信息包,主要采用了非編碼方式,此種返回信息包目前只用于信息下載指令中,用于描述指令的解釋執行情況,具體內容詳見(jiàn)協(xié)議;上行DMTF上行信息包(非編碼方式)是終端對SMC的指令響應,具體的信令如表1所示。
表1 數據鏈路層上行DTMF上行信令包的格式

2.3 數據鏈路層的電話(huà)功能
短消息電話(huà)的鏈路層要實(shí)現電話(huà)功能,因此基本的電話(huà)功能都由鏈路層和物理處理,主要分為:來(lái)電顯示功能、短消息數據包的接收、連接到服務(wù)器、基本的電話(huà)通話(huà)功能和按鍵撥號功能。同時(shí)要配合電話(huà)不同功能的界面顯示。
來(lái)電顯示功能和短消息數據包的接收都是對FSK數據包的解析,兩者的不同之處在于具體的數據格式:來(lái)電顯示數據是在第一聲和第二聲振鈴之間傳過(guò)來(lái)的FSK數據,而短消息數據包是在建立了短消息通信通道后在線(xiàn)路上傳輸的FSK數據包。這里主要針對符合Bell202標準的FSK來(lái)電顯示信號進(jìn)行闡述。FSK來(lái)電顯示信號數據包有兩種格式:?jiǎn)沃剖叫畔ㄈ掌?、時(shí)間、電話(huà)號碼、姓名。在第一聲與第二聲振鈴之間將數據包解析,并將日期、時(shí)間、電話(huà)號碼等信息在LCD上顯示,實(shí)現來(lái)電顯示功能。
連接到服務(wù)器,由軟件控制電話(huà)機摘機、撥號到服務(wù)器,服務(wù)器機響應撥號,建立物理通道的連接。當服務(wù)器摘機并發(fā)出回應信號CAS音,在規定時(shí)間內終端回應DTMF的“A”信號,與服務(wù)器建立數據通路,進(jìn)行數據包交互通信。然后解析服務(wù)器的數據,執行服務(wù)器下行的指令,與用戶(hù)進(jìn)行交互。
基本的電話(huà)通話(huà)功能和按鍵撥號功能是一部電話(huà)必須具備的功能,主要由電路硬件完成。鏈路層主要控制液晶顯示與之相配合的操作界面。當用電話(huà)撥號時(shí),屏幕弱出電話(huà)撥號界面,有按鍵按下時(shí)控制發(fā)送和相應的DTMF音,同時(shí)在屏幕上顯示按下的按鍵值。在電話(huà)處于通話(huà)狀態(tài)時(shí),屏幕顯示相應的界面,提示用戶(hù)通話(huà)時(shí)間及撥入或撥出電話(huà)的號碼等信息。
3 數據鏈路層中的控制技術(shù)
3.1 數據鏈路層的數據控制技術(shù)
數據鏈路層的數據分為上行和下行數據,本系統中將其分開(kāi)處理,上行數據在主函數中循環(huán)調用處理,而下行數據在中斷中處理。

上行數據包處理流程圖如圖3所法。對數據的處理是在主函數中,因此可有適當的等待和延遲,但必須在協(xié)議規定的時(shí)間內完成對數據包的處理,它對時(shí)間的要求不如中斷對時(shí)間要求那么苛刻。因為上傳數據包的過(guò)程是終端主動(dòng)上載數據信息,鏈路層對數據包的多少十分清楚,而且在服務(wù)器接收到數據包后,肯定應答數據說(shuō)明數據包傳輸是否正確,而服務(wù)器應答數據包是下行數據在中斷中處理。因此,在上傳一個(gè)數據包后可以等待服務(wù)器的應答信號,以確定是否要重發(fā)當前數據包。整個(gè)處理過(guò)程主要應當處理好與中斷服務(wù)程序的配合,以及用戶(hù)界面的操作,控制相對比較簡(jiǎn)單。
下行數據包處理流程如圖4所示,處理過(guò)程比較復雜。由于服務(wù)器隨時(shí)都有呼叫終端的可能性,使得下行數據傳輸具有隨機性。因此這種情況最適于在中斷中進(jìn)行處理。中斷處理又有其自身的特點(diǎn),如中斷函數不能進(jìn)行參數傳遞并且沒(méi)有返回值;中斷函數中調用其他函數時(shí),被調用函數所使用的寄存器組必須與中斷函數相同等。這就決定了中斷函數中的處理技術(shù)與主函數中的處理技術(shù)相比受到了很大的限制。中斷函數首先對鏈路層各個(gè)狀態(tài)下的超時(shí)定時(shí)器進(jìn)行處理,當有定時(shí)器超時(shí)時(shí),根據協(xié)議規定進(jìn)行相應的超時(shí)處理,通常的處理是控制終端掛機;數據包處理過(guò)程中,與物理層建立循環(huán)隊列緩沖區,每10毫秒中斷時(shí)從緩沖區中取數據,如果緩沖區中有數據則連續地取出數據直到隊列中的數據取完,而當循環(huán)隊列緩沖區沒(méi)有數據時(shí),則直接退出中斷,等待下次中斷再進(jìn)行取數據處理;按協(xié)議規定方式從物理層中取出完整數據包后,通過(guò)校驗和對數據包進(jìn)行校驗,如果數據包傳輸不正確,則向服務(wù)器應答“D0”,請求服務(wù)器重發(fā),當數據包傳輸正確時(shí),則向服務(wù)器應答“D1”,發(fā)完應答數據后將終端置于接收數據狀態(tài)并啟動(dòng)重發(fā)超時(shí)定時(shí)器。中斷處理數據過(guò)程中,要與主函數進(jìn)行配合在液晶屏上顯示用戶(hù)提示信息。另外在中斷函數中最好不進(jìn)行液晶以及FLASH存儲器的操作,因類(lèi)容易導致函數的雙重調用,這是由中斷處理的自身特點(diǎn)決定的。
3.2 數據鏈路層的電話(huà)功能控制技術(shù)
短消息電話(huà)中數據鏈路層的控制技術(shù)包括對各種電話(huà)功能的控制,例如按鍵、摘機、掛機、重撥、免提等電話(huà)功能的軟件功能都在鏈路層實(shí)現。由于電話(huà)功能的控制不是本文的論述重點(diǎn),在此僅以摘機撥打電話(huà)過(guò)程為例。在掛機狀態(tài)下,當鏈路層檢測到摘機信號時(shí),鏈路層控制液晶顯示撥出電話(huà)界面,然后在中斷中檢測按鍵并將按鍵值以DTMF信號發(fā)送到交換機,同時(shí)界面顯示用戶(hù)按下的按鍵值。而話(huà)音信號處理主要由物理電路和交換機來(lái)完成,當檢測到掛機信號時(shí),鏈路層控制終端進(jìn)行軟件掛機,對使用時(shí)的變量進(jìn)行初始化,回到掛機狀態(tài),完成了電話(huà)的撥號、通話(huà)和掛機的過(guò)程。其它的電話(huà)功能主要根據實(shí)際操作中的需要進(jìn)行相應的處理,包括鏈路層中對FLASH存儲器的操作這些過(guò)程,主要注意與其他程序模塊的配合以及符合實(shí)際處理的需求。
此方案的短消息電話(huà)在實(shí)際中證明是可行的,已經(jīng)在南京、上海、深圳等地與當地的短消息服務(wù)器進(jìn)行調試,調試結果證明工作正常。另外,此方案使用的外圍器件還比較多,如果采用針對短消息電話(huà)開(kāi)發(fā)的專(zhuān)用芯片可以大大簡(jiǎn)化外圍器件,節約生產(chǎn)成本。整個(gè)開(kāi)發(fā)過(guò)程采用C語(yǔ)言,將整個(gè)工程移植到其他的硬件,只需要替換工程中硬件的驅動(dòng)程序即可。開(kāi)發(fā)過(guò)程中,采用軟硬件開(kāi)發(fā)同步進(jìn)行,在PC機上搭建軟件仿真環(huán)境,軟件開(kāi)發(fā)可以不需要完全依賴(lài)硬件開(kāi)發(fā)的進(jìn)度,大大縮短了開(kāi)發(fā)周期,且有利于多人合作。
評論