趙 強,秦紅彥
(河北遠東通信系統(tǒng)工程有限公司,河北 石家莊 050200)
個人數(shù)碼助理(Personal Digital Assistant,PDA)是一種集成了計算、個人信息管理、通信等多種功能的科技產品,由于具備操作便捷、體積輕薄、便于攜帶等優(yōu)勢而得到了普及。PDA 和個人計算機(Personal Computer,PC)之間數(shù)據通信功能的實現(xiàn),擴展了PDA 的應用能力,為PDA 的動態(tài)程序加載提供了更多底層支持。因此,技術人員應該做好該模式下數(shù)據通信系統(tǒng)的設計工作,真正發(fā)揮出數(shù)據通信技術的價值,為人們的辦公、生活提供更多便捷。
在硬件層面上使PDA 和PC 參與到數(shù)據通信中的難度較高,此時需要在硬件上適當擴展軟件層,使其成為硬件與應用程序之間的接口。該軟件層即為通信協(xié)議,能夠定義PC 進行數(shù)據通信時需要使用的格式,而用于實現(xiàn)通信協(xié)議的軟件即為通信協(xié)議軟件。通信協(xié)議主要為分層結構,每一層均負責達成通信目標的一部分,而每個子層協(xié)同合作共同完成數(shù)據通信任務。目前,較為常用的協(xié)議為傳輸控制協(xié)議/網絡協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP)屬于網際互聯(lián)PC 相互通信時使用的協(xié)議,建立在該協(xié)議上的互聯(lián)網具有虛擬網絡的性質,與網絡硬件相關的細節(jié)均被屏蔽,說明在網絡硬件結構具有差異性的情況下,在TCP/IP 協(xié)議基礎上則基本一致。TCP/IP 協(xié)議是一種協(xié)議棧,除了涵蓋字面上的TCP 協(xié)議、IP 協(xié)議外,還涵蓋了其他協(xié)議,但以TCP協(xié)議、IP 協(xié)議為核心,每一層可以定義各協(xié)議負責的任務。TCP/IP 協(xié)議與國際標準化組織(International Organization for Standardization,ISO)/開放式系統(tǒng)互聯(lián)(Open System Interconnect,OSI)模型等價,但前者為互聯(lián)網標準,后者僅為理論模型。在PDA 與PC數(shù)據通信技術的協(xié)議設計中,可以參考2 種模型開展設計工作[1]。2 種結構體系的對比如圖1 所示。

