基于ATmega128的无线数据采集系统

发布者:一条属马的龙最新更新时间:2012-02-22 来源: 21IC关键字:ATmega128  无线数据采集  RS-485 手机看文章 扫描二维码
随时随地手机看文章

电力日益市场化的环境下,电力公司必须提高服务质量以保持竞争力。当前我国的一些地区,配网自动化程度低,人员工作效率低。根据这种需求,设计了无线数传系统.整个无线数据通信系统是基于RS-485串口通信的一点对多点网络结构。数传电台每站点设一部,分别连接主站的数据采集工作站和分站的RTU/FTU等,进行轮询通信。各分站作业数据上报以及数采工作站的控制指令下行传输都通过无线方式完成。

1 设计思想
 

数据采集单元采用先进的ATmega128嵌入式单片机作为核心部件,利用RS-485通信接口与控制系统通信。测量站主要是将捕捉的现场信号经转换器ADC采样、量化、编码后,变成数字信号传给微处理器,接收遥控指令并发送数据;主控站的主要工作是发送遥控指令、接收数据信息、进行数据处理和数据管理。整个系统结构简单,可靠性高。见图1。

1.1   高速的模数转换芯片TLC5510

该系统的A/D转换采用TLC5510模数转换芯片。TLC5510模数转换芯片是TI公司的8位A/D转换器,是一款高速、低功耗且内部带有采样保持电路。它的数据采集时序是当CLK为高电平时转换数据,当CLK为低电平时输出有效数据。当要从A/D中读取数据时,只要 保持低电平即可,当 为高电平时D1-D8为高阻态.见图2.

1.2  数据采集系统的接口电路设计与流程

FIFO芯片SN74ACT7808是2048字节×9位可以实现先进先出异步读写操作的双端口存储器.读写操作会自动访问存储器中连续的存储单元。从FIFO中读出的数据顺序与写入的顺序相同,地址的顺序在内部已经预先定义好了。对FIFO的读写操作只由读写信号控制,不需要另外的地址信息。这使得FIFO的控制电路变得十分简单:读数据时只要OE保持为高电平同时使UNCK产生一个上升沿;写数据只要LDCK产生一个上升沿即可.

由于是高速数据采集,单片机相对A/D来说速度远远不够,所以需要设计一个电路让数据采集与存储自动完成,见图2。单片机的PB0引脚通过与门与外部CLK时钟相连,这样单片机就可以控制A/D的采样。当PB0为高电平时进行采样,当PB0引脚为低电平时A/D的CLK没有脉冲,采样停止。当FIFO保存的数据几乎满后给单片机一个中断信号,单片机接到中断信号后置PB0为低电平停止采样,然后把数据从FIFO中读出。因为单片机的PG0引脚经反向器后接到FIFO的UNCK,PC4脚接到FIFO的OE,它的有效地址只要保持PC4引脚为高电平即可。数据处理完毕后再接着采样,如此反复,完成周期性采样[2]。
 


2 嵌入式单片机ATmega128与数传电台的串行通信

ATmega128为基于AVR RISC结构的8位低功耗CMOS微处理器。ATmega128的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。8通道10位ADC(具有可选的可编程增益)、具有片内振荡器的可编程看门狗定时器、SPI串行端口、异步串行口与JTAG测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。

2.1  ATmega128的串行通信方式

串行通信波特率:9600bps,发送接收方式:一位起始位,8位数据位,奇校验,1位停止位。UARTO初始化可以在ICC AVR中设置完成,而且Builder自动生成中断服务子程序和人口地址,只需在服务子程序中加人处理代码即可。
//UARTO  initialisation
//desired baud rate:9600
//char size:8bit
//parity: Disabled
void uart0_init(void)
{
UCSR0A=0x00;
UCSR0B=0x98;    //接收完成中断允许,发送数据允许.
UCSR0C=0x06;    //发送接收的字符长度为8位.
UBRR0H=0x00;
}

