收藏 分享(赏)

串口通信.pdf

上传人:HR专家 文档编号:5963550 上传时间:2019-03-22 格式:PDF 页数:5 大小:218.59KB
下载 相关 举报
串口通信.pdf_第1页
第1页 / 共5页
串口通信.pdf_第2页
第2页 / 共5页
串口通信.pdf_第3页
第3页 / 共5页
串口通信.pdf_第4页
第4页 / 共5页
串口通信.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

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

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

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

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

5、。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低( E 偶数、M 记号、 N 默认、 None 无、 O 奇数、 S 空白)。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是 011,那么 对于偶校验,校验位为 0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位 1,这样就有 3 个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。 9600

6、,N,8,1: 波特率为 9600,默认校验位, 8 位数据位, 1 位停止位, RS-232 通信距离不长,因此默认值是不作同位检查的。 2,什么是 RS-232? RS-232( ANSI/EIA-232 标准)是 IBM-PC 及其兼容机上的串行连接标准。可 用于许多用途,比如连接鼠标、打印机或者 Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中 RS-232 的传输长度或者速度常常超过标准的值。 RS-232 只限于 PC 串口和设备间点对点的通信。 RS-232 串口通信最远距离是 50 英尺 ( 1 英尺 =0.3048 米 ) DB-9 针连接头 - 1 2

7、 3 4 5 / 6 7 8 9 / - 从计算机连出的线的截面。 RS-232 针脚的功能: 数据: TXD( pin 3):串口数据输出 RXD( pin 2) :串口数据输入 握手: RTS( pin 7):发送数据请求 CTS( pin 8):清除发送 DSR( pin 6):数据发送就绪 DCD( pin 1):数据载波检测 DTR( pin 4):数据终端就绪 地线: GND( pin 5):地线 其他 RI( pin 9):铃声指示 3,什么是 RS-422? RS-422( EIA RS-422-A Standard)是 Apple 的 Macintosh 计算机的串口连接标准

8、。 RS-422 使用差分信号, RS-232 使用非平衡参考地的信号。差分传输使用两根线发送和接收信号 ,对比 RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。 4,什么是 RS-485? RS-485( EIA-485 标准)是 RS-422 的改进,因为它增加了设备的个数,从 10 个增加到 32 个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。有了多个设备的能力,你可以使用一个单个 RS-422 口建立设备网络。出色抗噪和多设备能力,在工业应用中建立连向 PC机的分布式设备网络、其他数据收集控制器、 HMI

9、 或者其他操作时,串行连接会选择 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 和 RS-422 的引脚的功能 数据: TXD+( pin 8), TXD-( pin 9), RXD+( pin 4), RXD-( pin 5) 握手: RTS+( pin 3), RTS-( pin 7), CTS+( pin 2), CTS-( pin 6) 地线: GND

10、 ( pin 1) 5,什么是握手? RS-232 通行方式允许简单连接三线: Tx、 Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的 RS-232 握手形式:软件握手、硬件握手和 Xmodem。 a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于GPIB 使用命令字符串的方式。必须的线仍然是 三根: Tx, Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数 SetXModem 允许用户使能或

11、者禁止用户使用两个控制字符 XON 和OXFF。这些字符在通信中由接收方发送,使发送方暂停。 例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于 CPU 忙于其他工作,输入 buffer已经满了。为了暂时停止传输,接收方发送 XOFF,典型的值是十进制 19,即十六进制 13,直到输入 buffer 空了。一旦接收方准备好接收,它发送 XON,典型的值是十进制 17,即十六进制 11,继续通信。输入 buffer 半满时, LabWindows 发送 XOFF。此外,如果 XOFF 传输被打断,LabWindows 会在 buffer 达到 75和 90时发送 XOFF。显然,发送方

12、必须遵循此守则以保证传输继续。 b,硬件握手:第二种是使用硬件线握手。和 Tx 和 Rx线一样, RTS/CTS 和 DTR/DSR 一起工作,一个作为输出,另一个作为输入。第一组线是 RTS( Request to Send)和 CTS( Clear to Send)。当接收方准备好接收数据,它置高 RTS 线表示它准备好了,如果发送方也就绪,它置高 CTS,表示它即将发送数据。另一组线是 DTR( Data Terminal Ready)和 DSR( Data Set Ready)。这些现主要用于 Modem 通信。使得串口和 Modem 通信他们的状态。例如:当 Modem 已经准备好接

13、收来自 PC 的数据,它置高 DTR 线,表示和电话线的连接已经建立。读取 DSR 线置高, PC 机开始发送数据。一个简单的规则是 DTR/DSR 用于表示系统通信就绪,而 RTS/CTS 用于单个数据包的传输。 在 LabWindows,函数 SetCTSMode 使能或者禁止使用硬件握手。如果 CTS 模式使能,LabWindows 使用如下规则: 当 PC 发送数据: RS-232 库必须检测 CTS 线高后才能发送数据。 当 PC 接收数据: 如果端口打开,且输入队列有空接收数据,库函数置高 RTS 和 DTR。 如果输入队列 90满,库函数置低 RTS,但使 DTR 维持高电平。

14、如果端口队列近乎空了,哭喊数置高 RTS,但使 DRT 维持高电平。 如果端口关闭,库函数置低 RTS 和 DTR。 c, XModem 握手:最后讨论的握手叫做 XModem 文件传输协议。这个协议在 Modem 通信中非常通用。尽管它通常使用在 Modem 通信中, XModem 协议能够直接在其他遵循这个协议的设备通信中 使用。在 LabWindows 中,实际的 XModem 应用对用户隐藏了。只要 PC 和其他设备使用XModem 协议,在文件传输中就使用 LabWindows 的 XModem 函数。函数是 XModemConfig,XModemSend 和 XModemRecei

15、ve。 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,发送方停止尝

16、试。如果从发送方收到 start_of_data,接收方将读取后继信息数据包。包中含有包的数目、包数目的补码作为错误校验、 packet_size 字节大小的实际数据包,和进一步错误检查的求和校验值。在读取数据后,接收方会 调用 wait_delay,然后想发送方发送响应。如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值 max_tries。如果一直没有收到响应,发送方通知用户传输数据失败。 由于数据必须以 pack_size 个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充 ASCII码 NULL( 0)字节。这导致接收的数据比原

17、数据多。在 XModem 情况下一定不要使用 XON/XOFF,因为 XModem 发送方发出包的数目很可能增加到 XON/OFF 控制字符的值,从而导致通信故障。 二、串口通信基本接线方法 目前较为常用的串口有 9 针串口( DB9)和 25 针串口( DB25), 计算机上一般是 9 针串口(公口) ,通信距离较近时 (12m),可以用电缆线直接连接标准 RS232 端口 (RS422,RS485 较远 ),若距离较远,需附加调制解调器( MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用 RS232 相连,以回答前段网友的咨

18、询。 1.DB9和 DB25的常用信号脚说明 9 针串口( DB9) 25 针串口( DB25) 针号 功能说 明 缩写 针号 功能说明 缩写 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 8 清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL 2.RS232C 串口通信接线方

19、法(三 线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 同一个串口的接收脚和发送脚直接用线相连 对 9 针串口和 25 针串口,均是 2 与 3 直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 9 针 9 针 25 针 25 针 9 针 25 针 2 3 3 2 2 2 3 2 2 3 3 3 5 5 7 7 5 7 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收 GPS 数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。 3.串口调试中要注意的几点: 不同编码机制不能混接,如 RS232C 不能直接与 RS422 接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事; 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 三、开发串口通讯组件 本站开发直接提供 串口通讯的组件,采取微软公司的 OCX 组件格式,供用户调用,如 VB、 PB、DELPHI等,支持 HTML, JSP 等 WEB 网页。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报