第6章串行通信-AVR单片机应用技术项目化教程课件.ppt





《第6章串行通信-AVR单片机应用技术项目化教程课件.ppt》由会员分享,可在线阅读,更多相关《第6章串行通信-AVR单片机应用技术项目化教程课件.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6 章章 串行通信串行通信 串行通信基础串行通信基础一一 ATmega16 ATmega16异步串行通信接口异步串行通信接口二二 单片机单片机I/OI/O口模拟串行通信口模拟串行通信三三四四 在实际中外部设备与单片机之间或单片机与单片机之间、单片机与计算机之间交换数据,可以只通过2条线甚至一条线就完成数据的传输与交换。这时数据位排成一串,在数据线上传输,每个时间段只能传输一个比特位,且时间间隔为规定长度,这就是串行通信。第第6 6章章 串行通信串行通信6.1.1 6.1.1 串行通信与并行通信串行通信与并行通信6 6.1.1串行通信基础串行通信基础前面所讨论的AVR单片机I/O口,其数
2、据传输是按字节进行,一个字节8个比特位分别与I/O口位线相对应,同时从8个I/O口输入、输出,一个字节传输只需要时间T即可完成,这是数据的并行传输,如图6-1所示。并行传输具有传输线多、速度快、编程简单、通信距离短的特点。6.1.1 6.1.1 串行通信与并行通信串行通信与并行通信6 6.1.1串行通信基础串行通信基础6.1.1 6.1.1 串行通信与并行通信串行通信与并行通信6 6.1.1串行通信基础串行通信基础6.1.2 6.1.2 串行通信方式串行通信方式6 6.1.1串行通信基础串行通信基础 根据串行通信的组成形式和数据传输方向,串行通信有3种通信方式:单工、半双工、全双工。6.1.2
3、 6.1.2 串行通信方式串行通信方式6 6.1.1串行通信基础串行通信基础单工通信如图6-3a所示。单工通信只允许数据在一个方向上传输,发送端只能发送数据,接收端只能接收数据。半工通信如图6-3b所示。半双工通信数据可以在两个方向传输,但不能同时进行数据收、发。发送端在发送数据的同时,接收端只能接收数据,反之亦然。通过开关切换,可以将收发端功能互换,原来的接收端发送数据,原来的发送端接收数据。全双工通信分别有独立的接收线和独立的发送线,数据的收发可以同时进行,且互不影响,如图6-3c所示。在单片机系统中,三种串行通信方式都有应用。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6
4、 6.1.1串行通信基础串行通信基础1.1.同步通信同步通信 由于同步通信是以数据块为传输单元,冗余数据信息少,因此同步通信的通信速度很高,可达到Mbps以上。在单片机系统中,采用同步串行通信时可以取消数据块前面的同步字符,用专门的时钟线来传递同步信号,以保证收发端数据的严格同步。因此,在单片机的同步通信中,单工或半双工的通信硬件连接时需要两条线,一条传输数据,另一条专用于传输时钟信号,而在全双工通信中则需要3条线,1条数据输入、1条数据输出、1条时钟线。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础2 2、异步通信、异步通信 异步通信以字符
5、为传输单位,通信中两个字符的时间间隔不固定(异步),而字符中的两个相邻的比特位的时间是固定的(同步)。在异步通信中,没有专门的、独立的同步时钟信号,典型的异步通信的数据帧格式如图6-5所示,由起始位、数据位、奇偶校验位、停止位所组成。起始位为一固定时间长度的低电平,表示一帧数据的开始,接着就是传输的数据,其长度有5位、6位、7位、8位、9位等。数据位后面是奇偶校验位,指示数据通信的出错情况。校验位后面是1位或2位停止位。停止位为高电平,表示这一帧数据的结束。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础3 3、波特率、波特率(Baud Rat
6、eBaud Rate)波特率是表示串行通信传输数据快慢的物理参数,其定义为单位时间内传输的二进制bit数,用位/秒(Bit per Second)表示,或写成bps。如串行通信中的数据传输波特率为128bps,意为每秒钟传输128个bit,合计16个字节,传输一个比特所需要的时间为:1/128bps=0.0078秒=7.8毫秒。传输一个字节的时间为:7.88=62.4毫秒。在异步通信中,常见的波特率通常有1200、2400、4800、9600等,其单位都是bps。高速的可以达到19200bps。异步通信中允许收发端的时钟(波特率)误差不超过5%。6.1.4 6.1.4 同步通信与异步通信同步通
7、信与异步通信6 6.1.1串行通信基础串行通信基础1 1、RS-232RS-232接口接口RS-232C是1969年电子工业协会(EIA)制定的在数据终端设备DTE和数据通讯设备(DCE)之间的串行的二进制数据交换的接口,全称是EIA-RS-232-C协议,实际中常称RS-232,也称EIA-232,最初采用DB-25作为连接器,包含双通道,但是现在也有采用DB-9的单通道接口连接,其端口定义见表6-1所示。在实际中,DB9由于结构简单,仅需要3根线就可以完成全双工通信,所以在实际中使用比较多,应用广泛。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行
8、通信基础1 1、RS-232RS-232接口接口6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础1 1、RS-232RS-232接口接口RS-232采用负逻辑电平,用负电压表示数字信号逻辑1,用正电平表示数字信号的逻辑0。规定逻辑1的电压范围为-5-15V,逻辑0的电压范围为+5V-+15V。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能
9、抑制共模干扰等问题,因此一般用于20m以内的通信。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础2.RS-4852.RS-485接口规范接口规范 RS-485为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-485定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100kbps时),并允许在一条平衡线上连接最多10个接收器。RS-485是一种单机发送、多机接收的单向、平衡传输规范,为扩展应用范围,随后又为其增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同
10、时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,其特点可以总结为:6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础2.RS-4852.RS-485接口规范接口规范(1)差分平衡伟输;(2)多点通信;(3)驱动器输出电压(带载):1.5V;(4)接收器输入门限:200mV;(5)-7V至+12V总线共模范围;(6)最大输入电流:1.0mA/-0.8mA(7)最大总线负载:32个单位负载(UL);(8)最大传输速率:10Mbps;(9)最大电缆长度:4000英尺(3000米)。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信
11、6 6.1.1串行通信基础串行通信基础2.RS-4852.RS-485接口规范接口规范 RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。RS-485的电气特性是用传输线之间的电压差表示逻辑信号,逻辑“1”以两线间的电压差为+(26)V表示;逻辑“0”以两线间的电压差为-(26)V表示。RS-232-C接口在总线上只允许连接1个收发器,即一对一通信方式。而RS-485接口在总线上是允许不只一个收发器存在,总线允许最多128个收发器存在,具备多站能力,基于RS-485接口可以方便的组建设备网络,实现组网传输或组网控制。6.1.4 6.1.4 同步通信与异步通
12、信同步通信与异步通信6 6.1.1串行通信基础串行通信基础2.RS-4852.RS-485接口规范接口规范 由于RS-485接口具有良好的抗噪声干扰性,使之成为远传输距离、多机通信的首选串行接口。RS-485允许总线存在多主机负载,其仅仅是一个电气接口规范,只规定了平衡驱动器和接收器的物理层电特性,而对于保证数据可靠传输和通信的连接层、应用层等协议在RS-485中并没有定义,需要用户在实际使用中予以定义。Modbus、RTU等是基于RS-485物理链路的常见的通信协议。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础 3 3串行通信接口电平转换
13、串行通信接口电平转换 (1 1)TTL/CMOSTTL/CMOS电平与电平与RS-232RS-232电平转换电平转换6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础 3 3串行通信接口电平转换串行通信接口电平转换 (2 2)TTL/CMOSTTL/CMOS电平与电平与RS-485RS-485电平转换电平转换RS-485电平是平衡差分传输,而TTL/CMOS是单极性电平,需要经过电平转换才能进行信号传输。常见的RS-485电平转换芯片有MAX485、MAX487等。MAX485为8个脚的芯片,支持半双工通信,RO为数据接收引脚,RI为数据发送引脚
14、,RE#为接收使能端,DE为发送使能端。见图6-9所示。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1.1串行通信基础串行通信基础 3 3串行通信接口电平转换串行通信接口电平转换 (2 2)TTL/CMOSTTL/CMOS电平与电平与RS-485RS-485电平转换电平转换 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口ATmega16串行接口主要由数据寄存器、控制寄存器、波特率发生器、发送移位寄存器、接收移位寄存器、奇偶校验电路等电路组成,见图6-10。6.2.2 6.2.2 串
15、行通信接口组成串行通信接口组成6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口(1 1)数据寄存器)数据寄存器UDRUDR UDR数据寄存器分为接收数据寄存器和数据发送寄存器。(2 2)控制寄存器)控制寄存器分别为UCSRA、UCSRB、UCSRC,通过对控制寄存器的编程,以实现对串行通信口的工作模式、波特率、数据格式等进行设置。(3 3)波特率发生器)波特率发生器ATmega16具有专用的波特率发生器器件,其工作时钟来源于系统时钟fosc,经过如图6-11所示的时钟电路产生数据收、发电路所需要的时钟信号。6.2.2 6.2.2 串行通信接口组成串行通信接口组成
16、6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口 ATmega16的串行口通过编程可以实现4 种时钟模式,分别为正常的异步模式、倍速异步模式、主机同步模式、从机同步模式。通过对控制寄存器的相关位进行编程,可以设定串行口工作在全双工异步模式或移位寄存器的同步模式。无论是串行口工作与同步模式或异步模式,其波特率均可是可以编程的。在异步模式中,波特率具有倍增功能,在不改变任何参数、数据前提下,通过设置相关位可以使波特率时钟提高1倍,以应用于更高通信速度的场合。在同步模式中,同步时钟源可以编程选择来自于主机或来自于从机。6.2.2 6.2.2 串行通信接口组成串行通信接
17、口组成6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口(4 4)发送移位寄存器)发送移位寄存器 发送移位寄存器的功能是将发送的数据进行转换,将发送数据寄存器UDR中数据在时钟信号的作用进行移位,每一个时钟数据向前移一位,最后将UDR中的并行数据变成一串串行数据从数据发送引脚TXD发送出去。(5 5)接收移位寄存器)接收移位寄存器 接收移位寄存器的功能是将接收到的串行数据进行转换,在时钟信号作用下,数据接收引脚RXD每收到一个数据移位寄存器向前移动移位,实现将接收的串行数据转变成并行数据的功能,收到的数据被放入数据接收寄存器UDR中。6.2.2 6.2.2 串行通
18、信接口组成串行通信接口组成6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口(6 6)奇偶校验电路)奇偶校验电路 奇偶校验电路是完成对收发数据的奇偶校验。奇偶校验是检测数据通信出错的常用手段,简单易于实现。当发送数据寄存器UDR中二进制数1的个数为奇数个时,则将相应的奇偶标志位置1,连同数据位、启停位构成数据帧一并发送。接收端接收到以后,如果接收寄存器中UDR二进制数1的个数为奇数个,则奇偶标志位不变,依旧为1。因此通过判别对比收发端奇偶标志可以快速检测数据在传输过程中是否出错,这种规则称为“寄校验”,反之如果1的个数为偶数个则将奇偶标志置1的称为“偶校验”,在控
19、制寄存器中可以编程选择“奇校验”还是“偶校验”。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口1 1UDRUDR数据寄存器数据寄存器接收器和发送器使用的寄存器都是UDR寄存器,但是仅名字相同,他们是两个完全独立的数据寄存器。当对UDR写操作时数据通过TXB发送出去,当执行UDR读操作时将RXB接收的数据读出来。当数据长度不足8bit时如5、6、7 bit,未被使用的数据位被发送器忽略,而接收器则将它们直接置为0。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162
20、 ATmega16异步串行通信接口异步串行通信接口1 1UDRUDR数据寄存器数据寄存器 对UDR执行写操作前应该先检查UDR是否为空,即UDR里面的数据是否被发送结束,同访问控制寄存器的标志位实现。若写UDR时其不为空即数据发送还未结束,新写入的数据无效。接收缓冲器UDR包含一个两级FIFO,接收的数据被置于FIFO中。读UDR会影响FIFO的状态,但FIFO空时同样会在控制寄存器中产生相应标志位。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口2 2波特率寄存器波特率寄存器UBRRUBRR 波特率发
21、生器工作寄存器UBRR中的内容决定其产生的波特率值大小。波特率与UBRR寄存器取值关系如表6-2所示6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口2 2波特率寄存器波特率寄存器UBRRUBRR6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口2 2波特率寄存器波特率寄存器UBRRUBRR 表中fosc表示系统晶振频率大小,B为通信波特率,UBRR为波特率寄存器。常用的波特率有1200bps、2400bps等,在已
22、知波特率和fosc前提下通过应用表6-x中的公式可以计算出UBRR寄存器取值。UBRR寄存器为16位寄存器,分成高位UBRRH和低位UBRRL两部分。在ICCAVR编译器使用C语言编程时,可以将一个16位的数直接写入UBRR寄存器即可。但需要注意的是,UBRR的取值必须在0-4095之间。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口3 3控制和状态寄存器控制和状态寄存器 控制和状态寄存器是用来对串行口进行编程以及保存串行口的工作各种工作状态,在使用时至关重要。ATmega16有三个控制与状态寄存器,
23、分别为UCSRA、UCSRB、UCSRC。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口3 3控制和状态寄存器控制和状态寄存器 RXCRXC位(位(Bit7Bit7):接收结束标志位。接收器已成功接收一个数据并置于接收缓冲器中,此时RXC 置位。RXC 标志可用来产生接收结束中断,执行完程序后自动清零。对该位写1清零会导致一次重复接收错误。TXCTXC位(位(Bit6Bit6):发送结束标志位。发送缓冲器(UDR)中的数据发送完成UDR为空,此时TXC 置位,TXC 标志可用来产生发送结束中断。执行完
24、程序后该标志位自动清零,对该位写1清零会导致一次重复发送错误。UDREUDRE位(位(Bit5Bit5):数据寄存器空标志位。(1 1)控制与状态寄存器)控制与状态寄存器UCSRAUCSRA6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口3 3控制和状态寄存器控制和状态寄存器 FEFE(bit4bit4):帧错误位。DORDOR(Bit 3 Bit 3):数据溢出标志位。UPEUPE(Bit 2Bit 2):奇偶校验错误标志位。U2XU2X(Bit 1Bit 1):波特率倍增控制位。MPCMMPCM(B
25、it 0 Bit 0):多处理器通信模式标志位。帧错误位(FE)、数据溢出标志位(DOR)、奇偶校验错误标志位(UPE)与UDR中的内容有关,当对UDR进行读写操作时会影响这些标志位,因此读UDR数据之前应先将这三个标志位的内容读取出来。这三个标志位不会触发CPU产生中断。(1 1)控制与状态寄存器)控制与状态寄存器UCSRAUCSRA6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6.2 ATmega162 ATmega16异步串行通信接口异步串行通信接口3 3控制和状态寄存器控制和状态寄存器 RXCIERXCIE位(位(Bit 7 Bit 7):接收结束中断使能位。TXCI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 通信 AVR 单片机 应用技术 项目 教程 课件

限制150内