80C196KB與PC機之間的遠程通訊系統設計
調制解調器安裝好后,必須預先設置好調制解調器的初始狀態(tài),然后再開(kāi)通。否則通訊將不會(huì )成功。用戶(hù)對Modem初始化狀態(tài)的設置可以保存在非易失性RAM中。
下面對表3所列的傳輸過(guò)程進(jìn)行說(shuō)明。
(1)在握手初期,兩端的DTE需對Modem進(jìn)行復位操作。為此,它們先給本端的Modem發(fā)ATZ命令。若Modem能執行重設操作,便會(huì )返回結果碼OK,若Modem尚未與電話(huà)線(xiàn)連接,便返回NO DIALTONE,表示沒(méi)有撥號音。
(2)兩端DTE給各自的Modem發(fā)ATF命令,調入Modem出廠(chǎng)缺省設置。
(3)主叫端DTE(196KB)向應答端Modem發(fā)撥號命令ATDT xxxx(ATDT表示音頻撥號,xxxx為對端的電話(huà)號碼)。當對端Modem檢測到振鈴(RING)后,由PC機控制并回送應答呼叫命令ATA。如果話(huà)路正常,則在一定的延時(shí)后,兩端Modem收到結果碼CONNECT 9600,并使Modem的CD指示燈亮,以表明數據傳輸鏈路成功建立。
(4)數據傳輸。
(5)數據通訊完成后,雙方Modem要拆鏈掛機。“+ + +”命令是由數據傳輸狀態(tài)轉為命令狀態(tài)的AT指令,它的前后必須有一段時(shí)間延時(shí)。當Modem狀態(tài)變?yōu)槊顮顟B(tài)時(shí),可以用命令ATH來(lái)實(shí)現掛機。至此,兩臺Modem間的通訊任務(wù)就完成了。此時(shí)PC機內已存放了主機傳來(lái)的數據,將這些數據存入數據庫后可作進(jìn)一步的處理。
5 數據傳輸的流量控制和偵錯糾錯
當兩端Modem正確可靠地建立起數據鏈路后就可以進(jìn)行數據通訊了。在通過(guò)電話(huà)系統傳輸數據時(shí),沒(méi)有一種簡(jiǎn)單的方法能確保數據正確完整地到達對方。數據錯誤的發(fā)生可能有多種原因。由于串行通訊時(shí)數據是逐位發(fā)送的,因此即使極小的噪聲都有可能在多個(gè)位上造成嚴重錯誤,當波特率較高時(shí)出現錯誤更嚴重。在實(shí)際應用,常采用XMODEM協(xié)議對數據進(jìn)行打包處理以檢測傳輸過(guò)程中出現的錯誤,若檢測到錯誤信息,則要求重傳出現錯誤的數據信息。理論上講如果每個(gè)數據包都能正確地傳送,那么整個(gè)數據塊也將成功地傳送。XMODEM協(xié)議按照一套特定的準則控制著(zhù)數據傳輸的所有細節,其中包括如何啟動(dòng)傳輸、包的大小、包的內容、正負應答以及如何完成傳輸等。
XMODEM協(xié)議雖然較為成熟和完美,全過(guò)于復雜。本系統借鑒XMODEM協(xié)議的設計思想,并針對現場(chǎng)監控數據的特點(diǎn),設計了一套簡(jiǎn)潔的流控和偵錯協(xié)議。從本系統的實(shí)際運行情況來(lái)看,該協(xié)議可保證數據的可靠傳輸,并能在話(huà)路質(zhì)量較差時(shí)多次重發(fā)出錯的數據幀直到數據傳輸正確為止。
圖3為上位機通信子程序的流程圖,它主要利用VB6.0的通訊控件MSComm的ON COMM事件。
本系統在每次通信中,由80C196KB送給PC機的有效數據幀共4320幀,每幀113字節。其中有效字節112個(gè),以3個(gè)FFH開(kāi)頭,最后1個(gè)字節為異或結果,可用于傳輸后的異或校驗。在發(fā)送有效數據幀之前,下位機先發(fā)一個(gè)請求幀(仍為113字節),其幀結構為112個(gè)F0H加一異或結果。上位機收到該幀請求信號后,將回送握手成功信號,并作好接收有效數據的準備。下位機收到上位機發(fā)回的握手成功信號后,便將有效數據幀逐幀發(fā)送。
上位機對每幀數據的均要作異或校驗。如有錯誤的則回送失敗信號,并要求下位機重發(fā);正確的則放入緩沖數組以備存庫,并回送成功信號。當有效數據幀發(fā)送完畢后,下位機將發(fā)一個(gè)結束幀,其幀結構為112個(gè)FCH加一個(gè)異或結果。上位機收到該幀結束信號后,發(fā)出AT命令“+ + +ATH”以拆鏈掛機。至此,數據通信過(guò)程結束,之后,上位機將緩沖數組里數據存入數據庫,以便日后進(jìn)行數據分析。
6 結束語(yǔ)
利用公用電話(huà)網(wǎng),80C196KB單片機系統可通過(guò)Modem與遠方監控中心進(jìn)行通訊。這種系統的軟硬件設計方案簡(jiǎn)單可行,運行成本低,數據傳輸速率較高。本監控系統已在現場(chǎng)投入使用,經(jīng)受了實(shí)際考驗??赏茝V應用于各類(lèi)遠程通訊系統。
評論