基于AVR单片机的通信系统设计

上传人:痛*** 文档编号:86702140 上传时间:2022-05-08 格式:DOC 页数:65 大小:1.30MB
收藏 版权申诉 举报 下载
基于AVR单片机的通信系统设计_第1页
第1页 / 共65页
基于AVR单片机的通信系统设计_第2页
第2页 / 共65页
基于AVR单片机的通信系统设计_第3页
第3页 / 共65页
资源描述:

《基于AVR单片机的通信系统设计》由会员分享,可在线阅读,更多相关《基于AVR单片机的通信系统设计(65页珍藏版)》请在装配图网上搜索。

1、 辽宁科技大学信息技术学院 12基于AVR单片机的通讯系统设计摘 要在当前社会,通信技术已经深入到各行各业中。在本次系统设计中,将通信技术与单片机技术结合,完成了一个电压信号采集及通信过程。系统设计过程中,了解通信技术中的相关通信方式及协议,用AVR单片机完成系统功能,分别完成硬件设计、软件设计及系统测试工作,达到对整个通信系统的控制。本文以ATMEGA8单片机为控制核心,利用直流电压信号模拟输入信号,采集输入信号,将采集到的数据经数字信号处理后传给上位机分析并保存。工作过程:1、单片机初始化所用到的功能模块的控制字,等待上位机的开始采集命令。2、接收到上位机的命令后,从PC0(ADC0)端口

2、采集电压信号,完成模数转换;3、读取转换后的数据,根据A/D转换器的输入/输出关系确定实际的电压信号值;4、将电压信号值保留一位小数,进行BCD编码后,通过异步通信方式发送给上位机;5、上位机通过GUI界面将数据实时显示出来,并可人为的保存采集的结果;关键字:AVR;ATMEGA8;电压采集;通信;MAX232AbstractIn moden time, technology has been penetrated into a large number of industry,under this environment。It is useful to design the system w

3、hich combine communication-technology with SCM technology to achieve a process of collect voltage and communication。During the period of system designing,what is communication pattern and protocol must be known,on this basis,using AVR SCM to finish the function what we need in this system,which incl

4、ude circuit design、software design and test work。Making ATMEGA8 as center of this control system,DC voltage as input signal,collecting input signal and converting it to fact value of voltage,at last SCM transfer it to PC software,we can save data of value of voltage in PC。Work process:1、SCM initiali

5、ze inner function which is used in work,then wait for command from PC software;2、After receiving collecting command from PC software,SCM begin to collect voltage from PC0 port and finish A/D convertion;3、reading data which has been converted and calculating fact value of voltage which been collected

6、;4、we only save single decimal with data which has been converted,then BCD coding with every bit,at last send to PC software by asynchronous communication pattern;5、PC software real-time displays the result in GUI,we can artificial save result;Keyword:AVR;ATMEGA8;collect voltage;communication;MAX232

7、目录基于AVR单片机的通讯系统设计1摘 要1ABSTRACT2第一章 绪论51.1 前言51.2 设计本系统的背景51.2.1 单片机的发展61.2.2 通信技术的发展71.3 系统结构71.3.1 系统硬件设计71.3.2 系统软件设计81.4 可行性分析9第二章 系统使用的通信方式及协议介绍102.1 通信方式102.1.1 串行通信与并行通信102.1.2 同步通信与异步通信102.2 RS232协议介绍122.2.1 概述122.2.2 电气特性122.2.3 RS-232C 的接口信号13第三章 系统硬件设计163.1 ATmega8介绍163.1.1概述163.1.2系统时钟及时钟

8、选项173.1.3系统复位183.1.4 ATmega8同步/异步串行接口USART193.1.5 ATmega8通用I/O口263.1.6 ATmega8 A/D转换293.2 MAX232介绍343.2.1 原理343.2.2 引脚说明343.3 DB9接口说明353.3.1 原理介绍353.3.2引脚说明353.4 硬件设计363.4.1 硬件设计内容363.4.2 原理图设计373.4.3 PCB设计38第四章 系统软件设计404.1 系统软件概述404.1.1 上位机404.1.2 单片机内部程序404.2 系统软件结构414.2.1单片机内部程序414.2.2 上位机434.2.3

9、 程序流程图454.3 程序测试及运行结果484.3.1 程序测试484.3.2 运行结果49第五章 技术经济分析50第六章 结论51参考文献52致谢53第一章 绪论1.1 前言随着当前科学技术的发展,通信技术的发展也日新月异,从数据传送方式来说,通信包括并行通信和串行通信,从通信方式来说,通信包括同步方式和异步方式,在实际的应用中,根据不同的条件和要求,我们可选择适当的方式进行PC机与单片机之间、PC机与PC机之间、单片机与单片机之间的通信,每种通信方式在实际的应用中各有各的优缺点。通信按照传统的理解就是信息的传输与交换,在当今信息社会,通信则与传感、计算技术紧密结合,成为整个社会的高级“神

