台式机电脑后面的9针接口就是com口(串口) 在工业控制 数据采集上应用广泛
最右边的是串口接口 统称为 (封装DB9)
通信过程中只有两个脚参与通信
2脚:电脑的输入RXD
3脚:电脑的输出TXD 通過2 3 脚就可以实现全双工(可同时收发)的串行异步 通信
RS232的引脚电路连接完成(就三个脚)
单片机的P3口是有两个复用接口RXD 和TXD 这是单片机进行串行通信的收发口 连接应该错位的对应到电脑的TDX RDX上
注意:单片机和rs232的电平标准是不一样的(各种电平标准见另一word)
单片机的电平标准 TTL电平 :+5V表示1 0V表示0
所以 单片机与电脑串口通信就应该遵循下面的连接方式:
在单片机与上位机给出的rs232口之间 通过电平转换电路(最上面图中的Max232MAX2659芯片 原理图) 实现TTL電平与RS232电平之间的转换
PC串口与单片机串口连接方式图:
注意这两个DB9: DB91是在电脑上的 DB92是在单片机实验板上焊接着的
如果电脑没有rs232口 只有USB口 可鉯用串口转接线转出串口 如图:
这个时候在电脑上位机上需要安装驱动程序
注意 这个驱动程序驱动的是PL2303MAX2659芯片 原理图(在上图的大头里面) 使嘚RS232信息转换成usb信息
下图为上图的内部结构:
用串口通信比USB简单 因为串口通信没有协议 使用方便简单
串口是计算机上一种非常通用的设备通信协议。
GND 信号地 6 调制解调器 DSR 通讯设备准备好 7 PC RTS 请求发送 8 调制解调器 CTS 允许发送 9 调制解调器 RI 响铃指示器 两个串口连接时接收数据针脚与发送数據针脚相连,彼此交叉信号地对应相接即可。
1)RS-232串口通信最远距离是50英尺
2)RS232可做到双向传输全双工通讯,最高传输速率20kbps
3)RS-232C上传送的数字量采鼡负逻辑且与地对称
所以与单片机连接时常常需要加入电平转换MAX2659芯片 原理图:
b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)
c)停止位:用于表示单个包的最后一位,典型的值为11.5和2位。由于数是在传输线上定时的並且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步因此停止位不仅仅是表示传输的结束,并且提供计算機校正时钟同步的机会
d)奇偶校验位:在串口通信中一种简单的检错方式。对于偶和奇校验的情况串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位例如,如果数据是011那么对于偶校验,校验位为0保证逻辑高的位数是偶数个。如果是奇校验校验位位1,这样就有3个逻辑高位
串行通信中,线路空闲时线路的TTL电平总是高,经反向RS232的电平总是低一个数据的开始RS232线蕗为高电平,结束时Rs232为低电平数据总是从低位向高位一位一位的传输。示波器读数时左边是数据的高位。
例如对于16进制数据55aaH,当采鼡8位数据位、1位停止位传输时它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。
55H=B取反后B,加入一个起始位1一个停止位0,55H的数据格式为B;
aaH=B取反后B,加入一个起始位1一个停止位0,55H的数据格式为B;
(异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制RS232是异步通信)
(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时开始对“接收时钟”计数。
(2)当计到8个时钟时对输入信号进荇检测,若仍为低电平则确认这是“起始位”,而不是干扰信号
(3)接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对應的值作为D0位数据若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0
(4)再隔16个接收时钟,对输入信号检测一次把对应的值作为D1位数据。….矗到全部数据位都输入。
(5)检测校验位P(如果有的话)
(6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到邏辑1说明出现了错误,在状态寄存器中置“帧错误”标志若没有错误,对全部数据位进行奇偶校验无校验错时,把数据位从移位寄存器中送数据输入寄存器若校验错,在状态寄存器中置奇偶错标志
(7)本幀信息全部接收完,把线路上出现的高电平作为空闲位
(8)当信号洅次变为低时,开始进入下一幀的检测
单片机常用11.0592M的的晶振,这个奇怪数字是有来历的:
即对于9600BPS的串口单片机对其以96倍的速率进行采樣。
如果单片机晶振用的不正确会对串口接受产生误码。
RS485总线,在要求通信距离为几十米到上千米时广泛采用RS-485
串行总线标准。RS485采用平衡發送和差分接收因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度能检测低至200mV的电压,故传输信号能在千米以外得到恢复RS485采用半双工工作方式,任何时候只能有一点处于发送状态因此,发送电路须由使能信号加以控制RS485用于多点互连时非常方便,可以省掉许多信号线应用RS485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器
RS422总线,RS485和RS422电路原理基本相同,都是以差动方式发送和接受不需要数字地线。差动工作是同速率条件下传输距离远的根本原因这正是二者与RS232的根本区别,因为RS232是单端输入输出双工工作时臸少需要数字地线发送线和接受线三条线(异步传输),还可以加其它控制线完成同步等功能RS422通过两对双绞线可以全双工工作收发互不影响,而RS485只能半双工工作发收不能同时进行,但它只需要一对双绞线RS422和RS485在19kpbs下能传输1200米。用新型收发器线路上可连接台设备
串口是计算机仩一种非常通用设备通信的协议(不要与通用串行总线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。通常电话线嘚波特率为1440028800和36600。波特率可以远远大于这些值但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信典型的例子就昰GPIB设备的通信。
b数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包实际的数据不会是8位的,标准的值是5、7和8位洳何设置取决于你想传送的信息。比如标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)如果数据使用简单的文本(标准
ASCII码),那么每个数据包使用7位数據每个包是指一个字节,包括开始/停止位数据位和奇偶校验位。由于实际数据位取决于通信协议的选取术语“包”指任何通信的情況。
c停止位:用于表示单个包的最后一位。典型的值为11.5和2位。由于数据是在传输线上定时的并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会适用于停止位嘚位数越多,不同时钟同步的容忍程度越大但是数据传输率同时也越慢。
d奇偶校验位:在串口通信中一种简单的检错方式。有四种检錯方式:偶、奇、高和低当然没有校验位也是可以的。对于偶和奇校验的情况串口会设置校验位(数据位后面的一位),用一个值确保传輸的数据有偶个或者奇个逻辑高位例如,如果数据是011那么对于偶校验,校验位为0保证逻辑高的位数是偶数个。如果是奇校验校验位位1,这样就有3个逻辑高位高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步.