com串口通信详解
- 格式:doc
- 大小:263.50 KB
- 文档页数:19
串口、COM口、TTL、RS-232、RS-485区别详解Point:1、串口、COM口是指的物理接口形式硬件;而TTL、RS-232、RS-485是指的电平标准电信号;2、接设备的时候,一般只接GND RX TX;不会接Vcc或者+的电源线,避免与目标设备上的供电冲突;3、PL2303、CP2102芯片是 USB 转 TTL串口的芯片,用USB来扩展串口TTL电平;4、MAX232芯片是 TTL电平与RS232电平的专用双向转换芯片,可以TTL转RS-232,也可以RS-232转TTL;5、TTL标准是低电平为0,高电平为1+5V电平;RS-232标准是正电平为0,负电平为1±15V电平;6、RS-485与RS-232类似,但是采用差分信号负逻辑;这里略过不讲;串口、COM口:COM口即串行通讯端口,简称串口;这里区别于USB的“通用串行总线”和硬盘的“SATA”;一般我们见到的是两种物理标准;D型9针插头,和4针杜邦头两种;这是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针;还有时候有第五根针,电源端;由于是预留在电路板上的,协议可以有很多种,要看具体设备;下面这个就是D型9针串口通俗说法;在台式电脑后边都可以看到;记住,这种接口的协议只有两种:RS-232和RS-485;不会是TTL电平的除非特殊应用;9针串口的定义可以参考这里:我们一般只接出RXD TXD两针,外加GND;下图是个USB转TTL串口的小板,可以用USB扩展出一个串口;芯片为PL2303HX;网上经常混淆各种串口,但是这个确实是可以给STC单片机下载程序的;这是另一种,CP2102芯片的,也是USB转TTL串口;据说比PL2303的好,实际使用中没感觉出来;这个小板就多了+电源端,以适应不同的目标电路;上边介绍的都是USB转TTL串口,如果目标设备上是RS-232串口D型9针接口咋弄再接一片MAX232转换一下就行;你也可以搭一个简单的比较器电路,来实现TTL转RS-232的功能,如下图;RS-232转TTL咋弄这就需要你动点脑子咯;当然,早有人想到了做一款成品;仔细看下图,USB经过PL2303转成了TTL串口,中间四个窟窿可以引出,再经MAX232转换为RS-232电平,9针串口引出;下面这是另一款:电平转换依旧用的是MAX232;你或许会买到这种:看起来里边只有一个牛屎芯片的;但是记住一点,只要是 D型9针串口,不会是TTL电平的,没特殊说明就默认是RS-232;所以这根线,不管里边构造怎样的,是 USB转RS-232串口的线;想要强调的是,一个设备的串口可以根据引出的串口线来判断是TTL还是RS-232,从而决定链接方式以及是否需要转换电路;。
串口基本知识串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。
串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。
串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。
一、什么是串口通讯?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口接头常用的串口接头有两种,一种是9针串口(简称DB-9),一种是25针串口(简称DB-25)。
每种接头都有公头和母头之分,其中带针状的接头是公头,而带孔状的接头是母头。
9针串口的外观如图所示,在9针串口接头中,公头和母头的管脚定义顺序是不一样,这一点需要特别注意。
那么,这些管脚都有什么作用呢?9针串口和25针串口常用管脚的功能说明如上图所示。
二、串口通讯的使用:串口通讯使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:波特率,指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制位。
譬如,每秒钟可以传输9600个二进制位(传输一个二进制位需要的时间是1/9600秒,也就是104us),波特率就是9600。
串口通信的波特率不能随意设定,而应该是在一些值中去选择。
一般最常见的波特率是9600或115200(低端单片机如51常用9600,高端单片机和嵌入式SOC常用115200)。
串口的概念串口(Serial Port)是一种计算机外部设备与计算机通信的接口,也可以称为串行接口或COM口。
串口是一种创建数据通信连接的接口,其特点是一次只能传输一个位元(bit)。
与之相对的是并行接口,可以同时传输多个位元。
串口主要用于计算机与外部设备之间的数据传输,可以连接各种设备,如打印机、调制解调器、终端等。
串口通信是一种逐位地进行数据传输的通信方式。
数据在串口中经过一系列的电气信号转换和协议处理后,可以在计算机和外部设备之间进行可靠的数据传输。
串口通信可以用于传输文本数据、图像数据、音频数据等各种类型的数据。
串口通信一般使用异步传输方式,即数据的发送和接收是不同步进行的。
发送端根据波特率(Baud rate)将数据转化为连续的电气信号,接收端通过检测电气信号的变化来还原数据。
波特率是指每秒钟传输的位元数量,常见的波特率有9600bps、115200bps等。
串口通信的传输速率相对较慢,但它具有以下几个优点:1. 简单:串口通信的接口较为简单,只需几根信号线即可实现数据传输。
2. 稳定:串口通信的电气信号转换较为稳定,不易受干扰。
3. 距离远:串口通信的传输距离较远,最远可达数百米。
4. 兼容性强:串口通信是一种标准接口,可以连接各种不同的设备。
串口通信的物理接口一般是DB9(9针)或DB25(25针)的D型插座,其中规定的引脚分为信号引脚和电源引脚。
常用的信号引脚有接地线、数据线(发送线和接收线)、流量控制线等。
电源引脚一般是供电使用。
在计算机中,串口通常使用RS-232C协议进行数据传输。
该协议规定了数据的电气特性(如电压范围)和数据帧的格式(如起始位、数据位、停止位等)。
除了RS-232C协议,还有一些其他的串口通信协议,如RS-422、RS-485等,它们具有不同的电气特性和传输距离。
在实际应用中,串口通信被广泛使用。
例如,打印机和计算机之间的数据传输就是通过串口进行的。
此外,一些传感器、控制器等外部设备也可以通过串口与计算机进行通信,以实现数据的采集和控制。
串口基本信息用一台电脑实验串口自发自收,实验前要将串口(以9针为例)的发送引脚(2脚)和接受引脚(3脚)短接。
三线连接:适用于计算机之间尤其是PC机和单片机之间的数据通信。
其连接信号对为(TxD,RxD)、(RxD,TxD)、(SG,SG)。
即发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接。
七线交叉连接:适用于同型号的计算机之间的连接,如PC机间的数据通信。
其连接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)。
其中,TxD、RxD、SG与前面信号的含义相同,RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好。
在本地连接的微机系统中,RTS、CTS、DTR、DSR用作硬件联络控制信号。
目前使用的串口连接线有DB9和DB25两种连接器,用户可以国家使用的具体机器选择相应的连接器。
一个串口通讯类在/network/serialport.shtml。
PC机的RS-232接口的电平标准是-12V标示“1”,和+12V表示“0”,有些单片机的信号电平时TTL 型,即大于2.4v表示“1”,小于0.5v表示“0”,因此采用RS-232总线进行异步通信是,发送端和接受端要有一个电平转换接口。
串口通讯方法的三种实现串口是计算机上一种非常通用的设备通信协议。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS一232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。
串口通信方便易行,应用广泛。
在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。
串口通信详解一、RS-232RS-232在1962年发布,命名为EIA-232-E ,作为工业标准,以保证不同厂家产品之间的兼容。
RS-232-C 是美国电子工业协会EIA (Electronic Industry Association )制定的一种串行物理接口标准。
RS 是英文“推荐标准”的缩写,232为标识号,C 表示修改次数。
RS-232-C 总线标准设有25条信号线,包括一个主通道和一个辅助通道。
在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。
RS-232-C 标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。
RS-232-C 标准规定,驱动器允许有2500pF 的电容负载,通信距离将受此电容限制,例如,采用150pF/m 的通信电缆时,最大通信距离为15m ;若每米电缆的电容量减小,通信距离可以增加。
传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m 以内的通信。
目前RS-232是PC 机与通信工业中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通讯。
图1收、发端的数据信号是相对于信号地,如从DTE 设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V ,负电平在-5~-15V 电平。
当无数据传输时,线上为TTL ,从开始传送数据到结束,线上电平从TTL 电平到RS-232电平再返回TTL 电平。
接收器典型的工作电平在+3~+12V 与-3~-12V 。
由于发送电平与接收电平的差仅为2V 至3V 左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传 9针串口(DB9) 25针串口(DB25)针号 功能说明 缩写 针号 功能说明 缩写 1 数据载波检测 DCD 8 数据载波检测 DCD2接收数据 RXD 3 接收数据 RXD 3 发送数据 TXD 2 发送数据 TXD4 数据终端准备DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND6 数据设备准备好 DSR 6 数据准备好 DSR7请求发送 RTS 4 请求发送 RTS 8清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL送距离最大为约15米,最高速率为20kb/s。
串口基础知识一、什么是串口?串口(Serial Port),也称为COM口(Communication Port),是一种用于数据传输的通信接口,常用于计算机与外部设备之间的数据传输。
串口采用串行传输方式,即逐位地发送和接收数据,相比并行传输方式,串口的数据传输速率较慢,但具有传输距离远、连接设备数量多的优势。
二、串口的工作原理串口的工作原理是通过发送和接收电平信号来传输数据。
串口通信使用的是两根信号线:发送线(Tx)和接收线(Rx)。
发送线上的电平变化表示发送的二进制数据,接收线上的电平变化表示接收到的二进制数据。
发送方通过发送线将数据按照一定的协议发送给接收方,接收方通过接收线接收数据并进行处理。
三、串口的通信参数串口通信需要设置一些参数,以确保通信的正确性和稳定性。
常用的串口通信参数包括:1. 波特率(Baud Rate):表示每秒钟传输的位数,常用的波特率有9600、115200等。
2. 数据位(Data Bits):表示每个字节的位数,常用的数据位有7位、8位。
3. 停止位(Stop Bits):表示停止位的个数,常用的停止位有1位、1.5位、2位。
4. 校验位(Parity Bit):用于检测数据传输过程中的错误,常用的校验位有无校验、奇校验、偶校验。
四、串口的应用领域串口广泛应用于各种设备之间的数据通信,常见的应用领域有:1. 电脑与外部设备之间的数据传输,如打印机、扫描仪、数码相机等。
2. 嵌入式系统中,用于与传感器、执行器等外部设备进行数据交互。
3. 工业自动化领域,用于控制和监控设备之间的数据传输。
4. 通信设备中,如调制解调器、路由器等。
五、串口的优缺点串口作为一种通信接口,具有以下优点:1. 传输距离远:串口的传输距离可以达到几百米,适用于远距离通信。
2. 连接设备数量多:串口可以通过串口转换器扩展连接多个设备。
3. 通信稳定可靠:串口通信采用的是同步传输方式,可以保证数据的准确传输。
串行接口串行接口就是COM接口。
串行接口的数据传输率是115kbps~230kbps,用来连接鼠标和外置Modem 以及老式摄像头和写字板等设备,部分新主板已开始取消该接口。
串口硬盘和并口硬盘。
串口硬盘指SATA的硬盘,传输速度快,硬盘的磁盘缓存可达到8M并口,也就是IDE口,传统的硬盘光驱接口,硬盘的磁盘缓存只能达到2M并行接口,简称并口。
并口采用的是25针D形接头。
所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错,目前,并行接口主要作为打印机端口等。
并口的工作模式:1:SPP(Standard Parallel Port)称为标准并口,它是最早出现的并口工作模式,几乎所有使用并口的外设都支持该模式。
2:EPP(Enhanced Parallel Port)称为增强型高速并口,它是在SPP 的基础上发展起来的新型工作模式,也是现在应用最多的并口工作模式,目前市面上的大多数打印机、扫描仪都支持EPP 模式。
3:ECP(ExtendedCapability Port)即扩充功能并口,它是目前比较先进的并口工作模式,但兼容性问题也比较多,除非您的外设支持ECP 模式,否则不要选择该模式。
串口叫做串行接口,也称串行通信接口,即COM口。
按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。
RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。
它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。
vc串口通讯控件MSComm编程详解在mfc中进行串口通讯最简单的方法莫过于在对话框中使用MSCOMM控件了,MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem).还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工、事件驱动的、高效实用的通信程序。
一、用MSComm控件通信1.串口通信基础知识一般悦来,计算机都有一个或多个串行端口,它们依次为com1、Com2、…,这些串口还提供了外部设备与pC进行数据传输和皿信的通道。
这些串口在CPU和外设之间充当解释器的角色。
当字符数据从CPU 发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM. DRV解释并传递给设备驱动程序,作为一个vB程序员,要编写通信程序.只需知道通信控件提供给Windows通信AP1函数的接口即可.换句话说,只需设定和监视通信控件的属性和事件即可。
2.使用Mscomm控件在开始使用MSComm控件之前。
需要先了解其属性、事件或错误属性描述CommPort 设置或返回通信端口号Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位PortOpen 设置或返回通信端口的状态。
也可以打开和关闭端口Input 返回和删除接收缓冲区中的字符Output 将字符串写入发送缓冲区CommEvent属性为通信事件或错误返回下列值之一。
在该控件的对象库中也可以找到这些常量。
常量值描述ComEventBreak 1001 收到了断开信号ComEventCTSTO 1002 Clear To Send Timeout。
串口通信的基本原理详解串口通信是一种常用的数据传输方式,其基本原理是通过串行传输数据位来实现数据的发送和接收。
在串口通信中,数据以位(bit)的形式一个一个地传输。
本文将详细介绍串口通信的基本原理。
首先,串口通信的硬件部分是由发送端和接收端两个设备组成。
发送端负责将数据转换成串行形式并发送出去,接收端负责接收串行数据并将其转换为可读的形式。
1.串行传输串口通信采用串行传输的方式,也就是将数据位一个一个地按顺序传输。
每个数据位由低电平(0)和高电平(1)两种状态表示。
在发送端,数据通过转换电路将其从并行形式转换为串行形式,然后通过串行线路逐位发送出去。
在接收端,串行数据被逆转换电路转换回并行形式,然后进一步处理。
2.起始位和停止位为了保证接收端能够正确识别数据的开始和结束位置,串口通信中一般会在每个数据位之前和之后添加额外的位。
起始位用于表示数据的开始,一般为低电平(0);停止位用于表示数据的结束,一般为高电平(1)。
起始位和停止位之间是实际的数据位,其长度根据通信需求确定。
3.波特率4.数据校验为了确保数据的可靠传输,在串口通信中常常会进行数据校验。
常见的校验方式有奇偶校验和循环冗余校验(CRC)。
奇偶校验是一种简单的校验方式,根据发送数据的位数中1的个数进行判断,从而决定校验位的值。
CRC校验则是通过生成多项式对发送的数据进行计算,然后将计算得到的余数作为校验位发送出去,在接收端进行同样的计算,通过比较余数是否相同来判断数据的正确性。
5.流控制串口通信中的流控制是为了解决发送端和接收端速度不一致而造成的数据丢失问题。
当数据发送速度过快时,接收端可能来不及处理即将到来的数据,导致数据丢失。
为了解决这个问题,可以使用硬件流控制或软件流控制。
硬件流控制一般通过发送端和接收端之间的额外线路来实现,例如使用RTS(请求发送)和CTS(清除发送)信号。
软件流控制则是通过发送特定的控制字符来通知对方是否可以继续发送数据。
串口,COM口,TTL,RS232,RS485,UART的区别详解在电路设计或者实际应用过程中,我们往往会遇到下面几种接口,在下面文章中我们详细介绍串口,COM口,RRL,RS232,UART几种接口之间的区别与联系以及常见的连接使用方式。
串口串口,即串行接口,与之相对应的另一种接口叫并口,并行接口。
两者的区别是,传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输,而并口则将8个位一字排开,分别在8条连接线上同时传输。
在相同的数据传输速率下,并口的确比串口更快,但由于并口的各个连接线之间容易互相干扰,高速情况下难以同步各连接线的数据,而且硬件成本也相对串口更高(线多),因而串口取代并口成为了现在的主流接口,较具代表性的要数Universal Serial Bus,通用串行总线,也就是USB。
其它在嵌入式领域常见的串行接口还包括:I2C,SPI,RJ-45,UART,USART等。
串口进行通信的方式有两种:同步通信方式和异步通信方式SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS:意为IC之间总线),一(host)对多,以字节为单位发送。
UART(Universal Asynchronous Receiver Transmitter:通用异步收发器),一对一,以位为单位发送。
COM口电脑上的异步串行通信接口,有时也称之为串口(其实这个叫法并不严谨)。
电脑COM口使用DB9连接器,遵循RS-232标准,RS-232规定了通信口的电气特性(它规定了逻辑“1”为-3 ~ -15V,逻辑“0”为+3 ~ +15V)和接口机械特性(形状,针脚定义)等内容。
COM口多见于旧式电脑,用于连接鼠标,调制调解器等设备,现在已被USB取代。
UART与USARTUART,全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。
使⽤com0com0模拟串⼝通信,以及java的串⼝读写操作⾸先放⼀下我这次使⽤的⼯具com0com0是windows内核模式下的虚拟串⼝驱动程序。
可以创建虚拟串⼝对来连接两个COM端⼝在这⾥简单的介绍⼀下com0com0的使⽤⽅法⾸先,下载com0com-3.0.0.0-i386-and-x64-unsigned,解压缩并安装接下来我们就可以使⽤setup command prompt来进⾏模拟串⼝对了在这⾥⾸先介绍两个命令install PortName=串⼝名1 PortName=串⼝名2新建两个虚拟串⼝,并连接为串⼝对list列出⽬前所有的虚拟串⼝如果跳出更新驱动的提⽰可以暂时⽆视,不影响后续的操作。
另⼀个⼯具setup具有图形化界⾯,可以查看⽬前的串⼝对接下来介绍java编程的时候需要⽤到的两个jar包RXTXcomm.jarserialPortIO.jar同时,在使⽤这两个jar包进⾏java编程之前,我们要将mfz-rxtx-2.2-20081207-win-x64压缩包下的两个dll⽂件放到C:\Windows\System32下然后,这⾥是⼀个简单的串⼝读写的例⼦import gnu.io.SerialPort;import serialPort.SerialTool;public class Read {public static void main(String[] args) throws Exception{// TODO Auto-generated method stub//以波特率115200打开串⼝COM12SerialPort serialPort = SerialTool.openPort("COM12", 115200);SerialTool.addListener(serialPort, new SerialListener(serialPort));}}import java.util.Scanner;import gnu.io.SerialPort;import serialPort.SerialTool;public class Write {public static void main(String[] args) throws Exception {Scanner scan = new Scanner(System.in);String temp;//以波特率115200打开串⼝COM11SerialPort serialPort = SerialTool.openPort("COM11", 115200);while(scan.hasNext()){temp=scan.nextLine();SerialTool.sendToPort(serialPort, temp.getBytes());}}}import javax.swing.JOptionPane;import gnu.io.SerialPort;import gnu.io.SerialPortEvent;import gnu.io.SerialPortEventListener;import serialPort.SerialTool;public class SerialListener implements SerialPortEventListener {public SerialPort serialPort;public SerialListener(SerialPort serialPort){this.serialPort=serialPort;}public void serialEvent(SerialPortEvent serialPortEvent) {switch (serialPortEvent.getEventType()) {case SerialPortEvent.BI: // 10 通讯中断System.out.println("与串⼝设备通讯中断");break;case SerialPortEvent.OE: // 7 溢位(溢出)错误case SerialPortEvent.FE: // 9 帧错误case SerialPortEvent.PE: // 8 奇偶校验错误case SerialPortEvent.CD: // 6 载波检测case SerialPortEvent.CTS: // 3 清除待发送数据case SerialPortEvent.DSR: // 4 待发送数据准备好了case SerialPortEvent.RI: // 5 振铃指⽰case SerialPortEvent.OUTPUT_BUFFER_EMPTY: // 2 输出缓冲区已清空break;case SerialPortEvent.DATA_AVAILABLE: // 1 串⼝存在可⽤数据//System.out.println("found data");byte[] data = null;try {if (serialPort == null) {System.out.println("串⼝对象为空!监听失败");}else {data = SerialTool.readFromPort(serialPort); //读取数据,存⼊字节数组//System.out.println(new String(data));JOptionPane.showInputDialog(new String(data));//String dataOriginal = new String(data); //将字节数组数据转换位为保存了原始数据的字符串 }} catch (Exception e) {System.exit(0);}break;}}}。
串⼝通信知识点详解串⼝通信的基本概念:1.在计算机上进⾏数据的通信有两种⽅式。
串⾏⽅式和并⾏⽅式。
也就是串⼝通信和并⾏通信。
即串⼝通信是计算机传输数据的⼀种通信⽅式。
2.并⾏通信以字节为但是进⾏传输数据,相⽐于串⼝通信,他的速度快,传输距离近。
串⼝通信以⽐特位传输数据,相⽐于并⾏通信,他的传输速度慢,但是传输距离远。
并且串⼝通信是异步通信,因此,端⼝可以在⼀根线上发送数据的同时在另⼀根线上接收数据3.串⼝通信最重要的参数是波特率、数据位、停⽌位和奇偶校验。
对于两个进⾏通信的端⼝,这些参数必须匹配。
(1)波特率:传输速率。
如每秒钟传送240个字符,⽽每个字符格式包含10位(1个起始位,1个停⽌位,8个数据位),这时的波特率为240Bd,⽐特率为10位*240个/秒=2400bps。
(2)数据位:数据包中发送端想要发送的数据(3)停⽌位:⽤于表⽰单个包的最后⼀位,结束标志以及校正时钟同步(4)奇偶校验:检错⽅式。
⼀共有四种检错⽅式:偶、奇、⾼和低。
4.串⼝通信的应⽤场景:串⼝通信是指外设和计算机间,通过数据线按位进⾏传输数据的⼀种通讯⽅式。
这种通信⽅式使⽤的数据线少,在远距离通信中可以节约通信成本,但其传输速度⽐并⾏传输低。
⼤多数计算机(不包括笔记本)都包含两个RS-232串⼝。
串⼝通信也是仪表仪器设备常⽤的通信协议。
Windows下串⼝通信:1.在windows下,串⼝是作为⽂件进⾏处理。
2.串⼝通信分为四⼤步骤:打开串⼝,关闭串⼝,配置串⼝,读写串⼝(1)打开串⼝:使⽤CreateFile函数:HANDLE WINAPI CreateFile(_In_ LPCTSTR lpFileName,//要打开或创建的⽂件名_In_ DWORD dwDesiredAccess,//访问类型_In_ DWORD dwShareMode,//共享⽅式_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,//安全属性_In_ DWORD dwCreationDisposition,//指定要打开的⽂件已存在或不存在的动作_In_ DWORD dwFlagsAndAttributes,//⽂件属性和标志_In_opt_ HANDLE hTemplateFile//⼀个指向模板⽂件的句柄);参数说明:1).lpFileName:要打开或创建的⽂件名2).dwDesiredAccess:访问类型。
串口工作原理1. 什么是串口串口(Serial Port),也被称为COM口或RS-232接口,是一种用于进行数据传输的电脑接口。
它允许数字设备(如计算机、微控制器)通过一个或多个串行通信线路与其他设备进行通信。
2. 串口的基本结构串口主要有三个基本组成部分:•串行通信线路(Serial Communication Line)•串行通信接口(Serial Communication Interface)•串口驱动芯片(UART)串行通信线路是一对单向传输的数据线,通常由一根接收线(RX)和一根发送线(TX)组成。
串行通信接口则是连接计算机主机和串口设备的硬件接口,通常位于计算机主板上。
串口驱动芯片则是串口通信的核心部分,负责将计算机主机发送出去的并行数据转换成串行数据,以及将接收到的串行数据转换成并行数据给计算机主机处理。
3. 串口的工作模式串口工作时,通常采用全双工模式,即可以同时发送和接收数据。
串口设备与计算机主机之间通过数据线路进行数据传输,并通过握手信号进行同步控制。
串口通信的基本工作模式如下:•发送端(Transmitter)将并行数据转换成串行数据发送出去。
•接收端(Receiver)接收到串行数据后,将其转换成并行数据供计算机主机处理。
•发送端和接收端通过握手信号进行同步控制。
4. 串口的数据传输方式串口数据传输采用异步传输方式(Asynchronous Transmission),其中数据被分为一系列的帧进行传输。
每个数据帧由起始位(Start Bit)、数据位、校验位(Parity Bit)和停止位(Stop Bit)组成。
具体传输过程如下:•发送端在数据传输前先发送一个起始位,一般为逻辑低电平。
•然后发送数据位,数据位的个数取决于串口的设置,通常为8位。
•接下来是校验位,用于数据的验证和纠错。
可以选择校验位的类型,如奇校验、偶校验或不校验。
•最后是停止位。
在停止位时间内,发送端将数据线恢复到逻辑高电平,作为帧的结束信号,使接收端能够正确获取到整个数据帧。
COM 1 使用的是9 针D 形连接器,也称之为RS-232接口com口即串行通讯端口串口叫做串行接口,也称串行通信接口,即COM口。
按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。
COM接口是指Component Object Model接口,是微软定义的标准接口COM Port:Communication Port? a USB COM port.我的理解:电脑RS232串口(即9 针D 形连接器)就是一种COM口端口COM口的接口标准规范和总线标准规范是RS-232,有时候也叫做RS-232口RS232串口电脑大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。
基于MSP430单片机和nRF905的无线通信系统起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。
每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。
停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。
从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。
异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:逻辑0 逻辑1正逻辑低电平高电平负逻辑高电平低电平异步通信的信息格式如下边的表所示起始位逻辑0 1位数据位逻辑0或15位、6位、7位、8位校验位逻辑0或11位或无停止位逻辑1 1位,1.5位或2位空闲位逻辑1 任意数量注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。
9600bps的波特率每秒钟通过信道传输的信息量称为位传输速率,也就是每秒钟传送的二进制位数,简称比特率。
串口通信详解一、RS-232RS-232在1962年发布,命名为EIA-232-E ,作为工业标准,以保证不同厂家产品之间的兼容。
RS-232-C 是美国电子工业协会EIA (Electronic Industry Association )制定的一种串行物理接口标准。
RS 是英文“推荐标准”的缩写,232为标识号,C 表示修改次数。
RS-232-C 总线标准设有25条信号线,包括一个主通道和一个辅助通道。
在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。
RS-232-C 标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。
RS-232-C 标准规定,驱动器允许有2500pF 的电容负载,通信距离将受此电容限制,例如,采用150pF/m 的通信电缆时,最大通信距离为15m ;若每米电缆的电容量减小,通信距离可以增加。
传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m 以内的通信。
目前RS-232是PC 机与通信工业中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通讯。
图1收、发端的数据信号是相对于信号地,如从DTE 设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V ,负电平在-5~-15V 电平。
当无数据传输时,线上为TTL ,从开始传送数据到结束,线上电平从TTL 电平到RS-232电平再返回TTL 电平。
接收器典型的工作电平在+3~+12V 与-3~-12V 。
由于发送电平与接收电平的差仅为2V 至3V 左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传 9针串口(DB9) 25针串口(DB25)针号 功能说明 缩写 针号 功能说明 缩写 1 数据载波检测 DCD 8 数据载波检测 DCD2接收数据 RXD 3 接收数据 RXD 3 发送数据 TXD 2 发送数据 TXD4 数据终端准备DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND6 数据设备准备好 DSR 6 数据准备好 DSR7请求发送 RTS 4 请求发送 RTS 8清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL送距离最大为约15米,最高速率为20kb/s。
RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。
所以RS-232适合本地设备之间的通信。
RS232C串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连•同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;•两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接。
表1二、RS485和RS422RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。
为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。
RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。
为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。
由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。
平衡传输RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图2。
图2通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。
另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。
“使能”端是用于控制发送驱动器与传输线的切断与连接。
当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。
接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。
接收器接收平衡线上的电平范围通常在200mV至6V之间。
参见图3。
图3RS-422电气规定RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。
图5是典型的RS-422四线接口。
实际上还有一根信号地线,共5根线。
图4是其DB9连接器引脚定义。
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。
即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。
接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。
RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。
图4 图5RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。
其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。
只有在很短的距离下才能获得最高速率传输。
一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。
RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。
在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。
终接电阻接在传输电缆的最远端。
RS-422有关电气参数见表1RS-485电气规定由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。
如都采用平衡传输方式、都需要在传输线上接终接电阻等。
RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,参见图6。
而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。
参见图7。
图6 图7RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑鳵S-422是4k健;旧峡梢运礡S-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。
RS-485有关电气规定参见表1。
RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。
平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。
只有在很短的距离下才能获得最高速率传输。
一般100米长双绞线最大传输速率仅为1Mb/s。
RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。
在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。
终接电阻接在传输总线的两端。
RS-422与RS-485的网络安装注意要点RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。
网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。
在构建网络时,应注意如下几点:1.采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。
图8所示为实际应用中常见的一些错误连接方式(a,c,e)和正确的连接方式(b,d,f)。
a,c,e这三种网络连接尽管不正确,在短距离、低速率仍可能正常工作,但随着通信距离的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路末端反射后与原信号叠加,会造成信号质量下降。
2.应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。
下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。
总之,应该提供一条单一、连续的信号通道作为总线。
图8RS-422与RS-485传输线上匹配的一些说明对RS-422与RS-485总线网络一般要使用终接电阻进行匹配。
但在短距离与低速率下可以不用考虑终端匹配。
那么在什么情况下不用考虑匹配呢?理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。
但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。
例如具有限斜率特性的RS-485接口MAX483输出信号的上升或下降时间最小为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWG PVC电缆),那么只要数据速率在250kb/s以内、电缆长度不超过16米,采用MAX483作为RS-485接口时就可以不加终端匹配。
一般终端匹配采用终接电阻方法,前文已有提及,RS-422在总线电缆的远端并接电阻,RS-485则应在总线电缆的开始和末端都需并接终接电阻。
终接电阻一般在RS-422网络中取100Ω,在RS-485网络中取120Ω。
相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120Ω。
这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。