接收数据时,单片机设置一个标志,假设接收到第一个“*”字符,标志置1,认为通信正常,可以接收数据。接收数据时,判断是否收到接收完成消息;是,则清除标志,使得下次收到的数据无效,直到再次收到“*”,标志置1。标志为1时,判断是否收到消息(字符值等于8);是,将上次收到字符清为0;不是则将接收到的数据保存到接收缓冲区中。执行操作后,最后将接收到的字符发回给计算机。单片机通信流程图见图3。[page]


2.2   ATmega128与数传电台的硬件连接

数传电台与单片机、终端主控机的通信协议:标准串行RS485接口,通信帧格式——1位起始位,8位数据位,1位可编程数据位,1位停止位,波特率9600bps。建议使用窄带无线数传电台MDS SCADA,专门用于电力自动化中。此电台采用工业级铸铝封装,可提升电磁干扰,绕射能力强,提供标准的RS-485接口,系统响应快。

系统采用异步串行通信方式。利用单片机串口与数字电台RS-485数据口相连,电台常态为收状态(PPT=0,收状态;PPT=1,发状态)。单片机通过带控制端的三态缓冲门74HC125、非门74HC14控制电台的收发转换。接收时,PC1=1,PC1经74HC14反相、光电隔离,使电台PPT脚为低电平,将其置为接收状态;发射时,PC1=0,经74HC14反相、光电隔离,使电台PPT脚为高电平,将其置为发射状态;同时74HC125A截止,74HC125B导通,数据由单片机TXD脚输出,经74HC125B缓冲门、光电隔离、MAX232电平变换,通过电台TXD端口将数据发送出去。具体硬件连接见图4。


3  结束语

国家的农网改造,使配电网络的供电能力得到了很大的提高.但随着社会经济的发展,对电力部门又提出了更高的要求.结合电网的实际情况,对于实时性、配电质量要求教高的地区,无线数据传输系统建成使用后,运行结果表明:系统工作稳定可靠,本系统与有线网相比,具有建网费用低、建设周期短、维护量小、抗灾能力强、无需查线检修、数据易传等优点。由于在该数据采集系统中采用了ATmega128,其开发速度较以往有很大的提高,这种高效灵活的嵌入式正广泛应用于工业控制领域,有着广阔的前景。

4  本文作者创新点:

1.本系统采用了多种先进技术,高性能单片机系统技术、无线传输技术、计算机的远程控制技术等。

2.本系统具有自动化程度高、系统可靠性和稳定性好、数据采集精度高等比较突出的优点。

3.由于本系统和上位计算机系统可以方便地进行通讯和数据传送,可以把检测记录的数据保存在计算机的数据库内,有助于实现电力调度的网络化、数字化和信息化。

关键字:ATmega128  无线数据采集  RS-485 引用地址:基于ATmega128的无线数据采集系统

上一篇:基于ATmega16的无线传感网络节点设计
下一篇:ATMEGA8设计的8路键盘D触发锁存器

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

RS-485串行数据通信协议及其应用
概述 串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。本文主要介绍RS-485协议及该协议所适合的应用。同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的方法。 传输协议 什么是RS-485?Profibus又是什么?与其它串行协议相比,它们的性能如何?适用于哪些应用?为了回答这些问题,我们对RS-485物理层(PHY)、RS-232和RS-422的特性、功能进行了总体比较 (本文中的RS表示ANSI EIA/TIA标准)。 RS-232是一个最初用于调制解调器、打印机及其它PC外设的通讯标准,提供单端20kbps的
[网络通信]
DSP 与PC 机串行通讯的设计
  1 引言   DSP 既是Digital Signal Pricessing 的缩写,也是Digital Signal Pricessor 的缩写。前者是指数字信号处理的理论和方法,后者则是指用于数字信号处理的可编程微处理器。TMS320F240 系列是在TMS320F2000TM 平台下的一种定点DSP 芯片,是专为数字电机控制和其他控制应用系统而设计的16位定点运算的DSP。它集合了DSP 的高速运算功能与电机的强大控制能力,为控制系统应用提供了一种理想的解决方案。TMS320F240 片内外设有一个16 位的同步串行外围接口(SPI),一个用于串行通讯接口的SCI 模块,双10 位A/D 转换器,带中断的看门狗定时器模
