找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于ADuC812的远程环境监测信息系统下位机的设计

[复制链接]
admin 发表于 2013-3-26 05:51:51 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  1引言
     ADuC812是美国AD公司率先研制出的真正意义上的完整的数据采集系统芯片,是投入市场的第一种微转换器产品。它性能优良,价格便宜,开发手段完备,是一种新型的高度集成的高精度12位数据采集系统。其内部的12位A/D转换周期仅为4us,比常用的AD574快好几倍。用ADuC812代替由常规芯片构成的数据采集系统,将大大降低产品的成本、缩小设备的体积、提高系统的可靠性和电气性能指标。
     ADuC812芯片内,不仅包含了可重新编程的非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU,还包含了高性能的自校准多通道(8个输入通道)ADC,两个12位DAC,32条可编程I/O接口。ADuC812微控制器内核与8051指令兼容,用户现有的软件都可以直接移植,因而应用开发方便。它具有9个中断源(2个优先级),片内还集成了8K字节的闪速/电擦除程序存储器、640字节的闪速/电擦除数据存储器以及256字节RAM。另外,它还包括一个看门狗定时器和电源监控器,ADC与数据存储器之间的DMA方式,存储保护功能,一个通用的异步串行收发器,SPI和I²C总线接口。AD uC812具有24位地址的外部数据寻址能力, 可寻址16MB的外部数据存储器空间。
     2  远程环境监测信息系统整体介绍
     该远程环境监测信息系统是针对当今环境远程监测自动化、网络化、信息化的要求而设计的,它是由分布于远距离各个监测站的多个下位机和位于中心站的上位机组成,其结构如图1所示。
    2012110704564862971337.jpg