10、经中枢”。没有通信,人类社会是不可想象的,一般来说,社会生产力水平要求社会通信水平与之相适应,若通信的水平跟不上,社会成员之间的合作程度就受到限制,社会生产力的发展也必然最终受到限制,可见,通信是十分重要的。控制技术包括经典控制理论、现代控制理论,过程控制理论等其它的控制理论,控制技术可能过PID、计算机,单片机,PLC等实现,对于不同的被控对象,一旦确定了被控量和控制量后,可经过传感器等一些检测装置将不同的被控量转化为电信号或数字信号,再运用数字信号处理技术得到如何调整控制量的大小,从而达到对被控对象的控制要求。由于控制技术的实用性很强,所以在生活中应用非常的广泛。单片机是一种能够实现控制技

11、术相关理论并对被控对象进行高精确度控制的器件,并且对被控对象的控制过程可通过编程实现,支持高级语言,简单易用,从而得到了广泛的应用。单片机的种类非常的多,在本次系统的设计中,我们采用AVR系列单片机,型号为ATMEGA8,该单片机片上资源丰富,已经包括了A/D转换器,所以减少了外围器件,使整个系统更加简单。将控制技术与通信技术的结合,提高了通信效率和准确率,进一步推动了两者的发展和科学技术的前进,成为以后电子技术发展的一个新方向。1.2 设计本系统的背景1.2.1 单片机的发展单片机自70年代问世以来得到蓬勃发展,目前单片机功能正日渐完善,在目前的单片机市场中,单片机的种类非常的多,最简单的是

12、以51为核心的51系列单片机,由于该系列单片机在结构上的简单和内部资源不是非常多,所以适合初学者入门,因此国内的大学本科期间都以51单片机为基础作为教材。对于单片机的发展,从内部资源上来说,有些公司生产了更多的内部资源非常丰富的单片机,比如AVR、PIC等单片机,这些高级的单片机在生活中的运用更加广泛,他们更多的集成了一些常用功能,例如数模转换,串行通信等,这些功能的集成使得在日常生活的运用和设计中减少了外围设备,使整个系统的性能更加可靠。从单片机传输数据位数来说,单片机经历了从8位到32位在发展过程,89C51,89C52,ATMEGA8,ATMEGA16等都属于8位单片机处理器,而像ARM

13、、DSP等都属于32位处理器,数据位数从8位到32位的上升很大程度上提高了处理器的性能,使得单片机可以完成更高要求的任务。在单片机内部的ROM和指令上,人们也对其做了很大程序上的改进。将EPROM作为程序存储区的单片机在重新烧写程序的时候须要将单片机取下为,放在特制的设备中用紫外线将内容擦除干净,而现在的单片机都将EEPROM存储器或者FLASH存储器作为程序存储器,在烧写程序方面提供了很大的方便,可以反复烧写上万次。在线编程目前有两种不同方式:1、ISP方式。支持该编程方式的单片机在出厂的时候,在系统内部已经固化了引导程序,当上电复位后,单片机首先运行这段固化程序,检测串口是否有烧写程序的信

14、号,若有则开始接收烧写器的数据,清空程序区,将接收到的数据放入程序区,接收完毕后开始执行新的程序。2、IAP方式,支持该编程方式的单片机将内部的程序区分成两个部分,一部分装正在执行的程序,另一部分装从烧写器传来的新程序,这种编程方式在单片机运行时可将程序写入,等烧写完毕后,单片机用新写入的程序覆盖原来的程序,重新开始执行。现在很多单片机都具用了在线仿真的功能,将仿真器与单片机相连,在上位机的操作下让单片机实现单步运行,实时反映单片机内部的运行状态,通过这种硬件仿真的功能,开发人员可以更容易的找到程序的错误,对于初学者来说更是非常的重要。单片机抗干扰能力加强,使的它更加适合工业控制领域,具有更加

15、广阔的市场前景。1.2.2 通信技术的发展、数据通信数据通信是依照一定的协议,利用数据传输技术在两个终端之间传递数据信息的一种通信方式和通信业务。数据通信中传递的信息均以二进制数据来表现。为了实现数据通信,必须进行数据传输,即将位于一个地方的数据源发出的数据信息通过传输信道传送到另一地数据接收设备。为了改善传输质量、降低差错率、并使传输过程有效地进行,系统根据不同应用要求,规定了不同类型的具有差错控制的数据链路控制规程,这些规程有的符合国际标准,有的是国家标准,也有的是公司自己制定的。但对开放性的用户接口通常是采用国家标准或国际标准,以利于互连互通。、无线通信无线通信中目前最火的两个方向是3G

