RS232通讯协议
- 格式:doc
- 大小:66.00 KB
- 文档页数:5
数控机床RS232通讯接⼝及参数介绍数控机床RS232通讯接⼝及参数介绍RS-232-C接⼝在数控机床上有9针或25针串⼝,其特点是简单,⽤⼀根RS232C电缆和电脑进⾏连接,实现在计算机和数控机床之间进⾏系统参数、PMC 参数、螺距补偿参数、加⼯程序、⼑补等数据传输,完成数据备份和数据恢复,以及DNC加⼯和诊断维修。
⼀、RS-232-C简介RS-232-C接⼝(⼜称 EIA RS-232-C)在各种现代化⾃动控制装置上应⽤⼗分⼴泛,是⽬前最常⽤的⼀种串⾏通讯接⼝。
它是在1970年由美国电⼦⼯业协会(EIA)联合贝尔系统、调制解调器⼚家及计算机终端⽣产⼚家共同制定的⽤于串⾏通讯的标准。
它的全名是“据终端设备(DTE)和数据通讯设备(DCE)之间串⾏⼆进制数据交换接⼝技术标准”,该标准规定采⽤⼀个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定,⼀般只使⽤3~9根引线。
1、RS232C接⼝连接器引脚分配及定义DB-25和DB-9型插头座针脚功能如下:DB-9串⾏⼝的针脚功能 DB-25串⾏⼝的针脚功能针脚符号信号名称针脚符号信号名称1 DCD 载波检测8 DCD 载波检测2 RXD 接受数据3 RXD 接受数据3 TXD 发送数据 2 TXD 发出数据4 DTR 数据终端准备好20 DTR 数据终端准备好5 SG 信号地7 SG 信号地6 DSR 数据准备好 6 DSR 数据准备好7 RTS 请求发送 4 RTS 请求发送8 CTS 清除发送 5 CTS 清除发送9 RI 振铃指⽰22 RI 振铃指⽰DB-25插头外形DB-9插头外形2、端⼝参数和设置串⼝通信最重要的参数是波特率、数据位、停⽌位、奇偶校验和流控制。
对于两个进⾏通⾏的端⼝,这些参数必须相同:2.1 波特率:这是⼀个衡量通信速度的参数。
它表⽰每秒钟传送的bit的个数。
例如300波特表⽰每秒钟发送300个bit。
串口通信RS232和RS485简介PLC与控制设备之间的通信基本上都是基于串行通信接口,采用其对应的通信协议进行控制的,而对于串行通信接口,常用的包括RS232、RS422、RS485。
一、RS232串行通信接口RS-232接口符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,被广泛用于计算机串行接口外设连接,有些老式PC机上就配置有RS232接口。
RS232的工作方式是单端工作方式,这是一种不平衡的传输方式,收发端信号的逻辑电平都是相对于信号地而言的,RS232最初是DET(数字终端设备)和DCE(数据通信设备)一对一通信,也就是点对点,一般是用于全双工传送,当然也可以用于半双工传送。
此外,RS232是负逻辑,逻辑电平是±5~±15V,传输距离短,只有15米,实际应用可以达到50米,但是再长的距离就须加调制了。
最初RS232标准物理接口是25个引脚的,因为常用的是9个引脚,后来就基本采用DB9连接器了,RS232的DB9连接器的引脚定义见下图:在DB9的9个引脚中,并不是所有的信号端都使用的,比如说RTS/CTS只有在半双工方式中作发送和接收时的切换用,而在全双工方式中,因配置双向通道所以不需要。
一般来说,在全双工方式中RS232标准接线只要三条线就足够了,两根数据信号线TXD/RXD,一根信号地线GND。
双方连接的方式是将TXD和RXD交叉连接,信号地直接相接,然后将各自的RTS/CTS,DSR/DTR短接,将DCD和RI悬空就可以。
二、RS485串行通信接口1、概况为改进RS232通信距离短、速率低的缺点,1983年,RS-485通讯接口被电子工业协会(Electronics Industries Association EIA)批准为一种通讯接口标准。
使用RS-485作为物理层的常用标准协议主要有工业HART总线、modbus协议、Profibus DP等等。
在这一课里,我们一起来学习RS-232C串行通信相关标准及单片机和电脑的RS-232C串行通信接口技术,为学习和开发单片机串口通信应用系统打好基础,希望大家在看完这篇文章后对串行通信有初步的认识。
【通信基本概念】什么是通信?简单地说,不同的系统经由线路相互交换数据,就是通信。
通信的主要目的是将数据从一端传送到另一端,达到数据交换的目的。
例如,从人与人之间的对话、计算机与设备之间的数据交换到计算机与计算机间的数据传送,乃至于广播或卫星都是通信的一种,一个完整的通信系统包括发送端、接收端、转换数据的接口及传送数据的实际信道。
【通信的种类】按照通信的形式可以分为两种,其中一种为并行传输的通信,即并行通信(Parallel Communication),另一种则为串行通信(Serisl Communication)。
这两种通信方式的区别是,并行通信一次的传输数据量为8位(1个字节);而串行通信则一次只能传输1位,传输1字节数据(8位)数据就需要8次才能传出去,因此,它们两者之间的数据传输速度就相差8倍。
看到这里,估计有些朋友会问,既然并行通信的速度是串行通信的8倍,是不是串行通信就不好了?!其实不能这么认为,两种通信方式各有特点,串行通信之所以存活了这么长时间,自然有它的长处。
并行通信虽然可以在一次的数据传输中传送8位,但是数据电压在传送的过程中,容易因为线路及干扰因素使得电压准电位发生变化(主要为电压衰减和信号间相互干扰问题),因而使得传输数据发生错误,通信距离越长,问题越明显,因此并行通信主要用于传输距离较短的场合,如电脑主板的并口LPT1,主要和并行打印机通信。
串行通信一次只传输1位,相对来说,要处理的数据电压只有一个,因此比较不容易漏失数据,通信时候再加上一些校验防范措施后,串行通信的出错就更不容易了,串行通信端口(Serisl Communication Port)在系统控制的范畴中一直占有极其重要的角色,不仅没有因为时代的进步而被淘汰,反而失在规格上愈来愈向其极限挑战,下面我们重点来介绍RS-232C串行通信。
基本的通讯方式有并行通讯和串行通讯两种。
并行通讯:一条信息的各位数据被同时传送的通讯方式称为并行通讯。
并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。
串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。
串行通讯的距离可以从几米到几千米。
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。
而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。
异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。
1、异步串行方式的特点所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。
异步串行通信的特点可以概括为:①以字符为单位传送信息。
②相邻两字符间的间隔是任意长。
③因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以,不需同步。
④异步方式特点简单的说就是:字符间异步,字符内部各位同步。
2、异步串行方式的数据格式异步串行通信的数据格式如图1所示,每个字符(每帧信息)由4个部分组成:①1位起始位,规定为低电0;②5~8位数据位,即要传送的有效信息;③1位奇偶校验位;④1~2位停止位,规定为高电平1。
3、同步串行方式的特点所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。
同步串行通信的特点可以概括为:①以数据块为单位传送信息。
②在一个数据块(信息帧)内,字符与字符间无间隔。
③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。
串口通讯—RS-232-C详解串行通信接口标准经过使用和发展,目前已经有几种。
但都是在RS-232标准的基础上经过改进而形成的。
所以,以RS-232C为主来讨论。
RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。
它适合于数据传输速率在0~20000b/s 范围内的通信。
这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。
由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。
在讨论RS-232C接口标准的内容之前,先说明两点:首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。
因此这个标准的制定,并未考虑计算机系统的应用要求。
但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。
显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。
有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。
由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。
一、RS-232-CRS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。
它规定连接电缆和机械、电气特性、信号功能及传送过程。
APC Smart UPS RS232通讯协议说明
一.硬件层协议
a)RS232接口,使用2400bit/s的波特率,1位起始位,8位数据位,1位停止位,无
奇偶校验位。
b)通讯码制是ASCII码。
二.部分通讯命令描述
以下协议中,ASCII码区分大小写字符,所有的UPS返回信息后面都加上回车换行符(即0d 0a )结束符。
以下分为5类命令:
连接UPS通讯命令,UPS状态命令,电池参数命令,输出UPS的电参数信息命令;这4个命令是:查询方式,也就是上位机发什么命令,UPS就对应的返回什么数据上来。
UPS自动返回的警告信息:是UPS自动向上位机发送警告字符,因为这是RS232通讯的,RS232是全双工的工作模式。
以上协议中:发送的ASCII字符无0d 0a结束符,也无校验。
程序流程如下:。
[转]串口(9,25针)通信、串口引脚定义与连接目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS485较远),若距离较远,需附加调制解调器(MODEM)。
最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。
1.DB9和DB25的常用信号脚说明2.RS232C串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连∙同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;∙两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。
3.串口调试中要注意的几点:∙不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;∙线路焊接要牢固,不然程序没问题,却因为接线问题误事;∙串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;∙强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
附:9针脚信号:1 CD Carrier Detect2 RXD Receive Data3 TXD Transmit Data4 DTR Data Terminal Ready5 GND System Ground6 DSR Data Set Ready7 RTS Request to Send8 CTS Clear to Send9 RI Ring IndicatorDCD、DTR、DSR、RTS及CTS等五个状态指示分别代表什么意思?DCD (Data Carrier Detect 数据载波检测)DTR(Data Terminal Ready,数据终端准备好)DSR(Data Set Ready 数据准备好)RTS(Request To Send 请求发送)CTS(Clear To Send 清除发送)在这五个控制信号中,DTR和RTS是DTE设备(数据终端设备,在实际应用中就是路由器)发出的,DSR、CTS和DCD是DCE设备(数据电路终结设备,在实际中就是各种基带MODEM)发出的。
这五个控制信号的协商机制如下:1、在路由器的串口没有配置流控命令的情况下,只要一上电,DTR和RTS就会被置成有效(即只要一加电这两个状态就UP,不管串口有没有接电缆),当路由器检测到对端送过来的DSR、CTS和DCD三个信号时,串口的物理状态就上报UP(任何一个物理信号无效都不会报UP,或者说,这三个信号中只要有一个为DOWN,路由器串口的物理状态就处于DOWN的状态)。
另外,如果在路由器的串口上配置了NO DETECT DSR-DTR命令,DTE侧(路由器)就不会检测对端是否送过来DSR和CTS信号,只要检测到DCD信号,物理层就报UP。
2、如果在路由器的串口上配置了流控命令(具体命令为flowcontrol auto),RTS和CTS两个信号就会用于流量控制(路由器串口和基带Modem之间的数据发送、接收流控)。
当出现数据处理不及时的情况,这两个控制信号就可能处于DOWN的状态串口通信协议百科名片串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
目录什么是串口什么是RS-232什么是RS-485什么是握手DB-9针连接头-------------\ 1 2 3 4 5 /\ 6 7 8 9 /--------------从计算机连出的线的截面。
RS-232针脚的功能:数据:TXD(pin 3):串口数据输出(Transmit Data)RXD(pin 2):串口数据输入(Receive Data)握手:RTS(pin 7):发送数据请求(Request to Send)CTS(pin 8):清除发送(Clear to Send)DSR(pin 6):数据发送就绪(Data Send Ready)DCD(pin 1):数据载波检测(Data Carrier Detect)DTR(pin 4):数据终端就绪(Data Terminal Ready)地线:GND(pin 5):地线其他RI(pin 9):铃声指示RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。
有了多个设备的能力,你可以使用一个单个RS-422口建立设备网络。
出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。
RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。
RS-485可以用超过4000英尺的线进行串行通行。
DB-9 引脚连接-------------\ 1 2 3 4 5 /\ 6 7 8 9 /-------从计算机连出的线的截面。
RS-485的引脚的功能数据:1(DATA-) 2(DATA+)地线:5什么是握手RS-232通行方式允许简单连接三线:Tx、Rx和地线。
但是对于数据传输,双方必须对数据定时采用使用相同的波特率。
尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。
这时需要串口的握手功能。
在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。
a,软件握手:我们讨论的第一种握手是软件握手。
通常用在实际数据是控制字符的情况,类似于GPIB 使用命令字符串的方式。
必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使用或者禁止用户使用两个控制字符XON和XOFF。
这些字符在通信中由接收方发送,使发送方暂停。
例如:假设发送方以高波特率发送数据。
在传输中,接收方发现由于CPU忙于其他工作,输入buffer 已经满了。
为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer 空了。
一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。
输入buffer 半满时,LabWindows发送XOFF。
此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。
显然,发送方必须遵循此守则以保证传输继续。
b,硬件握手:第二种是使用硬件线握手。
和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。
第一组线是RTS(Request to Send)和CTS(Clear toSend)。
当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。
另一组线是DTR(DataTerminal Ready)和DSR(Data SetReady)。
这些现主要用于Modem通信。
使得串口和Modem通信他们的状态。
例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。
读取DSR线置高,PC机开始发送数据。
一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。
在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。
如果CTS模式使能,LabWindows 使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。
当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。
如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。
如果端口队列近乎空了,库函数置高RTS,但使DRT维持高电平。
如果端口关闭,库函数置低RTS和DTR。
c,XModem握手:最后讨论的握手叫做XModem文件传输协议。
这个协议在Modem通信中非常通用。
尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。
在LabWindows中,实际的XModem应用对用户隐藏了。
只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。
函数是XModemConfig,XModemSend和XModemReceive。
XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。
这些参数需要通信双方认定,标准的XModem有一个标准的定义:然而,可以通过XModemConfig函数修改,以满足具体需要。
这些参数的使用方法由接收方发送的字符neg_ack确定。
这通知发送方其准备接收数据。
它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max_ties次数,或者收到接收方发送的start_of_data,发送方停止尝试。
如果从发送方收到start_of_data,接收方将读取后继信息数据包。
包中含有包的数目、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值。
在读取数据后,接收方会调用wait_delay,然后想发送方发送响应。
如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值max_tries。
如果一直没有收到响应,发送方通知用户传输数据失败。
由于数据必须以pack_size个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充ASCII码NULL(0)字节。
这导致接收的数据比原数据多。
在XModem情况下一定不要使用XON/XOFF,因为XModem发送方发出包的数目很可能增加到XON/OFF控制字符的值,从而导致通信故障。