基于嵌入式系统的水污染数据采集终端的设计.docx
《基于嵌入式系统的水污染数据采集终端的设计.docx》由会员分享,可在线阅读,更多相关《基于嵌入式系统的水污染数据采集终端的设计.docx(25页珍藏版)》请在冰豆网上搜索。
![基于嵌入式系统的水污染数据采集终端的设计.docx](https://file1.bdocx.com/fileroot1/2022-12/13/f9e7dba0-34bf-4fef-9a2d-58ce2be87ec6/f9e7dba0-34bf-4fef-9a2d-58ce2be87ec61.gif)
基于嵌入式系统的水污染数据采集终端的设计
研究生课程考试成绩单
(试卷封面)
院系
电气工程学院
专业
电力电子与电力传动
学生姓名
陈春华
学号
081823
课程名称
单片机及智能仪器
授课时间
2009年3月至2009年5月
周学时
3
学分
3
简
要
评
语
考核论题
总评成绩
(含平时成绩)
备注
任课教师签名:
日期:
注:
1.以论文或大作业为考核方式的课程必须填此表,综合考试可不填。
“简要评语”栏缺填无效。
2.任课教师填写后与试卷一起送院系研究生秘书处。
3.学位课总评成绩以百分制计分。
基于嵌入式系统的水污染数据采集终端的设计
学号:
16004520姓名:
陈春华
1.概述
环境污染问题日益严重,对污染物排放的控制越来越得到人们的重视。
要对污染排放进行控制,先需要对各污染源的污染物排放情况进行在线监测。
环保在线监测仪在国外已有成套的技术方法和标准化的仪器。
目前我国的环保监测仪器基本还采用的是实验室分析仪器,工作量大,取样频率低,无法满足污染物总量控制的要求。
本课题针对污染源水质在线监测具体应用,致力于环保领域的在线检测和科学研究[1-2]。
1.1基于ARM微处理器的数据采集系统
目前,常用的数据采集装置,系统硬件多采用单片机进行控制,软件多采用单任务顺序机制。
这样,系统不仅处理能力有限,而且存在系统安全性差的问题。
ARM技术是嵌人式系统方面的主流技术,其应用领域也越来越广泛。
目前市场上的ARM芯片速度可达几百兆,以此为主控芯片可实现高速、高精度且具有一定处理能力的数据采集处理系统[3]。
1.2数据的采集
数据采集是监控设备运行状况必不可少的重要环节,能够将模拟量转换成数字量并且输人到CPU,这也是数据采集系统的基本功能.。
在一些ARM单片机中自带了AD转化器,比如PHILIPS公司的LPC2210,它是基于一个支持实时仿真和嵌人式跟踪的16/32位ARM7TDMICPU的微控制器,带有8路10位ADC。
也可以采用专有的AD转换芯片对输入的模拟量进行数字变换。
但使用独立的AD芯片,势必会导致成本的提高,不利于整个系统的经济型。
但无论是处理器自带的AD还是专有AD芯片都要对输入的模拟量信号进行预处理,完成输入信号的的滤波与放大[4-7]。
1.3数据采集板卡与主控模块的通信
数据采集板卡与主控模块之间必定需要一定的确定的形式进行数据的传输与通信,而总线技术很好的解决了工业现场的智能化仪器仪表、控制器、执行机构等现场设备间的数字通信以及这些现场控制设备和高级控制系统之间的信息传递问题。
以下是控制领域常用的几种总线形式,我们可以根据不同的需要采用符合项目要求的总线[8-12]。
1.3.1RS-485
RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485串行总线标准。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。
RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。
RS-485用于多点互连时非常方便,可以省掉许多信号线。
应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。
1.3.2CAN
最早由德国BOSCH公司推出,它广泛用于离散控制领域,其总线规范已被ISO国际标准组织制定为国际标准,得到了Intel、Motorola、NEC等公司的支持。
CAN协议分为二层:
物理层和数据链路层。
CAN的信号传输采用短帧结构,传输时间短,具有自动关闭功能,具有较强的抗干扰能力。
CAN支持多主工作方式,并采用了非破坏性总线仲裁技术,通过设置优先级来避免冲突,通讯距离最远可达10KM/5Kbps/s,通讯速率最高可达40M/1Mbp/s,网络节点数实际可达110个。
目前已有多家公司开发了符合CAN协议的通信芯片。
1.3.3LonWorks
LonWorks技术是美国Echelon公司于1990年12月为支持LON总线推出的全分布式智能控制网络技术,特点如下:
神经元(Neuron)芯片是技术的核心,它具备了通讯与控制功能,并且固化了ISO的全部七层协议,LonTalk是LON总线的通信协议,支持七层网络协议,提供了一个固化在神经元芯片的网络操作系统。
网络通信采用了面向对象的设计方法(网络变量),使网络通信的设计简化为参数设置,从而节省了大量的设计工作量。
1.3.4I2C总线
I2C(Inter-IC)总线10多年前由Philips公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。
它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。
在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
1.4嵌入式操作系统
随着计算机技术的迅速发展和芯片制造工艺的不断进步,嵌入式系统的应用日益广泛:
从民用的电视、手机等电路设备到军用的飞机、坦克等武器系统,到处都有嵌入式系统的身影。
在嵌入式系统的应用开发中,采和嵌入式实时操作系统(简称RTOS)能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。
这已逐渐成为嵌入式系统开发的一个发展方向。
嵌入式实时操作系统有很多,如VxWorks、PalmOS、WindowsCE等。
这些操作系统均属于商品化产品,价格昂贵且由于源泉代码不公开导致了诸如对设备的支持、应用软件的移植等一系列的问题;而开放源码的RTOS在成本和技术上有其特有的优势,在RTOS领域占有越来越重要的地位。
其中μC/OS-II就是一种优秀的源码公开的实时操作系统。
μC/OS和μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。
CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。
许多移植的范例可以从网站上得到。
用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS嵌入到开发的产品中。
μC/OS具有执行效率高、占用空间小、实时性能优良和可扩展性能等特点,最小内核可编译至2KB。
μC/OS-II已经移植到了几乎所有知名的CPU上[13-15]。
2.系统总体设计方案
2.1总体方案概要
本课题主要针对现场层的设计与实现,考虑到现场水质监测仪通信或数据传输的多样性,同时借鉴、沿用、扩展现有技术,并充分考虑设计的经济性、实用性,可采用嵌入式系统方案。
2.2硬件总体设计方案
根据系统应该具有模块化、标准化、智能化和快速化的设计思想,按功能的不同将整个系统分为几个独立的模块来分别设计。
2.2.1主控模块
对主控模块进行硬件电路设计时,处理器的选择是关键的问题。
按照低功耗、低成本、小体积、多功能的要求。
选择ARM7芯片作为主控制模块的微处理器,在硬件设计上,只需要在芯片周围增加较少的元器件和辅助电路,就可以设计出功能较强、符合系统要求的主控系统。
作为主控系统所要完成的任务相对比较复杂。
主控模块主要任务如下:
(1)要对采集模块传输来的数据进行处理后存储。
(2)主控系统须具有相应的输入(键盘)与输出(显示屏)设备,能根据用户的操作对系统的状态与采集数据进行显示,以便用户读取。
(3)能够控制相应的执行机构(阀门,污染物监测仪器)正确的工作。
(4)具有一定的通信接口,可以和上位机进行互动通信。
2.2.2数据采集模块
电流输入:
-20mA~20mA,光电隔离;电压输入:
-5~5V,光电隔离,模拟量输入通道数应为8路及以上;A/D转换分辨率应至少为12bit或以上。
对仪器采集的模拟信号通过AD进行模数变换,再将采集的数据进行一定解包的处理以后,进行存储。
数字量输入通道数应为8路。
通过数字口,读取仪器的状态数据或对仪器发送一定的控制命令。
2.2.3通信模块
现场仪器,动作模块,上位机都要与主控模块进行数据的交互。
所以需要相应的通信的模块完成数据与控制命令的传输。
在此系统中采用串口完成相应的通信任务。
2.2.4电源模块
在主控制模块中,分别需要使用5V、3.3V、1.8V的直流稳压电源,另外部分器件需要5V和-+12V的电源。
为此,需要设计相应的电源转换电路,以获得所需要的5V、3.3V、1.8V、和-+12V电压。
应配置备用电源(如不间断电源UPS或电池),在断电时数据采集传输仪可继续工作6h以上。
2.3软件总体设计方案
本课题中主控模块是整个系统中枢部分,负责数据的采集(模拟量的采集与数字量的采集),仪器的控制,动作设备的控制,数据的存储,与上位机的通信。
所以软件设计的工作主要集中在主控模块软件的设计上。
根据软件功能的不同,我们又可以将主控模块软件划分为以下五个子模块来进行详细设计。
1.数据采集模块:
本模块是软件是最主要的功能模块。
根据采集信号量的不同,可分为模拟量采集模块与数字量采集模块。
其中模拟量采集模块主要负责控制各块多通道AD对不同通道的模拟信号进行模数变换,进行数据的采集;而数字量采集模块主要负责对各数字通道传来的数据包进行分别解包采集数据,并且负责向不同仪器发送控制命令。
2.数据存储模块:
对数据采集模块采集的数据,根据仪器的不同,进行分类存储,便于以后上位机对数据的查询与读取。
3.仪器控制模块:
在有些情况下,需要我们对仪器进行一定的操作(例如:
读仪器时间、设定仪器的时间、控制仪器定时测量、对仪器进行校正)控制其正常工作。
4.动作设备控制模块:
主要控制泵、阀、采集模块等外部器件的动作。
要对这些器件进行怎样的控制,可以写在步骤文件中,独立于运行控制核心。
5.通信模块:
此模块主要负责与上位机的通信与系统的测试。
因为采集的数据不可能只存在终端设备中,需要我们将数据有效的传回上位机中进行存储与处理。
所以利用此通信模块对数据进行有效的传输。
2.4系统的总体架构
2.4.1硬件架构图
硬件系统可分为6个模块来设计:
主控制模块采用LPC2294作为系统的核心CPU;数据采集模块以AD7865作为数模转化的核心芯片并辅助以OP497作为前端调理电路的核心芯片;数据通信模块以TL16C554作为串口扩展芯片,以MAX3485、SP3232E作为485与232接口芯片;控制信号模块以TLP521-4为光隔,以TN2-12V继电器作为驱动芯片;电源模块涉及到了各电压等级,我们选择了LDO芯片SPX-1117作为稳压器件;存储模块以SRAMIS61LV25616AL芯片作为存储器件。
图2-1硬件架构图
2.4.2软件架构图
软件工作流程如图2-2根据项目的要求,系统应具有两种命令发送方式:
第一种为了随时观测水质的需要,可以通过按键,手工输入采集命令,通知仪器进行采集,获得相关水质数据。
第二种为了自动化采集的需要,可以通过配置文件,控制系统定时发送采集命令,通知仪器进行采集,这样可以实现无人职守采集站。
因为水质采集仪器的多样性,决定了不能通过统一的采集模式,对仪器进行数据的采集。
根据仪器的分类,可分为三种采集模式:
南京市协议采集模式、Modbus协议采集模式、模拟量采集模式。
对于仪器传回的数据,系统要进行一定的处理后再进行处理。
从采集模式中我们了解到三种形式的数据,所以要求我们对三种资料需采用不同的处理方式。
利用串口我们可以实现将系统采集的数据传回上位机进行显示。
这就要求我们的系统与上位机之间采用一定的通信协议。
图2-2软件架构图
3.水污染采集系统的硬件设计
在进行系统硬件设计时,将整个系统分为多个模块进行设计,这样可以使设计时,任务更明确,系统结构更清晰。
该系统可分为6个模块来设计:
主控制模块、数据采集模块、数据通信模块、控制信号模块、电源模块和存储模块。
根据第二章选型标准:
主控制模块采用LPC2294作为系统的核心CPU;数据采集模块以AD7865作为数模转化的核心芯片并辅助以OP497作为前端调理电路的核心芯片;数据通信模块以TL16C554作为串口扩展芯片,以MAX3485、SP3232E作为485与232接口芯片;控制信号模块以TLP521-4为光隔,以TN2-12V继电器作为驱动芯片;电源模块涉及到了各电压等级,我们选择了LDO芯片SPX-1117作为稳压器件;存储模块以SRAMIS61LV25616AL芯片作为存储器件。
3.1ARM核心模块电路
采集系统采用ARM7LPC2294作为处理器,由于LPC2294的144脚封装、极低的功耗、多个32位定时器、4高级CAN以及多达9个外部中断管脚使它们特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。
LPC2294含有76(使用了外部存储器)到112个(单片)可用GPIO口。
由于内置了两个串行通信接口,它们也非常适合于通信网关、协议转换器以及许多其它的通用应用中。
下面将详细介绍所使用的LPC2294的几个基本功能模块与其管脚连接:
系统中使用了LPC2294的两个UART,作为我们串口通信接口。
LPC2294的两个UART中,有一个具有完整的modem功能。
在我们的使用中将两个串口作为RS232的信号源。
其中用到的管脚为TxD0、RxD0、TxD1、RxD1;其中TxD0作为串口1的发送数据线,RxD0作为串口1的数据接受线;TxD1作为串口2的发送数据线,RxD1作为串口2的数据接受线。
LPC2294在使用中最方便的还是其所具有的外部总线,它可以让用户可以很简单的扩展存储器,而且也可以非常容易的挂接其它的外部器件例如本系统中所使用的AD与串口扩展芯片。
我们从管脚可以清楚的看出,总线具有32位宽度的数据线,我们可以通过使用BLSx控制所需要使用的数据位(以字节为单位)。
地址线为24位再加上四个片选端,所能控制的地址范围为64M。
其中的WE、OE分别为总线的写信号与读信号。
在进行系统开发的时候,MCU的中断也是我们非常关心的一个问题。
我通过LPC2294的资料了解到,LPC2294具有9个外部中断管脚,我们可以方便的使用这些中断进行系统的开发。
一个嵌入式处理器自己是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,然后嵌入式处理器芯片才可能工作。
这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。
而大多数基于ARM7处理器核的微控制器都有调试接口,这部分在芯片实际工作时不是必需的,但因为这部分在开发时很重要,所以也把这部分也归入最小系统中
但是只有了一块LPC2294处理器自己是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,然后嵌入式处理器芯片才可能工作。
这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。
而大多数基于ARM7处理器核的微控制器都有调试接口,这部分在芯片实际工作时不是必需的,但因为这部分在开发时很重要,所以也把这部分也归入最小系统中。
1.时钟电路
图3-2为LPC2294的时钟电路,用于向CPU及其他电路提供工作时钟。
LPC2294使用的是无源晶振。
因串口通信的需要,选择11.0592MHz的晶振。
LPC可以通过内部的PLL电路将传到芯片内核的工作频率提高。
通过PLL倍频以后,LPC2294的工作频率可以到达60MHz。
片内的PLL电路兼有频率提高与信号提纯的作用,因此可以通过外部较低的时钟信号的输入,获得较高的系统工作频率,避免了高频时钟的输入,所引起的高频信号噪声。
片内的工作频率,还可以通过内部寄存器的设置,获得外围器件需要的时钟信号。
2.复位电路
微控制器在上电时状态并不确定,这造成微控制器不能正确工作。
为解决这个问题,所有微控制器均有一个复位逻辑,它负责将微控制器初始化为某个确定的状态。
这个复位逻辑需要一个复位信号才能工作。
一些微控制器自己在上电时会产生复位信号,但大多数微控制器需要外部输入这个信号。
这个信号的稳定性和可靠性对微控制器的正常工作有重大影响。
复位电路可以使用简单的阻容复位,这个电路成本低廉,但不能保证任何情况产生稳定可靠的复位信号,所以一般场合需要使用专门的复位芯片。
复位芯片的复位门槛的选择至关重要,一般应当选择微控制器的IO口供电电压范围为标准。
LPC2000这个范围为:
3.0V~3.6V,所以选择复位门槛电压为2.93V,即电源电压低于2.93V时产生复位信号。
在此系统中我们选择了CATALYST公司的CAT1023。
该芯片具有2K字节EEPROM存储器,数据保存时间长达100年;存储器采用400KHz的I2C总线接口,16字节的页写缓冲区;具有高、低电平复位信号;并且具有看门狗输入信号,可以和好的解决程序跑飞的问题。
ARM的复位电路,其中/MR是手工复位输入端低电平有效;RESET与/RESET是复位输出端,两引脚都是开漏引脚,所以要分别接下拉电阻与上拉电阻;SDA是双向数据线,也是开漏引脚需接上拉电阻;SCL是时钟信号输入端;WDI为看门狗信号输入引脚,需每1.6秒能输入高电平信号,否则芯片发出复位信号。
3.JTAG调试接口电路
调试与测试接口不是系统运行必须的,但现代系统越来越强调可测性,调试、测试接口的设计也要重视了。
LPC2194有一个内置JTAG调试接口,通过这个接口可以控制芯片的运行并获取内部信息。
对于LPC2294芯片,通过将JTAG接口信号线连接到一个插座,外部仿真器或者编程器通过改插座来与处理器相连接,从而实现对CPU的调试与编程。
目前JTAG插座有两种标准:
14针接口与20针接口本系统使用的是20针接口。
JTAG接口电路如图3-4所示,/TRST是JTAG接口的测试复位管脚;/TMS是JTAG接口的模式选择管脚;/TCK是JTAG接口测试时钟管脚;/TDI是JTAG接口测试数据输入管脚;/TDO是JTAG接口测试数据输出管脚;/RTCK返回的测试时钟输出管脚,JTAG端口的额外信号,当处理器频率变化时帮助调试器保持同步,带内部上拉的双向口,当RESET为低时,RTCK上的低电平会使P1[31:
26]在复位后作为调试端口;nRST该信号可以产生复位信号,这样可以保证仿真器或编程器连接到处理器上后可以让处理器各寄存器复位。
4.ARM其他需配置的管脚
BOOT1与BOOT0一同控制引导和内部操作。
管脚的内部上拉确保了管脚未连接时呈
现高阻态。
BOOT1:
0=00选择引导CS0控制的8位存储器。
BOOT1:
0=01选择引导CS0控制的16位存储器。
BOOT1:
0=10选择引导CS0控制的32位存储器。
BOOT1:
0=11选择内部Flash存储器。
在我们系统中使用内部Flash,所以两管脚需经上拉电阻把管脚设置为高电平。
P0.14管脚应经上拉电阻接高电平,当RESET为低时,该管脚上若为低电平将强制复位后由片上引导装载程序来控制器件的操作。
3.2数据采集模块电路
在我们的采集模块中采用两块AD7865-1构成一个八通道的模拟量采集系统。
AD7865-1是一种高速、低功耗、四通道同步采样的14位A/D转换器,可以工作在3.3V系统中。
下面介绍一下AD7865工作设置
1.通道选择
AD7865具有硬件和软件两种通道选择方式由引脚H/S控制,其中,SLl-SL4实现硬件通道选择;数据线D3-DO实现软件通道选择。
(1)如果引脚H/S输人低电平,则通过引脚SLl-SL4进行硬件通道选择。
SLl-SL4分别对应通道1-4。
相应引脚输入为高电平时对应通道被选通,输人为低电平时该通道被屏蔽。
(2)如果引脚H/S输人高电平,则通过DO-D3数据写人寄存器进行软件通道选择,DO-D3分别对应通道1-4。
相应数据线写1时,对应通道被选通,写0时该通道被屏蔽。
在我们的系统中需要随时能选择一个或几个通道进行数据的转换,所以选择第二种软件控制选通道的方法。
2.启动转换
AD7865的启动转换控制特别方便。
引脚CONVST只需保持至少35ns的低电平,然后由低变高时,跟踪/保持放大器就置成保持模式,这样便采到了四个信号,进人转换状态。
此时,BUSY管脚的输出变成高电平,以标志转换正在进行。
当所有通道转换完毕时,BUSY变为低电平。
3.读转换结果
有两种方法可以读出数据结果:
(1)利用AD7865-1的/EOC管脚,在每一个通道转换结束后,EOC将变为低电平,我们可以利用这个间隙,通过中断的方式,逐一读取每个通道的值,其时序图如下:
图3-1AD7865EOC启动图
(2)系统启动转换后引脚BUSY将变成高电平,直到所有通道都转换完毕BUSY变低,此时便可顺序读出各通道的结果。
寄存器出完第一个数据以后FRSTDATA失效变低。
其时序图如下:
图3-2AD7865BUSY启动图
第一种方案对ARM的数据接受速度有一定的要求,经过比较我们选择了第二种方案,通过将BUSY信号接到ARM芯片的中断管脚,在数据转换完成以后我们可以通过中断的方式快速的读取转化值。
4.时钟
AD7865可以使用内部时钟,也可从外部输人。
芯片使用硬件通道选择,即引脚H/S为低电平时,系统启动后将自动使用内部时钟。
芯片使用软件通道选择,即引脚H/S为高电平时,当引脚INT/EXTCLK为低电平时使用内部时钟,为高电平时使用外部时钟,外部时钟从CLKIN引脚输入。
使用的时钟不同所用的转换时间也不同。
用内部时钟每个通道的转换时间为2.4u,而使用外部时钟时为3.2us。
虽然使用外部时钟的转换时间要长一些,但外部时钟的某些功能是内部时钟所不具备的。
例如,当在一个系统中同时用两片或多片AD7865时,如果使用内部时钟则很难保持各个芯片间的采样和转换同步进行。
假如所有的AD7865都使用同一个外部时钟就会解决这个问题。
但是我们的系统没有同步的要求所以采用的是内置时钟,软件选择通道的模式。
[16]
5.工作电压与基准电压源
AD7865的DVDD应接+5V数字电源,但是它能工作在3.3V的状态下。
AD7865有一Vdrive管脚,若我们需要将芯片在3.3V下工作,此管脚需接VD3.3V。
另外,AD7865有内置的2.5V基准电压源,但也可以工作在外部基准电压源下。
在我们的系统中使用的是内部基准电压源。
采集模块中出了AD转化芯片外,另一个重要的部件就是模拟信号调理电路。
因为AD7865是14bit的ADC,输入端为低阻,所以前端必须选用双极性的运放。
整个带宽内的噪声要满足14比特ADC的要求,而且模拟信号中还要滤掉影响采集的高次谐波。
所以我们选择两个OP497构成一个八通道的有源低通滤波电路。
OP497组成的是RC有源滤波电路,我们根据我们的低通滤波频率需要可以计算出RC的值。
由于AD7865的电压输入范围为-5V—+5V,而它的安全电压范围为-9V—+9V,所以为了AD安全工作须有二极管进行限压保护。
3.3数据通信模块电路
数据通信模块分为两个部分:
一个是利用ARM芯片本身所具有的两个UART设计出两个RS232接口;另一个是利用ARM外部数据总线加TL16C554扩展出四个标准UART,在通过MAX3485扩展出四个485接口。
1.RS232接口设计
RS232是美国电子工业协会(EIA)制定的串行通讯标准,又称RS-232-C。
RS232是一个全双工的通讯标准,它可以同时进行数据接收和发送的工作。
如果要使用LPC2294中的UART与RS232接口的设