16、和WiFi/WiMax。相对于目前的第二代移动通信,3G意味着可视通话、视频浏览、高速上网等除语音之外的众多数据业务。3G是一个技术平台,必须有运营商、内容服务提供商协同起来,才能共同发展。这一产业合作将拉动整个信息产业增长,还会对娱乐业、传媒业带来革命性的变化。3G使我们的手机更加智能,WiMax使我们的计算机可以“移动”上网。、光通信作为整个通信网体系中的最低层传输层,在最近20年经历了三种传输介质:铁线、铜缆和光纤。随着社会的进步和人们对通信服务质量(QOS)期望的不断提高,铁线已经不能满足现在通信的发展,早早地退出了历史的舞台。最近10年了,数据业务的业务量逐渐逼近甚至超过了传统的语音

17、业务,成为电信网络中发展最为迅猛的业务,铜缆由于其自身的固有缺点,也步铁线的后尘,逐步被淘汰。 1.3 系统结构1.3.1 系统硬件设计对于一个通信系统来说,除了要有上层的通信协议与软件的支持外,还要有硬件作为信号的传输介质,完成有线通信任务,该系统采用已有的硬件模块完成单片机与PC机之间系统任务,该系统的硬件部分主要包括ATMEGA8单片机、MAX232芯片、DB9MALE接口、ISP接口。用直流电压模拟该系统的输入信号,由于ATMEGA8单片机内部集成了ADC转换器所以不用再外接模数转换器,ATMEGA8读取ADC转换器的转换结果,然后根据数字信号与模拟信号的关系求出实际的模拟电压值,再用

18、BCD编码规则进行编码,将编码后的结果通过异步数据传输方式上传给上位机。MAX232芯片在整个系统中完成TTL电平与PC机电平的转换工作,芯片外接有泵升电容和稳压电容,保证电平信号转换的可靠性。DB9MALE接口是负责信号传输的9针接口芯片,遵守RS232标准,DB9接口有MALE与FEMALE之分,在单片机上主要采用DB9MALE接口,而且在本系统只使用了第二管脚(接收数据引脚)与第三管脚(发送数据管脚)。对于其它管脚主要是用于握手信号,由于该系统要求不高,所以不需要使用。ISP接口:AVR单片机支持ISP程序下载方式,根据接口管脚的定义,将ATMEGA8单片机与ISP接口相连,实现ISP下

19、载。ISP接口管脚定义主要有:MISO、VCC、SCK、MOSI、RESET、GND,将ATMEGA8单片机上的对应管脚与之相连。硬件设计上的总体思路是:单片机初始化所用到的外部芯片和内部芯片的功能,然后等待上位机命令,接收到开始采集的命令后,执行信号采集工作,采集工作完成后,将采集信号经过数据信号处理得到实际的模拟信号值,然后BCD编码后上传给上位机,之后继续采集信号,一直到接收到停止采集命令。1.3.2 系统软件设计对于一个通信系统来说,为了达到精确控制的目的,通信的接收与发送双方在数据传输上保持协调,必须采用软件技术来保证,对于采用同步通信的双方来说,时钟信号必须保持一致,要求精度很高,

20、对于异步操作来说,只要保证数据格式正确既可,在该系统中采用精度要求低的异步通信方式。该系统软件主要有单片机内部的程序和上位机软件两部分组成。单片机内部的程序用C语言编写,面向底层,直接读写单片机内部的控制字和各芯片的控制字,首先初始化各芯片的内部控制字,然后在系统的运行过程中,通过读取内部状态控制字的内容确定系统的运行状态和发出什么控制信号,最终实现单片机与各芯片、上位机的协调运行。上位机采用C+语言,使用了MFC的封装库,整个界面框架是由VC+的辅助程序建立,在这个框架下,再由我们自己添加控件和代码,在功能上主要完成了数据的收发、数据的保存、传送数据的帧结构设置和串行端口的选择。整个通信功能

21、的实现都是调用了微软公司提供的MSCOMM控件来完成,该控件满足了该系统的所有功能实现要求。上位机设计思路:打开通信串口端,向单片机发送采集命令,用消息响应机制接从收单片机上传到PC机的数据信号,在接收数据时,遵守上位机与单片机程序约定好的数据格式约定。1.4 可行性分析在两台设备的通信过程中,只要保证数据接收和发送双方线路的正常连接,按照规定的数据格式和传送方式传送数据,就可以正确的传输数据,所以只要按照我们上述的思路完成了硬件上和软件上的工作,该系统就可以正常的工作。本次设计的系统属于数字通信系统,数据的收发双方是PC机和单片机,通信方式是异步串行通信,编码和解码的过程由上位机和单片机内部

