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

蚌埠学院本科毕业设计(论文)

随着AVR单片机的横空出世,彻底打破了旧的设计格局,不仅废除了机器周期,而且抛弃了以往只追求指令完备的做法;指令集中占大多数的单周期指令都是将内容丰富的操作数与操作码安排在一字之中,同时使用精简的指令集并且以字作为指令长度单位,它的取指周期很短,同时又能够提前取出指令以及能够完成流水作业这样的功能,因此它能够高速的执行指令。当然这种速度上的升跃,并不是必然的,它是以高可靠性作为其后盾才得以实现的。

4.2.1 ATmega16 AVR单片机介绍

AVR单片机的计数器在它的内部,它是由电源上电启动的,当给系统复位引脚复位上电之后,我们就可以延迟MCU开始正式读取指令执行程序所用的时间这是使用AVR内部的RC看门狗定时器实现的。而这种延时启动的特性,能使MCU才正式开始执行程序,当然这只有在系统电源以及外部电路都达到稳定以后才能实现,这不仅可以提高系统工作的可靠性,而且同时还可以减少外加的复位延时电路的使用。

AVR系列的单片机有不同的型号,在此我们选择了系列型号为16的同时片内容量为16KB的单片机为主芯片。系统主芯片是本系统的核心芯片,因为系统的要求是:芯片能够灵活的处理所传输的数据,而且要求性能稳定并且价格低廉,因此我们需要选择一个合适的芯片。

ATmega16是一种功耗很低的单片机。因为它本省具有很高级的指令集并且拥有单时钟周期的指令执行时间,所以ATmega16单片机的可以达到很高的数据吞吐率,可以达到1MIPS/MHz,因此是解决系统在功耗与处理速度这两者间冲突的行之有效的方法。因为ATmega16 AVR的内核拥有32个通用工作寄存器,而且所有寄存器我们都可以直接与逻辑运算单元连接,所以我们就可以只用一条指令就可以在一个时钟周期内同时访问两个独立的寄存器。

ATmega16具有16K字节系统内部可编程Flash,32个通用的输入/输出口线以及32个通用工作寄存器和512字节EEPROM,支持片内编程与调试,具备JTAG接口,片内/外中断,三个具有比较模式的定时器/ 计数器,可编程串行USART,8路10位可编程增益可选差分输入级的AD转换器,一个SPI 串行的端口,并且具有起始条件检测器的通用串行接口,同时还具备片内振荡可编程看门狗定时器以及六个可以通过软件选择的省电模式,这是非常厉害的。同时ATmega16 具有一系列并且很完整的编程以及系统开发的工具,它包含了:C 语言编译器、评估板和仿真器以及程序调试器/ 软件仿真器。本芯片是用ATMEL存储器技术生产的,这个芯片具有高密度非易失性。片内ISP Flash也

- 7 -

张苹苹:基于AVR单片机的485通信系统设计

可以有其他的编程方式,如我们能够选择运行于AVR内核之中的引导程序来完成编程。也允许程序存储器通过ISP串行接口,或者也可以用通用编程器进行编程。这款单片机在产品中得到了大量的使用。本设计就用这款。

4.3 数据显示模块

因为系统事实要求传输的简单的数据,所以采用数码管显示就可以满足指标要求。我们通常所说LED显示器,一般是由七个发光二极管组成,所以我们也称它为七段数码管,其二极管排列形状如下图所示。我们可以通过控制七个发光二极管中,哪些发光,哪些不发光,然后显示不同的字母、数字以及其他符号。发光二极管在LED显示器有两种完全不同的接法,下面来介绍一下这两种接法:

(1) 共阳极接法就是公共阳极是由发光二极管的所有阳极连接在一起组成的。在用的时候,把公共阳极接上电源+5V。这样,当在阴极端输入低电平时它的发光二极管就能够导通发亮了,而输入高电平是则不亮。

(2) 而共阴极接法就是说它的公共阴极是由发光二极管的阴极连在一起而组成的。在用的时候,把公共阴极接地,所以发光二极管就可以导通发亮了。假如我们在阳极端输入高电平的时候,二极管就发光,而输入低电平时就不发光。在此,我们采用的是八段共阴极数码管显示。

表3-1八段数码管的字型代码如下图:

- 8 -

蚌埠学院本科毕业设计(论文)

4.4 键盘输入模块

图4.2 键盘输入模块

本次课题采用的是矩阵式键盘,它的突出优点是I/O端口的重复使用率很高,又可以循环操作,不但如此,而且在扫描键盘时占用CPU的时间很少,操作又比较灵活,矩阵键盘控制状态多,编写程序较方便,故此模块采用的是矩阵式键盘。

4.5 通信电路模块

图4.3 通信电路模块

MAX485接口芯片是由Maxim公司开发的一种RS485芯片。RS-485是美国电气工业协会(EIA)制定的的多点通信标准,它可以进行多点间的通信而且采用的是利用平衡双绞线的传输线的标准。同时它使用差分信号传输;最大传输距离可以达到120公里,而且它拥有低至±200 MV的接收的灵敏度以及最大传输速率,高达2.5 Mb / s。因而,RS-485协议设置为高灵敏度,多点通信,远程等的设置协议。

- 9 -

张苹苹:基于AVR单片机的485通信系统设计

MAX485芯片采用单一电源电压+5V供电,同时它的额定工作电流为300微安,而且它可以采用半双工通讯的方式,可以将TTL电平转换为RS-485电平。MAX485芯片的结构和引脚都是很简单的,它的内部含有一个驱动器和一个接收器。DI端为驱动器的输入端,而RO端为接收器的输出端,它与单片机相接时只要分别与单片机的TXD引脚以及RXD引脚相连就可以了,/RE端为接收的使能端,DE端为发送的使能端,由于MAX485工作状态是在半双工,因此我们仅仅需要使用一个信号就可以同时控制MAX485的接收和发送了。因此我们要满足远距离通信的性能指标,在本模块采用MAX485芯片就可以了。

4.5.1 RS-485协议

RS232和RS485这两种通信协议是一种很有典范的串行通讯标准,虽然它们给予了阻抗和电压定义,但他们没有对软件协议进行定义。RS485的特性包括一下几个方面:

(1)RS-485的电气特性:假如有两条线他们之间的电压差为+(2-6)V时,表示一个逻辑“1”;两条线之间的电压差为 -(2-6)V表示一个逻辑“0”。如果接口信号的电平比RS-232的接口信号电平降低了,在这个时候芯片接口电路处于不容易被损坏的状态,而且它的电平和TTL电平兼容,这个时候我们就可以很容易地用TTL电路与其连接。

(2)RS485通讯距离高达1219M的,传输速率为10MB /秒,传输速率反比于距离传输,只有传输速率在100 Kb / s的情况下,才能够实现最大通信距离,如果需要传送一个更大的距离,您需要添加485中继器。 RS-485总线可以支持在一般32个节点,如果使用一个专用芯片485则最多可以达到400个节点。

(3) RS485接口是由平衡驱动器和差分接收器组成的一个接口,抗共模干扰是比较强的,这就是说拥有良好的抗噪性能。

因为RS-485接口具有很好的抗噪声性能、远的传输距离以及多站能力等,这些优点就使它成为被首先选择的串行接口,由于RS485接口组成的半双工网络只需用二根连线就可以了,所以所有的RS485的接口均可以采用屏蔽双绞线进行传输。

4.6 从机控制模块

4.6.1 单片机最小系统

- 10 -

联系客服:779662525#qq.com(#替换为@)