目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。
1.DB9和DB25的常用信号脚说明
1.DB9和DB25的常用信号脚说明
9针串口(DB9) 25针串口(DB25)
针号 功能说明 缩写 针号 功能说明 缩写
1 数据载波检测 DCD 8 数据载波检测 DCD
2 接收数据 RXD 3 接收数据 RXD
1 数据载波检测 DCD 8 数据载波检测 DCD
2 接收数据 RXD 3 接收数据 RXD
3 发送数据 TXD 2 发送数据 TXD
4 数据终端准备 DTR 20 数据终端准备 DTR
5 信号地 GND 7 信号地 GND
6 数据设备准备好 DSR 6 数据准备好 DSR
7 请求发送 RTS 4 请求发送 RTS
4 数据终端准备 DTR 20 数据终端准备 DTR
5 信号地 GND 7 信号地 GND
6 数据设备准备好 DSR 6 数据准备好 DSR
7 请求发送 RTS 4 请求发送 RTS
8 清除发送 CTS 5 清除发送 CTS
9 振铃指示 DELL 22 振铃指示 DELL
2.RS232C串口通信接线方法(三线制)
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
• 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连;
• 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。
3.串口调试中要注意的几点:
串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
单工、半双工和全双工的定义
9 振铃指示 DELL 22 振铃指示 DELL
2.RS232C串口通信接线方法(三线制)
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
• 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连;
• 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。
3.串口调试中要注意的几点:
串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
单工、半双工和全双工的定义
如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。
如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。
如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。
电话线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。
奇偶校验
串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:
0100,0101=45H
D7 D0
由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。
最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。
如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。
如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。
电话线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。
奇偶校验
串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:
0100,0101=45H
D7 D0
由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。
最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。
奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如:
1 0110,0101
0 0110,0001
偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:
1 0100,0101
0 0100,0001
奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。
串口通讯流控制
我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样
1 0110,0101
0 0110,0001
偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:
1 0100,0101
0 0100,0001
奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。
串口通讯流控制
我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样
应用呢?这里我们就来谈谈这个问题。
1.流控制在串行通讯中的作用
这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。
2.硬件流控制
硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。
硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来
1.流控制在串行通讯中的作用
这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。
2.硬件流控制
硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。
硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来
自计算机的数据流。这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。RTS则用来标明接收设备有没有准备好接收数据。
常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。我们在此不再详述。由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。
3.软件流控制
由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过XON/XOFF来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的17或Control-Q),发送端收到XON字符后就立即开始发送数据。一般可以从设备配套源程序中到发送的是什么
常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。我们在此不再详述。由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。
3.软件流控制
由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过XON/XOFF来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的17或Control-Q),发送端收到XON字符后就立即开始发送数据。一般可以从设备配套源程序中到发送的是什么
字符。
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
RS-232接口定义及连线
RS-232接口又称之为RS-232口、串口、异步口或一个COM(通信)口。"RS-232"是其最明确的名称。 在计算机世界中,大量的接口是串口或异步口,但并不一定符合RS-232标准,但我们也通常认为它是RS-232口。 严格地讲RS-232接口是DTE(数据终端设备)和DCE(数据通信设备)之间的一个接口,DTE包括计算机、终端、串口打印机等设备。DCE通常只有调制解调器(MODEM)和某些交换机COM口是DCE。标准指出DTE应该拥有一个插头(针输出),DCE拥有一个插座(孔输出)。这经常被制造商忽视(如:WYSE终端就是孔输出DTE串口)但影响不大,只要搞清楚DCE、DTE就行了,然后按照标准接线图接线就不会错了。(DTE、DCE 引脚定义相同)
特殊情况下,也有使用RJ-45的8PIN连接器用作RS-232接口,其定义如下:
脚序 | 符号 | 信号名称 | 流向 | 功能说明 |
1 | DSR/RI | 数据设备准备好/振铃指示 | DTE←DCE | Data Set Ready/Ring Indicator |
2 | CD | 载波检测 | DTE←DCE | Carrier Detect |
3 | DTR | 数据终端准备好 | DTE→DCE | Data Terminal Ready |
4 | GND | 信号地 | System Ground | |
5 | RXD | 接收数据 | DTE←DCE | Receive Data |
6 | TXD | 发送数据 | DTE→DCE | Transmit Data |
7 | CTS | 允许发送 | DTE←DCE | Clear to Send |
8 | RTS | 请求发送 | DTE→DCE | Request to Send |
计算机上的rs-232有9个引脚定义如下:
1,CD,载波检测(Carrier); 2,RXD,接收字符(Receive); 3,TXD,传送字符(Transmit); 4,DTR,数据端备妥(DataTerminalReady); 5,GND,地线(Ground); 6,DSR,数据备妥(DataSetReady); 7,RTS,请求传送(RequestToSend); 8,CTS,清除以传送(ClearToSend); 9,RI,响铃检测(RingIndicator);还有一种25脚的公头也是RS232使用的端口接口,但电脑中不常用,只在少许工业控制计算机中使用,此处不作介绍,其实9脚和25脚的功能完全一样,多余的接口脚都是悬空处理的.
9脚与25脚接口的对应关系是1--8;2--3;3--2;4--20;5--7;6--6;7--4;8--5;9--22;
其中各脚的功能如下:
CD:此脚有调制解调器控制,调制解调器用此脚通知计算机载波信号是否被检测到;
RXD:此脚将远程发送来得数据接收进来,可以在调制解调器上看到RXD的指示灯明暗交错,说明RXD端正接收数据;
TXD:此脚将计算机所欲发出得数据发送出去,同上TXD的指示灯在工作时也会明暗交错的显示;
DTR:此脚有计算机控制,用于通知调制解调器是否可以进行传送数据,高电平表示准备就
1,CD,载波检测(Carrier); 2,RXD,接收字符(Receive); 3,TXD,传送字符(Transmit); 4,DTR,数据端备妥(DataTerminalReady); 5,GND,地线(Ground); 6,DSR,数据备妥(DataSetReady); 7,RTS,请求传送(RequestToSend); 8,CTS,清除以传送(ClearToSend); 9,RI,响铃检测(RingIndicator);还有一种25脚的公头也是RS232使用的端口接口,但电脑中不常用,只在少许工业控制计算机中使用,此处不作介绍,其实9脚和25脚的功能完全一样,多余的接口脚都是悬空处理的.
9脚与25脚接口的对应关系是1--8;2--3;3--2;4--20;5--7;6--6;7--4;8--5;9--22;
其中各脚的功能如下:
CD:此脚有调制解调器控制,调制解调器用此脚通知计算机载波信号是否被检测到;
RXD:此脚将远程发送来得数据接收进来,可以在调制解调器上看到RXD的指示灯明暗交错,说明RXD端正接收数据;
TXD:此脚将计算机所欲发出得数据发送出去,同上TXD的指示灯在工作时也会明暗交错的显示;
DTR:此脚有计算机控制,用于通知调制解调器是否可以进行传送数据,高电平表示准备就
绪;
GND:地线,没什么好说的,要点是此脚必须双向接地,保证地电平相等以供接收数据的恢复参考;
DSR:调制解调器用此脚的高电平来通知计算机准备就绪可以通讯;
RTS:计算机用此脚通知调制解调器马上将数据发送到计算机,注意若此时有数据传送到调制解调器则会暂存到缓冲区中;
CTS:此脚有调制解调器控制,用来通知计算机将欲发送的数据发送到调制解调器;
RI:调制解调器用此脚通知计算机有数据进来,但是否接收数据则有计算机来决定;
以上就是RS-2329个引脚的功能,你若仔细看,会发现他们的收发都是成对出现的,明白这点用起来就应该很轻松了.
调制解调器与计算机的通讯步骤如下:
(1)调制解调器 将计算机通讯端口的DSR引脚电位升高,表示调制解调器已经准备好接收计算机的串行端口传过来的数据了.
(2)计算机将DTR引脚电位升高,表示计算机已经将欲发送的数据准备好;
(3)计算机将RTS引脚电平升高,通知调制解调器计算机即将开始发送数据;
GND:地线,没什么好说的,要点是此脚必须双向接地,保证地电平相等以供接收数据的恢复参考;
DSR:调制解调器用此脚的高电平来通知计算机准备就绪可以通讯;
RTS:计算机用此脚通知调制解调器马上将数据发送到计算机,注意若此时有数据传送到调制解调器则会暂存到缓冲区中;
CTS:此脚有调制解调器控制,用来通知计算机将欲发送的数据发送到调制解调器;
RI:调制解调器用此脚通知计算机有数据进来,但是否接收数据则有计算机来决定;
以上就是RS-2329个引脚的功能,你若仔细看,会发现他们的收发都是成对出现的,明白这点用起来就应该很轻松了.
调制解调器与计算机的通讯步骤如下:
(1)调制解调器 将计算机通讯端口的DSR引脚电位升高,表示调制解调器已经准备好接收计算机的串行端口传过来的数据了.
(2)计算机将DTR引脚电位升高,表示计算机已经将欲发送的数据准备好;
(3)计算机将RTS引脚电平升高,通知调制解调器计算机即将开始发送数据;
(4)调制解调器将RTS引脚电位升高,通知计算机可以开始发送数据了;
(5)计算机将数据发送出去,当调制解调器接收倒数据之后,便将收到的数据通过电话线和网线发送出去,什么,要问我调制解调器怎么调制信号的,我靠,我怎么知道,自己去问问调制解调器吧.
当远程数据的经历千山万水到达接收端的调制解调器时,他不让进该怎么办呀,先友好点握握手呀,串门子也要讲礼貌吗,不然一脚揣出你去信不,此时要------------
(1)调制解调器将计算机上的DSR脚电位升高,说明调制解调器可以开门了
(2)这时电话上的数据就串进来,RI的电平发生变化,要问诸人计算机要不要俺进来坐坐呀
(3)计算机说行你进来吧,计算机便将DTR脚电位升高,直到断线之前此脚会一直持续高电平;
(4)握手完了,调制解调器要检测到载波信号,此时只是两个调制解调器之间通讯完毕;
(5)接下来调制解调器便将从电话线上接收到的数据传送到计算机里面去
以上是以调制解调器为对象介绍RS-232的,这种方式只能用于远程低波特率数据的传送,什么,你想传送100兆,去去去,俺只会慢慢的一个一个字节的传,要想快俺弟弟??去,它可是个急性子,可惜从来不爱串远门;
关于串行通讯的起始位及停止位:
(5)计算机将数据发送出去,当调制解调器接收倒数据之后,便将收到的数据通过电话线和网线发送出去,什么,要问我调制解调器怎么调制信号的,我靠,我怎么知道,自己去问问调制解调器吧.
当远程数据的经历千山万水到达接收端的调制解调器时,他不让进该怎么办呀,先友好点握握手呀,串门子也要讲礼貌吗,不然一脚揣出你去信不,此时要------------
(1)调制解调器将计算机上的DSR脚电位升高,说明调制解调器可以开门了
(2)这时电话上的数据就串进来,RI的电平发生变化,要问诸人计算机要不要俺进来坐坐呀
(3)计算机说行你进来吧,计算机便将DTR脚电位升高,直到断线之前此脚会一直持续高电平;
(4)握手完了,调制解调器要检测到载波信号,此时只是两个调制解调器之间通讯完毕;
(5)接下来调制解调器便将从电话线上接收到的数据传送到计算机里面去
以上是以调制解调器为对象介绍RS-232的,这种方式只能用于远程低波特率数据的传送,什么,你想传送100兆,去去去,俺只会慢慢的一个一个字节的传,要想快俺弟弟??去,它可是个急性子,可惜从来不爱串远门;
关于串行通讯的起始位及停止位:
因为串行通讯并不采用同步时钟脉冲作为基准,所以接收断无法判断数据发送的实时情况如何,所以,需要加上开始与结束的标识,规则是,在需要发送的数据字符的头尾加上高电平的起始位(逻辑0)和地电平的停止位(逻辑1),也许你要问为什么用负逻辑表示呀,单纯这样想就错了,现状是开始传送时,将传送线的电位有地电平拉到高电平,要结束了再将传送线的电位有高拉到低,接收端就是通过这两个电平的跳变来判断数据发送的开始与结束的.起始位固定为一个位,停止位有1'1.5'2个位等多种表示,要问为什么,我也不知道,哈哈哈.只要通讯协议允许你爱咋定就咋定谁管的着你.
关于传送数据的校验:
在串行通讯上的字符格式是:起始位+字符位+校验位+停止位;采用不同的数据位,校验位,停止位则每次传送的字节中位的个数可以动态改变,这个问题是不好理解,举例说,1个起始位+8个数据位+0个校验位+1个停止位,拜拜手指吧,是不是10个位呀,那么这里的一个字节就是10位,注意,要与传统意义上的8位区别开呀,不然下面就没法进行了.象上面这个例子如果传输速度为17600bps,则每秒传输17600/10=1760(字节)这样明白了吧.
校验位可以是奇校验和偶校验,到底用公的还是母的自己看着办吧,我想我们很少用校验位的.
关于工作模式:
关于传送数据的校验:
在串行通讯上的字符格式是:起始位+字符位+校验位+停止位;采用不同的数据位,校验位,停止位则每次传送的字节中位的个数可以动态改变,这个问题是不好理解,举例说,1个起始位+8个数据位+0个校验位+1个停止位,拜拜手指吧,是不是10个位呀,那么这里的一个字节就是10位,注意,要与传统意义上的8位区别开呀,不然下面就没法进行了.象上面这个例子如果传输速度为17600bps,则每秒传输17600/10=1760(字节)这样明白了吧.
校验位可以是奇校验和偶校验,到底用公的还是母的自己看着办吧,我想我们很少用校验位的.
关于工作模式:
在一般的串行通讯使用模式中,RS-232用全双工模式(FullDupled), RS-422与RS-485分别使用全双工和半双工模式,老兄你不知道什么是XXXX模式?,先去肯肯书本吧,整天疑神疑鬼的多难受.
握手:
硬件握手因篇幅的关系这里就不讲述了,说说软件握手,软件握手就是以数据上的信号来代替实际中的硬件线路;软件握手最常用的协议是:XON/XOFF,原理:若接收端要使发送端暂停发送,就向发送端发ASCII码的第19号字符(十六进制13),要恢复传送时,便向发送端送出ASCII第17号字符(十六进制11),两个字符交互使用便可以控制发送端的发送操作.
关于错误预防有两种常用方式:
CheckSum(将所有发送字符的十进制数的和与255相除取余再放到所发送字符的后面一起发送,校验时采用同样的办法求余比较)另一种是CRC(循环冗余校验码)
好了,关于RS-232的介绍就这些了,RS-232的传输举例一般都在15米以下,加转发器会再远点,不过抗噪性就有所下降了,RS-485效果会好些,但一般的PC机上不会装配这个.
握手:
硬件握手因篇幅的关系这里就不讲述了,说说软件握手,软件握手就是以数据上的信号来代替实际中的硬件线路;软件握手最常用的协议是:XON/XOFF,原理:若接收端要使发送端暂停发送,就向发送端发ASCII码的第19号字符(十六进制13),要恢复传送时,便向发送端送出ASCII第17号字符(十六进制11),两个字符交互使用便可以控制发送端的发送操作.
关于错误预防有两种常用方式:
CheckSum(将所有发送字符的十进制数的和与255相除取余再放到所发送字符的后面一起发送,校验时采用同样的办法求余比较)另一种是CRC(循环冗余校验码)
好了,关于RS-232的介绍就这些了,RS-232的传输举例一般都在15米以下,加转发器会再远点,不过抗噪性就有所下降了,RS-485效果会好些,但一般的PC机上不会装配这个.
由于串口自身的特点,通讯距离不大于15米,考虑到负载电容和码元畸变的影响,传输速率不超
过20Kb/S,而且,传输波特率与传输距离成反比的关系 ,所以应用串口通讯时必须选择好接口,并考虑好传输介质与电平转换的问题.
在计算机间的串口通讯多采用标准的25芯插头座,有22根线,RS-232C采用的是负逻辑,
逻辑”1”为-5V~-15V,逻辑”0”为+5V~+15V.
在计算机与单片机中使用RS—232通讯的最简单的连接形式是只用数据发射端(2脚)、数据接收端(3脚)、信号地(7脚),这是计算机向单片机机开发系统传送目标程序的最常用方式。当然,只用这3个脚并不能算完善的串口通讯接口,可是,在现实中,如果合理的使用这3个脚,可以实现简单的串口数据采集功能,例如,只要你手里有一根COM口线和一块RS—232板,那么,就可以只在这3个脚连出飞线到想要读取数据的地方读数据了,前提是你的PC机上要有读串口的程序。要想做个计算机间完善的串口接口,就必须要求连接各个功能脚了。以上这种22线的接口形式由于要用至少9根以上的线,所以只适合PC与PC的短距离通讯,当需要进行远程数据传输时,这种方式便不能胜任了。这时就需要采用符合远程数据通讯的接口方式,生活中最常用RS—232C远程数据传输接口方式是MODEM+传输线,需要采用调制解调器,它的工作原理请看第一篇里的介绍。采用MODEM的好处就是减少了长距离传输引起的干扰,同时加大了传输的距离,并且便于计算机对所传输数据的控制。
在计算机间的串口通讯多采用标准的25芯插头座,有22根线,RS-232C采用的是负逻辑,
逻辑”1”为-5V~-15V,逻辑”0”为+5V~+15V.
在计算机与单片机中使用RS—232通讯的最简单的连接形式是只用数据发射端(2脚)、数据接收端(3脚)、信号地(7脚),这是计算机向单片机机开发系统传送目标程序的最常用方式。当然,只用这3个脚并不能算完善的串口通讯接口,可是,在现实中,如果合理的使用这3个脚,可以实现简单的串口数据采集功能,例如,只要你手里有一根COM口线和一块RS—232板,那么,就可以只在这3个脚连出飞线到想要读取数据的地方读数据了,前提是你的PC机上要有读串口的程序。要想做个计算机间完善的串口接口,就必须要求连接各个功能脚了。以上这种22线的接口形式由于要用至少9根以上的线,所以只适合PC与PC的短距离通讯,当需要进行远程数据传输时,这种方式便不能胜任了。这时就需要采用符合远程数据通讯的接口方式,生活中最常用RS—232C远程数据传输接口方式是MODEM+传输线,需要采用调制解调器,它的工作原理请看第一篇里的介绍。采用MODEM的好处就是减少了长距离传输引起的干扰,同时加大了传输的距离,并且便于计算机对所传输数据的控制。
也许看到这儿,有朋友就有疑问了,RS—232C可以直接传出TTL电平吗,答案是不能,
因为计算机处理的数据很多是以TTL电平的形式存在的,RS—232C并不能满足对TTL电平的传送要求,所以要进行对RS—232电平与TTL电平之间的转换。现在常用的电平转换芯片有分离的与整合的两种,分离的常见的有MC1488(发送器)和MC1489(接收器),整合的就是将发送器和接收器集成到 一块芯片内,常见的有MAX202,MAX232,HIN232c等,RS232C的发送器输入的是TTL/CMOS电平,输出的是RS—232C电平,接收器输入的是RS—232C电平,输出的是TTL电平。
现在很多场合多种单片机系统之间需要进行数据通讯,例如数控加工线上需要实时的进行加工数据的通讯,就要采用串口或并口将多个单片机连接起来,我们这里只介绍串口的连接问题。单片机联机的目的就是要通讯,较常采用的通讯程序有两种:查询方式和中断方式。
在制作通讯程序之前需要事先定义单片机之间的通讯协议,例如:A发送一个信号11给B,询问是否可以通讯,B接到呼叫之后,要返回一个22信号作为应答信号,告知A可以向B发送数据;否则,B就要返回一个否定信号33让A进行等待,直到B准备完毕返回信号22,其数据格式为:字节数n—数据1—……—数据n—累加校验和;其中累加校验和是指字节数n、数据1~n这(n+1)个字节内容的算术和,B就是根据接收的累加校验和判断接收的数据是否正确
因为计算机处理的数据很多是以TTL电平的形式存在的,RS—232C并不能满足对TTL电平的传送要求,所以要进行对RS—232电平与TTL电平之间的转换。现在常用的电平转换芯片有分离的与整合的两种,分离的常见的有MC1488(发送器)和MC1489(接收器),整合的就是将发送器和接收器集成到 一块芯片内,常见的有MAX202,MAX232,HIN232c等,RS232C的发送器输入的是TTL/CMOS电平,输出的是RS—232C电平,接收器输入的是RS—232C电平,输出的是TTL电平。
现在很多场合多种单片机系统之间需要进行数据通讯,例如数控加工线上需要实时的进行加工数据的通讯,就要采用串口或并口将多个单片机连接起来,我们这里只介绍串口的连接问题。单片机联机的目的就是要通讯,较常采用的通讯程序有两种:查询方式和中断方式。
在制作通讯程序之前需要事先定义单片机之间的通讯协议,例如:A发送一个信号11给B,询问是否可以通讯,B接到呼叫之后,要返回一个22信号作为应答信号,告知A可以向B发送数据;否则,B就要返回一个否定信号33让A进行等待,直到B准备完毕返回信号22,其数据格式为:字节数n—数据1—……—数据n—累加校验和;其中累加校验和是指字节数n、数据1~n这(n+1)个字节内容的算术和,B就是根据接收的累加校验和判断接收的数据是否正确
地。当B接收到的数据正确时,就要返回一个信号44通知A,否则,返回55,上面的信号11、22、33、44、55是为了阐述的方便而设的,假如你在使用时,当然可以自己定义指令的字头,但要注意避免指令字头与数据相混淆的情况。中断方式就是利用单片机上的中断资源,定时器、计数器等使用软件的方法控制数据的发送与接收,中断方式的特点是执行效率高,速度快,这种方式多应用在双机通讯系统中。
关于多机串口通讯:
现实中最常用的还是多机串口通讯,一般的方式是设置一片MCU主机,然后将多个从机挂在TXD、RXD端口上,这种方式的通讯特点是:从←→主←→从,从机之间的通讯需要经过主机,多机通讯的要点就是保证通讯接口具有识别能力,可以使用串行口控制器SCON中的控制位SM2实现。当串行口工作于方式2或方式3时,发送和接受的每一祯信息都是11位,其中第9位数据位TB8可编程位赋予0或1,用于区别是数据祯还是地址祯,
若从机的SM2=1,当接受到地址时,则将其装入SBUF,并置RI=1,向CPU发出中断请求,
若接受到的是数据,则不产生中断,信息作废。当SM2=0时 无论接受到的是数据还是地址,均产生RI=1中断,,数据装入SBUF。明白这些就可以制定通讯规则了,原理如下:
SM2置1,所有从机都处于接受地址状态,主机发送地址信息,包含8 位地址,第9位为判断
关于多机串口通讯:
现实中最常用的还是多机串口通讯,一般的方式是设置一片MCU主机,然后将多个从机挂在TXD、RXD端口上,这种方式的通讯特点是:从←→主←→从,从机之间的通讯需要经过主机,多机通讯的要点就是保证通讯接口具有识别能力,可以使用串行口控制器SCON中的控制位SM2实现。当串行口工作于方式2或方式3时,发送和接受的每一祯信息都是11位,其中第9位数据位TB8可编程位赋予0或1,用于区别是数据祯还是地址祯,
若从机的SM2=1,当接受到地址时,则将其装入SBUF,并置RI=1,向CPU发出中断请求,
若接受到的是数据,则不产生中断,信息作废。当SM2=0时 无论接受到的是数据还是地址,均产生RI=1中断,,数据装入SBUF。明白这些就可以制定通讯规则了,原理如下:
SM2置1,所有从机都处于接受地址状态,主机发送地址信息,包含8 位地址,第9位为判断
位,如果第9 位为1,表示发送的是地址。从机接收到地址后便与自身的地址相比较,若某一从机为被寻地址,则使SM2位清零,其余的从机的SM2位保持1,
通讯协议没有固定的通用标准,随着使用环境的变化,我们可以自由的设订自己的协议,但要注意指令的定义要与数据加以区分,否则在复杂的多机系统里就要出现指令与数据混淆的现象。
通讯协议没有固定的通用标准,随着使用环境的变化,我们可以自由的设订自己的协议,但要注意指令的定义要与数据加以区分,否则在复杂的多机系统里就要出现指令与数据混淆的现象。
自制PLC编程电缆
自制PLC编程电缆
摘要:由于品牌不同的PLC其编程电缆不能通用,而原装编程电缆又价格不菲,给学习和使用PLC带来了不便。本文通过分析PLC编程口的几种通信接口标准和物理结构,详细说明了各种不同接口形式的PLC编程电缆的制作方法,自制编程电缆成本低制作方便,可以实现原装电缆的所有功能。
关键词:PLC 编程口 通信接口标准 编程电缆 接口转换器
摘要:由于品牌不同的PLC其编程电缆不能通用,而原装编程电缆又价格不菲,给学习和使用PLC带来了不便。本文通过分析PLC编程口的几种通信接口标准和物理结构,详细说明了各种不同接口形式的PLC编程电缆的制作方法,自制编程电缆成本低制作方便,可以实现原装电缆的所有功能。
关键词:PLC 编程口 通信接口标准 编程电缆 接口转换器
一. 前言
随着可编程序控制器(PLC)在工业控制领域的广泛应用,PLC编程成了电气工程技术人员
随着可编程序控制器(PLC)在工业控制领域的广泛应用,PLC编程成了电气工程技术人员
必须掌握的专业技能。可编程序控制器的品牌众多,欧、美、日、韩及台湾的PLC纷纷抢滩大陆,在给使用者提供了多种选择的同时,也给使用者带来了小小麻烦。由于不同品牌PLC的编程电缆互不通用,买一根原装电缆往往上千元。对于以学习为主要目的以及经常碰到不同品牌PLC的技术人员来说,如果能够有办法花较低的代价自制一根编程电缆,无疑为他们提供了方便。PLC虽然品牌众多,但各种品牌的PLC其编程接口不外乎几种型式,在PLC随机提供的技术手册里一般也都会提供编程口的引脚定义,这就为自制编程线提供了可能。下面我就PLC编程口的几种串行通信接口标准和物理结构,详细说明如何DIY一根适用的编程电缆。
二. PLC编程口的型式
编程电缆一端与PC的COM口相连,另一端与PLC的编程口相连,PC端的COM口均为RS232C接口,DB-9针形插头。而PLC的编程口按接口标准一般可分为三种,即RS232、RS485、RS422 。按物理结构可分为五种,即八针圆口(DIN-8),九针D形口(DB-9),二十五针D形口(DB-25),RJ11口以及专用接口,其中以前两种居多,各接口引脚排列如图一所示。
二. PLC编程口的型式
编程电缆一端与PC的COM口相连,另一端与PLC的编程口相连,PC端的COM口均为RS232C接口,DB-9针形插头。而PLC的编程口按接口标准一般可分为三种,即RS232、RS485、RS422 。按物理结构可分为五种,即八针圆口(DIN-8),九针D形口(DB-9),二十五针D形口(DB-25),RJ11口以及专用接口,其中以前两种居多,各接口引脚排列如图一所示。
图一
为了做好编程电缆,首先要大概了解一下这三种串行通信接口标准。RS-232、RS-422与RS-485是三种串行数据接口标准,接口标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,所以同样一种接口标准可以有不同的物理结构,如DB-9 、DB-25等。
RS-232是PC机与通信工业中应用最广泛的一种串行接口, RS-232C总线标准设有25条信号
为了做好编程电缆,首先要大概了解一下这三种串行通信接口标准。RS-232、RS-422与RS-485是三种串行数据接口标准,接口标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,所以同样一种接口标准可以有不同的物理结构,如DB-9 、DB-25等。
RS-232是PC机与通信工业中应用最广泛的一种串行接口, RS-232C总线标准设有25条信号
线,包括一个主通道和一个辅助通道。多数情况下只使用主通道,常用九条信号线(九针D形口),各引脚定义如表一所示。对于一般双工通信,仅需几条信号线就可实现,如发送数据线 TXD 和接收数据线RXD以及逻辑地线GND,RS232C只能点对点通讯,传输距离短,共模抑制能力差。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。它使用一对双绞线,将其中一根定义为A(TXD-/RXD-),另一根定义为B(TXD+/RXD+),不需要数字地线。速率在100kbps及 以下时通信距离达
1200米以上。RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。RS-485只能实现半双工通信。
RS-232接口引脚定义
25 针 9 针 缩 写 描 述
2 3 TXD 发送数据
3 2 RXD 接收数据
4 7 R0TS 请求发送
5 8 CTS 允许发送
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。它使用一对双绞线,将其中一根定义为A(TXD-/RXD-),另一根定义为B(TXD+/RXD+),不需要数字地线。速率在100kbps及 以下时通信距离达
1200米以上。RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。RS-485只能实现半双工通信。
RS-232接口引脚定义
25 针 9 针 缩 写 描 述
2 3 TXD 发送数据
3 2 RXD 接收数据
4 7 R0TS 请求发送
5 8 CTS 允许发送
6 6 DSR 通讯设备准备好
7 5 GND 信号地
8 1 CD 载波检测
20 4 DTR 数据终端准备好
22 9 RI 响铃指示器
表一
RS-422接口标准主要是为克服RS-232接口标准的通讯距离短和传输速率慢而建立的。RS-422标准是一种以平衡方式传输的标准,使用二对双绞线,每个信号以两根信号线来传输,即发送数据TXD+ 、 TXD- ,接收数据RXD+ 、 RXD- ,逻辑电平是由两条传输线之间的电位差来决定的,由于采用了双线传输,大大增强了抗共模干扰的能力,因此最大数据速率可达10MbPs(传送15m时)。若传输速率降到90kbPs时,则最大距离可达1200m,可实现全双工通信。
三. 编程电缆的制作
各厂家的编程电缆的作用就是将PLC端的RS485、RS422格式的数据转换为PC端的RS232C格式的数据,PLC端如果是RS232则只要按规则直接连接即可。因此要自制PLC编程电缆,
7 5 GND 信号地
8 1 CD 载波检测
20 4 DTR 数据终端准备好
22 9 RI 响铃指示器
表一
RS-422接口标准主要是为克服RS-232接口标准的通讯距离短和传输速率慢而建立的。RS-422标准是一种以平衡方式传输的标准,使用二对双绞线,每个信号以两根信号线来传输,即发送数据TXD+ 、 TXD- ,接收数据RXD+ 、 RXD- ,逻辑电平是由两条传输线之间的电位差来决定的,由于采用了双线传输,大大增强了抗共模干扰的能力,因此最大数据速率可达10MbPs(传送15m时)。若传输速率降到90kbPs时,则最大距离可达1200m,可实现全双工通信。
三. 编程电缆的制作
各厂家的编程电缆的作用就是将PLC端的RS485、RS422格式的数据转换为PC端的RS232C格式的数据,PLC端如果是RS232则只要按规则直接连接即可。因此要自制PLC编程电缆,
就必须将PLC端的RS485、RS422转换为PC机能够识别的RS232C,PC才能与PLC通信,完成下载、上传、监控等工作,这就涉及到一个接口标准转换的问题。实现接口转换有几种方法:一是用简易的电平转换电路,但一种电路只能针对一种PLC,且功能不全,性能也不太可靠,甚至可能会损坏PC机的串口;二是用专用的接口转换IC ,但业余实现起来比较复杂,不适合自制。这里我们使用一种成品通讯接口转换器,可以实现RS232/RS485/RS422的转换,由于是专用的通讯接口转换器,使用起来很方便且性能可靠,价格也比较低。
该类产品市场上比较多,以四川德阳四星电子的产品SC-485C接口转换器为例,该转换器用于RS232到RS485/RS422的通讯转换,体积小巧,只有两个DB-9插头大小,采用串口窃电技术,不需外接电源。SC-485C的结构及引脚定义如图二所示。RS232端为DB-9的孔座,可以直接插在PC机的COM口上,RS485/RS422端为DB-9的针座, RS485时使用3脚和8脚, RS422时用3脚、8脚、1脚和7脚。利用该接口转换器制作编程电缆如图三所示。左侧为SC-485C接口转换器,右侧从上而下分别为DIN-8、RJ11、DB-9和DB25插头的编程电缆,电缆靠近接口转换器一边的插头均为DB-9孔型插头,另一头均为针插头,分别对应不同物理结构的PLC编程口。
该类产品市场上比较多,以四川德阳四星电子的产品SC-485C接口转换器为例,该转换器用于RS232到RS485/RS422的通讯转换,体积小巧,只有两个DB-9插头大小,采用串口窃电技术,不需外接电源。SC-485C的结构及引脚定义如图二所示。RS232端为DB-9的孔座,可以直接插在PC机的COM口上,RS485/RS422端为DB-9的针座, RS485时使用3脚和8脚, RS422时用3脚、8脚、1脚和7脚。利用该接口转换器制作编程电缆如图三所示。左侧为SC-485C接口转换器,右侧从上而下分别为DIN-8、RJ11、DB-9和DB25插头的编程电缆,电缆靠近接口转换器一边的插头均为DB-9孔型插头,另一头均为针插头,分别对应不同物理结构的PLC编程口。
图二
图三
接线时根据PLC端是RS485还是RS422选择对应的引脚,按照“发送接接收,接收接发送,正接正,负接负”的规律连接,SC-485C接口转换器与PLC RS485、RS422接口接线图和PC与PLC RS232接口接线见图四。
图四进程间通信信号
要做好一根编程电缆,除了要进行RS232/RS485/RS422之间的接口转换外,还必须了解PLC编程口各引脚的定义,因为即使是采用同一种接口标准,不同厂家的PLC其引脚分布也是不相同的。表二提供了几种主流PLC的引脚定义,供自制时参考。未列举的PLC可以查随机的技术手册,也可以到网上一个通用型人机界面(HMI)的说明书,在HMI与各厂家PLC联机的连线说明中可以到市场上绝大多数PLC的引脚定义。
部份PLC编程口引脚定义
PLC型号 接口标准 接口外形 引 脚 定 义
S7-200 RS485 DB-9 3B/8A
TIWDO/NEZA RS485 DIN-8 1A/2B
LG MASTER K系列 RS232 DB-9 2RXD/3TXD/5GND
FX2N/FX0N RS422 DIN-8 1RXD-/2RXD+/4TXD-/7TXD+
OMRON CH200HS RS232 DB-9 2TXD/3RXD/7GND/4RTS/5CTS
AB SLC503/504 RS232 3TXD/2RXD/5GND/7RTS/8CTS
ABB COMLI(SLAVE MODE) RS232 6TXD/7RXD/5GND
KOYO DIRECT DL RS232 RJ11 4TXD/3RXD/1GND
表二
四、结束语
一种原装电缆只能在一种PLC上使用,而一只接口转换器配上不同接插件可以组合成一套编程电缆,几乎可以在任何品牌的PLC上使用。接口转换器和接插件在通信市场都能买到,而且价格便宜,总成本仅需原装电缆价格的十分之一左右,制作也非常简便。自制的编程电缆可以在PC与PLC之间可以完成程序上传、下载、在线监控等功能,在功能和可靠性上比起原装电缆来可以说是毫不逊。
表二
四、结束语
一种原装电缆只能在一种PLC上使用,而一只接口转换器配上不同接插件可以组合成一套编程电缆,几乎可以在任何品牌的PLC上使用。接口转换器和接插件在通信市场都能买到,而且价格便宜,总成本仅需原装电缆价格的十分之一左右,制作也非常简便。自制的编程电缆可以在PC与PLC之间可以完成程序上传、下载、在线监控等功能,在功能和可靠性上比起原装电缆来可以说是毫不逊。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论