串口调试要注意什么?串口调试工具有哪些?

1. 何谓串口?

串口几乎为所有计算机的装置通讯协议标准。请别与通用串行总线 (Universal serial bus,USB) 产生混肴。大多数的计算机均配备 2 组 EIA-232 架构的串行端口。串口亦为常见的通讯协议,适用于控制多种仪器设备,并可搭配 EIA-232 通讯端口使用多款 GPIB 兼容的装置。此外,用户可透过数据撷取的串口通讯功能,进而整合远程取样装置。请注意,EIA-232 与 EIA-485/422 亦可为所谓的 RS-232 与 RS-485/422。

串口通讯的概念极为简单。串行端口将同时传送并接收 1 个位 (Bit) 的信息字节 (Byte)。虽然此传输量低于并行通讯作业,却可传输完整的字节;适用于较长距离的通讯作业。以 IEEE 488 规格的平行通讯作业为例,设备之间的接线总长度不得超过 20米(65英尺);任两组装置之间的长度不超过 2米(6.5英尺)。而串口却可达最长 1200米(4000英尺)。

一般情况下,工程师均使用串行传输 ASCII 数据。并透过三种传输线完成通讯作业 - 接地线 (Ground)、传送线 (Transmit)与接收线 (Receive)。由于串口属于异步化,因此串行端口可于其中 1 个信道传送数据,并于另 1 个信道接收数据。其他通道可视情况而进行握手(Handshaking)。重要的串口特性为波特率 (Baud rate)、数据位、停止位 (Stop bit),与奇偶同位 (Parity)。若要沟通两组通讯端口,则必须符合这些参数:

1、波特率 (Baud rate) 为通讯的速度量测作业,显示每秒所传输的位数。举例来说,300 波特率即为每秒达 300个位。工程师所称的频率周期 (Clock cycle) 即为波特率;若协议呼叫信号 (Protocol call) 为 4800 波特率,意即频率为 4800 Hz。亦表示串行端口以 4800 Hz 的速率,进行数据信道的取样。常见的电话线路波特率为 14400、28800,与 33600。波特率当然可以大于上述这些数字,但这些速率将限制设备之间的距离。因此高波特率均用于装置距离相近的通讯作业,常见的即为 GPIB 装置。

2、数据位数 (Data bit),代表传输作业中的实际数据位。当计算机传送信息框架 (Frame) 时,实际数据总数可能不满 8 位。框架的标准数值为 5、7,与 8 位。应根据所传输的信息,选择所需的设定。举例来说,标准 ASCII 可为 0 ~ 127 的数值 (7 位)。延伸的 ASCII 则使用 0 ~ 255 (8 位)。若传输中的数据为标准 ASCII,则各个框架若能传送 7 位数据,即属高效率的通讯作业。1 个框架即为单一字节 (Byte) 的传输,包含开始/停止 (Start/stop) 位、数据位,与奇偶校验 (Parity)。由于所选的通讯协议将影响实际位数,因此可使用“框架 (Frame)”代表所有的范例。

停止位 (Stop bit) 可针对单一框架的通讯作业末端发出信号。常见数值为 1、1.5,与 2 位。由于数据将受到跨信道的频率所影响,而各组装置又具有自己的频率,因此任 2 组装置可能会稍稍落后同步化作业。因此,停止位不仅可指出传输作业末端,并可为计算机频率速度提供发生错误的空间。停止位所占的位数越多,则不同频率的同步化越具弹性;但亦将拖慢传输速度。

3、奇偶校验 (Parity) 为串口通讯作业错误检查的简易形式。奇偶校验具分为 4 种类型 – Even、Odd、Marked,与 Spaced。亦可不使用奇偶校验。针对 Even 与 Odd,串行端口将设定奇偶校验位 (Parity bit,为数据位之后的最后 1 个位) 为 1 个数值,以确认该传输作业具有逻辑高位 (Logic-high) 位的 Even 或 Odd 数。举例来说,若资料为 011,针对 Even 奇偶校验的奇偶校验位则为 0,才能让逻辑高位位的数字为 Even。在奇偶校验为 Odd 的情况下,奇偶校验位「1」将导致「3」的逻辑高位位。Marked 与 Spaced 的奇偶校验将不会实际检查数据位,但会根据 Marked 奇偶校验设定高的奇偶校验位,或根据 Spaced 奇偶校验设定低的奇偶校验位。此将让接收装置了解位的状态,以进一步判定噪声是否使数据发生中断,或传送与接收装置是否尚未同步化。

2. EIA-232 概述

EIA-232 为 IBM 兼容计算机架构的串口链接功能,可用以连接计算机与传感器/调制解调器,或用于仪器控制等许多功能。EIA-232 硬件可达最长 15 公尺的通讯距离。EIA-232 限用于计算机串行端口与装置之间的点对点连结。因此,计算机往往需要额外的 EIA-232 串行端口。标准计算机 EIA-232 串行端口与许多串行接口的制造商,将试图平衡 Win32 API 于串口通讯函数调用中的功能。Win32 API 原来是设计用于调制解调器通讯作业,且并未建置完整的 EIA-232 协议。基于此项限制,Win32 API 并无法沟通某些装置。

NI 则提供多款平台的 EIA-232 串行接口,包含 PCI、USB、PCMCIA、ExpressCard、PXI,与以太网络。根据所使用的平台,NI 串行接口卡提供 1、2、4、8,与 16 埠的版本。此外,NI EIA-232 串行接口卡更提升了某些功能,如最高 1 Mb/s 的高速波特率、透过 DMA 传输方式而降低 CPU 使用率、可选购的 2000 V 埠对埠隔离,与可设定的非标准波特率。所有的 NI 串行接口卡均包含 NI-Serial 驱动程序,可建置完整的 EIA-232 协议,并针对应用开发作业提供简单易用的高阶功能。NI-Serial 驱动程序可弥补 Win32 API 的缺点,亦即任何 EIA-232 架构的装置,均可搭配使用 NI 串口装置。

3. EIA-422 概述

EIA-422 为苹果公司麦金塔 (Mac) 计算机的串口链接接口。与 EIA-232 所使用的非平衡式信号 (Unbalanced signal) 相较,EIA-422 使用截然不同的电子信号。EIA-422 的差动传输 (Differential transmission),就是透过 2 组线路以各自进行信号的传输与接收,因此其抗扰性与传输距离的表现均优于 EIA-232。在工业级应用中,抗扰性 (Noise immunity) 与传输距离可享有较佳的优势。

NI 则提供多款平台的 EIA-485/422 串行接口卡,包含 PCI、USB、PCMCIA、ExpressCard、PXI,与以太网络。根据所使用的平台,NI 串行接口卡具有 1、2、4,与 8 埠的版本。此外,NI EIA-485/422 串行接口卡更新增了多项功能,如最高 3 Mb/s 的高速波特率、透过 DMA 传输方式而降低 CPU 使用率、可选购的 2000 V 埠对埠隔离,与可设定的非标准波特率。所有的 NI 串行接口卡均包含 NI-Serial 驱动程序,可建置完整的 EIA-485/422 协议,并针对应用开发作业提供简单易用的高阶功能。

4. EIA-485 概述

EIA-485 为 EIA-422 的改良版本,从原本的 10 组装置提高至 32 组装置,并定义必要的电子特性参数,于最大负载保持适当的信号电压。透过增强的多端点 (Multidrop) 功能,即可透过单一 EIA-485 串行端口进行装置的网络链接作业。EIA-485 的抗扰性与多端点功能,使其成为工业级应用的串口连结首选,适于将多款分布式装置连接至计算机或其他控制器,以进行于数据搜集、HMI,与其他作业。EIA-485 集 EIA-422 的优点于一身,因此所有的 EIA-422 装置亦可由 EIA-485 进行控制。透过 EIA-485 硬件,串口通讯作业可达最长 1200米(4000英尺)的连接线总长度。

NI 则提供多款平台的 EIA-485/422 串行接口卡,包含 PCI、USB、PCMCIA、ExpressCard、PXI,与以太网络。根据所使用的平台,NI 串行接口卡具有 1、2、4,与 8 埠的版本。此外,NI EIA-485/422 串行接口卡更新增了多项功能,如最高 3 Mb/s 的高速波特率、透过 DMA 传输方式而降低 CPU 使用率、可选购的 2000 V 埠对埠隔离,与可设定的非标准波特率。所有的 NI 串行接口卡均包含 NI-Serial 驱动程序,可建置完整的 EIA-485/422 协议,并针对应用开发作业提供简单易用的高阶功能。

5. NI 串行接口卡接头的输出针脚 (Pinout)

DB-9 Male

DB-25 Male

10-Position Modular Jack

Pin

EIA-232

EIA-485/422

Pin

EIA-232

EIA-485/422

Pin

EIA-232

EIA-485/422

1

DCD

GND

2

TXD

RTS+ (HSO+)

1

No Connect

No Connect

2

RXD

CTS+ (HSI+)

3

RXD

CTS+ (HSI+)

2

RI

TXD-

3

TXD

RTS+ (HSO+)

4

RTS

RTS- (HSO-)

3

CTS

TXD+

4

DTR

RXD+

5

CTS

TXD+

4

RTS

RTS- (HSO-)

5

GND

RXD-

6

DSR

CTS- (HSI-)