[嵌入式]
隔离式RS-485在DMX512照明中的应用
什么是DMX512?     图1. 分立式DMX512接收器框图 使用ADM2487E的DMX512系统配置 图2显示一个更简单、集成度更高的隔离式DMX512接收器,它使用隔离式RS-485收发器ADM2487E。片内振荡器输出一对方波,以驱动外部变压器提供总线端所需的3.3V隔离电源。该器件的逻辑端采用3.3V或5V电源供电。ADM2487E采用iCoupler®数字隔离技术,将3通道隔离器、三态差分线路驱动器和差分输入接收器集成于单封装中。TXD、RXD、DE和RE引脚直接连到ADuC7020 UART。     图2. ADM2487E DMX512接收器框图 ADM24
[嵌入式]
RS-485接口的程序设计
  该程序利用定时器0中断对通信程序进行处理,首先定义了需要发送的数据常量,在主函数中使能定时中断,并对串行通信进行设置。 (1)包含必要的头文件,定义程序需要的全局变量和宏。 (4)主函数 对单片机内部寄存器进行配置,初始化各个标志位及常量,最后在while循环中完成通信任务  
[嵌入式]
RS-485在多功能电能表中的防雷电路设计
  智能电表系统已经广泛地应用到工业和生活的领域。在电表中使用自动抄表技术通过通信端口读取数据,而且大部分情况采用远程读数方式。对于电表应用来说既安全又节省了时间和金钱。实现该技术的关键是确保通信链路安全可靠。由于RS-485标准具有长距离传输(1200米以上),最大传输数率可以达到10Mbps,且高信号噪声印制。同时,RS-485电路具有控制方便,成本低等优点,使多点连接成为可能。因此,RS-485成为智能电表的标准通信接口。但RS-485口传输线通常暴露于户外,因此极易因为雷击等原因引入过电压。而RS-485收发器工作电压较低(5V左右),其本身耐压也非常低(-7V~+12V),一旦过压引入,就会击穿损坏。在有强烈的浪涌能量出
[电源管理]
<font color='red'>RS-485</font>在多功能电能表中的防雷电路设计
ATmega128 标定的片内RC振荡器
标定的片内RC 振荡器提供了固定的1.0、2.0、4.0 或8.0 MHz 的时钟。这些频率都是 5V、25°C 下的标称数值。这个时钟也可以作为系统时钟,只要按照Table 13 对熔丝位 CKSEL进行编程即可。选择这个时钟(此时不能对CKOPT进行编程)之后就无需外部器件 了。复位时硬件将标定字节加载到OSCCAL 寄存器,自动完成对RC 振荡器的标定。在 5V, 25°C 和频率为1.0 MHz 时,这种标定可以提供标称频率 ± 3% 的精度;使用 www.atmel.com/avr 中所给出的方法,可在任何电压、任何温度下,使精度达到± 1% 。当 使用这个振荡器作为系统时钟时,看门狗仍然使用自己的看门狗定时器作为溢出复
[单片机]
<font color='red'>ATmega128</font> 标定的片内RC振荡器
基于51单片机的RS-485的多机通信
//-----------------------函数声明,变量定义--------------------- #include reg51.h sbit RE_DE=P1^0; #define COUNT 10 // 定义接收缓冲区大小 #define Slaver_NUM 10 unsigned char bdata flag; //在可位寻址去定义一个标志变量 sbit time_over_flag =flag^0; //接收超时标志 unsigned char buffer ; //定义缓冲区 unsigned char point; //定义缓冲区位置指示 unsigned char Slave
[单片机]
ATmega128单片机与舵机控制板通信
ATmega128单片机通过舵机控制板,控制多路舵机动作。舵机控制板与单片机之间数据通信的方式,采用了常见的串行通信(USART)。舵机控制板具有自动识别波特率(9600,19200,38400,57600,115200,128000自动识别)的功能。 舵机移动指令: 指令格式:# num P pwm .... T time \r\n num =舵机号,范围1-32(十进制数) pwm =脉冲宽度(舵机位置),范围500–2500。单位us(微秒) time =移动到指定位置使用的时间,对所有舵机有效(范围:100-9999)。 \r\n = 十六进制数0x0d,0x0a(回车符),指令结束符。 例如: #8P600T1
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved