互联网串口通信——全世界串行口,联网起来!(txt+pdf+epub+mobi电子书下载)

作者:周云波,(美)Shiwei Zhou

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

互联网串口通信——全世界串行口,联网起来!

互联网串口通信——全世界串行口,联网起来!试读:

前言

串行口简称串口,可以说,人类文明史就是一部串行通信史。所谓有文明的标志就是有文字记载,而文字只能一个字一个字地写和读,这就是一种串行通信。相对于文字和声音是串行的,图像就算是并行的。我们不能一目十行地阅读文字,也不能同时听多个声音并加以识别,却能够一眼看尽全幅图像的上下左右。与文字信息相比,人类文明历史上几乎没有留下图像信息。耳朵听到的声音在每一时刻只能有一个音符或者发音,连贯起来就是音乐或者语音,这就是我们在接收串行信息。我们讲话,每一瞬间只能讲一个语音,这就是我们在发送串行信号。乐谱或者文字就是串行通信的信息。今天我们为了便于理解串行通信技术,经常打比方就像我们在讲话沟通一样。比如,只能有一个人讲话(只能有一个主机或服务器),可以有多个人听(多个从机或客户端)。讲话之前,先称呼人名,这里的人名就相当于从机或客户端的地址。讲完一段话需要不时停顿,就相当于信号的空闲状态。

中国古代的“狼烟”信号是最早的典型的二进制串行通信,在长期的停顿信号无狼烟(可以理解为0-无敌情)的间隔后,突然点燃狼烟(可以理解为信号1-有敌情),这就有效地传递了一位二进制信息:1代表有狼烟,同时也代表有敌情。但是在烽火戏诸侯这个故事中,周幽王为了让褒姒开心,取悦褒姒,点燃了烽火台,将众多诸侯都戏弄了一番,果然褒姒觉得有趣,就哈哈大笑起来,后来由于褒姒因为觉得很有意思,就多次点燃烽火台戏弄众多诸侯,造成后来诸侯们都不相信周幽王的“信号”了。这是因为把编码信号弄混乱了,本来是1表示“有敌情”换成了1表示“无敌情”,导致信号混乱而无法正常通信。古希腊的马拉松为了传递一个简单的信息1(我们赢了),连续跑了40多公里而累倒了。千年后,爱迪生用火车的汽笛来远程传输二进制信号,用长音(代表1)和短音(代表0)组合可以传输英文字母的ASCII字符信息。至今我们仍然能够听见用轮船的汽笛声表示到港或离港等信息。现在我们在互联网上看到的文字、语音、图像等信息仍然是通过串行通信来传输的,有时候网速很慢地打开一个图像,才慢慢地显示清晰,你就会懂得什么是串行通信。

互联网是当今的高新技术。人类文明的未来不一定就是现在定义的互联网,但一定是更加紧密的互联关系。早期的人类局限于一个部落内的交流,一般不会超过400个人,这也是我们今天的人所能够记得的人名的上限。但是今天借助互联网,在我们的朋友圈和朋友的朋友圈等,我们已经大大地拓展了我们互联的人数。今天世界人口大约70亿,假设平均每人认识100个,理论上只要经过5个人的朋友圈的5接力就可以到100=100亿,也就是可以认识全世界的人。人类发展的历史也是越来越人口密集,同时分工更细、联系更加紧密的过程,如果这种联系可以称为网络,那么人类的未来还是更加紧密的互联网络。本书的副标题借用马克思《共产党宣言》扉页上的一段文字“全世界无产者,联合起来!”我改写为“全世界串行口,联网起来!”

可以说,互联网等网络串口通信把人类文明的未来与历史联系了起来,但是本书还远没有写尽这个宏伟的过程。作者只是把串行口的通信从需要专门的布线到借助互联网进行通信的发展过程进行了一个简单的“串行”的描述。串行口通信在最近几十年内造就了多个世界五百强的企业或者业界巨头:Bell、Motorola、IBM、Hayes、MAXIM等。由于本书引用或涉及了许多公司或个人的产品和软件,比如CAYEE、ZLG、BOSHIKA、zhaojun、张海瑞等,我们一并表示感谢,感谢大家的支持和帮助。如果本书能够在串行通信的历史上留下一点小小的火花,我们就已经很满足了。如果有建议或者意见,欢迎联系作者:592905661@qq.com(周云波)和Swchou435@gmail.com(Shiwei Zhou)。作 者2017年7月第1章 串口通信接口介绍

串口就是串行口的简称。

与串行口相提并论的是并行口,串行口与并行口都可以用于通信。并行口与串行口的区别是交换信息的方式不同,并行口能同时通过8条数据线传输信息,一次传输一个字节;而串行口只能用1条线传输一位数据,每次传输一个字节的一位。并行口由于同时传输更多的信息,理论上速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。

串口和并口都是用来传递数据的,串口是用连续的高低位表示数据,如0x55就是连续的01010101,高低电平间隔时间相等,具体间隔由总线速度和配置的串口波特率有关。并口是用同一时刻几个端口的状态组合表示数据的,如A口表示0x55,即A8~A1依次为01010101。单片机启动时有默认的总线速率,一般烧录程序会用外接晶振重新配置总线速率,然后根据要实现的功能配置相关的寄存器,然后主程序就可以自由地实现算法等了。

计算机上有串口或并口的设备有硬盘、主板、还有打印机等。串口一般用于连接一些特殊的外接设备,如通信方面的设备,这就是本书所讲的用于互联网串口通信的串口,一般称为RS-232,并且可以转换成为RS-485或RS-422。并口通常用于连接打印设备,如DB-25针母口的,现在的计算机已经不常见了。串口比较小,如DB-9针公口,有突出的针露在外面。

形容一下,串口就是一条车道,而并口则有8个车道,并口同一时刻能传送8位(一个字节)数据。但是高速通信时实际上并不是并口快,由于8位通道之间的互相高频电磁干扰,传输速度就受到了限制,而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了,所以实际上高速通信时,串口比并口快,串口硬盘就是这样被人们重视的。

串口和并口是连接外设的不同端口,这两种端口的外形、传输速度和可以连接的设备都有所不同。串口传输是一位接一位的,就像串起的珠子一样;并口可以并发数据的同时传输多位。现在的串行硬盘SATA接口,是一样的道理,它之所以可以150 Mbps的速度传输,得益于其串行的方式。并行的几路信号在比较高的频率下不能很好地解决它们之间的干扰,所以现在ATA 13 Mbps的并行硬盘已走到极限,取而代之的是STAT。另外,80通道的ATA100的并口硬盘数据线,其中40根是地线,都是用来防止并行信号之间的干扰的。USB的全称是通用串行总线,但是相对于传统的RS-232串口通信来讲,USB传输距离短(小于5 m),协议复杂,关键是不能多机进行USB口组网通信,所以不在本书的讲解范围。

所谓数据通信,就是从数据源产生的数据,经过硬件线路或软件线路的连接(统称信道),按照一定的通信规程(协议),形成数据流传输到另一方的过程。计算机与各种用途的终端之间,以及计算机之间,都需要数据通信,遥测、遥信、遥控、自控、雷达等都需要数据处理与传输,也都离不开数据通信。本文介绍的是串口通信标准,包括RS-232、RS-485和RS-422。

RS-485口可以理解为RS-232口的差分形式,主要目的是为了解决RS-232的2个缺点:

· 远距离传输,RS-485最远输1200 m,而RS-232最远输15 m;

· 多机通信,RS-485可以到32个或以上设备,而RS-232只能够一对一。

最早的RS-485芯片的是由Motorola公司生产的,现在公司已经改名为ON SEMICONDUCTOR。Motorola是无线通信的鼻祖,许多通信芯片,如调制解调器芯片、编码/解码芯片等都是Motorola发明的。

MAXIM对RS-232和RS-485做出了重大改进。MAXIM对RS-232的重要贡献体现在单5 V供电的芯片MAX232,而之前Motorola的RS-232芯片是用±15 V供电的;MAXIM对于RS-485的贡献主要在于提高了接口芯片的性能:

· 功耗从mA级降到了μA级,这才使得无源RS-232/485转换器成为可能;

· 节点数从32提高到128,乃至256个。1.1 串口RS-232介绍

在串行通信时,要求通信双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。RS-232C接口(又称EIA RS-232C)是目前最常用的一种串行通信接口,RS-232C中的“C”表示RS-232的版本,所以与RS-232简称是一样的,它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,它的全名是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”,该标准规定采用一个25个引脚的DB-25连接器,对连接器的每个引脚的信号内容,以及各种信号的电平加以规定。

后来IBM的PC将RS-232简化成了DB-9连接器,从而成为事实标准,而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。1.1.1 RS-232接口的电气特性及物理结构

RS-232是EIA(Electronic Industries Association)定义的串行通信的电器接口,RS-232事实上有三种(A、B和C),它们分别采用不同的电压来表示on和off。最被广泛使用的是RS-232C,它将mark(on)比特的电压定义为−3 V~−12 V之间,而将space(off)的电压定义为+3 V~+12 V之间。虽然RS-232C标准称信号最远被传输15 m,但事实上你可以使用它传输更长的距离,直到信号波特率已经小到不行了为止。

本书以后提及的RS-232均指RS-232C,可以认为是RS-232C的简称。RS-232的连接线中除了用来传入传出数据的电线,还有一些用来提供时序、状态和握手的电线,如表1.1所示表1.1 DB-9针以及DB-25针的RS-232引脚定义

下面对各个信号进行介绍。

GND:Logic Ground,从技术角度讲,GND不能算是信号,但是没有它,其他信号都不能用了。Logic Ground有点像一个参考电压,可以通过它来判断哪个电压表示正、哪个电压表示负。

TXD:Transmitted Data,TXD信号负载着从电脑或者设备到另一端(比如调制解调器)的数据。mark范围的电压被解析成1,而space范围电压被解析成0。

RXD:Received Data,RXD于TXD正好相反,它负载着从另一端的电脑或者设备上传到工作站的数据。mark和space的解析方法与TXD一致。

DCD:Data Carrier Detect,DCD信号通常来自串口连接线的另一端,这条信号线上的space电压表示另一端的电脑或者设备现在已经连接。但是,DCD信号线却不是总可以得到的,有些设备上有这条信号线,而有的则没有。

DTR:Data Terminal Ready,DTR信号是由工作站产生的,用以告诉另一端的电脑或者设备你已经是否已经准备好了。space电压表示准备好了,而mark电压表示没有准备好。当工作站上打开串行接口时,DTR通常自动被设置为有效。

CTS:Clear To Send,CTS则通常来自连接线的另一端,space电压表示可以从工作站送出更多的数据。CTS通常用来协调工作站和另一端之间的串行数据流。

RTS:Request To Send,如果RTS信号被设置成space电压,这表示准备好了一些数据需要传送。和CTS一样,RTS也被用来协调工作站和另一端的电脑或者设备之间的数据流。有些工作站上会一直将这个信号设置为space。1.1.2 异步通信与同步通信及其格式

计算机为了弄懂传给它的串行数据,需要确定每个字符开始和结束的位置,这通常是用异步串行数据来完成的。在异步模式中,除非有字符被传输,否则串行数据线总是处于mark(1)状态。有一个Start位会被加入传输字符的第1位之前,在字符本身的位之后会有一个可选的Parity位和一个或者多个Stop位。Start位总是space(0)并且它会告诉计算机新的串行数据过来了。数据可以随时被送出或者接收,这就是所谓的异步。本书以后所有提及的串口通信均指异步通信。

与异步数据不同,同步数据是一个稳定的字节流。形象地说,要同步就得有一个有固定节奏的“口哨”指令来标记数据传输的开始或结束,这个“口哨”就是同步时钟。为了能够在线路上读取到数据,计算机必须提供或者接收一个时钟,这样才能保证发送端和接收端同步。尽管已经有同步时钟,计算机还是必须以某种方式标志数据流的开端。这些同步协议都定义了一个确定的比特序列来表示数据包的开始和结束,当然,它们也定义了一个用来表示没有数据传输的比特序列,这些比特序列可以帮助计算机识别数据包的开端。因为同步协议可以不使用每个字符的同步比特位,所以通常它们的性能比异步通信快最少25%,而且一般比较适用于远距离的网络连接或者有两个串口接口的配置的情况。尽管同步通信的速度有优势,大部分RS-232硬件却不支持它,因为同步通信需要其他的硬件和软件。

可选的Parity位仅仅是所有传输位的和,这个和用以表示传输字符中有奇数个1还是偶数个1。在偶数Parity中,如果有传输字符中有偶数个1,那么Parity位被设置成0,而传输字符中有奇数个1,那么Parity位被设置成1。在奇数Parity中,位设置与此相反。还有一些术语,如Space Parity、Mark Parity和No Parity,Space Parity是指Parity位会一直被设置位0;而Mark Parity正好与此相反,Parity会一直是1;No Parity的意思就是根本不会传输Parity位。最后的位叫做Stop位,传输字符之间可以有1个、1.5个或者2个Stop位,而且它们的值总是1;通常,Stop位是用于计算机一些时间处理前面的字符的,但是它只是用来同步接收数据的计算机和接收的字符。异步数据通常被表示成8n1、7e1,它们分别表示“8数据位,No Parity和1个Stop Bit”,以及“7数据位,Even Parity和1个Stop Bit”,或者与此类似的形式。1.1.3 RS-232传输电缆长度

由于RS-232C标准规定在码元畸变小于4%的情况下,传输距离可达15 m,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10%~20%的范围工作的,所以实际使用中最大传输距离会远超过15 m。美国DEC公司曾在码元畸变为10%而得出下面实验结果,如表1.2所示。表1.2 DEC公司的实验结果

其中,1号电缆为屏蔽电缆,型号为DECP.NO.9107723,内有三对双绞线,每对由22# AWG组成,外部覆以屏蔽网;2号电缆为不带屏蔽的电缆,型号为DECP.NO.9105856-04,是22#AWG的四芯电缆。

从这个实验结果可以看出:(1)速率越高距离越短,但是不是严格的反比例关系;(2)屏蔽电缆比非屏蔽电缆明显传输得更远。

经过多年来RS-232器件及通信技术的改进,RS-232的通信距离已经大大增加。BOSHIKA对RS-232的通信距离标准进行了改进,EX232型的RS-232增强器可以将普通的RS-232口的通信距离延长到500~1000 m,并且提交到了EIA。1.1.4 RS-232的实际应用

目前RS-232是PC与通信工业中应用最广泛的一种串行接口,被定义为一种在低速率串行通信中增加通信距离的单端标准。在数据通信领域中,包括各种终端和计算机端口在内的设备称作数据终端设备,即DTE;与之相比,调制解调器和其他通信设备,则称作数据通信设备,即DCE。数据终端设备和数据通信设备之间的分界是连接它们的插件,而对这一分界的说明,则是从物理、电气及逻辑上进行数据交换的规则,它是由接口标准规定的。最常用的EIA RS-232标准,EIA标准的很多内容已被其他许多标准化组织所采纳。RS-232C是1969年EIA提出的建议标准(Recommend Standard),232则表示一个具体通信标准的识别号码,后缀C表明此标准最后的修订版本。RS-232C标准适用于数据终端设备与数据通信设备之间、速率范围为0~115.2 kbps的串行数据传输。此标准限制数据终端设备和数据通信设备之间的电缆长度为15 m,RS-232C标准的另一部分是规定用电缆接头作为数据终端设备和数据通信设备的接插件,这就是熟知的DB-25接插件。电缆两端都装备有“凸形”插头,通常它被设计成能插到调制解调的DB-25凹形插座上。后来IBM的PC将RS-232简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。

RS-232采取不平衡传输方式,即所谓的单端通信。收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB-9连接器时是3脚相对5脚(信号地)的电平。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15 V,负电平在−5~−15 V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与−3~−12 V。由于发送电平与接收电平的差仅为2 V~3 V,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15 m,最高速率为115.2 kbps。RS-232是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载为3~7 kΩ,所以RS-232适合本地设备之间的通信。

RS-232与RS-485转换器如图1-1所示。

RS-232串口通信接线方法:一般情况下,接口电路经常使用的有7条信号线,连接方法为GND-GND、TXD-RXD、RXD-TXD、RTS-CTS、CTS-RTS、DTR-DSR、DSR-DTR;如果是三线制的RS-232通信,只接GND-GND、TXD-RXD、RXD-TXD即可。

上面是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据引脚(或线)与发送数据引脚(或线)相连,相互交叉,信号地对应相接,就能“百战百胜”。串口调试中要注意的几点:

· 不同编码机制不能混接,如RS-232不能直接与RS-422接口相连,必须通过RS-232与RS-485/RS-422转换器才能连接;

· 线路焊接要牢固,不然程序没问题,却因为接线问题误事;

· 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果。图1-1 RS-232与RS-485转换器1.1.5 RS-232接口的缺点及克服

RS-232是最通常的用处是直接连接到一个RS-232设备或者通过RS-485的转换器连接到RS-485设备,其他拥有RS-232接口的设备包括打印机、数据采集模块、测试装置和控制回路。它具有以下优点:

· 它是无处不在的,每一台PC都有一个或者更多的RS-232接口;

· 在微控制器中,接口芯片使得将一个5 V串口转换成RS-232变得更容易;

· 连接距离可以达到15~30 m,大多数的外设接口都不会用于太长的距离;

· 对于一个双向选择,只需要3条导线;一个并行连接器一般需要8条数据线,两条或者更多的控制信号线和几根接地线。

虽然RS-232标准以被承认并广泛用于各个领域,但一般来说RS-232接口标准有如下缺点:

· 数据传输速率慢(一般只能达到115.2 kbps);

· 传输距离短(一般装置间电缆长度为15 m之内);

· 接口处信号容易互相干扰,传输距离越长干扰越重;

· 不支持多机通信,也就是说,在一个连接器中不能有超过2台以上的设备;

· 指定的最大数据传输速率是115200 bps。

但是,最近很多接口芯片可以超过这个值,尤其是在短程连接上,只要通过互联网传输即可。互联网是基于TCP/IP协议的,可以很好地克服上述缺点。1.2 RS-485和RS-422简介

RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。

RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10 Mbps,传输距离延长到1200 m(速率低于100 kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,被命名为TIA/EIA-485-A标准。

由于EIA提出的建议标准都是以RS作为前缀的,所以在通信工业领域,仍然习惯将上述标准以RS作为前缀。RS-232、RS-422与RS-485标准只对接口的电气特性做出了规定,而不涉及接插件、电缆或协议,用户可以在此基础上建立自己的高层通信协议。1.2.1 什么是RS-485接口(1)RS-485的电气特性。发送端:逻辑“1”以两线间的电压差为2~6 V表示;逻辑“0”以两线间的电压差为−2~−6 V表示。接收端:A比B高200 mV以上即认为逻辑“1”,A比B低200 mV以上即认为逻辑“0”。(2)RS-485的数据最高传输速率为10 Mbps。由于RS-485常常要与PC的RS-232口通信,所以实际上一般最高为115.2 kbps;又因为太高的速率会使RS-485传输距离减小,所以往往为9600 bps左右或以下。(3)RS-485接口采用平衡驱动器和差分接收器,抗噪声干扰性好。(4)RS-485接口的最大传输距离标准值为1200 m(9600 bps时),实际上可达3 km。RS-485接口在总线上最多允许连接128个收发器,即RS-485具有多机通信能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。由于RS-485接口具有良好的抗噪声干扰性、长的传输距离和多站能力等上述优点,使其成为首选的串行接口。由RS-485接口组成的半双工网络,一般只需两根信号线,所以RS-485接口均采用屏蔽双绞线传输。RS-485的国际标准并没有规定RS-485的接口连接器标准,所以采用接线端子或者DB-9、DB-25等连接器都可以。(5)采用RS-485接口时,传输电缆的考虑。在使用RS-485接口时,对于特定的传输线经,从发生器到负载,其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等的限制。

最大电缆长度与信号速率的关系曲线是在使用24AWG铜芯双绞电话电缆(线径为0.51 mm)、线间旁路电容为52.5 pF/m、终端负载电阻为100 Ω时所得出的(引自GB 11014-89附录A),当数据信号速率降低到90 kbps以下时,假定最大允许的信号损失为6 dBV时,则电缆长度被限制在1200 m以内。实际上,在使用时完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的。

例如,当数据信号速率为600 kbps时,采用24AWG电缆,最大电缆长度是200 m;若采用19AWG电缆(线径为0.91 mm)则电缆长度将可以大于200 m;若采用28AWG电缆(线径为0.32 mm)则电缆长度只能小于200 m。RS-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。(6)RS-485电气规定。由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿,例如,都采用平衡传输方式,都需要在传输线上接终接电阻等。RS-485采用二线方式,二线制可实现真正的多点双向通信;而采用四线制连接时,与RS-422一样只能实现一对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线制还是二线制连接方式,总线上可最多连接128个设备。

RS-485与RS-422一样,其最大传输距离约为1219 m,最大传输速率为10 Mbps。平衡双绞线的长度与传输速率成反比,在100 kbps速率以下,才可能达到规定最长的电缆长度,只有在很短的距离下才能获得最高速率传输。一般100 m长双绞线最大传输速率仅为1 Mbps。

RS-485需要两个终接电阻,其阻值要求等于传输电缆的特性阻抗。在短距离传输时可不需终接电阻,即一般在300 m以下不需终接电阻,终接电阻连接在传输总线的两端。1.2.2 什么是RS-422接口

RS-422的电气性能与RS-485完全一样,主要的区别在于:

· RS-422有4根信号线:两根发送(Y、Z),以及两根接收(A、B)。由于RS-422的收与发是分开的,所以可以同时收和发(全双工)。

· RS-485有两根信号线:发送和接收都是A和B,由于RS-485的收与发是共用两根线,所以不能够同时收和发(半双工)。

能否将RS-422的Y-A短接作为RS-485的A,将RS-422的Z-B短接作为RS-485的B呢?答案是不一定。条件是RS-422必须能够支持多机通信,BOSHIKA的所有接口转换器的RS-422口都能够支持全双工多机通信,所以可以简单地转换为RS-485。

RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性,是典型的RS-422四线接口(实际上还有一根信号地线,共5根线)。由于接收器采用高输入阻抗和发送驱动器,RS-422比RS-232的驱动能力更强,故允许在相同传输线上连接多个接收节点,最多可接10个节点,即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4 kΩ,故发端最大负载能力是10×4 kΩ+100 Ω(终接电阻)。RS-422四线接口采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必需的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。

RS-422的最大传输距离为4000英尺(约1219 m、9600 bps时),最大传输速率为10 Mbps。其平衡双绞线的长度与传输速率成反比,在100 kbps速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100 m长的双绞线上所能获得的最大传输速率仅为1 Mbps。

RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在短距离传输时可不需终接电阻,即一般在300 m以下不需终接电阻。终接电阻一般接在传输电缆的最远端。

RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称为平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6 V,是一个逻辑状态,负电平在−2~−6 V,是另一个逻辑状态,另有一个信号地C。在RS-485中还有一使能端,而在RS-422中这是可用可不用的,使能端用于控制发送驱动器与传输线的切断与连接。当使能端起作用时,发送驱动器处于高阻状态,称为第三态,即它是有别于逻辑“1”与“0”的第三态。

接收端也进行与发送端相对的规定,收、发端通过平衡双绞线将A-A与B-B对应相连,当接收端A与B之间有大于+200 mV的电平时,输出正逻辑电平;小于−200 mV时,输出负逻辑电平。接收端接收平衡线上的电平范围通常在200 mV至6 V之间。1.3 串口RS-422与RS-485的工程应用

RS-485支持128个节点,因此可构成多节点网络。网络拓扑一般采用终端匹配的总线状结构,不支持环状或星状网络。在构建网络时,应注意如下几点:

· 采用一条双绞线电缆作为总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便引出线中的反射信号对总线信号的影响最小。

· 应注意总线特性阻抗的连续性,在阻抗不连续点会发生信号的反射。

下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。总之,应该提供一条单一、连续的信号通道作为总线。1.3.1 RS-422与RS-485传输线上匹配的一些说明

对于RS-422与RS-485总线网络,一般要使用终接电阻进行匹配,但在短距离与低速率下可以不用考虑终端匹配的问题。那么在什么情况下不用考虑匹配呢?

理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升时间或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。

例如,具有限斜率特性的RS-485接口MAX483输出信号的上升时间或下降时间最小为250 ns,典型双绞线上的信号传输速率约为0.2 m/ns(24AWG PVC电缆),那么只要数据速率在250 kbps以内、电缆长度不超过16 m,采用BOSHIKA的RS-232/RS-485转换器作为RS-485接口时就可以不加终端匹配。

一般终端匹配采用终接电阻方法,前文已有提及,RS-422在总线电缆的远端并接电阻,RS-485则在总线电缆的开始和末端都需并接终接电阻。在RS-422网络中终接电阻一般取100 Ω,在RS-485网络中取120 Ω,相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗为100~120 Ω。1.3.2 RS-422与RS-485的接地问题

电子系统接地是很重要的,但常常被忽视,接地处理不当往往会导致电子系统不能稳定工作,甚至危及系统安全。

RS-422与RS-485传输网络的接地同样也是很重要的,因为接地系统不合理会影响整个网络的稳定性,尤其是在工作环境比较恶劣和传输距离较远的情况下,对于接地的要求更为严格,否则接口损坏率会变高。

很多情况下,连接RS-422、RS-485通信链路时只是简单地用一对双绞线将各个接口的A、B端连接起来,而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有下面两个原因。(1)共模干扰问题:正如前文已述,RS-422与RS-485接口均采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,如RS-422共模电压范围为−7~+7 V,而RS-485收发器共模电压范围为−7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。

当发送驱动器A向接收器B发送数据时,发送驱动器A的输出共模电压为V,由于两个系统具有各自独立的接地系统,存在着地电位OS差V。那么,接收器输入端的共模电压V就会达到V=V+V。GPDCMCMOSGPDRS-422与RS-485标准均规定V≤3 V,但V可能会有很大幅度(十OSGPD几伏甚至数十伏),并可能伴有强干扰信号,致使接收器共模输入V超出正常范围,并在传输线路上产生干扰电流,轻则影响正常通CM信,重则损坏通信接口电路。(2)EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。

由于上述原因,尽管RS-422、RS-485采用差分平衡传输方式,但对于整个RS-422或RS-485网络,必须有一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压V被短路。这条信号地可GPD以是额外的一条线(非屏蔽双绞线),也可以是屏蔽双绞线的屏蔽层(这是最通常的接地方法)。

值得注意的是,这种做法仅对高阻型共模干扰有效,由于干扰源内阻大,短接后不会形成很大的接地环路电流,对于通信不会有很大影响。当共模干扰源内阻较低时,会在接地线上形成较大的环路电流,影响正常通信。可以采取以下三种措施:(1)如果干扰源内阻不是非常小,可以在接地线上加限流电阻以限制干扰电流。接地电阻的增加可能会使共模电压升高,但只要控制在适当的范围内就不会影响正常的通信。(2)采用浮地技术,隔断接地环路。这是较常用也是十分有效的一种方法,当共模干扰内阻很小时上述方法已不能奏效,此时可以考虑将引入干扰的节点(如处于恶劣的工作环境的现场设备)浮置起来(也就是系统的电路地与机壳或大地隔离),这样就隔断了接地环路,不会形成很大的环路电流。(3)采用隔离接口。有些情况下,出于安全或其他方面的考虑,电路地必须与机壳或大地相连,不能悬浮,这时可以采用隔离接口来隔断接地回路,但是仍然应该有一条地线将隔离侧的公共端与其他接口的工作地相连,可以选用带光电隔离的RS-232/RS-485转换器。1.3.3 RS-422与RS-485的网络失效保护

RS-422与RS-485标准都规定了接收器门限为±200 mV,这样规定能够提供比较高的噪声抑制能力,如前文所述,当接收器A电平比B电平高+200 mV以上时,输出为正逻辑;反之,则输出为负逻辑。但由于第三态的存在,即在主机在发端发完一个信息数据后,将总线置于第三态,即总线空闲时没有任何信号驱动总线,使AB之间的电压在−200~+200 mV直至趋于0 V。这带来了一个问题:接收器输出状态不确定。如果接收机的输出为0 V,网络中从机将其解释为一个新的启动位,并试图读取后续字节,由于永远不会有停止位,产生一个帧错误结果,不再有设备请求总线,网络陷于瘫痪状态。

除上述所述的总线空闲会造成两线电压差低于200 mV的情况外,开路或短路时也会出现这种情况,故应采取一定的措施避免接收器处于不确定状态。通常是在总线上加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差分电压≥−200 mV)。将A上拉到地,B下拉到5 V,电阻的典型值是1 kΩ,具体数值随电缆的电容变化而变化。

上述方法是比较经典的方法,但它仍然不能解决总线短路时的问题,有些厂家将接收门限移到−200 mV/−50 mV,可解决这个问题。例如,Maxim公司的MAX3080系列RS-485接口,不仅省去了外部偏置电阻,而且解决了总线短路情况下的失效保护问题。

前面提到的信号接地措施,只对低频率的共模干扰有保护作用,对于频率很高的瞬态干扰就无能为力了。由于传输线对高频信号而言相当于电感,因此对于高频瞬态干扰,接地线实际等同于开路。这样的瞬态干扰虽然持续时间短暂,但可能会有成百上千伏的电压。实际应用环境下还是存在高频瞬态干扰的可能。

一般在切换大功率感性负载,如电机、变压器、继电器等或闪电过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏RS-422或RS-485通信接口。对于这种瞬态干扰可以采用隔离或旁路的方法加以防护。(1)隔离保护方法:这种方案实际上将瞬态高压转移到隔离接口中的电隔离层上,由于隔离层的高绝缘电阻,不会产生损害性的浪涌电流,从而起到保护接口的作用。通常采用高频变压器、光耦等元件实现接口的电气隔离,已有器件厂商将所有这些元件集成在一个模块中,使用起来非常简便,如BOSHIKA公司的485TC,隔离电压可达2500 V,可以实现RS-232与RS-485/RS-422的光电隔离并且无须供电。这种方案的优点是可以承受高电压、持续时间较长的瞬态干扰,实现起来也比较容易,缺点是成本较高。(2)浪涌保护方法:这种方案利用瞬态抑制元件(如TVS、MOV、气体放电管等)将危害性的瞬态能量旁路到大地,优点是成本较低,缺点是保护能力有限,只能保护一定能量以内的瞬态干扰,持续时间不能很长,而且需要有一条良好的连接大地的通道,实现起来比较困难。

实际应用中通常将上述两种方案结合起来灵活加以运用,在这种方法中,隔离接口对大幅度瞬态干扰进行隔离,旁路元件则保护隔离接口不被过高的瞬态电压击穿。1.3.4 串口RS-485的新发展

第一代RS-232/RS-485转换器充分体现了当时由MAXIM主导的RS-485总线的性能:无源、128节点和1200 m距离,典型的代表是BOSHIKA的485A型号的转换器。现在RS-485领域又出现了革命性的技术和产品,通信距离不再受1200 m的限制、节点数不再受128个的限制。

这种变革的目的其实很简单:从用户需求出发,在性能增加的同时使用更加方便。如果有人想要详细了解RS-485总线变革过程的话,那么BOSHIKA一定有重要地位。BOSHIKA一直致力于RS-485总线的实用化产品开发和生产,曾经开创性地推出无源RS-232到RS-485转换器,以及无源且光电隔离的RS-232到RS-485转换器,这让当时的业界为之赞叹。

在下一代RS-485总线的概念下,BOSHIKA改变了传统的1路RS-232到1路RS-485的转换方式,也不是简单的多路RS-232到多路RS-485转换的叠加。BOSHIKA将原本用于延长RS-485通信距离并且提高负载能力的中继器与RS-232/RS-485转换器进行绑定,同时对RS-485信号的流向进行整理,使得用户在使用时感觉就是一个RS-232与RS-485的转换器,这种思想体现在最新的《一种带中继功能的串口转换器》专利内容(ZL201420502117)中。下一代RS-485总线的变化是不受最远距离和节点数的限制,同时下一代RS-232/RS-485转换器还得保持无须供电的特性。如今的BOSHIKA已经不仅仅是一家串口转换器公司,而是完整的RS-485总线解决方案的企业。在这个思路中,BOSHIKA提出下一代RS-485总线的概念。

带中继功能的转换器组网如图1-2所示。图1-2 带中继功能的转换器组网图

在下一代RS-485总线中,每接一个RS-232/RS-485转换器,RS-485信号都得到了中继增强,所以这种RS-485总线不再受一条RS-485总线最远1200 m的限制。当接N个转换器时就可以达到1200 m的N倍距离,N不受限制。传统的RS-485总线有接负载个数的限制,如128个,就是同一条RS-485总线中最多接128个RS-485口。使用N个RS-232/RS-485转换器构成的RS-485总线中,由于接入的转换器将RS-485总线分开为了N段(每一段之间相当于有一个中继器),所以当接N个转换器时就可以达到128×N倍的负载个数,而且N不受限制。简单地说,下一代RS-485总线的每一个节点都带中继功能,在加入一个RS-485节点的同时增加了驱动,包括传输距离和负载能力。1.4 USB串口通信产品的发展

目前计算机的USB接口已经大量使用,一般每台计算机都有2到4个USB口。USB口已经开始逐步取代传统的PS/2鼠标口、PS/2键盘口、CENTRONICS打印口、RS-232串口等。USB将是未来重要的PC工业通信接口之一,用于实现工业通信,以及存储、编程等。在USB技术逐步普及于工业通信的今天,本文回顾USB工业通信产品的发展过程。

先回顾我国USB产品的开发成就,我们不得不提到著名的深圳朗科公司。朗科公司首次提出了“优盘”的名称,并取得了全球领先的USB外部存储装置的专利知识产权,并且据说后来以此专利起诉打败了著名的日本SONY公司。尽管在朗科的U盘出现之前国内已经有IBM随计算机一道赠送的“IBM存储钥匙”,其实就是U盘,但是像IBM这样连微硬盘部门都出售给日立公司的蓝色巨人,是看不上这小小的存储钥匙(Storage Key)的。这样的失误虽然远远轻于请Microsoft公司为IBM PC写DOS操作系统,但是也成就了一个中国的朗科,以及后来国内的整个U盘市场,尽管今天的朗科还远远没有达到Microsoft的规模。

当时早期的朗科U盘采用的是Philips公司的PDIUSB12的USB接口芯片加三星的Flash存储器,朗科当时还出售PDIUSB12的开发(系统可用于开发U盘等产品)。不到一年后,同样在深圳的另外一家公司鲁文公司开发出了号称是全球第一个无须驱动程序的U盘(取名为“易盘”),可以在Windows me下无须驱动程序,因为无驱才会有后来的巨大的市场。

虽然以上是国内USB产品开发历程的简单回顾,并不是USB串口通信领域产品的回顾,但是正是因为中国人开发U盘技术让我国在世界计算机外设方面占了一席之地的成就鼓舞了国人后来在USB串口通信领域的产品开发,也正是当时朗科出售的USB开发系统带动BOSHIKA开始了USB串口通信产品的开发。工业通信和工业测量、控制领域都是国人的传统强项,始终是国货占据绝大部分市场。1.4.1 第一代产品:USB/RS-232转换器

第一代USB串口通信产品的典型是USB/RS-232转换器,BOSHIKA是国内最早从事USB/串口转换器的开发厂家之一,型号为USB232的USB/RS-232转换器如图1-3所示,可将一个USB口转换成为一个RS-232串行口。图1-3 USB/RS-232转换器

USB/RS-232转换器实现USB与RS-232串口设备相互通信的一种协议转换装置(USB协议-串行通信协议)。在通信主机(USB)和RS-232串口设备之间,无论是通信主机发送信息至指定的RS-232串口设备,还是RS-232串口设备发送信息至指定通信主机,都可以经其轻易且正确地传输。USB232是专门为工业通信设计制造的,特别强调对工业通信的适用性。例如,我们用工业通信开发常用的Visual BASIC和Visual C++语言的Mscomm.ocx通信控件编程后进行通信检测,USB232可以在各种版本的Windows下很流畅地正确通信,并且对RTS/CTS、DTR/DSR握手信号进行正确的控制与监测,而有些市售的USB/串口转换器却不能通过这样的检测。

USB232产品具有以下基本性能特点:直接外插USB口,无须外接电源,自动识别串口号当成新的COM口,并且在Windows XP下可以修改COM口的号码,RS-232口带全部信号,软件只需修改串口号即可,无须重新编写。

USB232产品还可以与其他产品配合使用,例如,USB232可以直接配接485C型转换器构成USB/RS-485/RS-422转换器(全双工半双工通用),也可以直接配接485TC型转换器构成光电隔离且无须供电的USB/RS-485/RS-422转换器,还可以直接配接BS232-9型RS-232光电隔离器构成光电隔离无须供电的USB/RS-232转换器。1.4.2 第二代产品:USB/RS-485/RS-422转换器

第二代USB串口通信产品可以从USB口直接扩展出RS-485、RS-422口。USB/RS-485转换器(型号:USB485)用于将一个USB口转换成为RS-485(半双工)或者RS-422口(全双工),如图1-4所示。图1-4 USB与RS-485/RS-422转换器

USB485产品具有以下基本性能特点:直接外插USB口,无须外接电源,无须供电而且还可以对外输出5 V电源;配RS-485/RS-422接线端子;自动识别串口号并当做新的COM口,RS-485/422口为全双工半双工通用,软件只需修改串口号即可;驱动软件完全和USB232转换器相同。

USB485主要是为USB的远程工业通信而设计的,由于转换为RS-485或者RS-422接口,所以通信距离增加到了1200 m(9600 bps时),同时增加了一个5 V供电引脚,这样可以对某些外接的仪器或设备供电。1.4.3 第三代产品:光电隔离USB/RS-232/485/422转换器

第三代USB串口通信产品不仅可以从USB口直接扩展出RS-232、RS-485、RS-422口,而且实现了光电隔离又无须供电。USB232GH2光电隔离微型USB/串口转换器具有超小型的外形(80 mm×23 mm×47 mm),与RS-232、RS-485、RS-422通用,可以虚拟成为本地COM串口(COM1~COM256),无须修改已有的串口通信软件。

USB232GH2可能是世界上最小的光隔USB/串口转换器之一,使用也极为简便,如图1-5所示,实现了USB与串口的2500 V光电隔离。USB232GH2的RS-232/485/422的最高通信速率为921.6 kbps,内置600 W抗雷击浪涌保护器。可将USB232GH2型USB/串口转换器通过配套的USB延长线(A型USB口到B型USB口)外插到计算机的USB口,在串口插座旁边有一个小LED(发光二极管),当产品接通后LED会一直亮着。图1-5 隔离的USB与RS-232/485/422转换器

USB232GH2的RS-232/485/422串口端是一个DB-9针座,具有RS-232、RS-485、RS-422全部引脚。作为RS-232口时,与PC的DB-9针RS-232口的2、3、5脚分配完全相同;作为RS-422时,T+、T−是指从USB232GL1向外发送。注意RS-485和RS-422通信时建议要接地线(5脚),RS-485/422无须跳线选择,RS-485/422信号的参考地线与RS-232的GND是一样的。DB-9针端的引脚分配如表1-3所示。表1.3 DB-9针端的引脚分配

USB232GH2产品具有以下基本特点:光电隔离且无须外接电源,无须供电而且还可以对外输出隔离的5 V电源,串口与RS-232/RS-485/RS-422通用,自动识别串口号。1.4.4 第四代产品:USB/串口光纤转换器

第四代USB串口通信产品的型号是OPTU232L1(多模)和OPTU232SL1(单模),可直接从USB口转换出一对光纤收发头,用于传输串口信号,且无须供电。它们是最新一代USB光纤通信产品,可以虚拟成为本地COM串口(COM1-COM256)、无须修改已有的串口通信软件,驱动程序同USB232GH2转换器一样。OPTU232L1传输的还是串口信号,所以必须成对使用或者与串口/光纤转换器配对使用。由于采用光纤作为通信传输介质,具有高隔离电压、防电磁干扰、传输距离远等优点。OPTU232SL1的传输介质为单模光纤,OPTU232L1的传输介质为多模光纤,但是外形和驱动程序是完全一样的,如图1-6所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?