22、的程序来解决,而整个系统除了外界信号采集时采集模拟信号外,其它任何时候都是数字信号,而采集的模拟信号经过AD转换器也变成了数字信号,所以对于通信过程来说不涉及调制/解调的过程,因此整个系统满足了一个数字通信所要求的基本组成部分,是一个可执行性设计方案。能够达到我们的要求。第二章 系统使用的通信方式及协议介绍2.1 通信方式2.1.1 串行通信与并行通信随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。并行通信通

23、常是将数据字节的各位用多条数据线同时进行传送,如图2-1所示。在时间上各位是同时发送的只是传输线路不同而以,并行通信控制简单、传输速度快;由于传输线较多,长距离传送时,成本高且接收方的各位同时接收存在困难。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,时间上不同步。如图2-1所示。串行通信的主要特点是传输线少,长距离传送时,成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。设备A设备BN条数据线应答信号并行通信设备A设备B一条数据线应答信号串行通信图2-1 串行和并行通信方式设备A设备A起始位 数据位 较验位 停止位停止位 较验位 数据位 起始位异步方式图

24、2-2 异步通信方式2.1.2 同步通信与异步通信异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。异步数据格式图2-3 异步通信数据格式同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。同步方式图2-4

25、 同步通信方式图2-5面向字符的同步格式面向字符的同步格式 如图2-5所示,此时,传送的数据和控制信息都必须由规定的字符集(如ASCII码)中的字符所组成。图中帧头为1个或2个同步字符SYN(ASCII码为16H)。SOH为序始字符(ASCII码为01H),表示标题的开始,标题中包含源地址、目标地址和路由指示等信息。STX为文始字符(ASCII码为02H),表示传送的数据块开始。数据块是传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(ASCII码为17H)或文终字符ETX(ASCII码为03H)。然后是校验码。典型的面向字符的同步规程如IBM的二进制同步规程BSC。图2-6 面向位

26、的同步格式面向位的同步格式如图2-6所示,此时,将数据块看作数据流,并用序列01111110作为开始和结束标志。为了避免在数据流中出现序列01111110时引起的混乱,发送方总是在其发送的数据流中每出现5个连续的1就插入一个附加的0;接收方则每检测到5个连续的1并且其后有一个0时,就删除该0。典型的面向位的同步协议如ISO的高级数据链路控制规程HDLC和IBM的同步数据链路控制规程SDLC。同步通信的特点是以特定的位组合“01111110”作为帧的开始和结束标志,所传输的一帧数据可以是任意位。所以传输的效率较高,但实现的硬件设备比异步通信复杂。2.2 RS232协议介绍2.2.1 概述RS-2

27、32C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA RS-422A、EIA RS-423A、EIA RS-485。 这里只介绍EIA RS-232C(简称232,RS232)。例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。2.2.

28、2 电气特性EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。在TxD和RxD上:逻辑1(MARK)=-3V-15V,逻辑0(SPACE)=+3+15V,在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)+3V+15V,信号无效(断开,OFF状态,负电压)=-3V-15V。以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对

29、值大于3V时,电路可以有效地检查出来,介于-3+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在(315)V之间。EIA RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75

30、154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTLEIA双向电平转换。 2.2.3 RS-232C 的接口信号RS-232C 的功能特性定义了25芯标准连接器中的20根信号线,其中2条地线、4条数据线、11条控制线、3条定时信号线,剩下的5根线作备用或未定义。常用的只有10根,它们是:、联络控制信号线数据发送准备好(Data set ready-DSR)有效时(ON)状态,表明MODEM处于可以使用的状态。数据终端准备好(Data terminal ready-DTR)有效时(ON)状态,表明数据终端可以使用。这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有

31、效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。请求发送(Request to send-RTS)用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。允许发送(Clear to send-CTS)用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收

32、方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。接收线信号检出(Received Line detection-RLSD)用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字数据后,沿接收数据线RxD送到终端。此线也叫做数据载波检出(Data Carrier detection-DCD)线。振铃指示(Ringing-RI)当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通

33、知终端,已被呼叫。、数据发送与接收线发送数据(Transmitted data-TxD)通过TxD终端将串行数据发送到MODEM,(DTEDCE)。接收数据(Received data-RxD)通过RxD线终端接收从MODEM发来的串行数据,(DCEDTE)。、地线GND、Sig.GND保护地和信号地,无方向。上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。这种

34、顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。2个数据信号:发送TXD;接收RXD。1个信号地线:SG。6个控制信号:DSR:数据发送准备好,Data Set Ready。DTR:数据终端准备好,Data Terminal Ready。RTS:DTE请求DCE发送(Request To Send)。CTS:DCE允许DTE发送(Clear To Send),该信号是对RTS信号的回答。DCD:数据载波检测(Data Carrier Detection),当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使D