5

DSR

CTS- (HSI-)

6

DSR

CTS- (HSI-)

7

GND

RXD-

6

GND

RXD-

7

RTS

RTS- (HSO-)

8

DCD

GND

7

DTR

RXD+

8

CTS

TXD+

20

DTR

RXD+

8

TXD

RTS+ (HSO+)

9

RI

TXD-

22

RI

TXD-

9

RXD

CTS+ (HSI+)

-

-

-

-

-

-

10

DCD

GND

6. 何谓握手 (Handshaking)?

此 EIA-232 通讯作业,可进行 3 种线路的简易链接作业 - Tx、Rx,与接地。然而,针对所要传输的数据,其2端均需以相同波特率进行数据的频率化 (Clocking)。虽然此方式适用于大多数的应用,此功能却受限于系统对问题的反应速度,如发生过载 (Overloaded) 的接收器。而串口握手 (Handshaking) 可协助解决相关问题。3 种最常见的 EIA-232 握手形式,即为软件握手、硬件握手,与 Xmodem。

软件握手
此方式是将数据字节作为控制字符 (Control character),近似于 GPIB 使用命令字符串 (Command string) 的方式。由于控制字符可透过传输线路,如正常数据般进行传输,因此亦可整合 Tx、Rx,与接地而成简易的 3 线式集合。透过 SetXMode 函式,即可启用或停用 2 个控制字符:XON 与 XOFF。数据接收器将传送这些字符,以于通讯期间暂停传送器。

此方式的最大缺点,也是最重要的概念:数据值将不再使用 Decimal 17 与 19。由于这些数值为无字符 (Noncharacter) 数值,因此往往不会影响 ASCII 的传输作业;然而,若以二进制法传输数据,则极可能将这些数值作为数据进行传输,导致传输作业发生错误。

硬件握手
此方式将使用实际的硬件线路。如同 Tx 与 Rx 线路一般,RTS/CTS 与 DTR/DSR 线路可搭配使用。若其中 1 个线路为输出,则另 1 个线路即为输入。

第一种线路集为 RTS (Request to Send) 与 CTS (Clear to Send)。当接收器可接收资料时,则将插入 (Assert) RTS 线路,表示接收器已可接收资料。接着将由 CTS 输入线路的传送器读取此讯息,表示已可传送数据。

第二种线路集为 DTR (Data Terminal Ready) 与 DSR (Data Set Ready)。由于此种线路可让串行端口与调制解调器之间通讯现有状态,因此主要用于调制解调器的通讯作业。举例来说,当调制解调器可为计算机传送数据时,将先中断 DTR 线路,代表目前是透过电话线进行链接作业。接着 DSR 线路将读取该讯息,计算机则开始传送数据。在一般情况下,DTR/DSR 线路是用以表示系统可进行通讯作业,而 RTS/CTS 线路则用于独立的数据框架。

在 LabWindows/CVI 中,SetCTSMode 函式将启用或停用硬件握手。若已启用 CTS 模式,则 LabWindows/CVI 将依循下列规则:

计算机传送数据时:
EIA-232 函式库必须于传送数据之前,侦测该 CTS 线路为高 (High) 状态。

计算机接收数据时:
若通讯端口为开启状态,且输入队列具有容纳数据的空间,则函式库将引发 (Raise) RTS 与 DTR。
若通讯端口输入队列已达 90%,则函式库将降低 RTS 并提升 DTR。
若通讯端口输入队列近乎空白,则函式库将引发 RTS 并保持 DTR 为高状态。
若通讯端口为关闭,则函式库将降低 RTS 与 DTR。

XModem 握手
虽然此种协议已普遍用于调制解调器通讯作业,若其他装置均可使用此种协议,仍可直接于装置之间使用 XModem 协议。在 LabWindows/CVI 中,使用者可选择是否隐藏实际的 XModem 建置。只要计算机透过 XModem 协议连接其他装置,即可使用 LabWindows/CVI 的 XModem 函式,以传送档案至其他地址 (Site)。该函式为 XModemConfig、XModemSend,与 XModemReceive。

根据下列参数使用协议:start_of_data、end_of_trans、neg_ack、ack、wait_delay、start_delay、max_tries,与 packet_size。传输数据的 2 边必须同时认可这些参数,而 XModem 则提供相关标准定义。然而,使用者可透过 LabWindows/CVI 中的 XModemConfig 函式修改这些参数,以符合任何需求。在接收器 (Receiver) 传送 neg_ack 字符之后,即可于 XModem 中使用这些参数。此字符将告诉传送器 (Sender) 已准备好接收资料。于每次传输尝试之间,接收器均将使用 start_delay 时间,直到满足 max_tries 或接收到传送器的 start_of_data。若满足 max_tries,则接收器将提醒使用者目前无法沟通传送器。若的确接收到传送器的 start_of_data,则接收器将读取后续的信息封包。此封包具有封包号码、可检查错误的封包补充码、packet_size 字节的实际数据封包,与用于更多错误检查的数据总和检查码 (Checksum)。在读取数据之后,接收器将呼叫 wait_delay,并于稍后传送认可字符 (Ack) 回传送器。若传送器未接受到 ack,则将重新传送 max_tries 数据封包,直到接收 ack 为止。若传送器一直未接收 ack,则将通知使用者传送档案失败。

