1.什么是总线?按总线传输的信息特征可将总线分为哪几类?各自的功能是什么?

2.GPIB卡报错代码10什么意思

3.安捷伦34401A使用RS232与电脑通信,只能发送不能接收

4.什么是零槽控制器

5.网络通信应该属于串口通信还是并口通信?

gpib硬件_gpib系统

问题一:串口通讯协议是什么 串口通讯协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。

问题二:串口有哪些?串口协议有哪些? u *** ,rs485,422,232是串口接口,

串口协议 常见 modbus RTU ASCII

问题三:怎么写串口通信协议 通信协议是可以自己定义的,只不过要求不一样,可以自己随意定义,也可以根据客户要求定义,或根据相关设备定义(如你所述你的主机通过扫描枪扫描二维码,那主机内部就应该有相关编码协议),看相关说明书能查到。同时自己也可以在里面加上校验码等等

问题四:串口仿真协议是什么? 串口仿真协议(RFM)是蓝牙系统中用于模拟串口的主要协议层

问题五:串口协议 5分 协议一般要包含:起始符、、数据、校验码、结束符,5个部分的定义。

其中 起始符、结束符,不能与其他数据重码。

如只要传输字母与数字,可以看下ASCII码表,使用非数字和字母的符号做起始结束符即可,如{};

数据长度码即表示此串数据包的数据长度,如果传输的数据串长度固定可省去;

校验码相当于对此串数据正确性的校验,和奇偶校验效果类似,一般是和校验,即将数据全部累加得到一个和值当校验码,接收方收到数据也做一样的运算与收到的检验码比较,相等就说明正确接收。

如要发{1234567890 }

换成16进制即:7B 10 31 32 33 34 35 36 37 38 39 30 25 7D;31~30是数据,

7B,7D分别为起始和结束符,10为数据长度的BCD码,25是校验码,是31~30的和模100后的BCD码,转成BCD码是为了避免与 起始和结束符重码。

问题六:RS232通讯协议是什么? 参考:wenku.baidu/...6vE3vW

wenku.baidu/...9ltkL_

串口、RS232、口

2007年09月07日 星期五 11:03

什么是串口?

------------------------------------------

串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS232口。同时,串口通信协议也可以用于获取远程集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成: (1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:

(a) 波特率: 这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

(b) 数据位: 这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语 “包”指任何通信的情况。

......>>

问题七:电脑的串口,也就是口或RS232口,请问它用的通信协议是什么? RS232只是一个物理接口 没有规定你所说的协议,只规定了这个接口不同信号的电平范围。具体和其他设备怎么通信,这个协议就要你自己定了,只要设备的硬件能够满足串口电平协议就可以通信,至于执行什么就是你自己来定义了。就像u *** 口一样,规定了数据交换的协议,至于插在这个口上的设备怎么运行,完全有设备和电脑的驱动等协调。

问题八:串口通讯时的数据帧格式和通讯协议有什么区别 串口参数指的是串口通信所需要设置的相应参数,就像手机入网,你用的是电信的号码还是移动的号码,用的是3G网络还是2G网络,虽然是手机自动设置的,但是还是要设置滴

通信协议就是你说的什么语言,你和别人沟通,大家都说普通话,一个说英文,一个说法语肯定不行啦。

485-can-tcp/...nt

问题九:串口是什么 1,什么是串口?

串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

问题十:数字信号和串口信号有什么区别?什么是信号的协议? 20分 数字信号,和模拟信号,有区别。

串口信号,和并口信号,有区别。

数字信号,和串口信号,能有什么区别呢?

什么是总线?按总线传输的信息特征可将总线分为哪几类?各自的功能是什么?

检查几个地方:

1、仪器的设置里GPIB地址是不是26;

2、如果仪器有串联其他GPIB设备的话,检查下其它GPIB设备的地址有没有跟26冲突;

3、LabVIEW的VISA驱动有没有正确安装

GPIB卡报错代码10什么意思

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,从广义上说,任何连接两个以上电子元器件的导线都可以称之为总线。

它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

扩展资料

总线的数据传输流程

1、申请占用总线

需要使用总线的总线主设备(如CPU、DMA控制器等)向总线仲裁机构提出占用总线的请求,经总线仲裁机构判定,若满足响应条件,则发出响应信号,并把下一个总线传送周期的总线控制权授予申请者。

2、寻址

获得总线控制权的总线主设备,通过地址总线发出本次要访问的存储器和I/O端口的地址,经地址译码选中被访问的模块并开始启动数据转换。

3、传送数据

总线主设备也叫主模块,被访问的设备叫从模块。主模块和从模块之间的操作是由主模块控制在两个从模块之间通过数据总线进行数据传送。

4、结束

主、从模块的信息均从总线上撤除,让出总线,以便其它主模块使用。

百度百科—总线

安捷伦34401A使用RS232与电脑通信,只能发送不能接收

显示故障

1.电脑安装的硬件太多,输入输出接口中端已用完。不过这种情况可能性较小,除非你的电脑是多年以前的。

2.驱动程序安装出现错误,误占了其他设备的中断口。

3.主板USB接口出现问题。或USB驱动芯片故障。

什么是零槽控制器

万用表上也要设置成和这个一样,一般默认都是这样的,还有那个GPIB地址设置成31,那么你电脑上程序设置好了接收的话可以收到N多的电压过来,如果你要发送命令,那么GPIB的地址要设置成除31以外的任何数字

网络通信应该属于串口通信还是并口通信?

LXI 联盟为成功测试制定新标准(图)

.ck365.cn 来自:LXI 联盟 Bob Renn 时间:2006-5-28

LXI 融合了测试和测量行业近几年来的多项成果:第一是明确了从以T&M 为中心的专有技术转向计算机行业技术,在测试应用中越来越多地用Ethernet、PC 和 PC 标准软件。Ethernet 在测试和测量用户中变得日益流行,因为它成本低、适应性好、有高带宽的 LAN接口,以及越来越强大的发现和网络管理能力;第二是IEEE 1588 的发布,它把确定性的定时同步引入 LAN,电信和工业自动化行业已普遍接纳这一标准,IEEE 1588 的纳秒级定时能力也能很好适应 T&M 应用的要求;第三是用户已认可网络接口的价值,目前,网络接口已非常流行,用户可以使用该接口访问仪器和应用信息,并与世界各地的同事共享仪器屏幕。

确定实际需要

在LXI发布前,创建者会见了许多系统集成者和使用者,听取他们对当前所提品的褒贬意见,结果并不令人惊讶。系统集成者和测试用户明确表示他们正在寻求更简单的系统集成方法和更低的总体成本。他们喜欢卡箱式仪器的尺寸、方便和整洁,但也需要台式仪器的多样性和高性能。人们购买 PXI 的主要理由是体积小巧和便于集成;更换插卡非常简单,只需拔出旧卡插入新卡,并且没有电缆和复杂的连接。这些用户还希望有多种高速触发。大多数卡箱式仪器用户不喜欢体积较大且价格昂贵的机箱,他们也不喜欢落后和价格贵的零槽控制器,最后,他们还发现卡箱式仪器的查错能力非常有限。

系统集成者认为台式仪器易于使用,性能高、价格低、有非常好的适应性。台式仪器的特点包括对用户友好的界面,通过在系统内的分布式处理把传送大数据流的需要减到最少。但系统集成者也指出台式仪器体积大,有过多超出需要的功能,仪器间需要杂乱的电缆连接。

测试系统开发者则需要更为简单的集成方法。他们的理想是拥有开放的系统,可使用基于产品的软件连接到像 Excel 和浏览器这类流行的应用软件和报告工具,因此易于设置和查错。他们希望在不知道硬件的制造商的情况下,混用不同厂商的仪器,他们还希望用低价的PC行业IO,而不是昂贵的T&M 接口,如 GPIB 和 MXI。

基于LAN的仪器和模块已经上市。所有用户都表示欢迎,许多人更表示盼望已久,整个反应是非常积极的。

确定方向

LXI 联盟的创建者也考虑了许多计算机行业的 IO,特别是 LAN,提供开放的接口,凝聚着数千位工程师在 Ethernet 技术上的创新。并且每天在 Ethernet上工作的工程师数量远远超过了整个T&M 行业的工程师。Ethernet可以说是到处存在,与 T&M 中的MXI 和 GPIB 相比,物理连接的费用要低得多。Ethernet允许使用多种通信媒介 —— 同轴电缆、Cat-5、光纤和无线 —— 它快速并独立于操作系统,并且是对称的 —— 没有 USB 中的主从工作模式。T&M 行业的最大需要是稳定性。Ethernet 有与GPIB 同样长的历史,但速度已从最初使用的年代提高了三个数量级,并且没有减缓的迹象。Ethernet于 1985年被接纳为IEEE 802.3,实践表明它在过去 20 余年是稳定的,并且还会延续多年。Ethernet 为T&M 工程师提供所需要的稳定性;相比其他卡箱式系统,Ethernet还具有价廉、性能稳定、普遍存在、易于使用的优点。

图1 测量总线发展历程

定义 LXI

LXI 基本上是用 LAN代替 GPIB 和 MXI。只需用CAT-5 替代 GPIB 和 MXI 电缆,就能实现更低的价格和更高的方便性,并能充分利用 LAN 的种种利益。在过去 20 年中,Ethernet 所扩展的能力已远超T&M 接口,如 GPIB 和 MXI。Ethernet 从连接 PC 和打印机的点对点技术发展到使用DHCP 寻址的强大对等技术,网络管理能力和各种诊断全都免费提供。LXI 联盟为 T&M 行业详尽论述了所有Ethernet 工程师取得的成果,而不是建立新的 IO。LXI 联盟标准实质上是 LAN在测试和测量中实现的最好实践。

LXI 标准将保证所有符合LXI 的设备能在同一网络中平等共存,并独立于厂商。LXI 规则和建议要求所有 LXI 设备支持 IEEE 802.3 和 TCP/IP,提供易于使用的一致性用户体验。例如由于大多数网络中有 DHCP 服务器,因此 LXI 不需要繁琐和容易出错的手动IP 地址分配(当然,如果用户需要或要求,也支持静态 IP 寻址)。同样,通过定义对等消息、触发和脚本能力,LXI 为系统集成者和测试开发者提供新的体系结构选择,因此可以不需要传统控制器,以及无效的仪器—控制器流量。与许多基于控制器的系统相比,LXI 的脚本处理仪器运行要快得多,程序也简单得多。

用户还告诉联盟成员,他们对卡箱式仪器的昂贵和适应性差感到失望,他们找不到需要的特性和性能,特别是高性能的射频仪器。为在降低售价的同时提高仪器的适应性和性能,LXI 联盟把不必要的机械装置减到最少,允许厂商利用在某种结构形式上的研发投资转到另一种结构形式。测试和测量行业每年在研发上的投资达到数亿美元 —— LXI 迈出的这一步将使投资能以这种方法转到模块化的系统部件上。卡箱式系统在结构上始终受到严格的约束,从而迫使厂商专门研制各种插卡,而不能借用同类较大台式仪器的电路板、组件和技术,LXI 免除了这一限制。

每一 LXI 设备必须支持提供主机操作和控制网页的 HTTP 服务器,它可在任何符合 WC-3 的浏览器上工作。因为模块化仪器没有前面板或显示,所以一个严格定义的网络接口对于系统就绪的 LXI 设备是非常重要的。由于除提供强大的用户接口外还允许扩展的诊断和应用信息,因此联盟成员报告网络接口在客户和系统集成者中非常流行。有了网络接口,资产管理就因网络能查询仪器或模块的固件版本和校准日期而得到简化。最后一点是网络接口使工程师能与其他地点的同事协同工作。

LXI 设备的一个特点是有一致性的 API,这对于需要集成来自多厂商设备的系统开发工程师是很有帮助的。从单一“语法”编写整个测试程序将大大简化大多数测试系统的编程工作量。LXI 程序接口支持 IVI 基金会的工作,该基金会保证遵从健全的编程实践,并把限制减到最少。绝大多数系统开发者对IVI 接口是非常熟悉的。当然,公司也可按特定的市场需要,自行决定是否包括任何其他驱动程序或 API。

需要提出一个有关 IVI 的问题— 为什么不引入over-the-wire协议,简单的C 脚本或 WebServices?由于简单的脚本驱动程序有某些要求,IVI 为保证兼容性,需要确保驱动程序不与竞争,也没有彼此干扰。

ebServices 是有吸引力的,并且相信在适当时候会转向它。而当前,我们认为包括需求在内,它还不够成熟和稳定。

触发和同步

LXI 规范的一项重要特点是公共触发定义。一个 LXI 设备能在 LAN上向一个或多个其他 LXI 设备发送触发,它提供的同步能力类似触发,但没有导线。LXI 规范定义统一的触发模型,通过允许动作由若干不同触发之一初始化而增加 LAN 触发的可用性,同时也减少了集成的工作量。当然,在把这一统一触发模型与上面讲述的嵌入脚本能力和对等能力结合时,功能则变得更为强大。对于需要传统触发线低抖动特性的应用,LXI 定义了一个公共硬件触发总线触发,以简化系统集成者的任务。触发总线是一个 25 针 100MHz 的差分 LVDS 接口。它有可独立分配的 8个通道能构成星形或菊花链配置。触发总线规定了基本要求,根据特定应用或市场要求,模块上可以有各种其他连接器。

最后, LXI 规范最重要的特性之一是 IEEE 1588 同步。IEEE 1588 允许 LAN 上的不同装置自动和透明地把它们的系统时钟与高精度时钟同步;100ns 精度是很普通的,在实验室还可达到 10ns 以上的精度。使用IEEE 1588同步不需要任何使用者的干预。在把 IEEE 1588 定义为同步时钟标准时,它并未说明如何使用已被同步的时钟。LXI 标准利用它基于 LAN 和基于时间的触发特性解决了这一问题,它规定如何把同步定时施加到实际测试和测量应用。通过 LXI,IEEE 1588 提供作为回传并已被 LAN丢失的确定性定时。它也允许测试系统中的不同装置自主地运行复杂的序列,而不需要系统控制器的干预。在实用中还允许为简化同步问题给数据贴附时戳,高通道数和分布式系统特别需要这一能力。它还允许在 LAN 端口通过软件的确定性触发,以简化线缆和仪器的升级。

三类仪器

LXI 定义了三种基本设备类型,它们的差别主要是触发能力。最初设想的LXI是模块化规范,使用 1/2机架宽度和1U 或 2U 高度。通过与系统集成者的讨论,很快变成了远远超过这些模块的一致性的、基于 LAN 的仪器规范。例如全尺寸台式仪器可从 LXI 规范中一致性的 LAN、网络和触发定义获益。同样,许多数据集和传感器应用要求装置远小于任何台式仪器,可利用以太网供电(POE),以及简化至单一 Ethernet 连接的电缆。为适应系统集成者描述的各种真实世界使用模型,LXI 规范规定了三种基本装置类型:A、B、C类。

C类是基本类,是一致性的 LAN 实现,它允许把 LAN接到仪器和模块上,保证它与其他厂商 LXI 产品有良好的兼容性。C类定义了对所有LXI设备都使用的网络接口UI和IVI API。达到这一基准的产品要粘贴 LXI标识。B类包括C类的全部能力,另外再加上 IEEE 1588定时标准。A类除包括B类和C类的全部能力外,还具有硬件触发总线。当然,任何装置都可把更多能力增加到它的基本类型上。

总结

展望测试系统的未来发展,Ethernet 将成为一个主角,因此 LXI 也将成为一个主角。行业的实际情况是系统会延续多年,集成者和系统开发者会看到被称为“混合系统”的存在。台式仪器、VXI、LXI、PXI 将共存于系统,它们通常仅是 LAN 上的一个节点。LXI 规范定义了可升级的特性和性能,允许客户在开发和设计验证阶段使用全功能的台式仪器,而在空间受限的制造环境和应用中使用模块化仪器,设计阶段所开发的软件能在整个流程中移植。

基于LAN的系统更容易配置和查错,它使用较简单的电缆,用与对打印机和其他外设相同方式的自动发现和寻址。LXI也利用了Ethernet众多的诊断网管工具,为T&M用户提供前所未有的能力。要了解更详细的情况,请访问LXI网址:.lxistandard.org。

串口通信的基本知识

串口通信的基本概念

1,什么是串口?

2,什么是RS-232?

3,什么是RS-422?

4,什么是RS-485?

5,什么是握手?

1,什么是串口?

串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信协议也可以用于获取远程集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:

a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的样率为4800Hz。通常电话线的波特率为 14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是 GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语 “包”指任何通信的情况。

c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

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

2,什么是RS-232?

RS-232 (ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS- 232串口通信最远距离是50英尺。

DB-9针连接头

-------------

\ 1 2 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计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。

4,什么是RS-485?

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和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 (pin 1)

5,什么是握手?

RS -232通行方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和 Xmodem。

a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。必须的线仍然是三根:Tx, Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使能或者禁止用户使用两个控制字符XON和OXFF。这些字符在通信中由接收方发送,使发送方暂停。

例如:设发送方以高波特率发送数据。在传输中,接收方发现由于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 to Send)。当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。另一组线是DTR(Data Terminal Ready)和DSR(Data Set Ready)。这些现主要用于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控制字符的值,从而导致通信故障。