串口通信的基本知识

上传人:夏** 文档编号:512244062 上传时间:2024-02-12 格式:DOC 页数:6 大小:32.50KB
返回 下载 相关 举报
串口通信的基本知识_第1页
第1页 / 共6页
串口通信的基本知识_第2页
第2页 / 共6页
串口通信的基本知识_第3页
第3页 / 共6页
串口通信的基本知识_第4页
第4页 / 共6页
串口通信的基本知识_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《串口通信的基本知识》由会员分享,可在线阅读,更多相关《串口通信的基本知识(6页珍藏版)》请在金锄头文库上搜索。

1、串口通信的基本知识串口通信的基本概念1,什么是串口?2,什么是RS-232 ?3,什么是RS-422 ?4,什么是RS-485 ?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线 Uni versal Serial Bus或者USB混淆)。大多数计算机包含两个基于 RS232的串口。串口 同时也是仪器仪表设备通用的通信协议; 很多GPIB兼容的设备也带有RS- 232 口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念 非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte) 的并行通信慢,但是串口可以在使用一根线发送

2、数据的同时用另一根线接收数据。 它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过 2米;而对于 串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2) 发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时 在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参 数是波特率、数据位、停止位和奇偶校验。 对于两个进行通行的端口,这些参数 必须匹配:a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300

3、波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指 波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通 信在数据线上的采样率为4800Hz。通常电话线的波特率为 14400,28800和 36600。波特率可以远远大于这些值,但是波特率和距离成反比。 高波特率常常 用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实 际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的 信息。比如,标准的 ASCII码是0127 ( 7位)。扩展的ASCII码是0255

4、(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7 位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于 实际数据位取决于通信协议的选取,术语包”指任何通信的情况。c,停止位:用于表示单个包的最后一位。典型的值为 1,1.5和2位。由于数据 是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设 备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束, 并且提供计算 机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越 大,但是数据传输率同时也越慢。d,奇偶校验位:在串口通信中一种简单的检错方式。 有四种检错方式:

5、偶、奇、 高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验 位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶 数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正 的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个 位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同2,什么是RS-232 ?RS-232( ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Mod

6、em,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过 标准的值。RS-232只限于PC串口和设备间点对点的通信。RS- 232串口通信 最远距离是50英尺。DB-9针连接头从计算机连出的线的截面。RS-232针脚的功能:数据:TXD(pin 3):串口数据输出RXD(pin 2 ):串口数据输入握手:RTS ( pin 7)request to send :发送数据请求CTS ( pin 8)clear to send :清除发送DSR ( pin 6) : data send ready:数据发送就绪DCD ( pin 1) : data s

7、end ready 数据载波检测DTR ( pin 4 ): data terminal ready 数据终端就绪地线:GND( pin 5 ):地线其他RI( pin 9):铃声指示3,什么是RS-422 ?RS -422 (EIA RS-422-A Standard )是 Apple 的 Macintosh 计算机的串口连接 标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使 用两根线发送和接收信号,对比 RS-232,它能更好的抗噪声和有更远的传输距 离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。4,什么是RS-485 ?RS -485 (EI

8、A-485标准)是RS-422的改进,因为它增加了设备的个数,从 10 个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的 信号电压。有了多个设备的能力,你可以使用一个单个RS-422 口建立设备网络。 出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他 数据收集控制器、HMI或者其他操作时,串行连接会选择 RS-485。RS-485是 RS-422的超集,因此所有的 RS-422设备可以被 RS-485控制。RS-485可以 用超过4000英尺的线进行串行通行。DB-9引脚连接从计算机连出的线的截面RS-485和RS-422的引脚的功能数据:TXD+(

9、 pin 8),TXD-( pin 9),RXD+ ( pin 4 ),RXD-( pin 5) 握手:RTS+( pin 3),RTS-( pin 7),CTS+ ( pin 2),CTS-( pin 6 地线:GND ( pin 15,什么是握手?RS -232通行方式允许简单连接三线: Tx(transmit)、Rx(receive)和地线。但是 对于数据传输,双方必须对数据定时采用使用相同的波特率 。尽管这种方法对于 大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。 这时需要 串口的握手功能。在这一部分,我们讨论三种最常用的 RS-232握手形式:软件 握手、硬件握手和

10、Xmodem(文件传输通信协议)。a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字 符的情况,类似于GPIB使用命令字符串的方式。必须的线仍然是三根:Tx,Rx 和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使能或者禁止用户使用两个控制字符 XON和XOFF。这些字符在通信中由 接收方发送,使发送方暂停。例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于CPU忙于其他工作,输入buffer(缓冲器)已经满了。为了暂时停止传输,接收方发送XOFF, 典型的值是十进制19,即十六进制13,直到输入buffer空了。一旦接收方准备 好

11、接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。输 入buffer半满时,LabWindows发送XOFF。此外,如果XOFF传输被打断,LabWindows会在buffer达到75 %和90 %时发送XOFF。显然,发送方必须遵 循此守则以保证传输继续。b,硬件握手:第二种是使用硬件线握手。和Tx和Rx线一样,RTS (request to send)/CTS ( clear to send )和 DTR ( data terminal ready)/DSR ( data send ready ) 一起工作,一个作为输出,另一个作为输入。第一组线是RTS ( Reques

12、t to Send )和CTS( Clear to Send )。当接收方准备好接收数据,它置高 RTS 线表示它准备好了,如果发送方也就绪,它置高 CTS,表示它即将发送数据。另一组线是 DTR ( Data Terminal Ready )和 DSR ( Data Set Ready )。这些 现主要用于Modem通信。使得串口和Modem通信他们的状态。例如:当Modem 已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建 立。读取DSR线置高,PC机开始发送数据。一个简单的规则是 DTR/DSR用 于表示系统通信就绪,而 RTS/CTS用于单个数据包的传输。在Lab

13、Windows,函数SetCTSMode使能或者禁止使用硬件握手。 如果CTS模 式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。如果输入队列90 %满,库函数置低RTS,但使DTR维持高电平。如果端口队列近乎空了,哭喊数置高 RTS,但使DRT维持高电平。 如果端口关闭,库函数置低 RTS和DTR。c,XModem握手:最后讨论的握手叫做 XModem文件传输协议。这个协议在 Modem通信中非常通用。尽管它通常使用在 Modem通信中,XModem协议

14、能够直接在其他遵循这个协议的设备通信中使用。在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函

15、数修改,以满足具体需要。这些参数的使用方法由接收方发送的字符n eg_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控制字符的值,从而导致通信故障。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号