圖1 TCP/IP 協(xié)議與ISO/OSI 模型結構的體系對比
通信協(xié)議屬于數(shù)據通信雙方共同遵循的約定,包括從物理線路電氣特性到各PC 進程間共享資源的所有內容。在通信協(xié)議設計中,應該處理好以下6 個問題。第一,命令識別。設計的指令要滿足PDA 和PC 雙方均可識別的要求,還可以按照命令內容做出相應的動作。例如,可以設計“Sync_Error”指令代表同步失敗,證實在PDA 或PC 端接收指令后發(fā)生了不可預料的錯誤,此時要停止傳輸或重新傳輸;設計“Sync_OK”指令代表同步通信開始,當PDA 或PC端接收指令后,便可以準備開辟充足的緩存區(qū),準備接收數(shù)據信息等。第二,數(shù)據識別。PDA 和PC 應具有相互識別傳輸數(shù)據的能力,如設計的每個數(shù)據包內應涵蓋數(shù)據本體和循環(huán)冗余校驗碼等額外的控制數(shù)據,便于在PDA 接收幀后可以迅速識別出數(shù)據與校驗碼。第三,通信異常檢測。PDA 和PC 應具有檢測、處理部分意外情況的能力,如在PDA 端內存已滿但PC 端仍然處于數(shù)據傳輸狀態(tài)時,可以設計“Err_Memory_Full”的信號傳輸至PC 端,當接收到信號后便可以停止傳輸和提醒用戶PDA 內存已滿,防止出現(xiàn)內存溢出的問題。第四,無效指令識別。在PDA 因錯誤接收到不符合通信協(xié)議的命令時,PDA 要具有識別非法指令和處理的能力。例如,通知PC 端重新發(fā)送指令,提示出錯中止數(shù)據傳輸,或向對方返回錯誤代碼,便于提升系統(tǒng)自身的容錯性。第五,協(xié)議雙方響應。當接收到來自對方的命令、數(shù)據時,PDA 與PC端均要做出響應。例如,可以設計“Cmd_Download_Start”命令,便于讓用戶知曉下載任務的開始,按照實際情況做好接收數(shù)據的準備。第六,通信控制權確定。通信控制權的確定本質上是確定由PDA 還是PC端負責主要控制的問題。考慮到PC 端設計和開發(fā)比PDA更加便捷、簡單,可以將通信控制權設置在PC上,即通常由PC 控制數(shù)據傳輸,PDA 負責等待通信命令和做出動作、反饋結果完成通信任務等[2]。
握手信號的設計可以參考TCP/IP 下的3 次握手協(xié)議規(guī)則,但考慮到3 次握手協(xié)議容易降低通信效率,以及PDA 的數(shù)據處理速度比PC 慢的問題,要對握手信號在3 次握手協(xié)議的基礎上加以簡化。在準備傳輸數(shù)據時,可先安排PC 端不斷發(fā)送握手信號,PDA 接收信號后返回、響應信號即代表握手成功,再開始數(shù)據通信。整個流程可概括為以下3 個步驟:(1)發(fā)送方每間隔一段時間,便發(fā)送握手信號;(2)接收方接收信號后,發(fā)送響應信號;(3)發(fā)送方接收到響應信號后,開始發(fā)送第一個傳送包,否則檢驗超時情況,判斷為超時則結束通信,否則繼續(xù)[3]。該流程如圖2 所示。

