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

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

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