新闻中心

EEPW首页>嵌入式系统>设计应用> 80C196KB与PC机之间的远程通讯系统设计

80C196KB与PC机之间的远程通讯系统设计

作者: 时间:2012-03-14 来源:网络 收藏

调制解调器安装好后,必须预先设置好调制解调器的初始状态,然后再开通。否则通讯将不会成功。用户对Modem初始化状态的设置可以保存在非易失性RAM中。

下面对表3所列的传输过程进行说明。

(1)在握手初期,两端的DTE需对Modem进行复位操作。为此,它们先给本端的Modem发ATZ命令。若Modem能执行重设操作,便会返回结果码OK,若Modem尚未与电话线连接,便返回NO DIALTONE,表示没有拨号音。

(2)两端DTE给各自的Modem发ATF命令,调入Modem出厂缺省设置。

(3)主叫端DTE(196KB)向应答端Modem发拨号命令ATDT xxxx(ATDT表示音频拨号,xxxx为对端的电话号码)。当对端Modem检测到振铃(RING)后,由机控制并回送应答呼叫命令ATA。如果话路正常,则在一定的延时后,两端Modem收到结果码CONNECT 9600,并使Modem的CD指示灯亮,以表明数据传输链路成功建立。

(4)数据传输。

(5)数据通讯完成后,双方Modem要拆链挂机。“+ + +”命令是由数据传输状态转为命令状态的AT指令,它的前后必须有一段时间延时。当Modem状态变为命令状态时,可以用命令ATH来实现挂机。至此,两台Modem间的通讯任务就完成了。此时机内已存放了主机传来的数据,将这些数据存入数据库后可作进一步的处理。

5 数据传输的流量控制和侦错纠错

当两端Modem正确可靠地建立起数据链路后就可以进行数据通讯了。在通过电话系统传输数据时,没有一种简单的方法能确保数据正确完整地到达对方。数据错误的发生可能有多种原因。由于串行通讯时数据是逐位发送的,因此即使极小的噪声都有可能在多个位上造成严重错误,当波特率较高时出现错误更严重。在实际应用,常采用XMODEM协议对数据进行打包处理以检测传输过程中出现的错误,若检测到错误信息,则要求重传出现错误的数据信息。理论上讲如果每个数据包都能正确地传送,那么整个数据块也将成功地传送。XMODEM协议按照一套特定的准则控制着数据传输的所有细节,其中包括如何启动传输、包的大小、包的内容、正负应答以及如何完成传输等。

XMODEM协议虽然较为成熟和完美,全过于复杂。本系统借鉴XMODEM协议的思想,并针对现场监控数据的特点,了一套简洁的流控和侦错协议。从本系统的实际运行情况来看,该协议可保证数据的可靠传输,并能在话路质量较差时多次重发出错的数据帧直到数据传输正确为止。

图3为上位机通信子程序的流程图,它主要利用VB6.0的通讯控件MSComm的ON COMM事件。

本系统在每次通信中,由送给机的有效数据帧共4320帧,每帧113字节。其中有效字节112个,以3个FFH开头,最后1个字节为异或结果,可用于传输后的异或校验。在发送有效数据帧之前,下位机先发一个请求帧(仍为113字节),其帧结构为112个F0H加一异或结果。上位机收到该帧请求信号后,将回送握手成功信号,并作好接收有效数据的准备。下位机收到上位机发回的握手成功信号后,便将有效数据帧逐帧发送。

上位机对每帧数据的均要作异或校验。如有错误的则回送失败信号,并要求下位机重发;正确的则放入缓冲数组以备存库,并回送成功信号。当有效数据帧发送完毕后,下位机将发一个结束帧,其帧结构为112个FCH加一个异或结果。上位机收到该帧结束信号后,发出AT命令“+ + +ATH”以拆链挂机。至此,数据通信过程结束,之后,上位机将缓冲数组里数据存入数据库,以便日后进行数据分析。

6 结束语

利用公用电话网,单片机系统可通过Modem与远方监控中心进行通讯。这种系统的软硬件方案简单可行,运行成本低,数据传输速率较高。本监控系统已在现场投入使用,经受了实际考验。可推广应用于各类


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