第6章串行通信AVR单片机应用技术项目化教程课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第6章串行通信AVR单片机应用技术项目化教程课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 通信 AVR 单片机 应用技术 项目 教程 课件
- 资源描述:
-
1、 串行通信基础串行通信基础一一 ATmega16 ATmega16异步串行通信接口异步串行通信接口二二 单片机单片机I/OI/O口模拟串行通信口模拟串行通信三三 项目设计项目设计四四 在实际中外部设备与单片机之间或单片机与单片机之间、单片机与计算机之间交换数据,可以只通过2条线甚至一条线就完成数据的传输与交换。这时数据位排成一串,在数据线上传输,每个时间段只能传输一个比特位,且时间间隔为规定长度,这就是串行通信。6.1.1 6.1.1 串行通信与并行通信串行通信与并行通信6 6.1 .1串行通信基础串行通信基础前面所讨论的AVR单片机I/O口,其数据传输是按字节进行,一个字节8个比特位分别与I
2、/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串行通信基础串行通信基础在串行数据传输中,一个字节8个比特数据排成一串,可以高位(MBS)在前,也可以低位在前(LBS),依次在数据线上进行传输。如果其传输速度与并行通信的速度相等且都为T,则串行通信中传输完一个字节所需要时间为8T,传输n个比特位
3、则需要nT时间,如图6-2所示。串行通信具有传输线少、成本低等特点,比较适合远通信。6.1.1 6.1.1 串行通信与并行通信串行通信与并行通信6 6.1 .1串行通信基础串行通信基础6.1.2 6.1.2 串行通信方式串行通信方式6 6.1 .1串行通信基础串行通信基础 根据串行通信的组成形式和数据传输方向,串行通信有3种通信方式:单工、半双工、全双工。6.1.2 6.1.2 串行通信方式串行通信方式6 6.1 .1串行通信基础串行通信基础单工通信如图6-3a所示。单工通信只允许数据在一个方向上传输,发送端只能发送数据,接收端只能接收数据。半工通信如图6-3b所示。半双工通信数据可以在两个方
4、向传输,但不能同时进行数据收、发。发送端在发送数据的同时,接收端只能接收数据,反之亦然。通过开关切换,可以将收发端功能互换,原来的接收端发送数据,原来的发送端接收数据。全双工通信分别有独立的接收线和独立的发送线,数据的收发可以同时进行,且互不影响,如图6-3c所示。 在单片机系统中,三种串行通信方式都有应用。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础1. 1. 同步通信同步通信 SYNC(Synchronous Communication)同步通信以数据块为传输单元,一个数据块中包含了若干个数据字符(比如数据字节),仅在数据块首部设置有
5、12个同步字符,用以进行数据通信。一旦建立数据同步,就可以进行数据字符的传输,中间无需再同步,数据块中的数据字符长度可定义,如图6-4。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础1. 1. 同步通信同步通信 由于同步通信是以数据块为传输单元,冗余数据信息少,因此同步通信的通信速度很高,可达到Mbps以上。 在单片机系统中,采用同步串行通信时可以取消数据块前面的同步字符,用专门的时钟线来传递同步信号,以保证收发端数据的严格同步。因此,在单片机的同步通信中,单工或半双工的通信硬件连接时需要两条线,一条传输数据,另一条专用于传输时钟信号,而在
6、全双工通信中则需要3条线,1条数据输入、1条数据输出、1条时钟线。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础2 2、异步通信、异步通信 异步通信以字符为传输单位,通信中两个字符的时间间隔不固定(异步),而字符中的两个相邻的比特位的时间是固定的(同步)。在异步通信中,没有专门的、独立的同步时钟信号,典型的异步通信的数据帧格式如图6-5所示,由起始位、数据位、奇偶校验位、停止位所组成。起始位为一固定时间长度的低电平,表示一帧数据的开始,接着就是传输的数据,其长度有5位、6位、7位、8位、9位等。数据位后面是奇偶校验位,指示数据通信的出错情况
7、。校验位后面是1位或2位停止位。停止位为高电平,表示这一帧数据的结束。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础2 2、异步通信、异步通信数据帧后面跟着几位保证数据可靠传输的空闲位。异步通信数据帧的间隔时间不同,通信时数据是一帧一帧进行传输,每帧通过起始位来同步。由于异步通信中没有专门的时钟同步信号,因此在芯片内部需要专门的时序还原电路从异步数据帧中提取时钟信号,以保证接收的数据被正常还原。6.1.3 6.1.3 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础3 3、波特率、波特率(Baud RateBau
8、d 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 同步通信与异步通信同步通信与异步
9、通信6 6.1 .1串行通信基础串行通信基础由于串行通信方式能实现较远距离的数据传输,因此在远距离控制时或在工业控制现场通常使用串行通信方式来传输数据。由于远距离数据传输时普通的TTL或CMOS电平无法满足工业现场的干扰和各种电气性能,因此不能用于直接进行远距离的数据传输。国际电气工业协会EIA推出了RS-232、RS485等接口标准。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础1 1、RS-232RS-232接口接口RS-232C是1969年电子工业协会(EIA)制定的在数据终端设备DTE和数据通讯设备(DCE)之间的串行的二进制数据交
10、换的接口,全称是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串行通信基础串行通信基础1 1、RS-232RS-232接口接口6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础1 1、RS-232RS-232接口接口6.1.4 6.1.4
11、 同步通信与异步通信同步通信与异步通信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属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。6.1.4 6.1
12、.4 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础2. RS-4852. RS-485接口规范接口规范 RS-485为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-485定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100kbps时),并允许在一条平衡线上连接最多10个接收器。RS-485是一种单机发送、多机接收的单向、平衡传输规范,为扩展应用范围,随后又为其增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,其
13、特点可以总结为: 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 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串行通信基础
14、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 同步通信与异步通信同步通信与异步通信6 6.1
15、 .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串行通信接口电平转换串行通信接口电平转换
16、(1 1)TTL/CMOSTTL/CMOS电平与电平与RS-232RS-232电平转换电平转换TTL/CMOS电平采用的是0-5V的正逻辑,即0V表示逻辑0,5V表示逻辑1,而RS-232采用的负逻辑,逻辑0用+5V-+15V表示,逻辑1用-5V-15V表示。在TTL/CMOS的单片机系统中,如果使用RS-232串行口进行通信,必须进行电平转换。MAX232是一种常见的RS-232电平电平转换芯片,单芯片解决全双工通信方案,单电源工作,外围仅需少数几个电容器即可,其逻辑图和应用原理见图6-7、6-8所示。6.1.4 6.1.4 同步通信与异步通信同步通信与异步通信6 6.1 .1串行通信基础串
17、行通信基础 3 3串行通信接口电平转换串行通信接口电平转换 (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个脚的芯片,支持半双工通信
18、,RO为数据接收引脚,RI为数据发送引脚,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.1 6.2.1 串行通信接口特点串行通信接口特点6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口(1)全双工通信操作,独立收发单元,2级FIFO;(2)支持异步或同步通信方式;(3)具有高精度的专用波特率发生器;(4
19、)数据位长度支持5、6、7、 8、9位数据,(5)硬件奇偶判决功能;(6)具有数据过速检测功能;(7)具有帧错误检测功能;(8)三个独立的中断源:发送结束中断, 发送数据寄存器空中断,以及接收结束中断;(9)支持多处理器通讯模式。 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口ATmega16串行接口主要由数据寄存器、控制寄存器、波特率发生器、发送移位寄存器、接收移位寄存器、奇偶校验电路等电路组成,见图6-10。 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6. .2 ATmega16
20、2 ATmega16异步串行通信接口异步串行通信接口(1 1)数据寄存器)数据寄存器UDRUDR UDR数据寄存器分为接收数据寄存器和数据发送寄存器。(2 2)控制寄存器)控制寄存器分别为UCSRA、UCSRB、UCSRC,通过对控制寄存器的编程,以实现对串行通信口的工作模式、波特率、数据格式等进行设置。(3 3)波特率发生器)波特率发生器ATmega16具有专用的波特率发生器器件,其工作时钟来源于系统时钟fosc,经过如图6-11所示的时钟电路产生数据收、发电路所需要的时钟信号。 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6. .2 ATmega162 ATmega16异步
21、串行通信接口异步串行通信接口 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口 ATmega16的串行口通过编程可以实现4 种时钟模式,分别为正常的异步模式、倍速异步模式、主机同步模式、从机同步模式。 通过对控制寄存器的相关位进行编程,可以设定串行口工作在全双工异步模式或移位寄存器的同步模式。无论是串行口工作与同步模式或异步模式,其波特率均可是可以编程的。 在异步模式中,波特率具有倍增功能,在不改变任何参数、数据前提下,通过设置相关位可以使波特率时钟提高1倍,以应用于更高通信速度的场合。 在同步模式中,
22、同步时钟源可以编程选择来自于主机或来自于从机。 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口(4 4)发送移位寄存器)发送移位寄存器 发送移位寄存器的功能是将发送的数据进行转换,将发送数据寄存器UDR中数据在时钟信号的作用进行移位,每一个时钟数据向前移一位,最后将UDR中的并行数据变成一串串行数据从数据发送引脚TXD发送出去。(5 5)接收移位寄存器)接收移位寄存器 接收移位寄存器的功能是将接收到的串行数据进行转换,在时钟信号作用下,数据接收引脚RXD每收到一个数据移位寄存器向前移动移位,实现将接收
23、的串行数据转变成并行数据的功能,收到的数据被放入数据接收寄存器UDR中。 6.2.2 6.2.2 串行通信接口组成串行通信接口组成6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口(6 6)奇偶校验电路)奇偶校验电路 奇偶校验电路是完成对收发数据的奇偶校验。奇偶校验是检测数据通信出错的常用手段,简单易于实现。当发送数据寄存器UDR中二进制数1的个数为奇数个时,则将相应的奇偶标志位置1,连同数据位、启停位构成数据帧一并发送。接收端接收到以后,如果接收寄存器中UDR二进制数1的个数为奇数个,则奇偶标志位不变,依旧为1。因此通过判别对比收发端奇偶标志可以快速检测数据
24、在传输过程中是否出错,这种规则称为“寄校验”,反之如果1的个数为偶数个则将奇偶标志置1的称为“偶校验”,在控制寄存器中可以编程选择“奇校验”还是“偶校验”。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口1 1UDRUDR数据寄存器数据寄存器接收器和发送器使用的寄存器都是UDR寄存器,但是仅名字相同,他们是两个完全独立的数据寄存器。当对UDR写操作时数据通过TXB发送出去,当执行UDR读操作时将RXB接收的数据读出来。 当数据长度不足8bit时如5、6、7 bit,未被使用的数据位被发送器忽略,而接
25、收器则将它们直接置为0。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6. .2 ATmega162 ATmega16异步串行通信接口异步串行通信接口1 1UDRUDR数据寄存器数据寄存器 对UDR执行写操作前应该先检查UDR是否为空,即UDR里面的数据是否被发送结束,同访问控制寄存器的标志位实现。若写UDR时其不为空即数据发送还未结束,新写入的数据无效。 接收缓冲器UDR包含一个两级FIFO,接收的数据被置于FIFO中。读UDR会影响FIFO的状态,但FIFO空时同样会在控制寄存器中产生相应标志位。6.2.3 6.2.3 串行通信接口寄存器串行通信接口寄存器6 6. .2
展开阅读全文