35、CD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTE。RI:振铃信号(Ringing),当DCE收到对方的DCE设备送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。由于RS232接口标准出现较早,难免有不足之处,主要有以下四点:、接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。、传输速率较低,在异步传输时,波特率20Kbps。、接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。、传输距离有限,最大传输距离标准值为50英尺(实际

36、15米)。 第三章 系统硬件设计3.1 ATmega8介绍3.1.1概述在本次系统的设计中,我们选用了ATmega8单片机,它是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间, ATmega8 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。AVR 内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega8

37、 有如下特点:8K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节 EEPROM,1K 字节 SRAM,32个通用I/O 口线,32个通用工作寄存器,三个具有比较模式的灵活的定时器/ 计数器(T/C), 片内/ 外中断,可编程串行USART,面向字节的两线串行接口, 10 位6 路 (8 路为TQFP 与MLF 封装)ADC,具有片内振荡器的可编程看门狗定时器,一个SPI 串行端口,以及五种可以通过软件进行选择的省电模式。工作于空闲模式时CPU 停止工作,而SRAM、T/C、 SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之

38、外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力。本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(

39、ApplicationFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内,ATmega8 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。ATmega8 具有一整套的编程与系统开发工具,包括:C 语言编译器、宏汇编、程序调试器/ 软件仿真器、仿真器及评估板。3.1.2系统时钟及时钟选项CPU时钟:CPU时钟与操作AVR内核的子系统相连,如通用寄存器文件、状态寄存器及保存堆栈指针的数据存储器。终止C

40、PU 时钟将使内核停止工作和计算。I/O时钟:I/O时钟用于主要的I/O模块,如定时器/ 计数器、SPI 和USART。I/O时钟还用于外部中断模块。但有些外部中断由异步逻辑检测,即使I/O时钟停止了这些中断仍然可以得到监控。此外,I2C模块的地址识别也是在异步进行的,因此在I/O时钟信号暂停,系统处于休眠模式时,I2C模块的地址识别也不会停止。ADC时钟: ADC具有专门的时钟。这样可以在ADC工作的时候停止CPU和I/O时钟以降低数字电路产生的噪声,从而提高ADC 转换精度。ATmega8芯片的时钟源有外部晶体/ 陶瓷振荡器、外部低频晶振、外部RC 振荡器、标定的内部RC 振荡器、外部时钟

41、,通过Flash熔丝位的设置来选择我们所需要的时钟源如表3-1所示。表3-1时钟熔丝位设置芯片时钟选项CKSEL3.0外部晶体/ 陶瓷振荡器1111 - 1010外部低频晶振1001外部RC 振荡器1000 - 0101标定的内部RC 振荡器0100 - 0001外部时钟0000晶体振荡器:XTAL1 与XTAL2 分别为用作片内振荡器的反向放大器的输入和输出,如图3-1所示:图3-1 石英晶振接线图振荡器可以工作于三种不同的模式,每一种都有一个优化的频率范围。工作模式通过熔丝位CKSEL3-1 来选择。当使用外部晶体时,针对不同的晶振频率,熔丝位有不同的设置规则,如表3-2所示:表3-2 外

42、部晶振时熔丝设置熔丝位工作频率范围/MHZC1、C2容量/PF适用晶体CKOPTCKSEL3-111010.40.9按生产厂家说明配用陶瓷晶体11100.93.01222石英晶体11113.08.012220101111=1.01222熔丝位CKSEL0以及SUT1-0用于选择启动时间:晶体振荡器时钟选项对应的启动时间:表3-3启动时间熔丝位设置CKSEL0SUT1-0掉电与节电模式下的启动时间复位时额外的延迟时间(VCC = 5.0V)推荐用法000258 CK4.1 ms谐振器,电源快速上升001258 CK65 ms谐振器,电源缓慢上升0101K CK-谐振器,BOD 使能0111K C

43、K4.1 ms谐振器,电源快速上升1001K CK65 ms谐振器,电源缓慢上升10116K CK-石英晶体,BOD 使能11016K CK4.1 ms石英晶体,快速上升11116K CK65 ms石英晶体,慢速上升3.1.3系统复位复位时所有的I/O寄存器都被设置为初始值,程序从复位向量处开始执行。复位向量处的指令必须是绝对跳转JMP 指令,以使程序跳转到复位处理例程。如果程序永远不利用中断功能,中断向量可以由一般的程序代码所覆盖。这个处理方法同样适用于当复位向量位于应用程序区,中断向量位于Boot 区的时候。复位源有效时I/O 端口立即复位为初始值。此时不要求任何时钟处于正常运行状态。所有

44、的复位信号消失之后,芯片内部的一个延迟计数器被激活,将内部复位的时间延长。这种处理方式使得在MCU 正常工作之前有一定的时间让电源达到稳定的电平。延迟计数器的溢出时间通过熔丝位SUT 与CKSEL 设定。ATmega8 有4个复位源:、上电复位。电源电压低于上电复位门限 VPOT 时, MCU 复位。上电复位(POR) 脉冲由片内检测电路产生。无论何时VCC 低于检测电平POR 即发生。POR 电路可以用来触发启动复位,或者用来检测电源故障。POR电路保证器件在上电时复位。VCC 达到上电门限电压后触发延迟计数器。在计数器溢出之前器件一直保持为复位状态。当VCC下降时,只要低于检测门限,RES

45、ET 信号立即生效。图3-2 RESET连接到Vcc时,MPU的启动过程图3-3 RESET引脚由外部控制时,MPU的启动过程:、外部复位。引脚 RESET 上的低电平持续时间大于最小脉冲宽度时MCU 复位。、看门狗复位。看门狗使能并且看门狗定时器溢出时复位发生。、掉电检测复位。掉电检测复位功能使能,且电源电压低于掉电检测复位门限VBOT 时MCU 即复位。3.1.4 ATmega8同步/异步串行接口USART、概述USART收发模块分为三大部分:时钟发生器、数据发送器和接收器,控制寄存器为所有的模块共享,时钟发生器由同步逻辑电路(同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引

46、脚XCK仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同帧结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多帧数据无延时的通信。接收器是USART模块中最复杂的部分、最主要的是时钟和数据接收单元。数据接收单元用作异步数据的接收。除了接收单元、接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。接收器支持与发送器相同的帧结构,同时支持帧错误、数据溢出和校验错误的检测。、串行时钟发生时钟发生逻辑为发送器和接收器提供基本的时钟,USART支持4种时钟工作模式,普通异步模式、两倍速异步模式、主机同步模式

47、和从机同步模式、USART控制和状态寄存器C(UCSRC)中的UMSEL位用于选择同步或异步模式。双倍速模式(只有异步模式有效)由UCSRA寄存器中的U2X位控制,当使用同步模式时,XCK引脚的数据方向寄存器(DDR_xck)控制了时钟源是来自内部的(主机模式)还是由外部驱动(从机模式)。XCK引脚只在使用同步模式下有效。内部时钟发生被用于异步模式和同步主机模式,USART的波特率寄存器UBRR和预分频向下计数器(DOWN-COUNTER)相连接,一起构成可编程的预分频器或波特率发生器,向下计数器对系统时钟计数,当其计数到零或UBRRL寄存器被写时,会自动装入UBRR寄存器的数值,当计数到零时

48、产生一个时钟,该时钟作为波特率发生器输出时钟,输出时钟的频率为fosc/(UBRR+1)。发送器对波特率发生器的输出时钟进行2、8或16的分频,具体情况取决于工作模式。波特率发生器的输出被直接用作接收器和数据接收单元的时钟。然而,接收单元使用了一个2、8或16个状态的状态机,具体状态由UMSEL、U2X和DDR_xck位设定的工作模式决定。下表给出了计算波特率和计算每一种使用内部时钟源工作的模式的UBRR值的公式。表3-4 波特率和UBRR值计算使用模式波特率的计算UBRR值的计算异步正常模式U2X=0BAUD=fosc/16(UBRR+1)BARR=fosc/(16*BAUD)异步倍速模式U

49、2X=1BAUD=fosc/8(UBRR+1)BARR=fosc/(8*BAUD)同步主机模式BAUD=fosc/2(UBRR+1)BARR=fosc/(2*BAUD)、数据帧格式一个串行数据帧是由一个数据位字加上同步位(开始和结束位)以及作为检错的检验位三部分构成,ATMEGA8的USART可以使用以下几种有效组合的数据帧格格式:、1个起始位、5、6、7、8或9位数据位、一个无、奇校验或偶校验、1或2个停止位一个数据帧是以起始位开始,紧接着是数据字的最低位,数据字最多可以是9个数据位,数据位以数据的最高位结束,如果使能了校验位,校验位将接着数据位,最后是结束位,当一个完整的数据帧传输后,可以

50、直接跟着传送下一个新的数据帧,或者使通信线路处于空闲状态。数据帧的结构由UCSRB和UCSRC寄存器中的UCSZ2.0、UPM1.0和USBS位设置和定义,接收和发送使用同样的定义设置,注意:任何这些设置的改变都会打断正在进行的数据传送和接收通信。USART帧的字长位(UCSZ2:0)确定了数据帧的数据位数,USART的校验模式位(UPM1.0)用于使能和决定校验的类型。选择一位或两位结束位由USART的USBS位设置。但接收器是忽略第二个停止位的。因此帧错误(FE)只会在第一个结束位为“0”时被检测到。校验位的计算是对数据位的各个位进行异或运算,其结果再同“0”或“1”进行异或运算。如在数据

51、格式中定义使用校验位,则校验位值将出现在最后一个数据位和第一个停止位之间。、数据发送USART的数据发送是由UCSRB寄存器中的发送允许位TXEN设置,当被TXEN使能时,TXD引脚的通用I/O性能将被USART代替,作为发送器的品德输出引脚。如果使用同步发送模式,内部产生的发送器时钟信号施加到XCK引脚上,作为串行数据发送的时钟。5至8位数据:发送是通过把将要传送的数据放到发送缓冲器中来初始化的,CPU通过写入到UDR发送数据寄存器来加载发送缓冲。当移位寄存器为发送下一帧准备就绪时,缓冲的数据将被移到移位寄存器中,如果移位寄存器外于空闲状态或刚结束前一帧的最后一个停止位的传送,它将装载新的数

52、据,一旦移位寄存器中的装载了新的数据,就会按照设定的数据帧模式和速率完成一帧数据的发送。、传送标志位和中断:USART的发送器有两个标志,USART数据寄存器空UDRE标志和传送完成TXC标志,两个标志位都能发生中断。数据寄存器空UDRE标志位表示发送缓冲器是否就绪,可以接受一个新的数据。该位发送缓冲器空时被置“1”,当发送缓冲区内含有正在发送的数据时,该位为“0”.为了和其他的器件兼容,建议在写UCSRA寄存器时,该位写为“0”。当UCSRB寄存器中的数据寄存器空中断允许位UDRIE为“1”时,只要UDRE被置位,就将主生USART数据寄存器空中断申请。UDRE位在发送寄存器UDR的写入后被

53、自动清零。当采用中断方式的数据传送时,在数据寄存器空中断服务程序中必须写一个新的数据到UDR中,以清零UDRE,或者屏蔽掉数据寄存器空中断标志,否则,一旦该中断程序结束后,一个新的中断将再次产生。、USART的初始化USART接口在通信前,必须首先进行初始化,初始化过程通常包括波特率的设定,帧结构的设定和根据需要的接收器或发送器的使能,对于中断驱动的USART操作,在初始化时,全局中断标志位应该先被零(全局中断被屏蔽)然后再进行USART的初始化(如改变波特率或帧结构)。重新改变USART的设置应该在没有有数据传输的情况下进行,TXC标志位可以用来检验一个数据帧的发送是否已经完成,RXC标志位

54、可以用来检验是不在接收缓冲器中还有数据未读出,在每次发发送前(在写发送数据寄存器UDR前),TXC标志位必须清零。初始化过程:、波特率设定:UBRR寄存器中的数值确定波特率的大小,取值为0-255。例如:异步正常模式(U2X=0),UBRR=fosc/(16*BAUD)。、帧结构设定:由UCSRB和UCSRC寄存器中的UCSZx、UPM1.0和USBS位设置。UCSZ0、UCSZ1、UCSZ2确定了数据帧的数据位数,UPM0、UPM1用于使能和决定校验的类型,USBS位设置停止位位数。、接收器或发送器的使能:USART的数据发送是由UCSRB寄存器中的发送允许位TXEN设置,当被TXEN使能时

55、,TXD引脚的通用I/O性能将被USART代替,作为发送器的输出引脚。如果使用同步发送模式,内部产生的发送器时钟信号施加到XCK引脚上,作为串行数据发送的时钟。UCSRB寄存器:RXCIETXCIEUDRIERXENTXENUCSZ2RXB8TXB8RXCIE:接收结束中断使能置位后使能RXC中断。当RXCIE为1,全局中断标志位SREG置位,UCSRA寄存器的RXC亦为1时可以产生USART接收结束中断。TXCIE:发送结束中断使能置位后使能TXC中断。当TXCIE为1,全局中断标志位SREG置位,UCSRA寄存器的TXC亦为1时可以产生USART发送结束中断。UDRIE:USART 数据寄

56、存器空中断使能置位后使能UDRE中断。当UDRIE 为1,全局中断标志位SREG置位,UCSRA寄存器的UDRE亦为1时可以产生USART数据寄存器空中断。RXEN:接收使能置位后将启动USART接收器。RxD 引脚的通用端口功能被USART功能所取代。禁止接收器将刷新接收缓冲器,并使 FE、DOR及PE标志无效。TXEN:发送使能置位后将启动USART发送器。TxD引脚的通用端口功能被USART功能所取代。清零后,只有等到所有的数据发送完成后发送器才能够真正禁止,即发送移位寄存器与发送缓冲寄存器中没有要传送的数据。发送器禁止后,TxD引脚恢复其通用I/O功能。UCSZ2:字符长度UCSZ2与

57、UCSRC寄存器的UCSZ1:0结合在一起可以设置数据帧所包含的数据位数(字符长度)。RXB8:接收数据位8对9位串行数据帧进行操作时,RXB8 是第9个数据位。读取UDR包含的低位数据之前首先要读取RXB8。TXB8:发送数据位8对9位串行数据帧进行操作时,TXB8是第9个数据位。写UDR之前首先要对它进行写操作。UCSRC寄存器:URSELUMSELUPM1UPM0USBSUCSZ1UCSZ0UCPOLURSEL:寄存器选择通过该位选择访问UCSRC寄存器或UBRRH寄存器。当读/写UCSRC时,该位为1,当对UBRRH访问时, URSEL为0;UMSEL:USART 模式选择通过这一位来

58、选择同步或异步工作模式。表3-5 UMSEL设置UMSEL模式0异步操作1同步操作UPM1、UPM0:奇偶校验模式这两位设置奇偶校验的模式并使能奇偶校验。如果使能了奇偶校验,那么在发送数据,发送器都会自动产生并发送奇偶校验位。对每一个接收到的数据,接收器都会产生一个奇偶值,并与UPM0 所设置的值进行比较。如果不匹配,那么就将UCSRA中的PE置位。表3-6 UPM 设置UPM1 UPM0 奇偶模式00禁止01保留10偶校验11奇校验USBS:停止位选择通过这一位可以设置停止位的位数。接收器忽略这一位的设置。表3-7 USBS 设置USBS 停止位位数0112UCSZ1,UCSZ0:字符长度U

59、CSZ1,UCSZ0与UCSRB寄存器的 UCSZ2结合在一起可以设置数据帧包含的数据位数(字符长度)。表3-8 UCSZ 设置UCSZ2 UCSZ1 UCSZ0字符长度 0005001601070118100保留101保留110保留1119UCPOL: 时钟极性这一位仅用于同步工作模式。使用异步模式时,将这一位清零。UCPOL 设置了输出数据的改变和输入数据采样,以及同步时钟XCK 之间的关系。表3-9 UCPOL 设置UCPOL发送数据的改变(TxD引脚的输出) 接收数据的采样(RxD 引脚的输入)0XCK上升沿XCK下降沿1XCK 下降沿XCK 上升沿UCSRA寄存器:RXCTXCUDR

60、EFEDORPEU2XMPCMRXC:置1:USART接收结束,否则为0TXC:置1:USART发送结束,否则为0UDRE: 置1:发送缓冲器空,否则为0FE:置1:帧错误DOR:置1:数据溢出,当接收缓冲器满,接收移位寄存器双有数据,若此时检测到一个新的起始位,则数据溢出。PE:置1:奇偶校验错误U2X:倍速发送,仅对异步操作有影响,使用同步操作时将此位清零。此位置1可将波特率分频因子从16降到8,从而有效的将异步通信模式的传输速率加倍MPCM:设置此位可启动多处理器通信模式。发送器不受MPCM设置的影响。3.1.5 ATmega8通用I/O口、通用I/O功能AVR的I/O端口作为通用数字输

61、入、输出口使用时,都具备真正的读-修改-写特性,这意味着用指令可以单独改变某个I/O引脚的输入/输出方向,或改变引脚的输出值,或在禁止、允许引脚的内部上拉电阻功能时不影响和必应其他引脚。每个I/O引脚采用推挽式驱动,仅能提供大电流的输出驱动,而且也可以吸收20MA的电流,因此能直接驱动LED显示器。AVR采用3个8位寄存器来控制I/O端口,它们分别是方向寄存器DDRx、数据寄存器PORTx和输入引脚寄存器PINx,其中DDRx和PORTx是可读写寄存器,而PINx为只读寄存器,每个I/O引脚内部都有独立的上拉电阻电路,可通过程序设置内部上拉电阻的有效与否。此外,如置“1”,SFIOR寄存器中的

62、上拉屏蔽位PUD为“1”,则会屏蔽掉所有端口引脚中的内部上拉电阻,每个I/O引脚在芯片内部都有对电源VCC和对地GND的二极管钳位保护电路。ATMEGA8多数的I/O口为复用口,除了作为通用数字使用外,其第二功能分别作为芯片内部其他外围电路的接口。ATMEGA8有23个I/O引脚,分别3个8位的端口B、C、D,其中C口只有7位。有的I/O端口都是又向口,每一个端口内部分别带有可选的上拉驱动电路,。第个8位的端口都有对应的3个I/O端口寄存器,它们分别是数据寄存器PORTx、方向寄存器DDRx和输入引脚寄存器PINx(x为B或C或D,分别华表B口、C口或D口)。数据寄存器-PORTxPORTx7PORTx6PORTx5PORTx4PORTx3PORTx2PORTx1PORTx0方向寄存器-DDRxDDRx7DDRx6DDRx5DDRx4DDRx3DDRx2DDRx1DDRx0输入引脚寄存器-PINxPINx7

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!