调制解调器(Modem)实用技术20问 ·龙中湘 1996-01-05 ■一、Modem是做什么的? Modem是英文Modulator-Demodulator的简写,其中文意思是调制器_解调器,简称调制解调器。Modem的主要功能就是“调制”和“解调”,调制是指将计算机发送出来的二进制数字信号转换成带宽小于4KHz的模拟形式的信号,以便在电话网上进行远距离传输;解调则是在接收端将经电话网传送过来的“已调制”的信号还原成计算机能够接收的二进制数字信号。所以,简而言之,Modem是为使计算机信息能在电话网上传输而使用的信号变换器。 近年来,各Modem生产厂家在Modem中增加了一些新的功能,例如将数据压缩技术引入Modem进一步提高了Modem的传输速度和传输效率;将纠错技术引入Modem则使得Modem的传输更加可靠。此外,有些厂家还在Modem中集成了数字化语音以及PAX的功能,拓宽了它的应用领域。 ■二、RS-232接口与V.24是一回事吗? RS-232接口是美国电子工业联合会(EIA)制订的一个关于串行通信接口的电子信号、电缆和连接器特性的技术标准。这个标准的C版本,即RS-232-C被广泛使用,且为国际电话电报咨询委员会(CCITT)所采纳,定名为V.24予以发布。但CCITT将RS-232-C中关于电气特性的描述作了一定的扩展,放在另一个文件V.28中予以发布。因此,严格地说,V.24只是RS-232-C的一个子集,它定义了连接器的形状规格和各信号线的功能、连接电缆的长度和允许的传输速度,但没有包含接口的电气特性的说明。 然而在习惯上,人们对RS-232-C与V.24的使用不加区分。 RS-232-C被用作计算机与Modem连接的标准,它包含25条信号线,因而其插、接头也是25针的。但是,实际上经常用到的只是其中的7~9条信号线。因此,许多微机厂商便逐渐将25针的连线器简化成9针的连接器,同时采用9芯的连接电缆。这种简化已经在微机上十分普及,但Modem通常还是提供25针的连接插坐。为了使它们相互连接,我们必须使用一种一头为9针插座,另一头为25针插头的9芯电缆,其连接关系如图1所示。此外,使用传统的两端为25针插头、插座的RS-232-C电缆,则需加接一个9-25的转换接头,可以实现同样的连接效果。 ■三、RS-232-C/V.24常用的信号线有哪几条,各有何作用? RS-232-C/V.24常用的信号线有TD、RD、DTR、DSR、DCD、RTS、CTS和公共地线共8条。其中TD(发送数据)用于计算机各Modem发送数据,RD(接收数据)用于接收来自Modem的数据;DTR计算机表示准备好的信号,通信软件在开始传输数据之前常置DTR为ON的状态。DSR则是Modem通知计算机准备好的信号,一般Modem在加电初始化之后置它为ON的状态。DCD(载波检测)反映Modem的连通情况,当Modem与远地的另一台Modem连通时,置OCD为ON。RTS(请求发送)和CTS(清除发送)则是用来在计算机与Modem之间实现硬件流控的。有时,第九条信号线RI(振铃指示)也被使用,表示Modem正在向远地的Modem呼叫(拨号)。 ■四、硬件流控和软件流控有什么作用? 计算机与Modem之间的流控(Flow Control,流量控制)用于协调二者之间的发送和接收数据的速度。当计算机的接收处理跟不上Modem传送过来的数据流的速度时(例如因为接收缓冲区不够用,或接收处理被其它的活动暂时中断),计算机便可以向Modem发出某种信号,要求Modem暂停向计算机的数据传送,直到计算机具备处理能力时,再向Modem发出解除暂停的信号,恢复数据的传输。这个过程被称作计算机对Modem的流控。相反,当Modem跟不上计算机的传输速度时,亦可向计算机发出暂停信号,实现另一个方向上的流控。 硬件流控和软件流控都是按上述原理工作的,只是二者采用不同的方式来发送“暂停”的请求信号。在硬件流控时,计算机通过置RTS信号为OFF来暂停Modem的传输,置RTS为ON则恢复传输;在另一个方向上,Modem通过置CTS为OFF来暂停计算机的发送,置CTS为ON则恢复发送。 软件流控不使用RTS和CTS信号,而是靠发送特殊的字符XOFF暂停对方的发送,发另一个字符XON恢复对方的发送。当计算机接收时,流控信号XON/XOFF字符从TD线发至Modem;当Modem接收时,XON/XOFF字符从RD线发至计算机。 为实现计算机与Modem之间的流控,二者必须紧密配合。一方面,通过对Modem的流控方式参数的选择使用之工作在指定的流控方式下;另一方面,计算机的通信软件也要设计成具有相应流控方式的处理能力(不论硬件流控还是软件流控都需要通信软件处理),二者缺一不可。顺便指出,由于硬件信号的反应时间更快,且不存在误识别的问题,因此,在有条件的情况下,建议使用硬件流控方式。 ■五、在什么时候需要使用Modem箱? 在一个与很多远地的计算机或终端连接的 网络中心、信息服务中心或大中型机的主机房中,选用Modem箱是比较合适的。Modem箱其实是一个为多个(如12个或16个)外接Modem供电的机箱,不过这些外接Modem都做成插卡的形式,插在Modem箱的各个槽位中。每块Modem卡一端通过RS-232-C接口电缆与主机的一个通信口相连,另一端接到一对电话线或专线上,因此这种Modem卡与机内Modem卡是不同的。Modem箱除提供集中的供电外,一般还提供液晶显示器和一些功能键,用以对其中的每块Modem进行状态的观测和参数的设置。Modem箱的最大好处在于避免了大量Modem的堆放和对电源插座的占用,便于维护和管理。此外,Modem箱一般都提供“热插拨”的功能,使任何一块Modem卡可以在带电工作的情况下随时拨出或插入,不影响其它Modem卡的正常工作。 ■六、现在哪种Modem的速度最快? 1994年9月,国际电信联盟技术标准部ITU-TSS(即以前的国际电话电报咨询委员会CCITT)正式发布了最新的一个Modem协议标准V.34。V.34可以达到最高28.8KBPS的传输速度,并且能够根据线路质量按照28.8K/26.4K/21.6K/19.2K/16.8K/14.4K/12K/9.6K/7.2K/4.8K等多个速度档进行自动的升、降速工作。现在已有多家支持V.34标准的Modem产品上市,如AT和Paradyne公司的Comsphere 3810 plus、Hayes公司的Hayes Optima 288 V.34、Motorola公司的Motorola V.3400和Muti-Tech System公司的MT2834等。可以说,支持V.34标准的Modem是目前所能买到的速度最快的Modem。如果将Modem采用的4∶1的压缩技术考虑进去,这种Modem可以达到的DTE传输速度为4×28.8K=115.2KBPS。值得指出的是,在V.34之前曾经出现过一个过渡性的高速Modem标准V.Fast,可以实现19.2KBPS的传输速度。但随着正式标准V.34的推出,V.Fast已被淘汰,请不要再选购支持V.Fast标准的Modem? \[216581] ■七、异步(Asychronous)传输和同步(Synchronous)传输各有何特点? 异步传输和同步传输指的是计算机组织传输数据采用的两种不同的格式。异步传输以字符为单位组织数据,每个字符由8~11个二进制位组成(如图2所示),其中第一位称为起始位,作为一个字符开始的标志,接下来的部分是该字符的有效部分,可根据需要选取5、6、7或8个二进制位。有效字符位之后是1或2个停止位,用来标志字符的结束。最后一位是奇偶校验位,用来检查传输中的错误。这一位也可以不用。 同步传输不是以字符为单位组织数据,而是将一定数量的二进制数据位(如256位)按某种格式组装成帧(Frame),如图3所示。每个帧由帧头(32位)、数据(256位)和帧尾(24位)三部分组成。帧头通常包括帧的起始标志(一个特别格式的字符)、地址和一些控制信息,帧尾则由16位CRC校验码和帧结束标志组成。 同步传输可利用帧尾的CRC校验码进行检错,利用帧头的控制信息实现流控和差错控制。因此,其传输的可靠性比异步方式要高。而且,由于其传输的有效数据位与传输的总的二进制位数之比要比异步传输高,因而其传输效率较高。 在计算机或终端中,实现异步或同步数据格式的组装通常是由硬件的电路来实现的。微机的两个串行接口一般只提供异步格式的传输,因为在微机主机或随机的插卡上集成了异步传输的接口电路。如果要进行同步通信,如X.25网、IBM主机与终端的通信,需要在微机中另插一块同步通信卡。 现在,利用Modem进行异步传输也能够较好的结合同步传输的优点。尽管在计算机与Modem之间采用异步格式传输,但Modem能将异步数据转换成同步格式的数据,实现了Modem与Modem之间的差错控制和流量控制。 ■八、机内Modem卡与外接Modem的差别何在? 目前市场上可以买到的Modem产品一般有两种形式:机内Modem卡和独立的外接Modem。 外接Modem需要专门的电源变压器供电,通过RS-232-C电缆与微机的串行接口相连接。外接Modem的参数设置和状态观测都比较方便,除了可由通信软件利用AT命令实现外,通常还可以通过前面板上的液晶显示器和几个功能键来完成。从外接Modem的液晶显示器上可以看到当前是否连通,若连通则还可显示连接的速度、通信协议、采用何种纠错及压缩协议、线路的质量等信息,还可以借助于面板上的菜单选择键设置Modem的各种参数、电话号码,以及进行拨号。总之,外接Modem在使用和维护上是十分方便的。 机内Modem卡直接插在微机的扩展槽中,其供电来自于微机电源,也不需要RS-232-C连接电缆。此外,机内Modem卡一般都自带串行接口芯片,而不使用微机的串行接口电路,因此对那些身来未带串口的微机是比较方便的。但对于将串行接口电路集成在主板上的微机,使用Modem卡时应修改其系统配置(setup)参数,使其COM 和COM B处于禁止(Disable)的状态。与外接Modem相比,机内Modem卡不占地方,不易受到物理的损坏,但缺点是不能从Modem直观地看到当前的连接状态,不能用手工方法随时设置和修改参数,查错和更换都比较麻烦。? ■九、如何理解那么多的Modem协议标准? Modem是为了使计算机发出的二进制形式的数字信号能够在模拟的电话信道中传输而引入的信号变换设备。Modem接收到来自计算机的二进制信号后,便进行“调制”处理,将它们变换成适合于电话信道传输的“正弦波”形式的模拟信号(如图4所示),同时还要保证在经过电话线和交换机进行远距离的传输之后,能够在接收端的Modem中正确地被“解调”即还原出来。这种正弦波信号称为“载波”,计算机发出的二进制信息则通过载波的频率、幅度或相位的变化来携带。由于电话信道的频带宽度小于4KHz,这就决定了我们采用的载波正弦信号的频率不能大于4KHz。考虑到调制后的载波要占用一定的频带宽度,因此载波频率通常选在2KHz左右。 我们知道,Modem的传输能力通常是以单位时间内所能传送的二进制位数,即所谓比特率(BPS,Bits Per Second,每秒比特)来衡量的。调制解调技术的核心就是如何巧妙地进行信号变换,使单位时间有更多的二进制们被载波所运送却不出现差错。 最早期的调制解调器是1950年由AT&T公司推出的数字电话,它仅采用300Hz的载波,使用现在看来是最简单的调频技术FSK(即用两种不同的频率来分别代表数字0和数字1),实现了300BPS的传输速度。这种调制解调技术被称为Bell 103标准。由于当时的Modem仅用于终端与主机之间的通信,速度要求不高,因此这个标准被沿用了很多年,且被国际电话电报咨询委员会CCITT定名为V.21协议标准(作了少量的修改)。 进入80年代以后,由于微型计算机的广泛普及和计算机网络的发展,对于远程数据通信的速度要求变得越来越高,对调制解调技术的研究也更加深入。于是,CCITT在80年代初颁布了一个采用复合调制技术16-QAM(即12个相位角和4个调幅相的正交调制)的Modem协议标准V.22bis,实现了2400BPS的传输速度。 此后,格栅编码(TCM)调制技术的发明又使Modem的速度有了更大的飞跃。CCITT在继80年代末颁布的V.32(采用32-TCM技术,速度达9600BPS)标准之后,1992年又颁布了目前最为流行的V.32bis标准,它采用128-TCM调制,可实现14400BPS的传输速度。V.32bis还采用了自动升、降速技术,即可以根据线路的质量后退至12000、9600、7200和4800BPS等4个速度档进行工作,在线路质量变好时又自动逐级升速。 总之,众多的调制解调协议标准是调制解调技术在各个不 发展阶段的产物,实现了不同的数据传输速度。有些标准是某个Modem厂家的专利技术,如Bell 103,但因被其它厂家购买使用专利而广泛使用而成为工业标准,而更为流行的标准则是国际电信界权威CCITT所颁布的V系列标准。在选购Modem产品时,通常应从两个方面来看待Modem的协议。第一,如果要使新买的Modem能够与旧的原有Modem进行通信,或使用旧的仅支持某种早期协议的通信软件,则应注意新购Modem是否支持已在使用的Modem协议。第二,如果不需考虑兼容性的问题,则建议选择支持最新的CCITT标准的Modem,如支持V.32bis,甚至是支持刚颁布的V.34的Modem产品,以获得尽可能高的传输速度。 ■十、为什么速度为9600BPS的Modem,其说明书上却说可以达到最高38400BPS的传输速度? 谈到Modem的速度指标,首先应该区分关于传输速度的两个不同的概念:线路速度(Line Speed)和DTE速度(DTE Rate)。 线路速度是指Modem的调制解调处理可以实现的运载二进制信息的最高速度。如前面提到的V.32bis可实现的14.4KBPS,V.34实现的288KBPS的速度,指的都是线路速度;DTE速度则是指计算机向Modem发送或从Modem接收二进制数据的速度。依据国际电讯界的习惯,Modem被称为DCE(Data Commumicotuon Equipment,数据通信设备),利用Modem通信的计算机或终端则 被称为DTE(Data Temind Equipment,数据终端设备),因此这个速度也常称为DTE速度,以每秒比特(BPS)为单位。在早期的Modemk中,线路速度与DTE速度是完全一致的,没有任何不同。 然而,近年来研究人员了为提高Modem传输数据的速度,除了在改进调制解调技术上下了很大力气外,也在其它方面取得了明显的成效,这就是将“数据压缩”技术引入Modem。由于计算机传输的信息中通常都有大量的重复性内容,使用数据压缩技术后,可以使传输的有效数据大大减少。因此,不将计算机发出的数据直接在Modem中调制发送,而先对它进行压缩处理之后再送到调制部分发送,可以大大提高Modem的传输效率。也就是说,当Modem以某个固定的线路速度在电话线上传输二进制数据时,计算机可以比它更高的速度向Modem发送数据,在这种情况下,DTE速度便可以高于线路速度。 例如,如果Modem的线路速度为9600BPS,并采用了压缩比为4:1的数据压缩技术,那么,计算机便可以以4×9600BPS=38400BPS的速度向Modem发送数据。这就是9600BPS的Modem可以提供38400BPS的最高传输速度的原因。 ■十一、MNP协议有什么作用? 随着压缩技术的引入,纪错处理也被引入Modem,这是因为当Modem中采用了压缩和解压处理之后,对线路传输引起的差错变得十分敏感。线路中的一点微少的传输错误可能会导致数据解压处理的误识别,从而引发一长串的数据错误。MNP协议便是一组流行于Modem中的压缩和纠错协议。 美国的Microcom公司是在Modem中引入压缩和纠错技术的先驱,它先后推出的一系列压缩和纠错协议,称为MNP(Microcom Netwrk Protocol)协议。其中,MNP1~4和MNP10都是纠错协议,MNP5和MNP7是压缩协议。 MNP1~MNP3是Microcom公司早期采用的三种纠错协议,由于它们的纠错能力较差,且有降低传输效率的问题,现已很少使用。MNP4是在前面三个纠错协议基础上的改进型,它是一种面向比特型的纠错协议。MNP4将计算机送来的异步格式的数据转换成同步格式的帧,利用帧尾的CRC校验码检查传输中的差错,采用重发处理实现纠错,MNP4采用的“自适应帧长”技术进一步提高了传输的效率,成为一种广泛使用的Modem纠错协议。MNP10的纠错能力更强,但传输效率不如MNP4,适用于蜂窝电话网(大哥大)这类高噪声的传输信道。 MNP5是Microcom的一种压缩协议,它采用了两种压缩算法:霍夫曼编码(Huffman Code)和运行长度编码(Run-Length Code)。对于普通的ASCII码文本文件,MNP5可以获得2:1的压缩比,即压缩后的数据长度仅为原来的一半。MNP7在MNP5的基础上更进了一步,增加了按“字符对”的出现频率进行类似于霍夫曼编码的压缩处理,使压缩比提高到3:1。但其处理延时也略有增加。 目前,MNP5和MNP4是一种非常流行的压缩一纠错协议组合,很多Modem都实现了这一组压缩、纠错协议? ■十二、如何选用Modem的压缩纠错协议? 除上面提到的MNP系列协议外,CCITT也推荐了一对压缩一纠协议组:V.42bis+V.42。CCITT于1989年颁布的V.42bis是一种非常有效的压缩协议,它采用自适应型的字典算法Lemple-Ziv,对典型的ASCII码文本具有4∶1的压缩比,而且实时性比MNP5要好。 V.42bic需要V.42纠错协议的支持。V.42采用的纠错技术称为LAP-M(Link Access Procedure for Modem),实际上是将X.25网的同步链路协议LAP-B引入Modem,实现纠错处理。此外,V.42还具有与MNP4的兼容性,即将MNP4作为它的一个可选协议。 如果传输的文件已经预先作过压缩处理,如使用ARC、LHARC、PKZIP等,则最好不要在Modem中选用压缩技术。因为此时在Modem中进行的压缩处理不仅不能产生进一步的压缩效果,而且要耗费一定的处理时间,从而增加传输的延迟时间。此外,对于利用Modem进行非文件类传输,而只是传送少量的突发性数据,例如银行的日常业务处理,选用压缩协议也没有多大意义。但是,即使在不使用压缩协议的情况,却有必要使用纠错协议,这样做可以大大减轻通信软件纠错处理的负担,提高舆的可靠性。 比较而言,V.42bis比MNP5性能更好一些,这不仅表现在其压缩比(4∶1)比MNP5(2∶1)要高,而且当计算机送过来的是已压缩的数据时,V.42bis可以根据在线测试及时地切换到“透明模式”(即不作压缩处理)进行工作,减少了传输的延迟时间。因此,只要Modem许可,建议选用V.42bis作压缩处理。 值得指出的是,压缩比仅仅是一个参考值,它是根据对一些典型文件的传输处理按加权的方式平均计算出来的。实际传输中的压缩效果与文件的组成特性有关,例如对于执行文件(.EXE或.COM)及汉字文件,实验表明达到所标明的压缩比。对于这种情况,若计算机仍按压缩比的倍数速度向Modem发送数据,则势必造成数据在Modem缓冲区中的积压,不仅增加传输的延迟时间,还可能因缓冲区溢出而出错。此时,若在计算机与Modem之间进行流控,则可以避免这种问题的出现? ■十三.如何使Modem工作起来__连线问题? 为了使用Modem开始工作,首先应将Modem的连线接好。Modem的连线包括两个方面:与远程线路的连接和与计算机的连接。在接线时应注意如下事项: 1.明确远程线路的类型(专线还是拔号线),选择正确的多芯电缆和接线合。 通常,Modem的包装合中都附有两种电缆和接线合:一种是两头带RJ11接头的4芯电缆和有4个接线柱的接线合,用于连接拨号电话线。如果你不知道哪种接头是RJ11,可以将它们试着插入墙上的电话插孔,插得合缝的那种便是;另一种是两头带RJ45接头的8芯电缆和有8个接线柱的线合,常用于连线专线(亦称租用线Leased Line)。 2.将两条来自邮局的电话线或专线接到接线合中正确的位置。首先打开接线合,对于4个接线柱的接线合,应将两条电话线分别接入其2、3两个接线柱;而对于8个接线柱的线合,应将两条专线接入其1、2两个接线柱。以上操作可参照Modem说明书的图解进行。 3.与计算机的连接:若为外接Modem,请另外购买一条RS-232C电缆(少数Modem随机配发),将计算机的一个串行接口(COM A或COM B)与Modem连接起来。注意,微机通常只提供9针的串行接口,因此RS-232C电缆也应选用一头为9针接头的,或者就加接一个9-25针的转换接头;若为机内插卡式Modem,则只需打开机箱,将Modem卡插入一个空闲的扩展槽即可。 4.正确设置计算机串口的配置:使用外接Modem时,应进入微机的Setup程序,确认与Modem连接的串行端口没有被disable(禁止),且其参数与通信软件的设置一致。关于串口的参数主要有两个,占用的中断级别IRQ和占用的I/O端口地址,对于COM1,IRQ=4,I/O地址为3F8,对于COM2,IRQ=3,I/O地址为2F8。当然,还应注意上述参数不与微机中的其它插卡(如网卡等)互相冲突。 若使用机内Modem卡,则必须使微机串口处于disable(禁止)的状态,以免与Modem卡上自带的串行接口电路相冲突。 ■十四.如何使Modem工作起来__通信软件问题? Modem的连线完成后,我们便需要使用某种通信软件,来实现数据传输。现有的通信软件很多,各种软件在功能上和使用上都有很大差异,现分类简述如下: 1.专用的通信软件:这类通信软件通常是为某种专门的应用(如证券交易、国家信息中心的数据查询、银行信用卡业务联网等)设计的,这类通信软件的发放或出售机构一般对Modem的选购、Modem参数的设置和通信软件的使用等方面作出详细的指导或说明。因此在使用时,只要根据要求认真操作即可。 2.Modem随机配发的通信软件:不少Modem厂家都随机配发一张通信软件的软盘,并附有详细的使用说明书或在线文档。这类通信软件一般都提供文件发送和接收的功能,有的还可以收发传真、处理数字化语音等。由于这类通信软件是由Modem生产厂家自己设计的,因此不存在与Modem不兼容的问题,可在仔细阅读说明书或在Modem销售代理商的指导下正确使用。这类软件的共同缺点就是功能较少,不一定能满足您的实际应用需要。 3.通用的通信软件:目前流行的通用的Modem通信软件有:Digital Communications Associates公司的Crosstalk,Datastorm Technologies公司的Procomm Plus、Hilgrare公司的Hyper Access等。此外,PC tools软件包中的Commute、Windows的Terminal也可以算在这一类中。这类通信软件不是为某种专门的应用或某种牌子的Modem设计的,其共同特点是功能丰富、适应性强,可在各种应用环境中灵活使用。主要功能有: 〈1〉文件传输:支持按多种文件传输协议和以各种不同的速度进行文件传输。常用的文件传输协议有XMODEM协议、XMODEM协议的各种变体、ZMODEM协议、Kermit协议等。 〈2〉终端仿真:可使你的微机仿真成多种不同类型的终端,如DEC的VT-100、VT-220、IBM的3101型、ANSI×3.64、CompuServe的VIDTEX等,从而实现与不同类型的主机进行通信。 〈3〉屏幕对话:在屏幕上出现两个显示区域,通过击键与相连的微机进行对话,双方键入的信息将显示在各自的显示区域中。 〈4〉远程控制:可使一台微机工作于“主机方式”,这样,其它的微机可以通过Modem在远地操作这台“主机”,包括读写其硬盘中的文件,运行程序等。 〈5〉多进程通信:可以建立几个通信进程,同时与多个远地的微机或主机进行通信 ■十五、如何设置Modem的工作参数? 为使Medem正确地完成数据传输任务,必须为它设置一系列的工作参数。有两种途径可以设置Modem的工作参数: 1.手工设置:外接Modem的面板上一般都提供一个小的液晶显示器和4个功能选择键,通过它们可以方便地对Modem参数进行手工设置。早期的Modem则需用DIP开关来设置参数。一般来说,只有当使用专用的通信程序或自己编写的通信程序时,才需要用手工的方法设置Modem参数。 2.软件设置:微机通信软件通过串行接口向Modem发出一系列的AT命令,对Modem的参数进行设置。使用Modem随机的通信软件或通用的通信软件时,一般都通过这种方式在数据传输开始之前设置好Modem的各种工作参数。 ■十六、在使用通用通信软件进行数据传输时,一般要设置哪些参数? 通用的通信软件一般都提供一个配置莱单,要求用户在开始传输数据之前,正确地选择其中的各项设置,根据这些设置,Modem选择适当的AT命令发往Modem,使Modem工作在正确的状态。与Modem有关的参数主要有: 1.Modem类型:可在通信软件的Modem列表中选取当前使用的Modem类型。若在列表中找不到这种型号的Modem,可选择同一牌子的相近型号的Modem。若连这个牌子都看不到,则情况处理起来就比较麻烦了。 2.传输方式和数据格式:根据所用的串行接口电路,选择同步或者异步的传输方式。若选择异步的传输方式,还应选择数据位、停止位的位数,以及是否使用奇偶校验位。在有汉字信息传输时,建议选择8位数据位;在Modem具有纠错能力时,可不选择校验位。 3.选择通信速度:这里选择的是DTE的速度。选择通信速度时应综合考虑三个方面的因素:Modem支持的最高线路速度、压缩协议和线路的质量。当线路质量较好且传输的是未经压缩的文件时,可以按以下公式选择DTE的速度:DTE速度=最高线路速度×压缩比。如果线路质量不佳,则应根据线路能够实际支持的线路 速度来选取DTE速度。 4.选择流控方式:在高速通信时,建议选择硬件流控(Hordware Flow Control)。 5.选择线路类型:根据所采用的远程线的类型进行选择。在我国,远程线仅有“拨号线(Dial Line)”和“二线制专线(2-Wires Leased Line)”两种类型。如果选择了电话线,还应将通信的另一方的电话号码填入。 6.选择数据压缩与纠错协议:即选择Modem是否采用压缩与纠错协议及采用何种压缩纠错协议。早期版本的通信软件没有这个选项。 除了以上与Modem有关的参数外,根据应用的不同,还应选择通信软件的一些工作参数。例如,在进行文件传输时,应选择采用何种文件传输协议,在进行终端仿真时,仿真成哪种类型的终端等。 ■十七、在使用通用的通信软件时,如果该软件的MODEM列表中没有这个厂家(或型号)的选项,怎样设置参数呢? 目前,在使用MODEM时遇到的一个最大困难就是没有一套统一的MODEM命令标准。AT命令是由HAYES公司最早使用于设置MODEM参数的一套命令,此后为几乎所有的MODEM生产厂家所采用,成为设置MODEM参数的一种通用方法。但是,由于MODEM技术发展很快,而迄今为止又没有一家权威机构对AT命令作出规范,制订统一的标准。结果,除了少数基本的AT命令以外,各个厂家所使用的扩展的AT命令差异很大,互不兼容。这样便导致了通用通信软件在设置MODEM时的困难局面。当使用一种在软件中未列入牌子的MODEM时,只能由用户先仔细地阅读该MODEM的随机说明书,并试着选择所需的MODEM命令,作为初始化AT命令串填入通信软件。为了说明在发起一次MODEM通信通常需要哪些初始化命令,下面以台湾产的ZYXEL1406 MODEM为例,介绍AT命令的选取: 1.设置线路类型:此命令几乎所有的MODEM都通用,拨号线为AT&LO,二线制专线为AT&L1。我们这里使用拨号线,故选AT&L1。 2.选择传输方式和数据格式:我们选用异步传输,命令为AT&M1,采用8位数据位、1位起始位和1位停止位,不使用校验位,命令为AT*C0 3.选择流控方式:我们选用硬件流控,命令为AT&H3。 4.选择数据与纠错协议:采用V.42和V.42BIS协议,命令为AT&K4。 5.选择线路速度和调制解调协议:我们采用14400BPS的线路速度和V.32BIS协议,命令为AT&N17。 6.其它通用参数:其它几个参数包括:命令回显(COMMAND ECHO)、结果码是否返回(RESULT CODE ECHO)、结果码的格式、DCD的状态和DTR的状态等。这几个命令对各种MODEM都通用,故在选取时,应查看通信软件对其它类型的MODEM是如何设置的,然后照抄过来即可。在本通信软件中,这些命令是:ATEO(无命令回显)、ATQO(返回结果码)、ATVO(结果码为数字型)、ATX4(结果码中不包含差错协议)、AT&C1(DCD跟随载波)、AT&D2(DTR由ON变OFF时挂断MODEM)。 综上所列,对ZYXEL1496MODEM,当采用57600BPS的DTE速度、使用拨号线通信时,可选取下面这一组初始化的AT命令: ATEOQO VOX4&C1&D2&L1*CO&H3&K4&N17 最后再加上拨号命令“ATDT+电话号码”,即可进行数据传输了。 对于其它未在通信软件的MODEM列表上列出的MODEM,可参照上述过程,通过仔细阅读MODEM的说明书后得出正确的初始化AT命令。 ■十八.在启用MODEM的数据压缩协议进行高速传输,却发现接收到的全是乱码,原因何在? 此时,可查看MODEM显示的DTE速度,如果此DTE速度与MODEM的线路速度一样,却低于通信软件设置的DTE速度,可以肯定问题出在MODEM关于DTE速度的一个参数:“比特率调整(BPS RATE ADJUST)”的设置不正确。可以通过手工设置MODEM参数的办法,将“比特率调整”设置为OFF状态,即不根据线路速度进行DTE速度的调整,从而解决这个问题。此外,也可以通过查阅MODEM手册,找到设置此参数的AT命令,并将此命令加入到通信软件的MODEM初始化串中,达到同样的效果。注意,在某些MODEM中,此参数称为“DTE速度选项(DTE RATE OPTIONS)”它有两种选择:固定于DTE速度(FIXED AT DTE RATE)和跟随线路速度(FOLLOWS LINK RATE),此时正确的选择应该是前者,即固定于DTE速度。 要明了产生上述问题的原因,首先必须弄清楚MODEM是如何确定其DTE速度的。 通常,MODEM都具有自动检测DTE速度的功能,即能够根据计算机发给它的第一个AT命令的AT两个字符的速度来确定DTE的速度,此时,MODEM的DTE速度跟随通信软件设置的串口接口的DTE速度。但是考虑到在线路质量不佳的时候,MODEM的线路速度可能达不到DTE的速度,导致通信无法正常进行的情况,为此,在MODEM中增加了一个参数选项,允许MODEM的DTE速度不是简单地固定在DTE的速度,而是跟随实际的线路速度(即MODEM连通时的实际速度)而变化,这个选项便于“比特率调整”。此时,通信软件也必须能根据MODEM对初始化AT命令返回的结果码所指示的实际连接速度来调整发送数据的速度,才能实现对线路质量的自适应调整。显然,当线路质量不佳时,这种调整是有意义的。但是当线路质量很好且采用压缩协议之后仍然进行这种调整,则会导致传输的错误。这个问题的出现也从另一方面提醒我们,追求高速通信应充分考虑线路的质量状况,如果线路质量不佳,倒还不如选择低一些的传输速度,以保证通信得以正常进行? ·龙中湘 ■十九、Modem的命令模式(Command Mode)和数据模式(Data Mode)有何不同?在它们之间如何切换? 从与Modem相连的计算机的角度来看,Modem其实有两种不同的工作状态:一种是传输数据的状态,即Modem将计算机发诚实过来的任何字符都当作要传输的数据,进行相应的调制处理,变换成模拟信号后从远程线路发送出去。这就是Mode的数据模式;Modem的另一种工作状态可能平时不太在意,当通信软件对Modem进行参数设置,发送初始化的AT命令时,Modem将计算机发来的任何字符都当作AT命令来理解,并根据这些命令调整有关的各种Modem参数。Modem的这种工作状态称为命令模式,此时从计算发来的任何字符都不会从远程线路发送出去。 那么,Modem何时处于命令模式,何时又进入数据模式呢?一般来说,当Modem开机但未建立起远程的连接时,Modem处于命令模式,此时Modem可接受来自计算机的各种命令;当Modem收到拨号命令并与远地的Modem建立起连接(connect OK)时,Modem便进入数据模式。此后,Modem即使收到来自计算机的AT命令,也不会把它们当作AT命令来解释,而是简单地把它们当作数据发往远地的Modem。因此,在向Modem发磅初始化AT命令时,一定要将拨号命令(ATD)放在命令串的最后。如果要使MODEM从数据模式再回到命令模式,必须依靠一串称为“换码充列”的特殊信号,这串信号就是“暂停S12秒+'+++'+暂停S12秒”。其中,暂停S12秒是指在Modem状态寄 存器S12规定的秒数中暂时停止向Modem发送任何信息(缺少值为1滗),然后连续发送三个“+”号字符(其ASCII码值为43,可通过S2改变其值),然后再暂停S12秒。这样,Modem便会回到命令模式。 从数据模式通过换码序列回到命令模之后,Modem仍然保持着与远地的连接,此时若想再回到数据模式,可以必发拨号命令ATD,而只需发出ATO即可。 ■二十、有时,Modem明明已经连通,但用通信软件传输信息时,却显示“连接失败”,而无法传输信息,这是怎么回事? 了解了命令模式与数据模式的特性之后,我们便容易解释这种现象。这种现象最容易出现在使用专线连接的情况;当两端的Modem都上电后,通常它们会自动呼叫而连通,这时可以看到每台Modem都显示连接成功,CD指示灯变亮,此时若启动通信软件进行数据传输,软件往往会提示连接失败。原因就在于,通信软件在传输数据之前一般要发送一串初始化AT命令串,并通过检测Modem对初始化命令串中拨号命令ATD返回的结果码(Result Code)来Modem是否连通。由于此时Modem已率先连通并进入了数据模式,不再将通信软件发来的AT命令串当作命令处理,而是为作数据简单地发往远端,因此计算机的通信软件将无法收到正确的结果码,便只能得出“连接失败”的错误结论,使通信无法继续下去。 解决问题的办法之一是修改通信软件的初台化AT命令串,在它的前面先发送一个换码序列,强制性地行切换到命令模式;另一种办法则是将Modem设置成开机后不自动呼 叫,或在呼 叫连通后,人为地挂断它们的连接。