图1、系统结构图
     上下位机是通过MODEM和电话线路实现远程通信的。上位机将各下位机传送来的数据存入数据库,并对各环境数据做出数据分析。
     下位机分布在大范围、远距离的各个环境监测站点,对大气、水质、酸雨等各监测仪送来的各种环境数据进行实时采集。对环境监测仪输出的SO2、NO2、NO等变化缓慢的参数每2分钟采样一次,对酸雨计输出的酸雨参数每0.5mm雨量采样一次。采样数据要求连续保存7天,每天的平均值保存一个月,并且存储在下位机中的采样数据随时准备接受上位机的查询和向上位机传送。
     3下位机硬件电路设计
     下位机硬件电路的设计,主要是考虑被测信号的变化速率和通道数,以及对测量精度、分辨率、速度的要求等。该数据采集系统电路包括:ADuC812、模拟放大转换电路、外部数据存储器28F128、串行口通信以及键盘和LCD显示器,如图2所示。
    2012110704564866096338.jpg
   图2、硬件结构图
     3.1  采集电路的模拟信号输入
     在ADuC812中,P1.0-P1.7初始化后为8通道的模拟输入口。如果用于数字量输入,编程时应首先把端口写“0”。本电路将P1口设为8路由各环境监测仪输出的模拟量输入。由于ADC的基准电压是2.5伏,而各监测仪输出的模拟量一般为0~1伏或4~20毫安,因而需要模拟放大转换电路把输入信号转换成0-2.5伏的标准输入。转换电路如图3所示。
    2012110704564869221339.jpg
   图3、模拟放大转换电路
     3.2  ADuC812与外部数据存储器的接口电路
     为满足本设计系统大量数据的存储要求,在采用常规芯片构成的系统中要采用10片128K的HM628128数据存储器(RAM),这样,不但成本高、电路设计复杂、系统的可靠性和电气性能指标也低。由于ADuC812具有24位地址的外部数据寻址能力,本方案中,我们采用一片28F640。28F640是一超大容量闪速存储器,单片容量为8MB,不但更好的满足了本系统的设计要求,而且当采集参数增加,或采样时间变化时,同样能满足要求,因而提高了系统的兼容性。
     为实现对28F640的访问,ADuC812利用两片8位锁存器74HC573与28F640相连。P0口分时输出低8位地址A0~A7和8位数据,利用地址锁存信号ALE可以将低8位地址锁存到8位锁存器U2中。P2口分时输出高8位地址和中8位地址,可以利用地址锁存信号ALE将高8位地址锁存到8位锁存器U4中。这样就实现了24位寻址空间。由于28F640只有A0~A22共23位地址线,所以锁存器输出的A23地址线悬空。
     3.3  键盘、显示器接口电路
     外接键盘和LCD显示器的目的是:当数据发送错误或人工查询数据时,可通过键盘选择要查询的参数并在显示器上显示出来,使下位机的工作更加灵活方便。
     为了连接键盘和显示器,需要扩展一片8155I/O口扩展芯片,采用4*4触摸式键盘和点阵式液晶显示器。键盘上的键值分别与各路环境参数对应,若为“0”按下,则调显示子程序,此后每按一个键,此按键值对应的环境参数在显示器上显示出来。若不是“0”键按下,则把键值送累加器A。当为“F”键按下时,则退出显示子程序。
   
      3.4 串行通信接口电路 
             由于要通过MODEM、电话线与上位PC机通信,所以须利用MAX232芯片作为RS-232口电平匹配与驱动。MAX232是包含两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232C输出电平所需的±10伏电压。
     4下位机软件设计
     4.1  软件整体设计
     下位机的软件设计主要由3部分组成:数据采集及存储子程序,键盘扫描与液晶显示程序,与上位机的通信子程序。流程图如图4。
     主程序中,首先进行键盘、显示器、AD模块和通信端口的初始化。数据采集及存储子程序编写为定时中断子程序,采用定时器2定时,每2分钟调一次数据采集及存储子程序,采集一次数据。而酸雨数据的采集是通过外部中断INT1,每当酸雨量达0.5mm时向ADuC812发一个中断请求,ADuC812采集一次酸雨数据。
     主程序循环扫描键盘,当有键按下时,转键盘扫描子程序。主程序中把与上位机的通信程序设置为外部中断子程序,中断信号由INT0输入。当上位机要求传送数据时,通过拨号,选中某一下位机,则此下位机程序跳转到通信子程序,完成与上位机的通信。
    2012110704564872346340.jpg
   图4、软件流程图
     4.2  软件设计特点     
     ADuC812微控制器内核与8051指令兼容,用户现有的软件都可以直接移植,但在ADC转换模块和数据的存取方面与8051编程不同。
     在数据采集及存储子程序中,ADC首先要初始化。对ADuC812的AD转换模块的操作是通过对ADCON1,ADCON2和ADCON3这3个特殊功能寄存器(SFR)来控制的。ADCON1控制转换与采集时间、硬件转换模式以及掉电模式。在对ADCON1的设置中,ADC正常工作,时钟分频比为2。由于输入信号模拟放大转换电路的输出阻抗都小于8KΩ,所以选择ADC采集时钟为1。设置定时器2转换位T2C,由此,得ADCON1=52H。ADCON2控制ADC通道选择和转换模式。由于本数据采集系统为8通道顺序采集,ADC每次需要将8个通道的模拟输入量依次进行转换,因此,要把通道号CHAG的值送入ADCON2中。ADCON3未用。一旦特殊功能寄存器ADCON1~3完成设置,ADC将转换模拟输入并在特殊功能寄存器ADCDADAH/L中提供ADC 12位结果字。
     CPU用中断方式管理A/D转换器。当A/D转换完成时,向CPU发请求信号,CPU响应中断,中断处理子程序负责对转换的数据进行读出并将其存储至外部数据存储器28F128中,然后通道号加1,相应的闪速存储器地址也加1。
     当用户访问微转换器ADuC812的16MB的外部数据空间时,必须添加一个数据页指针DPP,与普通MCS-51一样,一条向DPTR送数的MOV指令仍只送16位的数据到DPH和DPL,但一个使DPH溢出的INC DPTR指令,将使地址增加一页而不是加1。页的大小与DPP有关。因此利用数据页指针DPP可实现16MB外部数据空间的访问。
     对28F640的读写是以页编程操作为基础。28F640是超大容量闪速存储器,为了保证对各种操作的可靠进行,芯片内部增加了控制逻辑。如用来接受各种操作命令的用户命令单元接口(CUI)和擦写状态机(WSM)等。当进行数据交换时,首先是将芯片的片选端使能,使存储器进入工作状态,然后再将相应命令字送入CUI。CUI根据命令要求按地址锁存器的寻址去控制WSM对相应的存储单元或存储块区域自动执行编程算法和必要的延时,从而完成数据块的擦除、写入、锁存等操作。
     5结束语
     把ADuC812芯片应用在远程环境监测信息系统下位机的设计上,显着提高了数据采集系统的性能并大幅度地减少了开发时间和成本,适应了现代环境监测的要求。根据具体要求稍加修改,本系统还可适用于气象、电力、水文等需要实时监测的各个部门。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-28 20:19 , Processed in 0.055608 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表