




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、研究生课程考试成绩单(试卷封面)院 系电气工程学院专业电力电子与电力传动学生姓名陈春华学号课程名称单片机及智能仪器授课时间 2009 年3月至2009年5月周学时3学分3简要评语考核论题总评成绩(含平时成绩)备注任课教师签名: 日期: 注:1. 以论文或大作业为考核方式的课程必须填此表,综合考试可不填。“简要评语”栏缺填无效。2. 任课教师填写后与试卷一起送院系研究生秘书处。3. 学位课总评成绩以百分制计分。基于嵌入式系统的水污染数据采集终端的设计学号: 姓名:陈春华 1.概述环境污染问题日益严重,对污染物排放的控制越来越得到人们的重视。要对污染排放进行控制,先需要对各污染源的污染物排放情况进
2、行在线监测。环保在线监测仪在国外已有成套的技术方法和标准化的仪器。目前我国的环保监测仪器基本还采用的是实验室分析仪器,工作量大,取样频率低,无法满足污染物总量控制的要求。本课题针对污染源水质在线监测具体应用,致力于环保领域的在线检测和科学研究 1-2 。1.1 基于ARM微处理器的数据采集系统目前,常用的数据采集装置,系统硬件多采用单片机进行控制,软件多采用单任务顺序机制。这样,系统不仅处理能力有限,而且存在系统安全性差的问题。ARM技术是嵌人式系统方面的主流技术,其应用领域也越来越广泛。目前市场上的ARM芯片速度可达几百兆,以此为主控芯片可实现高速、高精度且具有一定处理能力的数据采集处理系统
3、3。1.2 数据的采集数据采集是监控设备运行状况必不可少的重要环节,能够将模拟量转换成数字量并且输人到CPU,这也是数据采集系统的基本功能.。在一些ARM单片机中自带了AD转化器,比如PHILIPS公司的LPC2210,它是基于一个支持实时仿真和嵌人式跟踪的16/32位ARM7TDMI CPU的微控制器,带有8路10位ADC。也可以采用专有的AD转换芯片对输入的模拟量进行数字变换。但使用独立的AD芯片,势必会导致成本的提高,不利于整个系统的经济型。但无论是处理器自带的AD还是专有AD芯片都要对输入的模拟量信号进行预处理,完成输入信号的的滤波与放大 4-7 。1.3 数据采集板卡与主控模块的通信
4、数据采集板卡与主控模块之间必定需要一定的确定的形式进行数据的传输与通信,而总线技术很好的解决了工业现场的智能化仪器仪表、控制器、执行机构等现场设备间的数字通信以及这些现场控制设备和高级控制系统之间的信息传递问题。以下是控制领域常用的几种总线形式,我们可以根据不同的需要采用符合项目要求的总线8-12。1.3.1 RS-485RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。 RS-485采用半双工工作方式,任
5、何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。1.3.2 CAN最早由德国BOSCH公司推出,它广泛用于离散控制领域,其总线规范已被ISO国际标准组织制定为国际标准,得到了Intel、Motorola、NEC等公司的支持。CAN协议分为二层:物理层和数据链路层。CAN的信号传输采用短帧结构,传输时间短,具有自动关闭功能,具有较强的抗干扰能力。CAN支持多主工作方式,并采用了非破坏性总线仲裁技术,通过设置优先级来避免冲突,通讯距离最远可达
6、10KM/5Kbps/s,通讯速率最高可达40M /1Mbp/s,网络节点数实际可达110个。目前已有多家公司开发了符合CAN协议的通信芯片。1.3.3 LonWorksLonWorks技术是美国Echelon公司于1990年12月为支持LON总线推出的全分布式智能控制网络技术,特点如下:神经元(Neuron)芯片是技术的核心,它具备了通讯与控制功能,并且固化了ISO的全部七层协议,LonTalk是LON总线的通信协议,支持七层网络协议,提供了一个固化在神经元芯片的网络操作系统。网络通信采用了面向对象的设计方法(网络变量),使网络通信的设计简化为参数设置,从而节省了大量的设计工作量。1.3.4
7、 I2C总线I2C(Inter-IC)总线10多年前由Philips公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。1.4 嵌入式操作系统随着计算机技术的迅速发展和芯片制造工艺的不断进步,嵌入式系统的应用日益广泛:从民用的电视、手机等电路设备到军用的飞机、坦克等武器系统,到处都有嵌入式系统的身影。在嵌入式系统的应用开发中,采和嵌入式实时操作系统(简称RTOS)能够支持多任务,使得程序开发更加容易,便于维
8、护,同时能够提高系统的稳定性和可靠性。这已逐渐成为嵌入式系统开发的一个发展方向。嵌入式实时操作系统有很多,如VxWorks、PalmOS、WindowsCE等。这些操作系统均属于商品化产品,价格昂贵且由于源泉代码不公开导致了诸如对设备的支持、应用软件的移植等一系列的问题;而开放源码的RTOS在成本和技术上有其特有的优势,在RTOS领域占有越来越重要的地位。其中C/OS-II就是一种优秀的源码公开的实时操作系统。C/OS和C/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植
9、到任何一种其它的CPU上。许多移植的范例可以从网站上得到。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将C/OS嵌入到开发的产品中。 C/OS具有执行效率高、占用空间小、实时性能优良和可扩展性能等特点,最小内核可编译至2KB。C/OS-II已经移植到了几乎所有知名的CPU上13-15。2系统总体设计方案2.1 总体方案概要本课题主要针对现场层的设计与实现,考虑到现场水质监测仪通信或数据传输的多样性,同时借鉴、沿用、扩展现有技术,并充分考虑设计的经济性、实用性,可采用嵌入式系统方案。2.2 硬件总体设计方案根据系统应该具有模块化、标准化、智能化和快速化的设计思想,按
10、功能的不同将整个系统分为几个独立的模块来分别设计。2.2.1 主控模块对主控模块进行硬件电路设计时,处理器的选择是关键的问题。按照低功耗、低成本、小体积、多功能的要求。选择ARM7芯片作为主控制模块的微处理器,在硬件设计上,只需要在芯片周围增加较少的元器件和辅助电路,就可以设计出功能较强、符合系统要求的主控系统。作为主控系统所要完成的任务相对比较复杂。主控模块主要任务如下:(1)要对采集模块传输来的数据进行处理后存储。(2)主控系统须具有相应的输入(键盘)与输出(显示屏)设备,能根据用户的操作对系统的状态与采集数据进行显示,以便用户读取。(3)能够控制相应的执行机构(阀门,污染物监测仪器)正确
11、的工作。(4)具有一定的通信接口,可以和上位机进行互动通信。2.2.2数据采集模块电流输入:-20mA 20mA,光电隔离;电压输入:-55V,光电隔离,模拟量输入通道数应为8路及以上;A/D转换分辨率应至少为12bit或以上。对仪器采集的模拟信号通过AD进行模数变换,再将采集的数据进行一定解包的处理以后,进行存储。数字量输入通道数应为8路。通过数字口,读取仪器的状态数据或对仪器发送一定的控制命令。2.2.3通信模块现场仪器,动作模块,上位机都要与主控模块进行数据的交互。所以需要相应的通信的模块完成数据与控制命令的传输。在此系统中采用串口完成相应的通信任务。2.2.4电源模块在主控制模块中,分
12、别需要使用5V、3.3V、1.8V的直流稳压电源,另外部分器件需要5V和-+12V的电源。为此,需要设计相应的电源转换电路,以获得所需要的5V、3.3V、1.8V、和-+12V电压。应配置备用电源(如不间断电源UPS或电池),在断电时数据采集传输仪可继续工作6h以上。2.3 软件总体设计方案本课题中主控模块是整个系统中枢部分,负责数据的采集(模拟量的采集与数字量的采集),仪器的控制,动作设备的控制,数据的存储,与上位机的通信。所以软件设计的工作主要集中在主控模块软件的设计上。根据软件功能的不同,我们又可以将主控模块软件划分为以下五个子模块来进行详细设计。1数据采集模块:本模块是软件是最主要的功
13、能模块。根据采集信号量的不同,可分为模拟量采集模块与数字量采集模块。其中模拟量采集模块主要负责控制各块多通道AD对不同通道的模拟信号进行模数变换,进行数据的采集;而数字量采集模块主要负责对各数字通道传来的数据包进行分别解包采集数据,并且负责向不同仪器发送控制命令。2数据存储模块:对数据采集模块采集的数据,根据仪器的不同,进行分类存储,便于以后上位机对数据的查询与读取。3仪器控制模块: 在有些情况下,需要我们对仪器进行一定的操作(例如:读仪器时间、设定仪器的时间、控制仪器定时测量、对仪器进行校正)控制其正常工作。4动作设备控制模块:主要控制泵、阀、采集模块等外部器件的动作。要对这些器件进行怎样的
14、控制,可以写在步骤文件中,独立于运行控制核心。5通信模块:此模块主要负责与上位机的通信与系统的测试。因为采集的数据不可能只存在终端设备中,需要我们将数据有效的传回上位机中进行存储与处理。所以利用此通信模块对数据进行有效的传输。2.4 系统的总体架构2.4.1 硬件架构图硬件系统可分为6个模块来设计:主控制模块采用LPC2294作为系统的核心CPU;数据采集模块以AD7865作为数模转化的核心芯片并辅助以OP497作为前端调理电路的核心芯片;数据通信模块以TL16C554作为串口扩展芯片,以MAX3485、SP3232E作为485与232接口芯片;控制信号模块以TLP521-4为光隔,以TN2-
15、12V继电器作为驱动芯片;电源模块涉及到了各电压等级,我们选择了LDO芯片SPX-1117作为稳压器件;存储模块以SRAM IS61LV25616AL芯片作为存储器件。图 2-1 硬件架构图2.4.2 软件架构图软件工作流程如图2-2根据项目的要求,系统应具有两种命令发送方式:第一种为了随时观测水质的需要,可以通过按键,手工输入采集命令,通知仪器进行采集,获得相关水质数据。第二种为了自动化采集的需要,可以通过配置文件,控制系统定时发送采集命令,通知仪器进行采集,这样可以实现无人职守采集站。因为水质采集仪器的多样性,决定了不能通过统一的采集模式,对仪器进行数据的采集。根据仪器的分类,可分为三种采
16、集模式:南京市协议采集模式、Modbus协议采集模式、模拟量采集模式。对于仪器传回的数据,系统要进行一定的处理后再进行处理。从采集模式中我们了解到三种形式的数据,所以要求我们对三种资料需采用不同的处理方式。利用串口我们可以实现将系统采集的数据传回上位机进行显示。这就要求我们的系统与上位机之间采用一定的通信协议。图 2-2 软件架构图3.水污染采集系统的硬件设计在进行系统硬件设计时,将整个系统分为多个模块进行设计,这样可以使设计时,任务更明确,系统结构更清晰。该系统可分为6个模块来设计:主控制模块、数据采集模块、数据通信模块、控制信号模块、电源模块和存储模块。根据第二章选型标准:主控制模块采用L
17、PC2294作为系统的核心CPU;数据采集模块以AD7865作为数模转化的核心芯片并辅助以OP497作为前端调理电路的核心芯片;数据通信模块以TL16C554作为串口扩展芯片,以MAX3485、SP3232E作为485与232接口芯片;控制信号模块以TLP521-4为光隔,以TN2-12V继电器作为驱动芯片;电源模块涉及到了各电压等级,我们选择了LDO芯片SPX-1117作为稳压器件;存储模块以SRAM IS61LV25616AL芯片作为存储器件。3.1 ARM核心模块电路采集系统采用ARM7LPC2294作为处理器,由于LPC2294 的144 脚封装、极低的功耗、多个32 位定时器、4 高
18、级CAN以及多达9个外部中断管脚使它们特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。LPC2294 含有76(使用了外部存储器)到112个(单片)可用GPIO口。由于内置了两个串行通信接口,它们也非常适合于通信网关、协议转换器以及许多其它的通用应用中。下面将详细介绍所使用的LPC2294的几个基本功能模块与其管脚连接:系统中使用了LPC2294的两个UART,作为我们串口通信接口。LPC2294的两个UART中,有一个具有完整的modem功能。在我们的使用中将两个串口作为RS232的信号源。其中用到的管脚为TxD0、RxD0、TxD1、RxD1;其中TxD0作为串口1的发送数据线,R
19、xD0作为串口1的数据接受线;TxD1作为串口2的发送数据线,RxD1作为串口2的数据接受线。LPC2294在使用中最方便的还是其所具有的外部总线,它可以让用户可以很简单的扩展存储器,而且也可以非常容易的挂接其它的外部器件例如本系统中所使用的AD与串口扩展芯片。我们从管脚可以清楚的看出,总线具有32位宽度的数据线,我们可以通过使用BLSx控制所需要使用的数据位(以字节为单位)。地址线为24位再加上四个片选端,所能控制的地址范围为64M。其中的WE、OE分别为总线的写信号与读信号。在进行系统开发的时候,MCU的中断也是我们非常关心的一个问题。我通过LPC2294的资料了解到,LPC2294具有9
20、个外部中断管脚,我们可以方便的使用这些中断进行系统的开发。一个嵌入式处理器自己是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,然后嵌入式处理器芯片才可能工作。这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。而大多数基于ARM7处理器核的微控制器都有调试接口,这部分在芯片实际工作时不是必需的,但因为这部分在开发时很重要,所以也把这部分也归入最小系统中但是只有了一块LPC2294处理器自己是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器
21、系统,然后嵌入式处理器芯片才可能工作。这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。而大多数基于ARM7处理器核的微控制器都有调试接口,这部分在芯片实际工作时不是必需的,但因为这部分在开发时很重要,所以也把这部分也归入最小系统中。1.时钟电路图3-2为LPC2294的时钟电路,用于向CPU及其他电路提供工作时钟。LPC2294使用的是无源晶振。因串口通信的需要,选择11.0592MHz的晶振。LPC可以通过内部的PLL电路将传到芯片内核的工作频率提高。通过PLL倍频以后,LPC2294的工作频率可以到达60MHz。片内的PLL电路兼有频率提高与信
22、号提纯的作用,因此可以通过外部较低的时钟信号的输入,获得较高的系统工作频率,避免了高频时钟的输入,所引起的高频信号噪声。片内的工作频率,还可以通过内部寄存器的设置,获得外围器件需要的时钟信号。2.复位电路微控制器在上电时状态并不确定,这造成微控制器不能正确工作。为解决这个问题,所有微控制器均有一个复位逻辑,它负责将微控制器初始化为某个确定的状态。这个复位逻辑需要一个复位信号才能工作。一些微控制器自己在上电时会产生复位信号,但大多数微控制器需要外部输入这个信号。这个信号的稳定性和可靠性对微控制器的正常工作有重大影响。 复位电路可以使用简单的阻容复位,这个电路成本低廉,但不能保证任何情况产生稳定可
23、靠的复位信号,所以一般场合需要使用专门的复位芯片。 复位芯片的复位门槛的选择至关重要,一般应当选择微控制器的IO口供电电压范围为标准。LPC2000这个范围为:3.0V3.6V,所以选择复位门槛电压为2.93V,即电源电压低于2.93V时产生复位信号。在此系统中我们选择了CATALYST公司的CAT1023。该芯片具有2K字节EEPROM存储器,数据保存时间长达100年;存储器采用400KHz的I2C总线接口,16字节的页写缓冲区;具有高、低电平复位信号;并且具有看门狗输入信号,可以和好的解决程序跑飞的问题。ARM的复位电路,其中/MR是手工复位输入端低电平有效;RESET与/RESET是复位
24、输出端,两引脚都是开漏引脚,所以要分别接下拉电阻与上拉电阻;SDA 是双向数据线,也是开漏引脚需接上拉电阻;SCL是时钟信号输入端;WDI为看门狗信号输入引脚,需每1.6秒能输入高电平信号,否则芯片发出复位信号。3.JTAG调试接口电路调试与测试接口不是系统运行必须的,但现代系统越来越强调可测性,调试、测试接口的设计也要重视了。LPC2194有一个内置JTAG调试接口,通过这个接口可以控制芯片的运行并获取内部信息。对于LPC2294芯片,通过将JTAG接口信号线连接到一个插座,外部仿真器或者编程器通过改插座来与处理器相连接,从而实现对CPU的调试与编程。目前JTAG插座有两种标准:14针接口与
25、20针接口本系统使用的是20针接口。JTAG接口电路如图3-4所示,/TRST是JTAG 接口的测试复位管脚;/TMS是JTAG 接口的模式选择管脚;/TCK是JTAG 接口测试时钟管脚;/TDI是JTAG接口测试数据输入管脚;/TDO是JTAG 接口测试数据输出管脚;/RTCK返回的测试时钟输出管脚,JTAG 端口的额外信号,当处理器频率变化时帮助调试器保持同步,带内部上拉的双向口,当RESET 为低时,RTCK 上的低电平会使P131:26在复位后作为调试端口;nRST该信号可以产生复位信号,这样可以保证仿真器或编程器连接到处理器上后可以让处理器各寄存器复位。4.ARM其他需配置的管脚BO
26、OT1 与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构成一个八通道的模
27、拟量采集系统。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时,对应
28、通道被选通,写0时该通道被屏蔽。在我们的系统中需要随时能选择一个或几个通道进行数据的转换,所以选择第二种软件控制选通道的方法。2.启动转换AD7865的启动转换控制特别方便。引脚CONVST只需保持至少35ns的低电平,然后由低变高时,跟踪/保持放大器就置成保持模式,这样便采到了四个信号,进人转换状态。此时,BUSY管脚的输出变成高电平,以标志转换正在进行。当所有通道转换完毕时,BUSY变为低电平。3.读转换结果有两种方法可以读出数据结果:(1)利用AD7865-1的/EOC管脚,在每一个通道转换结束后,EOC将变为低电平,我们可以利用这个间隙,通过中断的方式,逐一读取每个通道的值,其时序图如
29、下:图 3-1 AD7865 EOC启动图(2)系统启动转换后引脚BUSY将变成高电平,直到所有通道都转换完毕BUSY变低,此时便可顺序读出各通道的结果。寄存器出完第一个数据以后FRSTDATA失效变低。其时序图如下:图 3-2 AD7865 BUSY启动图第一种方案对ARM的数据接受速度有一定的要求,经过比较我们选择了第二种方案,通过将BUSY信号接到ARM芯片的中断管脚,在数据转换完成以后我们可以通过中断的方式快速的读取转化值。4.时钟AD7865可以使用内部时钟,也可从外部输人。芯片使用硬件通道选择,即引脚H/S为低电平时,系统启动后将自动使用内部时钟。芯片使用软件通道选择,即引脚H/S
30、为高电平时,当引脚INT/EXTCLK为低电平时使用内部时钟,为高电平时使用外部时钟,外部时钟从CLKIN引脚输入。使用的时钟不同所用的转换时间也不同。用内部时钟每个通道的转换时间为2.4 u,而使用外部时钟时为3.2 us。虽然使用外部时钟的转换时间要长一些,但外部时钟的某些功能是内部时钟所不具备的。例如,当在一个系统中同时用两片或多片AD7865时,如果使用内部时钟则很难保持各个芯片间的采样和转换同步进行。假如所有的AD7865都使用同一个外部时钟就会解决这个问题。但是我们的系统没有同步的要求所以采用的是内置时钟,软件选择通道的模式。165.工作电压与基准电压源AD7865的DVDD应接+
31、5V数字电源,但是它能工作在3.3V的状态下。AD7865有一Vdrive管脚,若我们需要将芯片在3.3V下工作,此管脚需接VD3.3V。另外,AD7865有内置的2.5V基准电压源,但也可以工作在外部基准电压源下。在我们的系统中使用的是内部基准电压源。采集模块中出了AD转化芯片外,另一个重要的部件就是模拟信号调理电路。因为AD7865是14bit的ADC,输入端为低阻,所以前端必须选用双极性的运放。整个带宽内的噪声要满足14比特ADC的要求,而且模拟信号中还要滤掉影响采集的高次谐波。所以我们选择两个OP497构成一个八通道的有源低通滤波电路。OP497组成的是RC有源滤波电路,我们根据我们的
32、低通滤波频率需要可以计算出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中的UA
33、RT与RS232接口的设备进行基本的通讯,那么就需要一个RS232转换器将TTL电平转换成RS232电平。在此系统中我们使用SP3232E作为电平转化芯片。SP3222E/3232E系列由3个基本电路模块组成:驱动器、接收器和3 Sipex特有的电荷泵。2.利用TL16C554扩展四个RS485接口因为LPC2294已有的两个UART已被使用,所以扩展四个485接口的任务只能交给异步通信扩展芯片来实现高速串行通信。在本系统中我们利用TI公司的异步通信芯片,TL16C554可以实现扩展4个串行口通信。TL16C554内部共有12个寄存器,这些寄存器分别用于实现通信参数的设置、对线路及MODEM的
34、状态访问、数据的发送和接收以及中断管理等。编程人员可由AO,A l,A 2三条片内寄存器选择线和线路控制寄存器的除法数锁存器访问位DLAB一起通过多路复用进行访问或控制TL16C554的任何一个寄存器。各主要引脚的功能说明与系统的连接方式如下:*A0 - A2 :片内寄存器的选择信号;该三信号我们与ARM地址线A0-A2直接相连。*D0 一 D7 :双向8位数据线;该数据线与ARM第八位数据线相连。*/CS A,/CSB,/CSC,/CSD 输人片选信号,分别能使4个串行口读写操作。这四线通过将ARM中CS2,A23和A22进行38译码获得.这样每个串口都获得一个ARM片外地址。*XT A L
35、1 ,X TAL2晶振或外部时钟输人输出端,该脚可接外部晶振。在本系统中我们接了1.8432MHz的无源晶振,可通过内部的分频寄存器确定串口的通信速率。*RX RDYx接收准备好的信号。当TL16C554已经从串行输人端接收了一个字符时,该信号失效,在中断方式时可作为中断请求信号。TXRDYx:发送准备好信号。当TL16C554允许发送且发送缓冲区为空时,该信号有效,在中断方式时可作为中断请求信号;* INTA , INTB,INTC,INTD: 4个串行口中断输出 。我们将这四个信号经过非处理后输入到与门再进行与处理输入到ARM中断0管脚调用中断。*RX A ,RXB,RXC,RXD:串行数
36、据输人引脚与MAX3485相连。*TX A ,TXB,TXC,TXD:串行数据输出引脚与MAX3485相连。*RESET :复位信号;与系统复位信号相连*IOR, IOW:输人/输出读/写选通脉冲,与ARM的OE和WE相连。3.MAX3485接口电路我们利用TL16C554只是扩展了四个UART,但是我们需要的是四个485串口,所以需要四组MAX3485电路进行信号转化。接口电路如图3-12所示,其中D,R分别为串口数据输入输出管脚;DE与RE是发送与接受使能管脚,因为485电路是半双工接口,需要对读写进行控制,这两个管脚接同一个控制信号;A,B为485差分输出管脚,需分别接上拉电阻与下拉电阻
37、。3.4 控制信号模块电路在系统中我们需要对外部一些动作部件进行控制与状态查询。所以会使用ARM的一些IO口作为信号输入输出通道。在本系统中分别使用四个IO作为输入口,四个IO作为输出口。1输入口我们利用TLP521-4四路光隔进行信号隔离,防止外部信号干扰整个系统。2输出口与输入口相比,稍显复杂。首先需使用三级管进行电平转换,因为TLP521-4和3.3V系统不能兼容,需将3.3V电压经三级管拉到5V,然后和输入口一样使用TLP521-4进行光电隔离。最后用输出信号经过继电器进行驱动。3.5 电源模块电路本系统属于混合信号系统,分为模拟与数字两个部分,所以需要两套电源系统。它们分别给数字与模
38、拟部分提供电源,实现数字与模拟相互隔离防止高频数字信号对模拟信号的干扰。在模拟电路部分使用到了双极性运放,在数字部分有传统的5V器件,又有低功耗的3.3V、1.8V器件,所以使用到了多电压等级分别是-12V、+12V、+5V、+3.3V、+1.8V。其中-12V、+12V信号由外部输入,而+5V、+3.3V、+1.8V有LDO芯片SPX1117提供。在电源设计时,模拟电源与数字电源需进行合理的处理。模拟电路涉及弱小信号,但是数字电路门限电平较高,对电源的要求就比模拟电路低些。既有数字电路又有模拟电路的系统中,数字电路产生的噪声会影响模拟电路,使模拟电路的小信号指标变差,克服的办法是分开模拟地和
39、数字地。 对于低频模拟电路,除了加粗和缩短地线之外,电路各部分采用一点接地是抑制地线干扰的最佳选择,主要可以防止由于地线公共阻抗而导致的部件之间的互相干扰。而对于高频电路和数字电路,由于这时地线的电感效应影响会更大,一点接地会导致实际地线加长而带来不利影响,这时应采取分开接地和一点接地相结合的方式。3.6 存储模块电路对于大部分微控制器来说,存储器系统不是必需的,但如果微控制器没有片内程序存储器或数据存储器时,就必须设计存储器系统,本系统主要是暂存数据的需要,决定外扩一块512K的外部SRAM。SRAM器件种类繁多,这里我们根据需要选择了IS61LV25616AL。该芯片是美国ISSI公司的高
40、速SRAM器件,采用CMOS技术,存储容量为512K字节,16位数据宽度,工作电源3.3V。存储模块的电路接线如下图所示,其中地址线直接与ARM低十八位地址线相连,而数据线与ARM的低十六位地址线相连,片选端与CS0相连,读使能和写使能分别与ARM的OE和WE相连,ARM的BLS1与BLS0是控制数据线上的有效位数。4.水污染采集系统软件设计4.1 开发环境与运行平台介绍4.1.1 软件开发平台ADS介绍无论是操作系统的移植,还是应用程序的开发,都需要一个合适的开发环境。在此项目中我们使用ARM公司推出的ARM集成开发工具ADS。ARM ADS使用CodeWarrior IDE集成开发环境,使
41、用AXD作为调试工具。CodeWarrior IDE为用户提供了以下功能:源代码编辑器,集成在CodeWarrior IDE浏览器中,能够根据语法格式,用不同的颜色显示代码;源码浏览器,保存了在源代码中定义的所有符号,能够方便用户在源代码中快速方便的跳转;查找和替换功能,能够方便用户利用字符串通配法则,在多个文件中进行搜索和替换;文件比较功能,可以使用户比较路径中不同文本文件内容。4.1.2 实时操作系统uCos介绍C/OS-II读做“microCOS2”,意为“微控制器操作系统版本2”。C/OS-II是源码公开的著名实时内核,可用于各类8位、16位和32位单片机或DSP。从C/OS算起,该内
42、核已有10多年应用史,在诸多领域得到广泛应用。C/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。C/OS-II使用ANSI C语言编写,包含一小部分汇编代码,使之可以供不同架构的微处理器使用。至今,从8位到64位,C/OS-II已在超过40种不同架构的微处理器上运行。4.1.3 C/OS-II移植1OS_CPU.H(C语言头文件)COS-II不使用C语言中的short、int、long等数据类型的定义,因为它们与处理器类型有关,隐含着不可移植性。代之以移植性强的整数数据类型,这样,既直观又可移植,不过这就成了必须移植的代码。为了使底层接口函数与处理器状态无关,同时在任务
43、调用相应的函数不需要知道函数位置,移植中使用软中断指令SWI作为底层接口,使用不同的功能号区分不同的函数。软中断功能号分配如下表所示,未列出的为保留功能。COS-II使用结构常量OS_STK_GROWTH中指定堆栈的生长方式:置OS_STK_GROWTH为0表示堆栈从下往上长。置OS_STK_GROWTH为1表示堆栈从上往下长。虽然ARM处理器核对于两种方式均支持,但ADS的C语言编译器仅支持一种方式,即从上往下长,并且必须是满递减堆栈,所以OS_STK_GROWTH的值为1。2OS_CPU_C.C(C程序源文件)这个源文件中有6个函数需要移植,即OSTaskStkInit(),OSTaskC
44、reateHook(),OSTask-SwHook(),OSTaskStatHook()和OSTimeTickHook()。后面5个函数为钩子函数,主要用来扩展COS-II的功能。但必须声明,并不一定要包含任何源代码。唯一必须移植的函数为OST-askStkInit()。3OS_CPU_A.ASM(汇编程序源文件)OS_CPU_A.ASM汇编代码文件有4个汇编函数需要移植。OSStartHighRdy函数,此函数负责获取新任务的堆栈指针,并从堆栈指针中恢复新任务的所有处理器寄存器。OSCtxSw函数,它负责将当前任务所的处理器的寄存器保存到堆栈中,并将任务中需要恢复的寄存器从堆栈中恢复出来。O
45、SIntCtxSw函数,该函数主要负责在定时中断中任务之间的切换。OSTickISR函数,时间节拍函数,由定时中断产生。20-214.2 系统软件总体设计4.2.1 软件功能详述1采集命令控制根据项目的要求,系统应具有两种命令发送方式:第一种为了随时观测水质的需要,可以通过按键,手工输入采集命令,通知仪器进行采集,获得相关水质数据。第二种为了自动化采集的需要,可以通过配置文件,控制系统定时发送采集命令,通知仪器进行采集,这样可以实现无人职守采集站。2采集模式控制因为水质采集仪器的多样性,决定了不能通过统一的采集模式,对仪器进行数据的采集。根据仪器的分类,可分为三种采集模式:南京市协议采集模式、
46、Modbus协议采集模式、模拟量采集模式。3采集数据处理对于仪器传回的数据,系统要进行一定的处理后再进行处理。从采集模式中我们了解到三种形式的数据,所以要求我们对三种资料需采用不同的处理方式。4与上位机通信利用串口我们可以实现将系统采集的数据传回上位机进行显示。这就要求我们的系统与上位机之间采用一定的通信协议。4.3 系统各模块软件设计4.3.1主控模块设计主控模块是整个软件的核心部分,它安排了整个系统的工作流程,决定了各个模块是否被调用。下图是主控模块的控制流程图。图 4-1 主控模块控制图系统上电以后,主控模块的首要任务便是对整个系统进行初始化。初始化工作主要分为:对系统软件中各个全局变量
47、进行初始化赋值,使系统能工作在正确的工作状态;对串口进行初始化,对于ARM片上的两个串口,需将其相应管脚设置为UART工作模式,并且通过配置其寄存器,设定串口的波特率,数据位元位数,奇偶校验方式,停止位元位元数等,对于通过TL16C554扩展的四个串口也要进行相应的初始设定;对于AD采集模块也需采取一定的初始化工作。主控模块还决定了,定时采集的配置文件的输入。通过预设的信息,控制各台仪器在规定的时间进行自动采集。主控模块最主要的工作是采集模式的控制。采集系统有三个采集模式:南京市协议采集模式、Modbus协议采集模式、模拟量采集模式。主控模块根据手工输入的按键的不同,确定不同的采集模式;还可以
48、通过定时采集形式下,命令的不同,确定不同的采集模式。在不同的采集模式下,主控模块将收到的数据分别送到相应模式下的数据处理模块进行处理。4.3.2 数字量采集模块数字量采集模块根据协议的不同,有两种采集方式,所以数字元量采集部分可分为两个模块来设计。1南京市协议采集模块图 4-2 南京市协议采集流程图(1)数据采集A组包:通过包头为十六进制25H,当程序处于模式一情况下,收到25H后确定有新包发来,程序进入组包模式。包尾为十六进制数0DH,当程序收到0DH后,组包模式结束,说明以收到了一个完整的数据包。B和校验:将接到的数据包中除了校验位与包尾的其它的所有数据相加,得到的和取最后两位,再转化为A
49、SCII码,与传来的两位和校验位进行比较,若不同说明和校验失败,数据传输错误,将包丢弃。C包类型判断:通过数据包中的第2,3位来确定包的类型。D资料存储:通过包的类型,分别调用不同的处理函数,提取包中的数据,然后进行存储。E数据传输:根据需要将内存中的数据传输给上位机。2Modbus协议图 4-3 Modbus协议采集流程图(1)数据采集A组包:因为Modbus协议在RTU模式下,数据包没有包头与包尾,只能通过时间的间隔来判断不同的包。不同的包之间时间间隔大于3.5位,同时包中数据的任意两个数据位之间的间隔不能大于1.5位。BCRC校验:将除了CRC校验为外的其它数据,调用CRC校验函数进行C
50、RC校验。若校验不同过,将包丢弃。C包类型判断:通过读取包中的设备地址号、寄存器的首址、寄存器的数量和包的功能号,判断包的类型。D数据存储:通过包的类型,读取包中的数据,进行存储。E数据传输: 根据需要将内存中的数据传输给上位机。4.3.3 模拟量采集模块模拟量的采集与数字量的采集采用的是完全不同的模块,工作方式与数字量采集部分也有很大的不同。图 4-4 模拟量采集流程图1通道选择:根据采集命令的要求选择不同的信道,可以单信道也可以多信道同时采集。2启动转换:通过总线方式选择AD芯片,然后向芯片的CONVERT管脚发送低电平,启动转化。3读取数据:当所有信道的数据都转化完后,BUSY信号会变为
51、低电平,因为BUSY信号接的是ARM的中断管脚,所以程序会进入中断部分,然后通过总线的方式依次读取个转化信道的数据。4数据存储:将转化的各个数据通过标准化处理后进行存储。5数据传输: 根据需要将内存中的数据传输5.测试方法与结果5.1 测试方法介绍由于系统的采集信号的不同,测试分为两个部分:数字量采集模式测试,模拟量采集模式测试。1.数字量采集模式测试将采集系统的数字量采集通道与电脑的串口相连,然后给系统上电运行。电脑端打开串口小助手。通过串口小助手模拟现场以数字量为输出信号的仪器,向系统发送测量数据包。系统根据但前系统模式的不同,将接受到的数据进行处理,然后将处理结果同过串口发给小助手进行显
52、示。2.模拟量采集模式测试将电压源通过可变电阻进行分压,将分得的电压送给AD采集通道,然后控制AD对信号进行采集。然后将采集的结果通过串口发给电脑端的小助手进行显示。5.2 测试的主要内容与测试结果1.南京市通信协议测试通过串口小助手按照南京市通信协议,模拟COD仪器向系统发送各种类型数据,然后系统将解包好的数据,通过串口小助手进行显示,以下是观测结果,图4-6为小助手的截图。(1)仪器对测量命令的回答数据包:25 43 31 79 31 32 0D串口小助手的显示值:Measure answer:y(2)仪器返回的测量值数据包:25 43 32 79 43 30 31 30 37 32 30
53、 33 30 30 30 30 31 30 33 30 30 36 37 0D串口小助手的显示值:Measure time:2008.01.07/20:30 data:.00mL(3)仪器对走零命令的回答数据包:25 43 33 79 31 34 0D串口小助手的显示值:ZouLing answer:y(4)仪器返回的走零值数据包:25 43 34 79 43 30 31 30 37 32 30 33 30 30 30 30 31 30 33 30 30 36 39 0D串口小助手的显示值:ZouLing time:2008.01.07/20:30 data:.00mL(5)仪器对走标命令的回
54、答数据包:25 43 35 79 31 36 0D串口小助手的显示值:ZouBiao answer:y(6)仪器返回的走标值数据包:25 43 36 79 43 30 31 30 37 32 30 33 30 30 30 30 31 30 33 30 30 36 42 0D串口小助手的显示值:ZouBiao time:2008.01.07/20:30 data:.00mL(7)仪器返回的仪器时间数据包:25 43 37 30 38 30 36 30 32 31 30 33 33 30 32 46 38 0D串口小助手的显示值:COD TIME :08.06.02/10:33:02(8)仪器对写
55、仪器时间命令的回答数据包:25 43 38 79 31 39 0D串口小助手的显示值:WriteTime answer:y(9)仪器对写测量时间命令的回答数据包:25 43 39 79 31 41 0D串口小助手的显示值:SetMeasureTime answer:y(10)仪器返回的测量时间数据包:25 43 40 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31
56、 30 43 30 0D系统采集数据后传输给串口小助手的显示值:SetMeasureTime |0:10|1:10|2:10|3:10|4:10|5:10|6:10|7:10|8:10|9:10|10:10|11:10|12:10|13:10|14:10|15:10|16:10|17:10|18:10|19:10|20:10|21:10|22:10|23:10图 4-5 南京市协议通信测试截图2.Modbus通信协议模式测试通过串口小助手按照Modbus通信协议,模拟仪器向系统发送各种类型数据,然后系统将解包好的数据,通过串口小助手进行显示,以下是观测结果,图4-7为小助手的截图。(1)读仪器
57、测量值命令的发送:14 03 9C 41 00 02 B8 8A仪器返回的测量值数据包:10 03 94 C1 00 02 04 CD 8C 3C 43 AE E5串口小助手的显示值:Measure data:.55mL(2)读仪器时间命令的发送:14 03 9C 4D 00 02 78 89仪器返回的时间数据包:10 03 94 4D 00 04 08 20 08 06 01 02 30 00 01 20 95串口小助手的显示值:COD TIME :2008.06.01/02:30:01图 4-6 Modbus协议通信测试截图3.AD转化模式测试AD转化测试:利用AD采集了十四组不同电压,以下是AD转化后的结果:Measure Mode:3 PH:0974 PH:0974 PH:09
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册公用设备工程师每日一练试卷附参考答案详解【黄金题型】
- 面试技巧指南
- 重庆市水产科学研究所招聘5人笔试高频难、易错点备考题库带答案详解
- 财务管理手册财务流程与规范
- 自考专业(金融)考前冲刺练习试题及答案详解1套
- 电竞公司照明系统节能规章
- 重难点自考专业(小学教育)试卷及答案【典优】
- 综合解析北师大版8年级数学上册期末测试卷(考点梳理)附答案详解
- 经济学与宏观微观经济作业指导书
- 水产加工园区创新创业项目商业计划书
- 人教版七年级上册语文第一单元测试题(含答案)
- 艺术概论PPT完整全套教学课件
- 电气施工图设计审图要点
- 西方语言学史讲稿
- 烟草香味化学
- 临时用水施工专项方案
- GB∕T 9286-2021 色漆和清漆 划格试验
- 720全景照片制作方案及发布流程
- 工作责任心主题培训ppt课件(PPT 26页)
- 除尘器基础知识培训资料(54页)ppt课件
- 完整解读新版《英语》新课标2022年《义务教育英语课程标准(2022年版)》PPT课件
评论
0/150
提交评论