基于AVR ATmega128的工业网关的实现

发布者:脑力舞者最新更新时间:2011-05-09 关键字:ISP在线编程  DDS输出信号  车载空调控制器  倒车雷达设计  血压检测仪  在线测试仪 手机看文章 扫描二维码
随时随地手机看文章
  1 引言

  如今,电子技术发展迅猛,尤其是单片机已广泛地应用于通信、交通、家用电器、便携式智能仪表、机器人制作等领域,产品功能、精度和质量大幅度提高,且电路简单,故障率低,可靠性高,成本低廉。在单片机某些应用方面,对网络灵活性和多样性需求的不断增加,网络之间的互联显得越来越重要。工业网关为桥接不同现场总线网络提供了一种解决方案。

  2 网络拓扑结构

  网络连接的拓扑结构如图1所示。

基于AVR ATmega128的工业网关的实现

  (图1)

  RS-232C是广泛应用的串口通信标准,但因其推出较早,在现代网络通信中已暴露出数据传输速度慢、传输距离短、接口处各信号间容易产生干扰等明显的缺点。RS-485是一种多发送器的电路标准,它扩展了RS-422A的性能,允许双绞线上一个发送器驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器,RS-485最大传输距离为1200m,最大传送速率可达10Mb/s。因此,RS-485在远程通信和多机总线系统中具有很大的吸引力。

  如图1所示,将AVR ATmega128的标准的通用异步接收/发送通信接口0(UART0)转换成半双工485串口。同样,PC机的RS-232C串口也转换成485串口。它们之间采用Modbus/RTU协议进行通信,AVR ATmega128作为从设备。AVR ATmega128与其下行的AVR分控设备通过485串行总线并在一起。它们之间采用AVR单片机特有的多机通信方式进行通信。其中AVR ATmega128是主控设备,其他的AVR分控设备是从控设备。

  3 AVR ATmega128单片机

  ATmega128单片机为基于AVR RISC结构的8位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATmega128单片机的数据吞吐率高达1MIPS/MHz,故可以缓减系统的功耗和处理速度之间的矛盾。AVR单片机内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐量。ATmega128单片机内部带有128KB的系统内可编程Flash程序存储器,具有在写的过程中还可以读的能力,即同时读写(RWW); 4KB的EEPROM;4KB的SRAM;53个通用I/O端口线;32个通用工作寄存器;实时时钟(RTC);4个灵活的具有比较模式和PWM功能的定时器/记数器(T/C);2个USART;面向字节的两线接口(TWI);8通道10位ADC;可选的可编程增益;片内振荡器的可编程看门狗定时器;串行外围设备接口(SPI);与IEEE 1149.1规范兼容的JTAG测试接口,此接口同时还可以用于片上调试;6种可以通过软件选择的省电模式。

  4 Modbus通信协议

  Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

  Modbus网络能设置为两种传输模式(ASCII或RTU)中的任何一种进行通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。

  当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。

  代码系统:

  ü     8位二进制,十六进制数0...9,A...F

  ü     消息中的每个8位域都是一个两个十六进制字符组成

  每个字节的位:

  ü     1个起始位

  ü     8个数据位,最小的有效位先发送

  ü     1个奇偶校验位,无校验则无

  ü     1个停止位(有校验时),2个Bit(无校验时)

  错误检测域

  ü     CRC(循环冗长检测)

  使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在网络下多样的字符时间,这是最容易实现的(如下图2所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0…9,A…F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在停顿后开始。

  整个消息帧必须作为一连续的流传输。如果在帧完成之前有超过 3.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。一典型的RTU消息帧如下所示:

起始位 设备地址 功能代码 数据 CRC校验 结束符
T1-T2-T3-T4 8Bit 8Bit N个8Bit 16Bit T1-T2-T3-T4

  当消息在标准的Modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右):最低有效位...最高有效位。

  使用RTU字符帧时,位的序列是:

  有奇偶校验

启始位 1 2 3 4 5 6 7 8 奇偶位 停止位

  无奇偶校验