由于传送器必须以 packet_size 字节的封包传送数据,因此若没有足够数据填满最后的封包,则传送器将使用 ASCII NULL (0) 字节填满数据封包。如此将使接收档案大于源文件。由于 XModem 传输作业的封包号码,极可能增加 XON/OFF 控制字符而造成通讯中断,因此 XModem 协议并不适合搭配使用 XON/XOFF。

(0)

相关推荐

  • 一文了解RS232技术介绍

    ·串行通信接口标准经过使用和发展,目前已经有几种,都是在RS-232标准的基础上经过改进而形成的.所以,以RS-232C为主来讨论.RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起 ...

  • 什么是RS

    串行通信的基础知识 媒体转换器 编程方法 开/闭端口 数据发送 数据接收 Contents 什么是串行通信? 串行通信的规格 信号配置与连接器 连接方法 半双工通信与全双工通信 非同步通信与同步通信 ...

  • 串行通信(UART)

    串行通信(UART)admin  17/07/10 说明 嵌入式电子产品都是由一些电路(处理器或其他集成电路)互连形成的. 为了在这些电路之间交换信息,他们必须遵循一个共同的通信协议.目前已经有数百种 ...

  • 【精品博文】嵌入式开发中串口配置知多少

    串口是计算机一种常用的接口,常用的串口有RS-232-C接口.它是于1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准,它的全称是&qu ...

  • KT404C如何使用串口调试的详细说明_V3

    串口测试的说明一.简介串口是一个非常标准的接口,称之为UART或者USART,这两个东西可以暂且认为是一个东西至于如何测试,这其实是一个非常基础的问题.如果您不明白,很抱歉,这只能说明您基础知识薄弱, ...

  • 怎么用串口调试软件控制台达变频器

    首先我们要准备好USB转RS-232的串口线和RS-232转RS485的模块,或者USB直接转RS485也行.然后还要准备一个RJ11的水晶头,因为台达这款变频器的通讯口为RJ11. 照片中红色的线接 ...

  • 【学习分享】Mdbed BLE Sensors Tag串口调试过程

    采用MAX232电平转化芯片,按照图2.1.1进行制作USB转TTL接口.当然,需要一条USB转串口的连接线.制作完成后其实物图如图2.1.2所示.制作完成后进行电路连接.注意在连接时VCC,GND ...

  • 并口与串口的区别及常见串口类型

    并行接口 并行接口,称为并口.并行端口使用25针D型连接头.所谓"并行"是指通过并行线路同时传输8位数据,从而大大提高了数据传输速度,但是并行传输线路的长度受到限制,因为长度增加, ...

  • 【实例】如何用串口软件调试变频器?

    每一个做工控的都必须要会利用串口调试软件来和我们的外围设备来做通讯测试.今天我们就来学习怎么用串口调试软件控制台达的这款变频器.废话不多说,直接进入正题. 首先我们要准备好USB转RS-232的串口线 ...

  • 无线串口NRF24L01的使用与调试

    毕业设计中,需要做一个无线遥控的小车,无线使用NRF24L01转串口模块. 上位机界面设计完成如图: 上位机的作用仅仅是每个按键发送不同的字符串而已. 在调试过程中使用过不同的串口调试助手. 但是使用 ...

  • 替代串口打印,快来围观嵌入式中另一种打印调试的方法

    一.前言 在我们的嵌入式开发中,常常把printf重定向到MCU的串口外设,再配合上位机界面软件,通过打印调试信息的方式来调试我们的嵌入式软件. 此处,我们介绍另一种打印调试的方法--SEGGER 的 ...

  • 如何用串口软件调试变频器?

    每一个做工控的都必须要会利用串口调试软件来和我们的外围设备来做通讯测试.今天我们就来学习怎么用串口调试软件控制台达的这款变频器.废话不多说,直接进入正题. 首先我们要准备好USB转RS-232的串口线 ...

  • 关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚

    发现更多电气知识 电气达人 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 下面先讲串口通信的一些基本概念,术语.如果对串口通信比较熟悉的,就当复习,如果哪里讲的不到位,欢迎及时指出. 这里 ...