精华内容
下载资源
问答
  • 2019-12-12 16:21:12

    问题

    描述

    最近开始玩 Arduino, 在设置数字引脚为输入端时,发现了一个现象,当引脚没有用杜邦线连接到下拉电阻或上拉电阻时,串口的信号就会发生震荡,很不稳定。引脚用杜邦线接出来但没有连接也是一样的效果。

    这个现象与我正常理解的不太一样,我理解的是在不接地或者没有信号时,引脚的串口信号会保持一个稳定的状态(保持高电压或者低电压),但事实是,信号会随机变化。

    但是由于引脚信号在使用过程中需要变化,作为控制单元,在受到外部信号的影响时,由低变到高或者由高变到低。因此不能简单地只接下拉电阻或是只接上拉电阻。

    接线

    Arduino 板的说明图如下:
    Arduino 板的说明图

    图片来自 W3Cschool :Arduino 板的说明

    我连接的引脚口是图中15号数字I/O中的 2 号引脚,简化后的代码如下:

    const int pinLight = 2;
    
    void setup() {
      // put your setup code here, to run once:
      pinMode(pinLight, INPUT);
      Serial.begin(9600);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      int read_light = digitalRead(pinLight);
      if (read_light == HIGH) {
        Serial.println("3");
      }
      else if (read_light == LOW) {
        Serial.println("4");
      }
    }
    

    最后利用串口监视器监视的效果就是 34 在震荡。

    解决过程

    主要查了以下几个资料:

    1. ARDUINO UNO数字引脚端口上电后不稳定状态。

    最初找到的就是这篇博客,上面说: 引脚作为数字输入,但是不连接任何的拉电阻,处于悬空转态,容易受电子噪声干扰而随机的改变其电平状态。

    不过,个人尝试了一下,发现不是噪声这么简单,信号的震荡频率很大,有时会一直保持高电位;有时又会一直保持低电位。基本上一直不会稳定下来。

    1. Arduino 入门教程

    这个教程里说: 如果你将数字引脚悬空(没接下拉电阻),LED可能会不规律的闪烁。这是因为此时Arduino引脚的输入一直在”漂移”。就是说,程序不能判定它是高电压还是低电压,故而只会随机的返回HIGH或LOW

    我觉得这个说得比较对,不只是噪声的问题。

    后来又问了一下学长,得到的解释是,在悬空时,会输出三个0连着三个1,实际中并不是这么有规律的,但确实见到过三个0连着三个1的情况,网上没有查到具体细节。

    最后的解决方案

    唯一的解决方案就是让串口接触稳定,就算是更换输入信号,也要很快完成改变,尽量不能悬空。

    我使用的是 欧姆龙(OMRON)MY2NJ继电器,按照继电器上的连线情况,在另一端的连线处,增加一根连接 Arduino 上接地的线。这样,无论开关是打开或是闭合,都可以接一个稳定的信号源了。

    更多相关内容
  • 查看串口 信号时序 ,支持多个通道 ,适合 嵌入式开发以及相关智能硬件通信人员 使用
  • 个人demo,需要私信
  • 串口、并口接口定义  并行口与串行口的区别是交换信息的方式不同,并行口能同时通过8条数据线传输信息,一次传输一个字节;而串行口只能用1条线传输一位数据,每次传输一个字节的一位。并行口由于同时传输更多的...

    •串口、并口接口定义

      并行口与串行口的区别是交换信息的方式不同,并行口能同时通过8条数据线传输信息,一次传输一个字节;而串行口只能用1条线传输一位数据,每次传输一个字节的一位。并行口由于同时传输更多的信息,速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。

    1、25针并行口插口的针脚功能:

      针脚 功能        针脚 功能

       1 选通 (STROBE低电平) 10 确认 (ACKNLG低电平)

       2 数据位0 (DATAO) 11 忙 (BUSY)

       3 数据位1 (DATA1) 12 却纸 (PE)

       4 数据位2 (DATA2) 13 选择 (SLCT)

       5 数据位3 (DATA3) 14 自动换行 (AUTOFEED低电平)

       6 数据位4 (DATA4) 15 错误观点(ERROR低电平)

       7 数据位5 (DATA5) 16 初始化成(INIT低电平)

       8 数据位6 (DATA6) 17 选择输入 (SLCTIN低电平)

       9 数据位7 (DATA7) 18-25 地线路(GND)

    2.串行口的典型代表是RS-232C及其兼容插口,有9针和25针两类。

    25针串行口具有20mA电流环接口功能,用9、11、18、25针来实现。其针脚功能如下:

     针脚 功能     针脚 功能

       1 未用

       2 发出数据(TXD) 11 数据发送(一)

       3 接受数据(RXD) 12-17 未用

       4 请求发送(RTS) 18 数据接收( )

       5 清除发送(CTS) 19 未用

       6 数据准备好(DSR) 20 数据终端准备好比(DTR)

       7 信号地线路 (SG) 21 未用

       8 载波检测 (DCD) 22 振铃指示精神 (RI)

       9 发送返回( ) 23-24 未用

       10 未用 25 接收返回(一)

    9针串行口的针脚功能:

       针脚 功能 针脚 功能

       1 载波检测(DCD) 6 数据准备好(DSR)

       2 接受数据(RXD) 7 请求发送(RTS)

       3 发出数据(TXD) 8 清除发送(CTS)

       4 数据终端准备好(DTR) 9 振铃指示(RI)

       5 信号地线(SG)

    • 串口通信基本原理及接线方法

    目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。

    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串口通信接线方法(三线制)

    首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
    · 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连;
    · 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
    上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。

    3.串口调试中要注意的几点:

    串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
    单工、半双工和全双工的定义
    如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。
    如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。
    如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。
    电话线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。
    奇偶校验
    串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:
    0100,0101=45H
    D7 D0
    由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。
    最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。
    奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如:
    1 0110,0101
    0 0110,0001
    偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:
    1 0100,0101
    0 0100,0001
    奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
    有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。

    串口通讯流控制

    我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。

    1.流控制在串行通讯中的作用

    这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。

    2.硬件流控制

    硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。
    硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来自计算机的数据流。这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。RTS则用来标明接收设备有没有准备好接收数据。
    常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。我们在此不再详述。由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。

    3.软件流控制

    由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过XON/XOFF来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的17或Control-Q),发送端收到XON字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。
    应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有。

    PS:

      DB9只有9根线,遵循RS232标准。定义如下:
      DTR,DSR——DTE设备准备好/DCE设备准备好。主流控信号。
      RTS,CTS——请求发送/清除发送。用于半双工时,收发切换。属于辅助流控信号。半双工的意思是说,发的时候不收,收的时候不发。那么怎么区分收发呢?缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效RTS,表示DTE希望向DCE发送,一般DCE不能马上转换收发状态,DTE就通过监测CTS是否有效来判断可否发送,这样避免了DTE在DCE未准备好时发送所导致的数据丢失。全双工时,这两个信号一直有效即可。
      随着计算机的日益普及,很多非RS232的串口也要接入PC机,如果为每一种新出现的串口都增加一个新的I/O口显然不现实,因为PC后面板位置有限,因此,将RS232串口和非RS232串口都通过RS232口接入是最佳方案。UART的U(通用)指的就是这个意思。早期ROM BIOS和DOS里的通信软件都是为RS232设计的,在没有检测到DCD有效前不会发送数据,因此,就连发送一个字符这样朴素的应用也要给出DCD、DTR、DSR等控制信号。因此,串口接头上要将一些控制线短接,或者干脆绕过系统软件自己写通信程序。
      到此,UART的涵义就总结为:通用的 异步 (串行) I/O口。
      就在UART冠以通用二字,准备一统江湖的时候,制造商们不满于它的速度、体积和灵活性(软件可配置),推出了USB和 1394串口。目前,笔记本上的UART串口有被取消的趋势,因而有网友发出了“没有串口,吾谁与归”的慨叹,古今多少事,都付笑谈中,USB取代UART是后话,暂且不表。
      话说自从贺氏(Hayes)公司推出了聪明猫(SmartModem),他们制定的MODEM接口就成了业界标准,自此以后,所有公司制造的兼容猫都符合贺氏标准(连AT指令也兼容)。
      细观贺氏制定的MODEM串口,与RS232标准大不相同。DTR在整个通信过程中一直保持有效,DSR在MODEM上电后/可以拨号前有效(取决于软件对DSR的理解),在通信过程的任意时刻,只要DTR/DSR无效,通信过程立即终止。在某种意义上,这也可以算是流控,但肯定不是RS232所指的那种主流控。如果拘泥于RS232,你是不会理解DTR和DSR的用途的。
    贺氏不但改了DTR和DSR,竟然连RTS和CTS的涵义也重新定义了。因此,RTS和CTS已经不具有最开始的意义了。从字面理解RTS和CTS,是用于半双工通信的,当DTE想从收模式改为发模式时,就有效RTS请求发送,DCE收到RTS请求后不能立即完成转换,需要一段时间,然后有效CTS通知DTE:DCE已经转到发模式,DTE可以开始发送了。在全双工时,RTS和CTS都缺省置为有效即可。然而,在贺氏的MODEM串口定义中,RTS和CTS用于硬件流控,和什么全双工/半双工一点关系也没有。 注意,硬件流控是靠软件实现的,之所以强调“硬件”二字,仅仅是因为硬件流控提供了用于流量情况指示的硬件连线,并不是说,你只要把线连上,硬件就能自己流控。如果软件不支持,光连上RTS和CTS是没有用的。
      RTS和CTS硬件流控的软件算法如下:(RTS有效表示PC机可以收,CTS有效表示MODEM可以收,这两个信号互相独立,分别指示一个方向的流量情况。)
      PC端处理:
       发.   当发现(不一定及时发现) CTS (-3v to -15v)无效时,停止发送,
           当发现(不一定及时发现) CTS (3v to 15v)有效时,恢复发送;
       收.    当接收buffers中的bytes当接收buffers中的bytes>N 时,给 RTS 无效信号(-3v to -15v);
      MODEM端处理:
      
      同上,但RTS与CTS交换。

      在RS232中本来CTS 与RTS 有明确的意义,但自从贺氏(HAYES ) 推出了聪明猫(SmartModem)后就有点混淆了。在RS232中RTS 与CTS 是用来半双工模式下的方向切换;HAYES Modem中的RTS ,CTS 是用来进 行硬件流控的。通常UART的RTC、CTS 的含义指后者,即用来做硬流控的。

      硬流控的RTS 、CTS :RTS (Require To Send,发送请求)为输出信号,用于指示本设备准备好可接收;CTS(Clear To Send,发送清除)为输入信号,有效时停止发送。假定A、B两设备通信,A设备的RTS 连接B设备的CTS ;A设备的CTS 连接B设备 的RTS 。 前一路信号控制B设备的发送,后一路信号控制A设备的发送。对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS 信号(意思 通知B设备停止发送),B设备通过CTS 检测到该信号,停止发送;一段时间后A设备接收缓冲有了空余,发出RTS 信号,指示B设备开始发送数据。A设备发(B设备接收) 类似。上述功能也能在数据流中插入Xoff(特殊字符)和Xon(另一个特殊字符)信号来实现。A设备一旦接收到B设备发送过来的Xoff,立刻停止发 送;反之,如接收到B设备发送过来的Xon,则恢复发送数据给B设备。同理,B设备也类似,从而实现收发双方的速度匹配。

      半双工的方向切换:RS232中使用DTR(Date Terminal Ready,数据终端准备)与DSR(Data Set Ready ,数据设备准备好)进行主流控,类似上述的RTS 与CTS 。对半双工的通信的DTE(Date Terminal Equipment,数据终端设备)与DCE(Data circuit Equipment )来说,默认的方向是DTE接收,DCE发送。如果DTE要发送数据,必须发出RTS 信号,请求发送数据。DCE收到后如果 空闲则发出CTS 回 应RTS 信 号,表示响应请求,这样通信方向就变为DTE->TCE,同时RTS 与CTS 信号必须一直保持。从这里可以看出,CTS ,TRS虽 然也有点流控的意思(如CTS 没有发出,DTE也不能发送数据),但主要是用来进行方向切换的。


    #如果UART只有RX、TX两个信号,要流控的话只能是软流控;如果有RX,TX,CTS ,RTS 四个信号,则多半是支持硬流控的UART;如果有 RX,TX,CTS ,RTS ,DTR,DSR 六个信号的话,RS232标准的可能性比较大。


    顺便提一下:

    DCD( Data Carrier Detect, 数据载波检测):DCE向DTE指示,线路上检测到载波。

    RI(Ring Indicator,振铃指示):DCE向DTE指示,有呼叫接入。

    • 串口通信基本接线方法

    1.串口通信基本接线方法,目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时( <12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。

    2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。

    3.串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事; 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏

    • 制作RS232串口连接线

    9针串口功能一览表
       针脚 功能1 载波检测 (DCD) 2 接收数据 (RXD) 3 发送数据(TXD)
       4 数据终端准备好 (DTR) 5 信号地 (GND) 6 数据准备好 (DSR)
       7 发送请求 (RTS) 8 发送清除 (CTS) 9 振铃指示 (RI)

       串口联机线的连接方法
       串口联机线主要用于直接把两台电脑的com口连接。比较早一点的AT架构的电脑的串口有为9针,和25针两种,现在的ATX架构的电脑两个串口全部是9针。于是联机线就分为3种(9针对9针串口联机线,9针对25针串口联机线,25针对25针串口联机线)这些直接电缆连接线可以互换的连线方法如下表:

       串口连机线一览
       9针对9针串口连接
       9针母头 9针母头
       2 —— 3 3 —— 2 4 —— 6 5 —— 5 6 —— 4 7 —— 8 8 —— 7

    如果需要做其他用途,连接 针脚 功能 2 接收数据 (RXD) 3 发送数据(TXD)5 信号地 (GND)
    这里写图片描述

    这里写图片描述

    展开全文
  • 基于串口的脉冲信号发生器 1):利用串口产生一个频率及占空比可调的连续脉冲信号 。 2):利用示波器观察输出。 3):前面板要显示当前信号的波形及相关信息。 仅能作为大学生的课程作业!!! 打开需要LabVIEW...
  • 串行SSI信号转换器介绍-.pdf 介绍了关于串行SSI信号转换器介绍-的详细说明,提供协议转换器的技术资料的下载。
  • 工业控制中把USB扫描枪的键盘信号转成串口信号输出给PLC
  • 一文读懂串口及各种电平信号含义

    千次阅读 2022-04-21 16:37:16
    首先要明确,串口、COM 口是指硬件接口形式,而 TTL、RS-232、RS-485 是指电平信号 1.1 UART 接口 通用异步收发器(UniversalAsynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成...

    0 背景

    做嵌入式开发或硬件开发的同学,一定常听到 RS232、RS485、TTL 等概念,如果对这些概念不清楚,使用起来就会有问题,本文对这些概念的含义进行介绍(看下图有没有绕晕)

    1 串口

    首先要明确,串口、COM 口是指硬件接口形式,而 TTL、RS-232、RS-485 是指电平信号

    1.1 UART 接口

    通用异步收发器(UniversalAsynchronous Receiver/Transmitter),UART 是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC 里都会有UART 模块。

    在这里插入图片描述

    UART有 4 个pin(VCC、GND、RX、TX),

    UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。其中各位的意义如下:

    • 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
    • 资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
    • 奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
    • 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
    • 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

    1.2 COM 口

    COM 口即串行通讯端口,简称串口,一般常见 D 型 9 针插头,这种接口的协议只有两种:RS-232 和 RS-485。不会是 TTL 电平的。一般只接出 RXD、TXD,外加 GND。

    在这里插入图片描述

    1.3 USB 口

    通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括"USB转串口"的模块。(USB转串口模块,就是USB接口的UART模块)

    2 TTL

    TTL电平:全双工(逻辑1:2.4V ~ 5V,逻辑0:0V ~ 0.5V)

    连接方式

    电平表示

    3 RS232

    是电子工业协会制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V ~ +15V对应0,-3V ~ -15V对应1。RS232的逻辑电平和TTL不一样但是协议一样。RS-232适合本地设备之间的通信,传输距离一般不超过20m。RS-232只允许一对一通信。

    RS-232电平:全双工(逻辑1:-15V ~ -3V,逻辑0:+3V ~ +15V)

    连线图

    电平表示

    4 RS485

    RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。两线压差为-(2~6)V表示0,两线压差为+(2~6)V表示1。RS-485的传输距离为几十米到上千米。RS-485接口在总线上是允许连接多达128个收发器。

    RS-485:半双工、(逻辑1:+2V ~ +6V,逻辑0:-6V ~ -2V)这里的电平指AB两线间的电压差。

    连线图

    电平表示

    5 modbus

    modbus是一个应用层的协议,他是构建在串口,网线等底层传输基础上的。Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。

    在ModBus系统中有2种传输模式可选择,一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备)。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个 Modbus 网络上的所有设备都必须选择相同的传输模式和串口参数。所选的 ASCII 或 RTU 方式仅适用于标准的 Modbus 网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。在其它网络上(像MAP和Modbus Plus)Modbus 消息被转成与串行传输无关的帧。

    6 转化芯片

    6.1 USB 转 TTL

    PL2303、CP2102芯片是USB转TTL串口的芯片,用USB来扩展串口(TTL电平)。USB转TTL串口如下图:

    6.2  TTL 与 RS-232 互转

    MAX232芯片是TTL电平与RS232电平的专用双向转换芯片,可以TTL转RS-232,也可以RS-232转TTL。如下图:

    参考

    串口 、TTL、232、485区别_IOT-SYM的博客-CSDN博客_232 485区别

    串口、COM口、UART口, TTL、RS-232、RS-485区别详解_电平

    展开全文
  • 完整英文电子版 SMPTE ST 292-1:2018 1.5 Gb/s Signal-Data Serial Interface(1.5Gb/s信号-数据串行接口)。该标准为 1.5 Gb/s [标称] 信号/数据串行接口定义了位串行数据结构和同轴电缆接口规范,以传输映射到 1.5 ...
  • 作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上    2.3.1 串口信号定义和接线方法-5针串口-9针串口-全功能串口 1.串口、并口接口定义   并行口与串行口的区别是交换信息的...

      通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上
      

    2.3.1 串口信号定义和接线方法-5针串口-9针串口-全功能串口

    1.串口、并口接口定义

      并行口与串行口的区别是交换信息的方式不同,并行口能同时通过8条数据线传输信息,一次传输一个字节;而串行口只能用1条线传输一位数据,每次传输一个字节的一位。并行口由于同时传输更多的信息,速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。
      

    2.25针并行口插口的针脚功能:

                  表2 3 25针并行口插口的针脚功能
    在这里插入图片描述

    3.串行口的典型代表是RS-232C及其兼容插口,有9针和25针两类。

      25针串行口具有20mA电流环接口功能,用9、11、18、25针来实现。其针脚功能如下:
                    表2 4 25针串行口插口的针脚功能
    在这里插入图片描述

    4.9针串行口的针脚功能

                      表2 5 9针串行口插口的针脚功能
    在这里插入图片描述

    5.串口通信基本原理及接线方法

      目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。表2 6中为DB9和DB25的常用信号脚说明。
                    表2 6 DB9和DB25的常用信号脚说明
    在这里插入图片描述

      RS232C串口通信接线方法(三线制),串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连:同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连;两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)。
      上面分析是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。
    在这里插入图片描述
    在这里插入图片描述

                          图2 32 常用串口电缆
      串口调试中要注意的几点:
      串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

    6.单工、半双工和全双工的定义

      如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。
      电话线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。

    7.奇偶校验

      串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:
    在这里插入图片描述

      由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。
      奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如:

    在这里插入图片描述

      偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:

    在这里插入图片描述
      奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
    有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。

    8.串口通讯流控制

      在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项(尤其在上位机中),这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。
      流控制在串行通讯中的作用
      这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。
      硬件流控制
      硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RTS、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来自计算机的数据流。这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。RTS则用来标明接收设备有没有准备好接收数据。常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。我们在此不再详述。由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。
      软件流控制
      由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过XON/XOFF来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON字符(十进制的17或Control-Q),发送端收到XON字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有。

    9.额外说明:

      UART含义
      随着计算机的日益普及,很多非RS232的串口也要接入PC机,如果为每一种新出现的串口都增加一个新的I/O口显然不现实,因为PC后面板位置有限,因此,将RS232串口和非RS232串口都通过RS232口接入是最佳方案。UART的U(通用)指的就是这个意思。早期ROM BIOS和DOS里的通信软件都是为RS232设计的,在没有检测到DCD有效前不会发送数据,因此,就连发送一个字符这样朴素的应用也要给出DCD、DTR、DSR等控制信号。因此,串口接头上要将一些控制线短接,或者干脆绕过系统软件自己写通信程序。
      到此,UART的涵义就总结为:通用的 异步 (串行) I/O口。就在UART冠以通用二字,准备一统江湖的时候,制造商们不满于它的速度、体积和灵活性(软件可配置),推出了USB和1394串口。目前,笔记本上的UART串口有被取消的趋势,因而有网友发出了“没有串口,吾谁与归”的慨叹,古今多少事,都付笑谈中,USB取代UART是后话,暂且不表。
      话说自从贺氏(Hayes)公司推出了聪明猫(SmartModem),他们制定的MODEM接口就成了业界标准,自此以后,所有公司制造的兼容猫都符合贺氏标准(连AT指令也兼容)。
    细观贺氏制定的MODEM串口,与RS232标准大不相同。DTR在整个通信过程中一直保持有效,DSR在MODEM上电后/可以拨号前有效(取决于软件对DSR的理解),在通信过程的任意时刻,只要DTR/DSR无效,通信过程立即终止。在某种意义上,这也可以算是流控,但肯定不是RS232所指的那种主流控。如果拘泥于RS232,你是不会理解DTR和DSR的用途的。
      贺氏不但改了DTR和DSR,竟然连RTS和CTS的涵义也重新定义了。因此,RTS和CTS已经不具有最开始的意义了。从字面理解RTS和CTS,是用于半双工通信的,当DTE想从收模式改为发模式时,就有效RTS请求发送,DCE收到RTS请求后不能立即完成转换,需要一段时间,然后有效CTS通知DTE:DCE已经转到发模式,DTE可以开始发送了。在全双工时,RTS和CTS都缺省置为有效即可。然而,在贺氏的MODEM串口定义中,RTS和CTS用于硬件流控,和什么全双工/半双工一点关系也没有。 注意,硬件流控是靠软件实现的,之所以强调“硬件”二字,仅仅是因为硬件流控提供了用于流量情况指示的硬件连线,并不是说,你只要把线连上,硬件就能自己流控。如果软件不支持,光连上RTS和CTS是没有用的。
      RTS和CTS硬件流控的软件算法如下:(RTS有效表示PC机可以收,CTS有效表示MODEM可以收,这两个信号互相独立,分别指示一个方向的流量情况) 。
      PC端处理:
      发: 当发现(不一定及时发现) CTS (-3v to -15v)无效时,停止发送,
           当发现(不一定及时发现) CTS (3v to 15v)有效时,恢复发送;
      收: 当接收buffers中的bytes当接收buffers中的bytes>N 时,给 RTS 无效信号(-3v to -15v);
      MODEM端处理:同上,但RTS与CTS交换。
      在RS232中本来CTS 与RTS 有明确的意义,但自从贺氏(HAYES ) 推出了聪明猫(SmartModem)后就有点混淆了。在RS232中RTS 与CTS 是用来半双工模式下的方向切换;HAYES Modem中的RTS ,CTS 是用来进 行硬件流控的。通常UART的RTC、CTS 的含义指后者,即用来做硬流控的。
      如果UART只有RX、TX两个信号,要流控的话只能是软流控;如果有RX,TX,CTS ,RTS 四个信号,则多半是支持硬流控的UART;如果有 RX,TX,CTS ,RTS ,DTR,DSR 六个信号的话,RS232标准的可能性比较大。
      硬流控的RTS 、CTS :RTS (Require To Send,发送请求)为输出信号,用于指示本设备准备好可接收;CTS(Clear To Send,发送清除)为输入信号,有效时停止发送。假定A、B两设备通信,A设备的RTS 连接B设备的CTS ;A设备的CTS 连接B设备 的RTS 。 前一路信号控制B设备的发送,后一路信号控制A设备的发送。对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS 信号(意思 通知B设备停止发送),B设备通过CTS 检测到该信号,停止发送;一段时间后A设备接收缓冲有了空余,发出RTS 信号,指示B设备开始发送数据。A设备发(B设备接收) 类似。上述功能也能在数据流中插入Xoff(特殊字符)和Xon(另一个特殊字符)信号来实现。A设备一旦接收到B设备发送过来的Xoff,立刻停止发 送;反之,如接收到B设备发送过来的Xon,则恢复发送数据给B设备。同理,B设备也类似,从而实现收发双方的速度匹配。
      半双工的方向切换:RS232中使用DTR(Date Terminal Ready,数据终端准备)与DSR(Data Set Ready ,数据设备准备好)进行主流控,类似上述的RTS 与CTS 。对半双工的通信的DTE(Date Terminal Equipment,数据终端设备)与DCE(Data circuit Equipment )来说,默认的方向是DTE接收,DCE发送。如果DTE要发送数据,必须发出RTS 信号,请求发送数据。DCE收到后如果 空闲则发出CTS 回 应RTS 信 号,表示响应请求,这样通信方向就变为DTE->TCE,同时RTS 与CTS 信号必须一直保持。从这里可以看出,CTS ,TRS虽 然也有点流控的意思(如CTS 没有发出,DTE也不能发送数据),但主要是用来进行方向切换的。
    在这里插入图片描述

    展开全文
  • 为了增加单片机串口之间的通讯距离,拟采用在单片机处增加232芯片来把TTL信号转换后再进行信息的传输,是多个发送,一个接收,我想选用4067模拟开关来选择通讯通道,可以实现吗?
  • 液晶显示器驱动板输出接口输出的信号种类可分为RGB数据信号(六位或八位)、时钟信号(DCLK)、行同步信号(HS)、场同步信号(VS)和数据使能信号(DE)几种。这些信号根据不同的输出接口,主要按以下方式进行数据...
  • Qt5 信号槽实现串口读写,大家可以参照,谢谢评论
  • 分别将文件夹中的bin文件夹中的dll,和lib文件夹中的文件 对应复制覆盖到:Qt安装目录下(以默认路径为例),解决Qt5.13.1中QSerialPort 模块中 ReadyRead信号不触发的问题。 C:\Qt\Qt5.13.1\5.13.1\mingw73_64 ---...
  • 利用串口发送代码,实现其他设备程序的互动,其他程序接收串口信号即可互动
  • STM32F103串口解析SBUS信号,使用方法: 1. 使用串口2连接接收机 2. 使用串口1连接串口调试助手; 3. 接收机需要连接方向器再连接串口; 4. 串口配置请按照sbus的通信协议,具体看工程中的串口初始化。
  • Wince下串口流控信号检测,包含一个功能强大的串口类,可实现串口收发数据、串口流控信号设置及检测
  • 液晶显示器驱动板输出接口输出的信号种类可分为RGB数据信号(六位或八位)、时钟信号(DCLK)、行同步信号(HS)、场同步信号(VS)和数据使能信号(DE)几种。这些信号根据不同的输出接口,主要按以下方式进行数据...
  • 摘 要 设计了基于USB2.O接口的RS485信号模拟器。它通过终端应用程序软件设置串行通信参数和数据帧发送格式,并在信号模拟器内部形成信号闭环反馈,即将实际发送的数据通过反馈回路回送给终端应用程序软件并显示出来...
  • CD4052是一个差分4通道数字控制...例如,若V DD=+5V,VSS=0,VEE=-13.5V,则0~5V的数字信号可控制-13.5~4.5V的模拟信号,这些开关电路在整个VDD-VSS和VDD-VEE电源范围内具有极低的静态功耗,与控制信号的逻辑状态...
  • 通过串口采集数据,将数据传到指定串口,为上位机模拟信号提供信号
  • VC串口流控信号检测

    2015-09-17 08:47:14
    VC++串口流控信号检测,包含一个功能强大的串口类,可实现串口收发数据、串口流控信号设置及检测,开发环境:VS2005
  • FPGA系列1——串口接收信号去毛刺

    千次阅读 2019-11-17 10:18:13
    Matlab仿真代码链接:https://download.csdn.net/download/flypassion/11981732
  • 串口流控信号检测

    2015-09-16 16:35:27
    串口流控信号检测,包含一个功能强大的串口类,可实现串口收发数据、串口流控信号设置及检测,开发环境:VS2005
  • 该代码是运行在android系统底层的一个服务,用于接收红外遥控器或无线遥控器模块通过串口发是送过来的码值,并在系统这边产生输入事件响应
  • 串口通信编程

    千次阅读 2021-07-18 20:23:45
    串口通信学习笔记
  • Wince下串口流控信号检测,包含一个功能强大的串口类,可实现串口收发数据、串口流控信号设置及检测,VS2005,VC。
  • 串行接口的定义串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输...
  • STM32F429BIT6 232串口 422串口 PWM信号
  • 串口通信

    2021-01-23 23:36:48
    COM口,在PC等操作系统上,区别于USB、SATA接口的串行接口,定义了在操作系统中的规范; TTL/CMOS,嵌入式硬件系统的信号电平; RS-232,在UART基础上再定义了信号的电气特性 RS-422,在RS-232基础上定义了

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,370
精华内容 44,948
关键字:

串口信号

友情链接: RecommendedExercise2.rar