启始位 1 2 3 4 5 6 7 8 停止位 停止位

  5 CRC16检测

  循环冗余码CRC检验技术广泛应用于测控及通信领域。CRC计算可以靠专用的硬件来实现,但是对于低成本的微控制器系统,在没有硬件支持下实现CRC检验,关键的问题就是如何通过软件来完成CRC计算,也就是CRC算法的问题。计算CRC16有三种算法:按位计算CRC、字节计算CRC、半字节计算CRC。这三种算法它们稍有不同,按位求法速度较慢,但占用最小的内存空间;按字节查表求CRC的方法速度较快,但占用较大的内存;按半字节查表求CRC的方法是前两者的均衡,即不会占用太多的内存,同时速度又不至于太慢,比较适合8位小内存的单片机的应用场合。

  6 AVR单片机多处理器通信模式

  置位UCSRA 的多处理器通信模式位(MPCM) 可以对USART 接收器接收到的数据帧进行过滤。那些没有地址信息的帧将被忽略,也不会存入接收缓冲器。在一个多处理器系统中,处理器通过同样的串行总线进行通信,这种过滤有效的减少了需要CPU 处理的数据帧的数量。MPCM位的设置不影响发送器的工作,但在使用多处理器通信模式的系统中,它的使用方法会有所不同。如果接收器所接收的数据帧长度为5 到8 位,那么第一个停止位表示这一帧包含的是数据还是地址信息。如果接收器所接收的数据帧长度为9 位,那么由第9 位(RXB8) 来确定是数据还是地址信息。如果确定帧类型的位( 第一个停止位或第9 个数据位) 为1,那么这是地址帧,否则为数据帧。在多处理器通信模式下,多个从处理器可以从一个主处理器接收数据。首先要通过解码地址帧来确定所寻址的是哪一个处理器。如果寻址到某一个处理器,它将正常接收后续的数据,而其他的从处理器会忽略这些帧直到接收到另一个地址帧。

  对于一个作为主机的处理器来说,它可以使用9 位数据帧格式(UCSZ = 7)。如果传输的是一个地址帧(TXB8 = 1) 就将第9 位(TXB8) 置1,如果是一个数据帧(TXB = 0) 就将它清零。在这种帧格式下,从处理器必须工作于9 位数据帧格式。

  下面即为在多处理器通信模式下进行数据交换的步骤:

  5.1 所有从处理器都工作在多处理器通信模式(UCSRA 寄存器的MPCM 置位)。

  5.2 主处理器发送地址帧后,所有从处理器都会接收并读取此帧。从处理器UCSRA寄存器的RXC 正常置位。

  5.3 每一个从处理器都会读取UDR 寄存器的内容已确定自己是否被选中。如果选中,就清零UCSRA 的MPCM 位,否则它将等待下一个地址字节的到来,并保持MPCM 为1。

  5.4 被寻址的从处理器将接收所有的数据帧,直到收到一个新的地址帧。而那些保持MPCM 位为1 的从处理器将忽略这些数据。

  5.5被寻址的处理器接收到最后一个数据帧后,它将置位MPCM,并等待主处理器发送下一个地址帧。然后第2 步之后的步骤重复进行。

  使用5 至8 比特的帧格式是可以的,但是不实际,因为接收器必须在使用n 和n+1 帧格式之间进行切换。由于接收器和发送器使用相同的字符长度设置,这种设置使得全双工操作变得很困难。如果使用5 至8 比特的帧格式,发送器应该设置两个停止位(USBS = 1),其中的第一个停止位被用于判断帧类型。不要使用读- 修改- 写指令(SBI 和CBI) 来操作MPCM 位。MPCM 和TXC 标志使用相同的I/O 单元,使用SBI 或CBI 指令可能会不小心将它清零。在本设计方案中,AVR ATmega128作为多处理器通信模式中的主处理器,其他的AVR分控设备做为从处理器。

  7结束语

  采用本方案所介绍的网络拓扑结构,由于AVR ATmega128与上位机之间通信是基于Modbus标准协议,而与其他的AVR分控设备之间采用AVR单片机所特有的多处理器通信。因此,在保证系统开放性的同时,又能保证数据处理效率的提高。在交通控制、智能化停车场管理系统等方面,本设计方案有一定的参考价值。

关键字:ISP在线编程  DDS输出信号  车载空调控制器  倒车雷达设计  血压检测仪  在线测试仪 引用地址:基于AVR ATmega128的工业网关的实现

上一篇:AVR熔丝位快速入门
下一篇:AVR单片机的TWI总线的原理及应用

推荐阅读最新更新时间:2024-03-16 12:35

