<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 80C196KB與PC機之間的遠程通訊系統設計

80C196KB與PC機之間的遠程通訊系統設計

作者: 時(shí)間:2012-03-14 來(lái)源:網(wǎng)絡(luò ) 收藏

調制解調器安裝好后,必須預先設置好調制解調器的初始狀態(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)后,由機控制并回送應答呼叫命令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í)機內已存放了主機傳來(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事件。

本系統在每次通信中,由送給機的有效數據幀共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),單片機系統可通過(guò)Modem與遠方監控中心進(jìn)行通訊。這種系統的軟硬件方案簡(jiǎn)單可行,運行成本低,數據傳輸速率較高。本監控系統已在現場(chǎng)投入使用,經(jīng)受了實(shí)際考驗??赏茝V應用于各類(lèi)。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>