圖2 握手協(xié)議的運作流程
PDA 與PC 數(shù)據通信技術實現(xiàn)的系統(tǒng)應基于通信分層的準則,便于減少層間的耦合度,使某一層的下基層具有差異性的功能實現(xiàn)方式,同時使同一層具備支持不同上基層的能力。整個通信框架可以劃分為4層,按照從低到高的順序分別為物理層、鏈路層、控制層以及應用層,便于割離底層和硬件有關的協(xié)議同上層、應用相關的協(xié)議。在通信協(xié)議下的用戶組織通信時,只需調用上層服務即可,無須考慮下層的實際通信流程,為數(shù)據交換程序的編制提供了便利。
由于PDA 自身的特殊性以及內存容量小、處理器速度慢的缺陷,PDA 與PC 進行數(shù)據通信時,無法實現(xiàn)數(shù)據不限速流傳輸?shù)哪繕耍虼诵枰疃仍O計通信流程。其中,每傳送1 個數(shù)據包便等待接收方返回正確接收的信號,在確定接收方已經正確接收和處理數(shù)據包后,再發(fā)送下一個包,直到發(fā)送完所有數(shù)據包。在通信之前,PDA 或PC 端仍然處于不斷發(fā)送握手信號的狀態(tài),但在接收到該信號后則返回響應信號,證明握手成功和傳輸數(shù)據。在通信之前,因使用串口通信模式的緣故,要考慮到串口初始化方面的問題,如設置串口號、傳輸波特率等。數(shù)據通信技術的實現(xiàn),還要支持各種類型的PDA,提高擴展性與兼容性。因此,在PDA 進行數(shù)據通信之前,應掌握目前PDA 的型號與配置情況,為使用差異性的通信指令、數(shù)據格式提供便捷。在基于互聯(lián)網的TCP/IP 協(xié)議下,在設計中還可以采取滑動窗口的方法,達到控制流量的目的[4]。
物理層的工作為透明化傳輸比特流,能夠直接向下同傳輸介質銜接,建立在物理傳輸介質上,為若干數(shù)據鏈路層實體之間提供、維持、建立、釋放必要的物理連接,在開展傳輸數(shù)據位流工作的基礎上實施錯誤檢查,便于將比特信號通過傳輸介質從一個系統(tǒng)傳輸至另一個系統(tǒng)。由于該系統(tǒng)選擇了基于串口的通信模式,則物理層運用的串行數(shù)據接口標準為RS-232 協(xié)議,屬于使用頻率較高的串行通信接口,可以實現(xiàn)數(shù)據在物理信道中傳輸?shù)哪繕恕T赑DA 與PC 進行數(shù)據傳輸時,物理層的功能將由串行口負責實現(xiàn),先將某幀數(shù)據逐字節(jié)地進行并串轉換處理,配置奇偶校驗位和轉換信號電平后,再發(fā)送至物理信道。當信道接收之后,則開展數(shù)據位串行接收工作,同步轉換電平與校驗奇偶性,最后完成串并轉換,將數(shù)據信息與電路狀態(tài)報告至鏈路層。
鏈路層負責使用物理層建立的物理連接構成實際的數(shù)據鏈路,為上層傳送和接收數(shù)據流,即構建、維持、釋放數(shù)據鏈路以及傳輸數(shù)據位流,運用下層物理層建立的物理連接構成數(shù)據通路,將控制層內具有意義、結構的數(shù)據包轉化為二進制比特流,使數(shù)據通過傳輸介質從一個系統(tǒng)傳輸至另一個系統(tǒng)。該層面的設計上應重點解決PDA 與PC 端數(shù)據處理速度不匹配的問題。由于PDA 緩存較小,緩存較多、傳輸速度較快的PC 端則要控制好數(shù)據通信量和速度,以防出現(xiàn)數(shù)據丟失、緩沖區(qū)溢出等現(xiàn)象。鏈路層的傳輸介質主要為通過串口采用某種具體方式傳輸?shù)姆椒ǎ袟l件的情況下可以引入藍牙、紅外等技術,便于在轉變傳輸方法后無須轉變接口,強化了系統(tǒng)的可擴展性[5]。
控制層的功能接近于TCP/IP 的運輸層、網際層功能,即對于上一層傳輸而來的數(shù)據按照既定的協(xié)議格式組織分組和打包,利用特定的校驗方式對數(shù)據包加入或解開校驗碼處理。在從應用層接收到數(shù)據塊后,將數(shù)據塊拆分為大小適中的數(shù)據包,同時在包內加入額外的控制信息,完成無錯傳輸數(shù)據包的任務。當接收方接收到信息幀后,則利用選定的錯誤控制方式組織校驗,便于在發(fā)現(xiàn)錯誤后盡快處理。而在數(shù)據包校驗中發(fā)現(xiàn)錯誤之時,控制層將負責對數(shù)據重新傳輸?shù)纫馔馇闆r的處理,目的在于向上一層提供可靠的無錯數(shù)據運輸連接。在PDA 和PC 端雙方的校驗方法、包長度等數(shù)據控制協(xié)議相關內容發(fā)生變更后,只需改變該層的實現(xiàn)方式即可,不影響其他層。例如,在設計中可以將數(shù)據包的數(shù)據長度定義為最大64 Bytes,配合使用CRC-16 的校驗方法,便于在將該系統(tǒng)應用于其他PDA,或采用其他通信方法后致使數(shù)據包長度、校驗方法出現(xiàn)變化時,解決對其他層產生影響的問題,同樣具有加強系統(tǒng)可擴展性的功效。
運用數(shù)據通信技術支持PDA 和PC 之間的通信,能夠為PDA 用戶提供更多數(shù)據傳輸方面的便利。因此,技術人員要對PDA 和PC 間的數(shù)據通信設計引起高度重視,健全和完善數(shù)據通信系統(tǒng),通過精準分析通信協(xié)議基礎、解決通信協(xié)議設計問題、做好握手信號與指令信號的設計工作,以及把握通信框架、通信流程、物理層、鏈路層、控制層、應用層的設計要點,為PDA 和PC 之間的數(shù)據通信提供可靠的設計方案。