基于51单片机的超声波倒车雷达系统的设计
0 引言 超声波是一种在弹性介质中的机械震荡,由于其指向性强、能量消耗缓慢、传播距离较远等到优点,经常用于测量距离。本文设计的倒车雷达系统就是利用超声波的上述特性做到对倒车距离实时和高精度的检测,同时,此系统成本低、设计简单、精度和稳定性好,有望得到广泛的应用,从而减少交通事故的发生。 1 超声波测距原理 超声波测距原理是利用超声波从发射到接收过程中传播的时间来计算出传播距离。本文的倒车雷达系统采用反射接收回波方式。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有t=2l/c,而声波在空气中传输速率为 。式中T为环境温度;cO为绝对温度时的速度,是常数。从上述两式可以推出 ,故利用超声波测量的距离与时间和环境温
[单片机]
基于51单片机的超声波<font color='red'>倒车雷达</font>系统的<font color='red'>设计</font>
基于Atmega8的实用车载空调控制器电路
  随着社会经济的发展和人们生活水平的提高,外出旅行正逐渐成为一种时尚。汽车作为一种便捷的交通工具已是人们的首选,舒适的乘车环境,如适宜的车内温度、清新的空气应是长途汽车的必备条件。所以,开发一款经济实用的车载空调控制器就成为一种需求。本文采用DC/DC转换芯片MC34063AP1为系统供电,以微控制器Atmega8为系统核心,辅以简单模糊控制技术以及按键选择、LED数码管显示,并使整个控制系统具有电源欠压、过压,温度传感器短路、断路等保护功能。    主要功能指标   汽车空调控制系统的主要功能如下。   ● 多种工作模式:自动、制冷、化霜、通风。   ● 多档风速设定:自动风、低速风、中速风、高速风。   ● 具有故
[工业控制]
基于Atmega8的实用<font color='red'>车载</font><font color='red'>空调</font><font color='red'>控制器</font>电路
在线纸张水分测试仪参数介绍和注意事项
在线纸张水分测试仪此款产品广泛应用于纸张,煤炭,奶粉,人造板等行业,对生产线上的产品进行实时检测,由于生产流程和工艺需要,在线监测产品的水分含量成为重要的环节。在线纸张水分测试仪利用红外光漫反射原理对产品进行水分检测,并将水分实时数据传输到先视频上,为技术部门提供检测参数指导。纸张含水量约为5%或6%而如果要求保存的话纸张含水量需要控制在3%-4%,在线纸张水分测试仪测量精度准确,产品质量和稳定性好。得到广大行业客户的认可和好评,以亲民的价格征服众多企业。 红外在线纸张水分测试仪使用注意事项: 在线水分仪红外灯直径 8cm 光源照射厚度:5mm 3cm 管子挂光圈(绝缘) 3、检测如有安装玻璃罩:玻璃选取普通透光、与光源有2
[测试测量]
单片机的ISP在线编程设计介绍
随着电子技术的日益发展,芯片的规模越来越大,封装日趋小型化,相应地对系统板级调试的困难也在加大。在传统的调试方式中,频繁的调试和更换程序需要频繁地插拔芯片,开发效率极低。AT89S系列单片机提供的ISP在线编程技术彻底地改变了传统的开发模式,开发单片机系统时不会损坏芯片的引脚,加速了产品的上市并降低了研发成本,缩短了从设计、制造到现场调试的时间,简化了生产流程,大大提高了工作效率,因此它是对市场定型产品进行现场升级和维护的经济、有效的方式,极大地促进了PLD产品的发展。 1 PC机并行口 1.1 并行口硬件接口简介 标准并行口有25个引脚,其中数据端口引脚为2~9,状态端口引脚为15、10~13,控制端口引脚1、14、16、
[单片机]
单片机的<font color='red'>ISP</font><font color='red'>在线</font><font color='red'>编程</font><font color='red'>设计</font>介绍
汽车倒车雷达系统的设计与实现
0 引 言     中国经济的持续增长和汽车价格的持续下降,越来越多的家庭拥有了私家车。在享受汽车给人们带来便利的同时,由于倒车而产生的问题也日益突出。据初步调查统计,15%的汽车事故是由汽车倒车“后视”不良造成的。早期的倒车防撞仪可以测试车后一定距离范围的障碍物从而发出警报,后来发展到根据距离分段报警。随着人们对汽车驾驶辅助系统易用性要求的提高,对汽车倒车雷达的要求也越来越高。本文设计的基于单片机AT89C51的倒车雷达,采用美国DAL-LAS半导体公司生产的DS18B20单总线型数字温度传感器进行温度补偿提高了测距精度,采用OC-MJ12232C_3液晶显示模块对车距进行实时显示和ISD4004语音芯片实现了倒车雷达语音报
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved