常州孟河镇建设工程交易网站,免费商城版网站制作,湖南建设人才网官网,广西建设局网站首页文章目录 一、计算机串行通信基础二、串行通信的基本概念2.1、异步通信与同步通信2.2、串行通信的传输方向2.3、串行通信常见的错误校验2.4、传输速率 三、串行通信接口标准3.1、RS-232C接口3.2、RS-422A3.3、RS-485接口 四、80C51的串行口4.1、80C51串行口的控制寄存器4.2、80… 文章目录 一、计算机串行通信基础二、串行通信的基本概念2.1、异步通信与同步通信2.2、串行通信的传输方向2.3、串行通信常见的错误校验2.4、传输速率 三、串行通信接口标准3.1、RS-232C接口3.2、RS-422A3.3、RS-485接口 四、80C51的串行口4.1、80C51串行口的控制寄存器4.2、80C51串行口的工作方式4.3、波特率的计算4.4、串口如何使用 五、单片机与单片机的通信5.1、点对点的通信5.2、多机通信 一、计算机串行通信基础
计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。计算机通信是将计算机技术和通信技术的相结合完成计算机与外部设备或计算机与计算机之间的信息交换。
通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。
并行通信通常是将数据字节的各位用多条数据线同时进行传送如下图。并行通信控制简单、传输速度快但由于传输线较多长距离传送时成本高且接收方的各位同时接收存在困难。 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个传送如下图。串行通信的特点是传输线少长距离传送时成本低并且可以利用电话网等现成的设备但数据的传送控制比并行通信复杂。 二、串行通信的基本概念
串行通信根据收发双方是否使用同步时钟分为两种方式同步串行通信与异步串行通信。
2.1、异步通信与同步通信
1异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调要求发送和接收设备的时钟尽可能一致。
异步通信是以字符构成的帧为单位进行传输字符与字符之间的时间间隔间隙是任意的但每个字符中的各位是以固定的时间传送的即字符之间不一定有位间隔的整数倍的关系但同一字符内的各位之间的距离均为位间隔的整数倍。 异步通信的数据格式如下一个字符帧包括1个起始位8个数据位1个校验位1个停止位11个位。 异步通信的特点是不要求收发双方时钟的严格一致实现容易设备开销较小但每个字符要附加2~3位用于起止位各帧之间还有间隔因此传输效率不高。
2 同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制使双方达到完全同步。此时传输数据的位之间的距离均为位间隔的整数倍同时传送的字符间不留间隙即保持位同步关系也保持字符同步关系
发送方对接收方的同步可以通过两种方法实现外同步和自同步如下。 2.2、串行通信的传输方向
串行通信的传输方向有单工、半双工、全双工。
单工是指数据传输仅能沿一个方向不能实现反向传输。半双工是指数据传输可以沿两个方向但需要分时进行。全双工是指数据可以同时进行双向传输。
如下图从左至右分别是单工、半双工、全双工通信。 2.3、串行通信常见的错误校验
奇偶校验
在发送数据时数据位尾随的1位为奇偶校验位1或0。
奇校验时数据中”1“的个数与校验位“1”的个数之和应为奇数
偶校验时数据中“1”的个数与校验位“1”的个数之和应为偶数。
接收字符时对“1”的个数进行校验如果发现不一致说明传输数据过程中出现了差错。 比如对于发送的数据11000110该数据中1的个数有4个。如果采用奇校验那么校验位应该为1如果采用偶校验那么校验位应该为0。 代码和校验
代码和校验是发送方将所发数据块求和或各字节异或产生一个字节的校验字符校验和附加到数据块末尾。
接收方接收数据同时对数据块除校验字节外求和或各字节异或将得到的结果与发送方的校验和进行比较相符则无差错否则认为传送过程中出现了差错。
循环冗余校验
循环冗余校验是通过某种数学运算实现有效信息与校验位之间的循环校验常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强广泛用于同步通信中。
2.4、传输速率
串行通信的传输速率以比特率也称为波特率为单位比特率是每秒钟传输二进制的位数单位是位/秒bps。如果每秒钟传送240个字符每个字符格式包含10位1个起始位、1个停止位、8个数据位那么此时的比特率为10位x240个/秒2400bps。
串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。 当传输线使用每0.3m有50pF电容的非平衡屏蔽双绞线时传输距离随传输速率的增加而减小。 当比特率超过1000bps时最大传输距离迅速下降如9600bps时最大距离下降到只有76m。
三、串行通信接口标准
3.1、RS-232C接口
RS-232C是EIA美国电子工业协会1969年修订的RS-232C标准该标准定义了数据终端设备DTE与数据通信设备DCE之间的物理接口标准。
RS-232C的机械特性
RS-232C接口规定了使用25针连接器连接器的尺寸及每个插针的排列位置都有明确定义。阳头
下图是RS-232C接口示意图左图是标准的25针连接器由图是9针非标准连接器。 RS-232C接口的功能特性如下序号内是9针非标准连接器的引脚号。
插针序号接口名称功能信号方向1PGND保护接地23TXD发送数据串行输出DTE→DCE32RXD接收数据串行输入DTE←DCE47RTS请求发送DTE→DCE58CTS允许发送DTE←DCE66DSRDCE就绪数据建立就绪DTE←DCE75SGND信号接地81DCD载波检测DTE←DCE204DTRDTE就绪数据终端准备就绪DTE→DCE229RI振铃指示DTE←DCE
RS-232C的过程特性规定了信号之间的时序关系以便正确地接收和发送数据。 RS232C电平与TTL电平转换驱动电路如下所示 RS-232C接口存在如下问题
传输距离短传输速率低
RS-232C总线标准受电容允许值的约束使用时传输距离一般不要超过15米线路条件好时也不要超过几十米。最高传输速率为20Kbps。
有电平偏移
RS-232C总线标准要求收发双方共地。通信距离较大时收发双方的地电位差别较大在信号地上将有比较大的地电流并产生压降。
抗干扰能力差
RS-232C在电平转换时采用单端输入输出在传输过程中干扰和噪声会混在正常的信号中。为了提高信噪比RS-232C总线标准不得不采用比较大的电压摆幅。
3.2、RS-422A
RS-422A输出驱动器为双端平衡驱动器。如果其中一条线为逻辑“1”状态另一条线就位逻辑“0”比采用单端不平衡驱动对电压的放大倍数大一倍。
差分电路能从地线干扰中拾取有效信号差分接收器可以分辨200mV以上的电位差。
如果传输过程中混入了干扰和噪声由于差分放大器的作用可以使干扰和噪声相互抵消。因此可以避免或大大减弱地线干扰和电磁干扰的影响。
RS-422A传输速率为90Kbps时传输距离可达1200米。 3.3、RS-485接口
RS-485是RS-422A的变型RS-422A用于全双工RS-485用于半双工。
RS-485是一种多发送器标准在通信线路商最多可以使用32对差分驱动器/接收器。如果在一个网络中连接的设备超过32个还可以使用中继器。 RS-485的信号传输采用两线间的电压来表示逻辑1和逻辑0,。由于发送当需要两根传输线接收方也需要两根传输线。
传输线采用差动信道所以它的干扰抑制性极好又因为它的阻抗低无接地问题所以传输距离可达1200米传输速率可达1Mbps。
RS-485是一点对多点的通信接口一般采用双绞线的结构。普通的PC机一般不带RS485接口因此要使用RS-232C/RS-485转换器。对于单片机可以通过芯片MAX485来完成TTL/RS-485的电平转换。
在计算机和单片机组成的RS-485通信系统中下位机由单片机系统组成上位机为普通的PC机负责监视下位机的运行状态并对其状态信息进行集中处理以图文方式显示下位机的工作状态以及工业现场被控设备的工作状况。系统中各节点的识别是通过设置不同的站地址来实线的。
四、80C51的串行口
80C51串行口的结构如下图所示TXD(P3.1)和RXD(P3.0)用来实现串口通信有两个物理上独立的接收、发送缓冲器SBUF它们占用同一地址99H要实现串口通信用到了定时器T1。接收器是双缓冲结构发送缓冲器因为发送时CPU是主动的因此不会产生重叠错误。 4.1、80C51串行口的控制寄存器
1SCON特殊功能寄存器
SCON是一个特殊功能寄存器用来设定串行口的工作方式、接收/发送控制以及设置状态标志。
SCON寄存器各位表示如下
位76543210字节地址98HSM0SM1SM2RENTB8RB8TIRISCON
其中SM0和SM1为工作方式选择位可选择四种工作方式
SM0SM1方式说明波特率000移位寄存器 f O S C / 2 f_{OSC}/2 fOSC/201110位异步收发器8位数据可变10211位异步收发器9位数据 f O S C / 64 f_{OSC}/64 fOSC/64或 f O S C / 32 f_{OSC}/32 fOSC/3211311位异步收发器9位数据可变 SM2多机通信控制位主要用于方式2和方式3。 当接收机的SM21时可以利用收到的RB8位来控制是否激活RIRB80时不激活RI收到的信息丢弃RB81时收到的数据进入SBUF并激活RI进而在中断服务中将数据从SBUF读走。当SM20时不论收到的RB8为0或1均可以使收到的数据进入SBUF并激活RI即此时RB8不具有控制RI激活的功能。通过控制SM2可以实现多机通信。在方式0时SM2必须是0在方式1时如果SM21则只有接收到有效停止位时RI才置1。 REN允许串行接收位。由软件置REN1则启动串行口接收数据若软件置REN0则禁止接收。 TB8在方式2或方式3中是发送数据的第九位可以用软件规定其作用可以用作数据的奇偶校验位或在多机通信中作为地址帧/数据帧的标志位。在方式0或方式1中该位未用。 RB8在方式2或方式3中是接收到数据的第九位作为奇偶校验位或地址帧/数据帧的标志位。在方式1时如果SM20则RB8是接收到的停止位。 TI发送中断标志位。在方式0时当串行发送第8位数据结束时或在其它方式串行发送停止位的开始时由内部硬件使TI置1向CPU发中断申请。在中断服务程序中必须用软件将其清0取消此中断申请。 RI接收中断标志位。在方式0时当串行接收第8位数据结束时或在其它方式串行接收停止位的中间时由内部硬件使RI置1向CPU发中断申请。也必须在中断服务程序中用软件将其清0取消此中断申请。
2PCON特殊功能寄存器
PCON中只有一位SMOD与串行口工作有关。
位76543210字节地址97HSMODPCON
SMOD波特率倍增位。在串行口方式1、方式2、方式3时波特率与SMOD有关。 当SMOD1时波特率提高一倍。复位时SMOD0。
4.2、80C51串行口的工作方式
TCON的SM0SM1指定了四种工作方式。
1 方式0
在方式0时串行口为同步移位寄存器的输入/输出方式主要用于扩展并行输入或输出口。
数据由RXDP3.0引脚输入或输出同步移位脉冲由TXDP3.1引脚输出。发送和接收均为8位数据低位在先高位在后。波特率固定为 f O S C / 12 f_{OSC}/12 fOSC/12。
如下为方式0输出时序图从时序图可以看到当发送完数据后会产生中断TI置为高电平TXD为高电平RXD由高电平到低电平时开始发送数据。当TXD为低电平时RXD保持电平不变当TXD为高电平时RXD可以更改电平。 如下为方式0输入时序图REN置位1启动串行口接收数据TXD为低电平时接收RXD的数据输入。 2方式1
方式1是10位数据的异步通信口。TXD为数据发送引脚RXD为数据接收引脚传送一帧数据的格式如下图所示。其中10位数据包括1位起始位8位数据位1位停止位。 方式1输出时序图如下TXD由高电平变为低电平时开始发送起始位当发送停止位高电平时TI置高电平发送中断请求。 方式1输入时序图如下RXD由高电平变为低电平开始接收起始位当收到停止位高电平时置RI为高电平发送中断请求。 用软件置REN为1时接收器以所选择波特率的16倍速率采样RXD引脚电平检测到RXD引脚输入电平发生负跳变时则说明起始位有效将其移入输入移位寄存器并开始接收这一帧信息的其余位。
接收过程中数据从输入移位寄存器右边移入起始位移至输入移位寄存器最左边时控制电路进行最后一次移位。当RI0且SM20或接收到的停止位为1时将接收到9位数据的前8位数据装入接收SBUF第9位进入RB8并置RI1向CPU请求中断。
2方式2和方式3
方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚RXD为数据接收引脚。 方式2和方式3起始位1位数据9位含1位附加的第9位发送时为SCON中的TB8接收时为RB8停止位1位一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32方式3的波特率由定时器TI的溢出率决定。
方式2和方式3输出时序图 发送开始时先把起始位0输出到TXD引脚然后发送移位寄存器的输出位D0到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位并由TXD引脚输出。
第一次移位时停止位1移入输出移位寄存器的第9位上以后每次移位左边都移入0。当停止位移至输出位时左边其余位全为0检测电路检测到这一条件时使控制电路进行最后一次移位并置TI1向CPU请求中断。
方式2和方式3输入时序图 接收时数据从右边移入输入移位寄存器在起始位0移到最左边时控制电路进行最后一次移位。当RI0且SM20或接收到的第9位数据为1时接收到的数据装入接收缓冲器SBUF和RB8接收数据的第9位置TI1向CPU请求中断。如果条件不满足则数据丢失且不置位RI继续搜索RXD引脚的负跳变。
4.3、波特率的计算
在串行通信中收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式其中方式0和方式2的波特率是固定的而方式1和方式3的波特率是可变的由定时器TI的溢出率来决定。
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同所以各种方式的波特率的计算公式也不相同。
方式0的波特率 f O S C / 12 f_{OSC}/12 fOSC/12
方式2的波特率 ( 2 S M O D / 64 ) ⋅ f O S C (2^{SMOD}/64) \cdot f_{OSC} (2SMOD/64)⋅fOSC
方式1的波特率 ( 2 S M O D / 32 ) ⋅ ( T 1 溢出率 ) (2^{SMOD}/32) \cdot (T1溢出率) (2SMOD/32)⋅(T1溢出率)
方式3的波特率 ( 2 S M O D / 32 ) ⋅ ( T 1 溢出率 ) (2^{SMOD}/32) \cdot (T1溢出率) (2SMOD/32)⋅(T1溢出率)
当T1作为波特率发生器时最典型的用法是使T1工作在自动装载的8位定时器方式即方式2且TCON的TR11以启动定时器。这时溢出率取决于TH1中的计数值。 T 1 溢出率 f O S C / { 12 × [ 256 − ( T H 1 ) } T1溢出率f_{OSC}/\{12 \times [256-(TH1)\} T1溢出率fOSC/{12×[256−(TH1)}
在单片机的应用中常用的晶振频率为12MHz和11.0592MHz。所以选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如下表所示
串口工作方式及波特率b/sf_OSC(MHz)SMOD定时器T1C/T工作方式初值方式1、362.5k12102FFH19.2k11.0592102FDH960011.0592002FDH480011.0592002FAH240011.0592002F4H120011.0592002E8H
4.4、串口如何使用
串行口工作之前应对其进行初始化主要是设置产生波特率的定时器1、串行口控制和中断控制。
具体步骤如下
确定T1的工作方式编程TMOD寄存器计算T1的初值装载TH1、TL1启动T1编程TCON中的TR1位确定串行口控制编程SCON寄存器 串行口在中断方式工作时要进行终端设置编程IE、IP寄存器。
五、单片机与单片机的通信
5.1、点对点的通信
1 硬件连接
如下实现系统1和系统2的通信通过MAX232A芯片每一个系统的发送管脚对应其系统内MAX232A的发送管脚系统1中的MAX232A的接收引脚与系统2中的MAX232A的发送引脚连接。 5.2、多机通信
1硬件连接
单片机构成的多机系统常采用总线型主从式结构。所谓主从式即在数个单片机中有一个是主机其余的是从机从机要服从主机的调度、支配。
80C51单片机的串行口方式2和方式3适用于这种主从式的通信结。采用不同的通信标准时还需要进行相应的电平转换有时还需要对信号进行光电隔离。
在实际的多机应用系统中常采用RS-485串行标准总线进行数据传输。