串口通信的基本概念
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个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

什么是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,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。

什么是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)

什么是握手

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。

问题总结

RS-232,RS-422和 RS-485 串口通讯接口的快速比较

问题: 
RS-232,RS-422以及RS-485串口的基本区别是什么?
解答: 
下面的表格比较了:工作方式,驱动器和接收器的总数,电缆的最大长度及最大传输速率。RS-232 是大多数计算机通用的接口,比如COM1 和 COM2。注意,大多数计算机的接口COM1以及COM2并不是RS-422/RS-485。然而,RS-422 是苹果Macintosh计算机的标准接口。RS-485 是基于 RS-422的一种改进,在工业中更普遍。所有NI的 RS-485 板卡都支持RS-422标准。

问题: 串行通讯的基本架构是什么?
解答: 串口通讯架构
每一个异步串行系统的核心都是一个UART(通用异步接收机/发送机)。UART不仅控制传输的数据,相应的电平,同时也控制通讯的速度。UART能够存储足够的信息,所以保证了在电脑忙得时候,数据流也能连续传输。这对于同时处理大量任务的操作系统非常有帮助。下面附图是理想串行通讯的示意。我们大部分的串行卡都有一个输入输出的FIFO(查看目录了解详细信息)。FIFO的数据可以通过串行驱动获取。串行驱动会自动地把FIFO的数据传输到软件的缓存,这个缓存是可以在应用软件由用户配置的(比如,在LabVIEW您可以使用Serial Port Init VI来设置缓存去大小)。读接口的数据实际上包含从软件缓存读的过程。确认硬件操作的回路测试

有三种方式确认串口的操作:LabVIEW,超级终端和LabWindows/CVI。这三种方式进行回路测试是把串口的发送和接受引脚短接。第一步描述短接引脚的过程。LabVIEW的处理写在下面,而超级终端和LabWindows/CVI的过程在本文后面的链接里。对于LabVIEW建议使用如下步骤:
a,连接一根电缆到串口。最常用的RS-232电缆是9针或者25针(DB-9或者DB-25)。在电缆端把2、3引脚短接。这会把计算机发送数据的线连接到接收数据的线。一旦短接,BD-9的上一排变成【1 2=3 4 5】。对于RS-485端口,电压是差分的。因此,你必须短接TXD+和RXD+、TXD-和RXD-(对于DB-9电缆,连接pin4到pin8和pin5到pin9;对于模块化接口,连接pin2到pin6和pin3到pin7;对于Combicon接头,连接pin1到pin5和pin2到pin4。)确保你的软件配置为4线模式。

vb串口 任意波特率_串口通讯基本知识相关推荐

  1. vb串口 任意波特率_学习串口参数详解:波特率,数据位,停止位,奇偶校验位...

    串口常用参数,串口是一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus(USB)混淆). 中文名:串口常用参数 属    性:通用设备通信的协议 相    关:通 ...

  2. vb串口 任意波特率_C#与单片机串口通讯,实现简单的计数功能

    串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串行接口电路. 串口通信( ...

  3. android 串口一直打开_串口通讯你真的会了吗?不妨来看看这些经验

    平时使用串口打印出现乱码的绝大部分原因是串口波特率没对.那么我们怎么测量实际的波特率呢?在这之前,顺便一起回顾一下波特率的概念. 什么是波特率.比特率? 比特率(Bitrate)表示每秒钟传输的二进制 ...

  4. 串口console乱码_串口打印机不能打印或打印乱码

    为何通过串口不能打印或打印乱码? 一.硬件准备 首先确保你的硬件满足以下条件,并且使用的串口线是 XPrinter 指定代理 或经销商提供的标准线缆. 打印机 : 请先确认你的打印机端确实是串口, X ...

  5. 计算机串口3f8波特率设置,串口波特率转换的实现-硬件方式

    串口通信,就是RS-232/RS-485通信,要求通信的双方波特率等通信格式一样才可以通信成功.可是在许多情况下,两种不同格式比如不同波特率的串口也要相互通信,这就必须进行串口波特率等格式的转换.本文 ...

  6. java非阻塞 串口读数据_串口阻塞与非阻塞

    VTIME定义要求等待的时间量(取值不能大于cc_t). VMIN定义了要求等待的最小字节数. options.c_cc[VTIME] = X; //设置从获取到1个字节后开始计时的超时时间(单位为分 ...

  7. ubuntu 串口调试工具推荐_串口调试能有多便捷?——FUR组件的应用

    就是最近忙着做项目,忽然发现有3个项目都需要用到串口调试,这让我感觉到有一个方便快捷的调试工具是非常重要的.虽然类似的功能有很多现成的.功能强大的开源协议,比如MODBUS.但是我看过之后,总觉得不够 ...

  8. mysql串口转网口_串口、COM口、UART口, TTL、RS-232、RS-485有啥区别

    调试时总是会遇到各种各样的接口,各种各样的转换板,似懂非懂的感觉很不爽! 首先,串口.UART口.COM口.USB口是指的物理接口形式(硬件).而TTL.RS-232.RS-485是指的电平标准(电信 ...

  9. 串口console乱码_串口显示乱码的原因总结 有关串口乱码的问题的解决办法

    App乱码消除器1.0 官方正式版 类型:游戏其他大小:1.1M语言:中文 评分:4.1 标签: 立即下载 在通信波特率为 38400 时,通信正常,arm 板上解受到的数据(ascII码)显示正常. ...

最新文章

  1. 处于计算机学科的基础地位,谈谈离散数学在计算机学科中的地位和作用(原稿)...
  2. 方法调用(车票练习)
  3. linux数组随机数,随机数与数组
  4. 在Python中升级灰度图像
  5. div css入门教程,更简洁CSS清理浮动方式:clearfix
  6. 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如RXXLRXRXL)中进行移动操作。一次移动操作指用一个LX替换一个XL,或者用一个XR替换一个RX。现给定起始...
  7. PPT图片快速编辑技巧
  8. solr相关配置(搜索novel案例)
  9. ajax escape用法,ie11下ajax用escape发送中文参数失败
  10. [HAOI2007] 修筑绿化带
  11. Rust : Attribute 属性 作者:Mike Tang
  12. CCNA考试题库中英文翻译版及答案15
  13. 资源---vc++2010学习版---注册码(注册码密匙)
  14. python结构体_python中定义结构体
  15. JavaScript基础之new操作神来之笔
  16. 汇编语言答案(王爽版)
  17. 山东大学软件学院项目实训第二周
  18. 梧桐落雨,烟水迷离,莺啼江南岸!
  19. Maki微积分习题集理解摘记
  20. JavaScript——将json数组填充进excel表并下载保存

热门文章

  1. 有linux服务器用来干什么用的,linux集群能干什么
  2. 性能计数器驱动_Linux CPU性能优化方法
  3. C语言中用链表构建栈讲解,C语言数据结构之使用链表模拟栈的实例
  4. mysql 外键详解_mysql 中的外键key值的详解
  5. java输入年月判断当月天数_java输入月份,年份,显示对应月份的天数,
  6. 登录页面怎么弄_python爬虫另辟蹊径绕过企查查的登录验证,我太冇财了
  7. 2FSK频谱matlab,2FSK信号的频谱分析及解调的实现.doc
  8. 实战丨基于接口的银行系统自动化测试实践
  9. python编写makefile_Python项目中的Makefiles
  10. python mysql删除数据_Python MySQL-删除数据