基于ARM7的氨电炉电流控制系统

  • IT技术
  • 2019-10-04
  • 人已阅读
简介为了适应现在数据采集系统朝着强实时、多参数、高精度方向的发展,以克服传统单片机数据采集系统无法适应安全性、实时性、强场合的缺点。本文介绍了基于ARM7处理器LPC2210和实时嵌入式操作系统μC/OS-Ⅱ为基础,实现氨电炉电流控制的设计。系统由传感器、增益放大器、A/D转换器、LPC2210、显示电路、调压器等及其它功能部件组成。本文主要介绍了关于ARM7的氨电炉电流控制系统中各个部件的选择,原理以及介绍还有系统的软硬件设计。本系统的特点是性能高、成本低并且耗能小,并且在经过近一步改进的话,能适用于很多领

基于ARM7的氨电炉电流控制系统  <?xml:namespace prefix = o />

[摘要]为了适应现在数据采集系统朝着强实时、多参数、高精度方向的发展,以克服传统单片机数据采集系统无法适应安全性、实时性、强场合的缺点。本文介绍了基于ARM7处理器LPC2210和实时嵌入式操作系统μC/OS-Ⅱ为基础,实现氨电炉电流控制的设计。系统由传感器、增益放大器、A/D转换器、LPC2210、显示电路、调压器等及其它功能部件组成。本文主要介绍了关于ARM7的氨电炉电流控制系统中各个部件的选择,原理以及介绍还有系统的软硬件设计。本系统的特点是性能高、成本低并且耗能小,并且在经过近一步改进的话,能适用于很多领域。

关键字ARM7,数据采集,LPC2210

[Key words]: ARM 7, Data AcquisitionLPC2210


1  引言

1.1选题背景

为了氨的合成效率由过去的传统生产到现在的由计算机控制的工业化大生产,氨的合成效率上有了显著的提高。但是,随着计算机的迅猛发展传统单片机数据采集系统无法适应安全性、实时性、强场合等要求。因此就要求我们对现如今的数据采集系统提出了新的要求,以更好的适应现代化大生产。为此我们提出了基于ARM嵌入式操作系统。

当今社会,嵌入式系统高端发展迅速,ARM嵌入式系统的研究对于高端技术的发展有着重要的决定性作用。开发提高ARM嵌入式系统显得尤为重要。它的性能好坏关系到高端开发的很多性能。所以,做好嵌入式系统的研究是对于ARM学习的第一步也是最重要的一步。ARM嵌入式系统的研究对于嵌入式系统的发展非常有意义。

ARM主要是ARM公司自1990年正式成立以来,在32位RISC(Reduced Instruction Set Computer)CPU开发领域不断取得突破,其结构已经从V3发展到V6。由于ARM公司自成立以来,直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,目前已经占有75%以上32位RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。

1.2研究意义

作为一名工科大学生有必要跟上社会发展趋势,ARM微处理器目前非常受厂家的欢迎,并且在以后的日子里有很大发展前景,市场价值也是非常巨大的。在ARM的发展阶段需要更多的人来研究、扩张它的研究层面。ARM微处理器将以其极好的性能和极低的功耗与高端的MIPS和PowerPC嵌入式微处理器抗衡。可以预见,在将来一段时间内,ARM微处理器仍将主宰32位嵌入式微处理器市场。学习和掌握ARM微处理器技术是非常必要的,而设计ARM微处理器最小系统是一种学习该技术的极佳方法。

ARM(Advanced RISC Machines),既可以认为它是一个公司的名字,也可以认为它是一类微处理器的统称,还可以认为它是一种技术名称,习惯上称之为"高级精简指令集计算机机器公司"。目前,各种各样ARM微处理器的设备应用数量已经远远超过了通用计算机。在工业和服务领域中,使用ARM微处理器的数字机床、智能工具、工业机器人、服务机器人正在逐渐改变着传统的工业生产和服务方式。因此,基于ARM微处理器的开发应用正成为数据时代的应用技术潮流

1.3研究现状

ARM的最小系统的研究现在还处在研究改进阶段。为了更好的为高端系统提供好的运作平台和良好性能功底。ARM最小系统还在更进一步的完善中。ARM的各个型号也都在完善在各个方面的不足。力求做到最好。ARM芯核的种类以及开发研究也得到越来越多人的关注。目前非常流行的ARM芯核有ARM7TDMI,Strong ARM,ARM720T,ARM9TDMI,ARM922T,ARM940T,RM946T,ARM966T,ARM10TDMI等。自V5以且,ARM公司提供Piccolo DSP的芯核给芯片设计得,用于设计ARMDSP的SOC(System On Chip)结构芯片。此外,ARM芯片还获得了许多实时操作系统(Real Time Operating System)供应商的支持,比较知名的有:Windows CE、Linux、PSOS、Works、Nucleus、EPOC、UCOS、BeOS等。现在设计、生产ARM芯片的国际大公司已经超过50多家,国中兴通讯和华为通讯等公司已经购买ARM公司芯核用于通讯专用芯片的设计

1.4发展前景

由于网络、通讯、多媒体和信息家电时代的到来,无疑为32位嵌入式系统高端应用提供了空前巨大的发展空间。存在着个巨大的空间里,ARM最小系统的研究显的尤为重要,因为它是很多高端系统研究的决定性因素。它的完善性很可能影响到最后的成功。所以,ARM最小系统的进一步研究和完善在这里显的尤为重要。

随着国内嵌入式应用领域的发展,ARM芯片必然会获得广泛的重视和应用。但是,由于ARM芯片有多达十几种的芯核结构,70多芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难。所以,对ARM芯片做一对比研究是十分必要的。所以说,ARM最小系统的设计是非常重要的。ARM最小系统的发展前景也是非常广阔的。

ARM微处理器特点及应用领域,分为ARM7、ARM9、ARM9E、Strong ARM 、ARM10等系列,其中ARM7系列微处理器为低功耗的32位RISC处理器,适合对功耗要求较高的应用如便携式产品,具有很高的性价比。

1.5研究内容

本文主要研究的是一个基于ARM7嵌入式系统的研究设计,本系统主要由传感器、增益放大器、模拟-数字转换器、LPC2210、显示电路、调压器等部分组成。本系统的特点是性能高、成本低并且耗能小等特点。

主要研究内容:

1 在数据采集方面,根据实际要求选择合适的元器件,以保证采集数据的真实性。

2  ARM7处理器LPC2210为主控芯片,设计控制系统的有关软硬件;

3  通过处理器的处理后,通过反馈系统进行温度控制

 

2章  系统硬件设计

2.1氨电炉简介

2.1.1氨电炉的工作原理

氨电炉是氨合成塔的重要主要部分,在开车与还原触媒期间,用于加热混合气。而在正常生产期间,如塔内温度不能维持时,可用电炉辅助加热以确保触媒层温度。

在实际生产中,我们不可能不考虑在计算机出现故障等突发的情况下,我们的生产情况该如何运行,因此提出了在计算机控制以外的手动操作,以此来确保生产的正常运行。

而加热混合气体的温度控制,是通过调压器调整电炉的功率(即调整电炉端电压和端电流)来进行的,因此根据实际情况在循环机共设有六台感应式调压器,

分别向各塔电炉供电。

具体操作如下:

1在调压器投入运行前,需要对电器设备进行全面的检查,并测电炉绝缘电阻是否可用。检查完毕符合运行条件后向调压器供电。

2启动主阀流量表及合成塔人口压力表,启动循环要进行系统循环,打开通风机。向调压器投高压电源,启动伺服机,并以电压升、降按扭试其伺服机是否可用,试验时电压不得超过50V

3升温速度按操作规定(40/℃)进行,塔内温度的控制通过调整循环气量和调压器的功率来进行,并确保足够的安全气量,与该气量相对应的电压和电流值应在附图中所示曲线如下,并不准超过附表所规定的额定值。

4电炉升温操作:按操作盘上升压按钮,伺服机运转视其电压及电流情况直至塔温度符合工艺 要求时,松开按扭,伺服电动机停转,电压停止上升。但需要注意,在电炉处于冷状态下,开始升压不得超过50V,预热30分钟后,每隔15分钟增加50V,在电炉处于热状态下(塔内温度300℃以上)可以不用预热,直接升到200V,以后每隔15分钟增加50V

5电炉降温操作:按操作盘上降压按钮,伺服机反转,看电压、电流降低情况,直至塔温降到符合要求时,松开按扭,伺服机停转,电压停止下降。

6根据合成塔温度情况不在需要电炉加热,按降压按钮,使电压、电流降到最低,切断调压器高压电源。15分钟后切断伺服机和通风机电源。

7正常运行时,需要时常注意调压器的温度的变化和对整个系统的检查。

2.1.2型号的选择

2.1是化肥厂实际生产中的运行设备,符合本设计的要求,没有另外选择新的氨电炉及调压器。所以本设计所选择的氨电炉及调压器是表2.1。

感应式调压器

电炉

备注

序号

额定

容量(kvA)

一次输入

二次输入

额定

容量(kvA)

额定电压(V

额定电流(A

台数

 

电压(kv)

电流(A)

电压(kv)

电流(A)

#0  

#1

MA195/99-45

3

500

6

66

0-380

0-760

1

625

380

948

 

 

3

500

6

66

0-380

0-760

1

625

380

948

 

 

#2

 

3

500

6

66

0-380

0-760

1

625

380

948

 

 

#3

#4

MA195/99-45

1

340

6

80.5

0-380

0-895

1

435

380

1145

 

 

1

340

6

80.5

0-380

0-895

1

435

380

1145

 

 

#5

 

3

500

6

66

0-380

0-760

1

625

380

948

 

 

 

2.1 调压器和电炉技术参数表

2.2传感器的选型

传感器是一种能感受规定的被测量,并能按一定规律将它转换成某种可用的输出信号的测量装置。传感器一般由敏感元器件与其他辅助器件组成。敏感器件是传感器的核心,它的作用是直接感受被测量,并将其信号进行必要的转换输出。一般把信号调理与转换电路归为辅助器件,他它们的一些能把敏感器件输出的电信号转换为便于显示、记录、处理等有用的电信号的装置。其组成如图2.2所示。

    

输入 输出

 

 

 

 

 

2.2 传感器框图

2.2.1传感器应满足的条件和选型原则

传感器应满足一些必要的条件:输出信号与被测量之间具有唯一确定的因果关系,是被测量的单值函数;输出信号能够与电子系统、信号处理系统或光学系统匹配,适合于传输、转换、处理和显示;具有尽可能宽的动态范围,良好的响应特性,足够高的分辨率和信号噪声比;对被测量的干扰尽可能小,尽可能不消耗被测系统的能量,不改变被测系统原有的状态;性能稳定可靠,不受被测量参数因素的影响,抗干扰能力强;便于加工制造,具有可互换性;适应性强,具有一定的过载能力。

传统传感器的选用原则

了解了传感器的结构及其发展后,如何根据测试目的和实际条件,正确合理的选用传感器也是需要认真考虑的问题。选择传感器主要从下面几个方面考虑:

    1 灵敏度  一般来说,传感器的灵敏度越高越好,因为灵敏度越高就意味着传感器能感知的变化量小。但是,在确定灵敏度时,要求传感器的信噪比越大越好,而且保证传感器的输出在线性范围内。

    2 响应特性  传感器的响应特性是指在所测频率范围内,保持不失真的测试条件。此外,实际上传感器的响应总不可避免的有一些延迟,但希望延迟的时间越短越好。

    3 线性范围  任何传感器都有一定的线性工作范围。在线性工作范围内输出与输入成比例关系,线性范围越宽,则表明传感器的工作量程越大。传感器工作在线性范围内,是保证测量精度的基本条件。

4 稳定性  稳定性是表明传感器经过长时间使用以后,其输出特性不发生变化的性能。影响传感器稳定性的因素是时间和环境。

5 精确度  传感器的精确度是表示传感器的输出与被测量的对应程度。然而,在实际中也并非要求传感器的精度越高越好,这还需要考虑到测量目的,同时还需要考虑经济性。

6 测量方式  传感器在实际条件下的工作方式,也是选择传感器是应考虑的重要问题。

除了以上选择传感器时应考虑的一些因素外,还应尽可能兼顾结构简单、体积小、重量轻、价格便宜、易于维修、易于更换等条件。

2.2.2传感器的分类及型号的选定

传感器的种类繁多。在工程测试中,一种物理量可以用不同类型的传感器来检测;而不同类型的传感器也可以测量不同的物理量。

传感器的分类方法有很多,概括起来,可按一下几个方面进行分类。

按被测物理量来分,可分为位移传感器、速度传感器、加速度传感器、力传感器、温度传感器。

按传感器的工作原理来分,可分为机械式、电器式、辐射式、流体式传感器等。

按信号变换的特征来分,可分为物性型和结构型传感器  

按传感器与被测量之间的关系来分,可分为能量转换型和能量控制型传感器。  

按传感器输出量的性质可划分为模拟式和数字式传感器俩种。  

电阻式温度传感器是一种利用导体或半导体的电阻随温度变化而变化的特性来测量温度的,一般把由金属导体铂、铜、镍等制成的测温元件称为热电阻,把由半导体材料制成的测温元件称为热敏电阻。热电阻是中低温区最常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热是阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。热电阻大都由纯金属材料制成,目前应用最多的是铂和铜,此外,现在已开始采用甸、镍、锰和铑等材料制造热电阻。薄膜铂热电阻是进些年来发展起来的新型测温元件,其工艺与一般的绕线型铂电阻不同。薄膜铂热电阻采用溅射工艺来成膜,在经过光刻、腐蚀工艺形成图案。                                               综合氨电炉的原理及以上种种原因,决定选用热电阻传感器MWFT-3                   

热电阻传感器MWFT-3的技术参数:

测温范围/℃:-70~+600

响应时间/s:<3  

 R/1000.1

温度系数:3850ppm/℃  

绝缘电阻/:室温>100,6001

工作电流/mA3

外形尺寸/㎜:15×3×0.5

2.3增益放大器的选择

     传感器输出的电信号,大多数是不能直接输送到显示、记录或分析仪器中去。其主要原因是:大多数传感器输出的电信号很弱,需要进一步放大,有的还需要进行阻抗变换;有些传感器输出的是电参量需要转换为电能量。输出信号中混杂有干扰噪声,需要去掉噪声,提高信噪比;若测试工作只对部分频段的信号感兴趣,则需要从输出信号中分离出所需要的频率成分;当采用数字式仪表和计算机时模拟输出信号还要转换成识字信号等等。因此,传感器的输出信号要经过适当的调理,使之与后续测试环节相适应。常用的信号调理环节有:电桥、放大器、滤波器、调制器、模数转换器等。

在一般的数据采集系统中,常用的是多路复用非同时方式,即用1个运算放大器,然后在它前面接1个多路复用(MUX),再通过它把几路模拟信号接到1个共用的放大器上。这样,多路复用器就会按照处理要求,把各路模拟信号接到运放上去。尽管此方案只用较少的元件,但为了控制增益或选择信号.这些器件在接到处理器上时,同样需要使用较多的1/0引脚。因此,这种系统不利于进一步提高集成度,而且易受干扰。

在此系统中,采用了Microchip Technology公司的模拟增益可编程运放(PGA) MCP6S28芯片(如图2.3所示),各引脚的定义如表2.4。传感器采集的信号接人MCP6S28的通道输人瑞,输出OUT接人处理器内部的A/D转换器的信号人端管脚。MCP6S28的增益可设置为+1 -+32V/V,它具有多路选择输人(MUX)模块,共有8路输人。MCP6S26具有SPI接口,故将其与LPC2210的对应SPI管脚连接即可。对MCP6S28进行操作的控制字节和数据字节均从SI引脚输人,并在写人数据的串行时钟(SCK)上升沿被锁存。从芯片读取的数据则从SO脚串行移出.并在串行时钟的下降沿输出。这样,LPC2210就可以通过命令来选择把哪一路信号接到处理器,以扩大微控制器的仿真物入范围,同时也可以改变放大器的增益.这样.就有可能改变每一路信号的增益,而且可以在处理信号的同时改变增益。如果系统发现信号太弱,处理器就以增大这个信号的增益。当信号达到较高的电平时,处理器则可以降低增益。该芯片还减少了对输人/输出管脚数量的需求,从而降低微控制器的成本。

   

  IN

      

 

 

  IN

 

 

               2.3 数据采集部分连接图

MCP6S28的特性参数:

复用输入:1268通道
8种增益选择:
  -+1+2+4+5+8+10+16+32 V/V
串行外设接口(Serial Peripheral InterfaceSPI)
轨到轨输入和输出
增益误差低:±1%(最大值)
失调电压低:±275µV(最大值)
带宽大:212 MHz(典型值)
噪声低:10 kHz时为10nV/√Hz(典型值)
供电电流低:1.0 mA(典型值)
单电源:2.5V5.5V 

2.4 MPC6S28引脚定义

 

引脚名

作用

VOUT

模拟输出

CH0~CH7

模拟输入

VSS

电源负端

VDD

电源正断

SCK

SPI时钟输入

SI

SPI串行数据输入

SO

SPI串行数据输出

CS

SPI片选

VREF

外部参考电压

 

2.4模拟-数字转换器

随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。由于系统的实际对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别、处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析、处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路--模数和数模转换器。 

在非电量电测过程中,传感器或其他调理电路输出的信号多是随时间连续变化的模拟电压或电流。当采用数字式仪器、仪表以及计算机对这些信号进行处理或显示时,有必要将这些模拟量转换为数字量,这个过程称为模数转换(A/D),通常由模数转换器来完成。反之,在计算机控制系统和某些数字化测试过程中,需要将数字量转化成模拟量去驱动执行元件或模拟式显示、记录器,这个转化过程为数模转换(D/A),所用的装置是数模转换器。模拟信号和数字信号之间的转换过程如图2.5所示。

 

模拟信号 模拟信号

 

2.5 模拟-数字转换过程

 

模数转换器 ,即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。
    通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。
例如:对于一个2位的电压模数转换器,如果将参考设为1V,那么输出的信号有00011011 四种可能,分别代表输入电压在0V-0.25V, 0.25V-0.5V, 0.5V-0.75V, 0.75V-1V时的对应输入。当一个0.8V的信号输入时,转换器输出的数据为11

模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件;模数转换器中一般都要用到数模转换器

一种将二进制数字量形式的离散信号转换成以标准量(或参考量)为基准的模拟量的转换器,简称DACD/A 转换器。最常见的数模转换器是将并行二进制的数字量转换为直流电压或直流电流,它常用作过程控制计算机系统的输出通道,与执行器相连,实现对生产过程的自动控制。数模转换器电路还用在利用反馈技术的模数转换器设计中。

转换器的主要技术指标

1分辨率  A/D转换器的分辨率用其输出二进制数码的位数来表示的,。位数越多,分辨率就越高,转换的精度也越高

2转换精度  具有某种分辨率的转换器在量化过程中由于采用了四舍五入的方法,因此最大量化误差应为分辨率数值的一半。实际上许多转换器的末位数字并不可靠,实际精度还要低一些。

3 转换速度  转换速度是指完成一次转换所用的时间,即从发出转换信号开始,直到输出端得到稳定的控制信号为止所用的时间。转换时间越长,转换速度就越低。还有,转换速度与转换原理有关系。

2.5 调压器

调压器是采用进口矽钢片环铁芯组成,其上绕单压绕组,若干装在刷架上的碳刷在弹簧压力作用下与线圈的磨光表面紧密吻合,电机带动碳刷在线圈磨光面上滑动而进行电压调整;

 晶闸管调压器:是一种以晶闸管(电力电子功率器件)为基础,以智能数字控制电路为核心的电源功率控制电器又称晶闸管调功器可控硅调整器可控硅调压器晶闸管调整器,电力调整器,电力调压器功率控制器等。具有效率高、无机械噪声和磨损、响应速度快、体积小、重量轻等诸多优点。
“NT 系列晶闸管调功器通过对电压、电流和功率的精确控制,从而实现精密控温。并且凭借其先进的数字控制算法,优化了电能使用效率。对节约电能起了重要作用。
“NT系列晶闸管调功器广泛应用于以下领域:  电炉工业:退火炉,烘干炉,淬火炉,烧结炉,坩埚炉,隧道炉熔炉,箱式电炉,井式电炉,熔化电炉,滚动电炉,真空电炉,台车电炉,淬火电炉罩式电炉,气氛电炉,烘箱实验电炉,热处理电阻炉,真空炉,网带炉,高温炉,窑炉电炉

2.6 数据显示部分

液晶显示屏LCD作为一种功耗低体积小、无辐射的显示器件,近几年被广泛应用于各式各样的嵌入式电子产品中,LCD可分为段位式、字符式和点阵式三种,其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动动画功能,分区开窗口、反转、闪烁等功能,用途十分广泛,为了简化液晶 显示电路的设计和应用,生产厂家通常将液晶显示单元、显示控制器,显示内存和显示驱动电路等装配在一起,做成液晶显示模块LCD ModuleLCM)。

在此系统中,数据显示部分采用ATM12864C图形点阵液晶显示模块,它是广东金鹏电子有限公司生产的中文液晶显示模块,该款液晶显示模块采用中文字型点阵的控制驱动器ST7920,他内含819216×16点阵的国标简体汉字和12616×8点阵的英文符号字库。用户输入国标码或ASCII码即可实现文本显示。满屏显示为8个汉字×4行,另外,还提供64×256点的绘图RAMGDRAM),可以与文字混合显示,而且内含字型产生RAMCGRAM),提供可编程造字功能,ATM12864C提供的外部接口信号有:8位数据总线D0-D8;寄存器选择信号R/S,当R/S为高电平时,控制数据寄存器,R/S为低电平时,控制指令寄存器,读写信号R/WR/W为该电平时读,低电平时写,使能信号E下降沿有效,读操作时序除R/W信号为高电平外,其余与写操作时序相同。采用的控制驱动器ST7920,液晶显示模块与LPC2210采用8位总线方式连接,该模块没有地址总线,显示地址和显示数据均通过P0.8~P0.15接口实现。

 

3 基于ARM7嵌入式系统的总体结构设计

       在实际应用中,常常需要对现场的设备进行监测,通过采集设备的运行参数随时了解、跟踪设备运行状态,进而对设备进行分析和诊断。传统的数据采集系统一般采用PC加数据采集卡,主要做法是将一块基于IASPCI的板卡插人工业计算机或商用机上,将外部信号通过导线引至计算机,然后接入数据采集卡,通过定制的软件进行采集。但是采用数据采集卡的缺点是安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和位置、中断资源的限制,不可能挂接很多设备。从未来的发展方向上看,数据采集系统应朝着强实时、多参数、高精度方向发展;数据存储部分朝着大容量、微型化、使携式方向发展,数据传输部分朝着多通讯方式、远距离数据传输方向发展。一般的基于单任务顺序机制的单片机数据采集系统又很难胜任对于稳定性、实时性要求很高的场合。基于此,本文设计了一个基PHILIPS公司ARM7处理器LPC2210的嵌人式数据采集系统。


3.1系统总体结构设计

3.1为系统硬件总体结构框图,此嵌人式数据采集系统主控制芯片为ARM7TDMI-S处理器LPC2210,芯片内部集成了10位逐次逼近式A/D转换器.该系统还采用了内置ATM12864C128X64点阵液晶显示器,用于采集数据的显示.为了进行多通道的数据采集,在此选用了8通道的MCP6S28可编程增益放大器.可以进行多路数据采集,采集的数据可以存储在大容量的硬盘中。而在数据的反馈方面,由微处理器输出控制信号经D/A转换后传给调压器从而调整电压进行温度控制。在数据通讯方面整个系统可以通过串口、USB、以太网3种方式与PC进行通讯,可以满足大部分场合的需要。LPC2210内置 A/D转换器有时不能满足特定场合数据采集系统对精度、测量范围等要求,为此还设计了扩展的A/D接口,从而可以外接所需的A/D转换器。

   

 

 

 

 

 

 

3.1 系统硬件总体结构框图

3.2微控制器LPC2210

3.2.1  LPC2210处理器简介

系统中采用的处理器是PHIUPS公司的LPC2210.它是基于一个支持实时仿真和嵌入式跟踪的l6/32ARM7TDMI-S CPU的微控制器。对代码规模有严格控制的应用可使用l6Thumb模式将代码规模降低超过3O%.而性能的损失却很小。由于LPC2210144脚封装、极低的功耗、232位定时器、8l0位ADCPWM输出以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和电子收款(POS)机。通过配置,LPC2210最多可提供76GPIO 由于内置了宽范围的串行

通信接口.它们也非常适合于通信网关、协议转换器以及其它各种类型的应用

LPC2210包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPBARM AMBA总线的兼容超集)AHB外设分配了2M字节的地址范围,它位于4G字节ARM 存储器空间的最顶端。每个AHB外设都分配了16k字节的地址空。LPC2210的外设功能(中断控制器除外)都连接到VPB总线、AHBVPB的桥将VPB总线与AHB总线相 VPB外设也分配了2M字节的地址范围,从35GB地址点开始。每个VPB外设在VPB地址空间内都分配了16k字节地址空间片内外设与器件管脚的连接由管脚连接模块控制.该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。LPC2210ARM7TDMI-S配置为小端(littleendia1)字节顺须序。

3.2.2主要特性

1)16/32 ARM7TDMI-S 微控制器,LQFP144 TFBGA144 封装。

2)16 /64kB 片内静态RAM

3)串行boot 装载程序通过UART0 来实现在系统下载和编程。

4)Embedded ICE-RT 和嵌入式跟踪接口使用片内Real Monitor 软件对任务进行实时调试并支持对执行代码进行无干扰的高速实时跟踪。

5) 10 A/D 转换器,转换时间低至2.44μs

6)232 位定时器带4 路捕获和4 路比较通道、PWM 单元(6 路输出)、实时时钟(RTC)和看门狗。

7)多个串行接口,包括216C550 工业标准UART、高速I2C 总线(400kbit/s)和2SPI 接口。

8)向量中断控制器(VIC),可配置优先级和向量地址。

9)通过外部存储器接口可将存储器配置成4 组,每组的容量高达16Mb,数据宽度为8/16/32 位。

10)多达76个通用I/O 口(可承受5V 电压)。可使用9个边沿或电平触发的外部中断管脚。

11)通过可编程的片内锁相环(PLL)可实现最大为60/75 MHzCPU 操作频率,设置时间为100us

12)带外部晶体的片内振荡器频率范围:130 MHz,外部振荡器的频率高达50MHz

13)2个低功耗模式:空闲和掉电。

14)通过外部中断将处理器从掉电模式中唤醒。

15)可通过个别使能/禁止外部功能来优化功耗。

16)双电源

17)CPU 操作电压范围:1.65V1.95 V(1.8 V± 0.15 V)

18)I/O 操作电压范围:3.03.6 V(3.3 V± 10%)I/O 口可承受5V 电压。16/32 ARM7TDMI-S 处理器。

 

XTA1.1

 

 

 

系统时钟

 

 

AHBA  AHB

  

 

 

 

 

CS[30]

AI  A[230]

BLS[230]

DE.WE

 

EINT[30] SCL

SDA

 

8XCAP0 SOK

MOSI

8XMAT SSEL

 

   AIM[30] TXD

RXD

   AIM[47] DSR1

 

   P3.0P0.0

P1.3P1.0

P2.3P2.0

P3.3P3.0

 

  PWM[6:1]

 

 

 

图3.2 LPC2210结构框图

3.3 ARM7处理器核介绍

3.3.1结构概述

    ARM7系列核包括ARM7TDMI(ARM7TDMI-S)处理器核和在此基础上发展起来的ARM710T/720T/740T等带有Cache CPU核。

ARM7TDMI-S ARM公司最早为业界普遍认可且得到了广泛应用的处理器核,特别是在手机和PDA中,随着ARM的技术的发展,它已是目前最低端的ARM核。ARM7TDMI-S是从最早实现了32bit地址空间编程模式的ARM6核发展而来的,可稳定地在低于5V的电源电压下工作;增加了64bit乘法指令、支持片上调试、Thumb指令集和Embeded ICE片上断点和观察点一个通用的32 位微处理器,它可提供高性能和低功耗。ARM 结构是基于精简指令集计算机(RISC)原理而设计的。指令集和相关的译码机制比复杂指令集计算机要简单得多。这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。通常在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。

     ARM7TDMI-S名称的具体介绍:

(1) ARM7:32bitARM体系结构4T版本;

(2) T:Thumb 16bit压缩指令集;

(3) D:支持片上Debug(调试),使处理器能够停止,以响应调试请求;

(4) M:增强型Multiplier,与前代相比,具有较强的性能且能产生64bit的结果;

(5) I:EmbeddedICE硬件,以支持片上断点和观察点。

(6) S:ARM7TDMI的可综合(synthesizable)版本(软核).     

3.3.2ARM7TDMI-S的硬件接口

ARM7TDMI的硬接口外围信号如图3.3所示。按接口信号的功能划分,有存储器接口、MUM接口、片上调试、JTAG、边界扫描扩展以及时钟接口等14类接口信号。各接口信号包括借口信号和借口控制信号。

 

 

 

 

DBGTCKEN

CLK DBGTMD

CLKEN DBGTID

NIRQ DBGNTRST

NFLQ DBGTDO

NRESET ADDR[310]

WDATA[310]

DMORE

RDATA[310]

LOCK ABORT

DBGINSTRVALID WRITE

DBGRQ SIZE[10]

DBGBREAK PROT[10]

DBGACK TRANS[10]

DBGNEXEC CPNTRANS

CONOPC

DBGEXE[1] CPNMERQ

DBGEXE[0] CPSEQ

DBGED CPTBIT

DBGRNG[1] CPNI

DBGRNG[0]

DBGCOMMRX CPA

DBGCOMMTX

CPB

 

3.3  ARM7TDMI-S核的硬件接口外围信号

3.3.3功能描述

 片内静态RAM

片内静态RAM 可用作代码和/或数据的存储。SRAM 支持8 位、16 位和32 位访问。LPC2210具有1 KB 静态RAM

 中断控制器

向量中断控制器(VIC)接收所有的中断请求输入,并将它们编程分配为3 类:FIQ、向量IRQ 和非向量IRQ。可编程分配机制意味着不同外设的中断优先级可以动态分配和调整。快速中断请求(FIQ)具有最高优先级。如果分配给FIQ 的请求多于1个,VIC 将中断请求“相或”向ARM 处理器产生FIQ 信号。当只有一个被分配为FIQ 时可实现最短的FIQ 等待时间,因为FIQ 服务程序只要简单地启动器件的处理就可以了。但如果分配给FIQ 级的中断多于1个,FIQ 服务程序从VIC 中读出一个字以识别产生中断请求的FIQ 中断源是哪一个。

向量IRQ 具有中等优先级。该级别可分配16个中断请求。中断请求中的任意一个都可分配到16个向量IRQ slot 中的任意一个,其中slot0 具有最高优先级,而slot15 则为最低优先级。

非向量IRQ 的优先级最低。

 中断源

所列为每个外围功能的中断源。每个外设都有一条中断线连接到向量中断控制器,但可能有几个内部中断标志。单个中断标志也可能代表不同的中断源。

  10A/D 转换器

LPC2210分别包含一个带8 路输入的10 位逐次逼近模-数转换器。

 特性:

 测量范围:03V 

 每秒可执行400,000 10 位采样;

 单路或多路输入的突发转换模式;

 根据输入脚的跳变或定时器匹配信号执行转换;

 IC 总线串行I/O 控制器

IC 是一个双向总线,它使用两条线:串行时钟线(SCL) 和串行数据线(SDA) 实现互连芯片的控制。

每个器件都通过一个唯一的地址来识别,这些器件可以是只接收器件(例如LCD 驱动器),或是可以发送和接收信息的发送器(例如存储器)。发送器和/或接收器可以操作为主或从模式,这取决于芯片是启动数据的发送还是只被寻址。IC 是一个多主总线,它可以由超过一个总线主控器进行控制。

LPC2210所包含的I2C 功能支持400kbit/s(快速I2C)。

 特性

 遵循标准的IC 总线接口

 可配置为主机、从机或主/从机

 可编程时钟可实现通用速率控制

 主机从机之间双向数据传输

 多主机总线(无中央主机)

 同时发送的主机之间进行仲裁,避免了总线数据的冲突

 串行时钟同步使器件在一条串行总线上实现不同位速率的通信

 串行时钟同步可作为握手机制使串行传输挂起和恢复

 I2C 总线可用于测试和诊断

 通用定时器

定时器/计数器对外设时钟周期(PCLK)或外部时钟进行计数,可选择产生中断或基于4个匹配寄存器,在到达指定的定时值时执行其它动作。它还包括4 个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。多个管脚通过‘或’、‘与’,可以实现捕获、匹配或‘广播’功能。

 特性:

 带可编程32 位预分频器的32 位定时器/计数器

 定时器操作。

 当输入信号跳变时,432 位捕获通道可捕获定时器的瞬时值。捕获事件可选择产生中断。

432 位匹配寄存器:

连续操作,可选择在匹配时产生中断

匹配时停止定时器,可选择产生中断

匹配时复位定时器,可选择产生中断

每个定时器有4个对应于匹配寄存器的外部输出,具有下列特性:

匹配时置低电平

匹配时置高电平

匹配时翻转

匹配时不变

 实时时钟

当选择正常或空闲模式时,实时时钟(RTC)提供一套用于测量时间的计数器。RTC 消耗的功率非常低,

这使其适合于由电池供电的,CPU 不连续工作(空闲模式)的系统。

特性:

 对时间段进行测量以实现一个日历或时钟

 超低功耗设计,支持电池供电系统

 提供秒、分、小时、日、月、年和星期

 可编程基准时钟分频器允许调节RTC 以适应不同的晶振频率

系统控制

1 晶振

片内集成振荡器支持的晶振范围为1MHz30MHz,外部振荡器频率高达50MHz。晶振输出频率称为FOSC,而ARM 处理器时钟频率称为CCLK。除非连接并运行PLL,否则在该文档中FOSC CCLK 的值是相同的。

2 PLL

PLL 可以接受范围为10MHz25MHz 的输入时钟频率。输入频率通过一个电流控制振荡器(CCO)可以倍增为10MHz60/75MHz。倍增器可以是从1 32 的整数(实际上在该系列微控制器当中,由于CPU 频率的限制,倍增器的值不可能高于6)。CCO 操作的范围为156MHz320MHz,因此在环当中增加了一个分频器,这样PLL 在提供所需要的输出频率时,使CCO 保持在其频率范围内。输出分频器可设置为248 或者16 以产生输出时钟。由于最小输出分频值为2,这样就确保了PLL 输出具有50%的占空比。PLL 在芯片复位后关闭并且被旁路,可通过软件使能。程序必须配置并且激活PLL,等待PLL 锁定之后再将PLL 作为时钟源。PLL 的设置时间为100us

3 复位和唤醒定时器

LPC22102个复位源: RESET 管脚和看门狗复位。RESET 管脚是一个施密特触发输入管脚,带有附加的干扰滤波器。任何复位源所导致的芯片复位都会启动唤醒定时器(见下面的唤醒定时器),复位状态将一直保持到外部复位撤除,振荡器开始运行。振荡器运行经过固定数目的时钟后内部电路完成其初始化。

当内部复位撤除后,处理器从复位向量地址0 开始执行。此时所有的处理器和外设寄存器都被初始化为预设的值。

唤醒定时器的用途是确保振荡器和其它芯片操作所需要的模拟功能在处理器能够执行指令之前完全正常工作。这在上电、各种类型的复位以及任何原因所导致上述功能被关闭的情况下非常重要。由于振荡器和其它功能在掉电模式下关闭,因此将处理器从掉电模式中唤醒就要利用唤醒定时器。

唤醒定时器监视晶体振荡器是否可以安全地开始执行代码。当芯片上电时,或某些事件导致芯片退出掉电模式时,振荡器需要一定的时间以产生足够振幅的信号驱动时钟逻辑。时间的长度取决于许多因素,包括VDD 上升速度(上电时)、晶振的类型及电气特性(如果使用石英晶体)以及其它外部电路(例如:电容)和外部环境下振荡器自身的特性。

4 外部中断输入

根据可选管脚功能的设定,LPC2210最多可包含9个边沿或电平触发的外部中断输入。外部事件可作为4个独立的中断信号来处理。外部中断输入可用于将处理器从掉电状态唤醒。

5 存储器映射控制

存储器映射控制改变了从地址0x0000 0000 开始的中断向量的映射。向量可以映射到外部存储器BANK0 的底部,也可以映射到片内静态RAM。这使得在不同存储器空间中运行的代码都能够对中断进行控制。

6 功率控制

LPC2210支持两种低功耗模式:空闲模式和掉电模式。

在空闲模式中,指令的执行被暂停,直到产生复位或中断为止。外围功能在空闲模式下继续工作并可产生中断唤醒处理器。空闲模式使处理器自身、存储器系统和相关的控制器以及内部总线不再消耗功率。

在掉电模式中,振荡器被关闭,芯片没有任何的内部时钟。处理器状态和寄存器、外设寄存器和内部SRAM 的值在掉电模式下保持不变。芯片管脚的逻辑电平保持静态。通过复位或特定的不需要时钟继续工作的中断可终止掉电模式并恢复正常操作。由于芯片所有动态的操作都被暂停,掉电模式使芯片消耗的功率降低到几乎为零。

7 VPB 总线

VPB 分频器决定处理器时钟(CCLK)和外设时钟(PCLK)之间的关系。VPB 分频器有两个用途。第一,VPB分频器通过VPB 总线为外设提供所需的时钟(PCLK),使外设可工作在ARM 处理器选择的速率下。为了实现该功能,VPB 总线频率可以降低为处理器时钟频率的1/21/4。由于VPB 总线必须在上电时正确工作(如果VPB 总线由于VPB 分频器控制寄存器的原因而不工作,则它的时序不能改变),因此VPB 总线在复位后的默认状态是以1/4 的处理器时钟速率运行。VPB 分频器的第二个用途是当所有外设都不必在全速率下运行时降频以降低功耗。由于VPB 分频器连接到PLL 的输出,PLL(如果正在运行)在空闲模式时保持有效。

3.4系统软件系统流程图

为了满足系统对实时性和安全性的要求,系统采用了嵌人式实时操作系统A,它是具有优先级、多任务抢占式可固化实时内核,支持64个任务,最多可以支持56个用户任务。绝大部分A的源码是用移植性很强的ANSIC写的,具有灵活性、可配置性、可裁剪性、可扩充性、可移植性等特点。

   首先将A移植到LPC2210处理器上,需要对3个与ARM体系结构相关的文件进行修改。它们分别是OS-CPU.H文件OS-CPU_C.C文件和OS-CPU-A.S文件。对于OS-CPU.H文件,根据仿真器要求修改数据类型定义、堆找单位、堆找增长方向和宏定义;对于OS_CPU_C.C文件,用C语言编写6个操作系统相关的函数,即:OSTaskStklniOSTaskCreateHookOSTaskDelHooKOSTaskSwHookOSTaskStatHookOSTimeTickHook。后5个函数无特殊要求,可以简单地将它们都实现为空函数。而对于OS_CPU_A.S文件,用C语言编写4个与处理器相关的函数,即OSStartHighRdy ()(运行优先级最高的就绪任务),OS-TASK-SW ()(任务级的任务切换函数), OSIntCtxSw ()(中断级的任务切换函数)和OSTickISR()(时钟中断处理函数)。

系统中设定了4个任务,分别是数据采集、数据显示、数据反馈、USB通信。系统的软件流程图如下

 

  

 

 

N

 

 

N

 

 

 

 

软件系统流程图

 

4系统软硬件的设计

4.1控制系统的硬件原理图

CPU及控制电路原理图

 

 

 

显示电路设计

 

 

 

4.2 基于ARM7氨电炉电流控制系统的软件设计

主程序

#define GLOBAL_INT_ENABLE    asm( " rsbx intm ")

#define GLOBAL_INT_DISABLE   asm( " ssbx intm ")

 

#define IMR ( (unsigned short *) 0x0000)

#define IFR ( (unsigned short *) 0x0001)

#define IMR_API 0x0200

 

unsigned long dummy = 0;

 

static unsigned long delay(volatile unsigned long ctr)

{

    while(ctr-- ) dummy++;

    return(dummy);

}

 

volatile unsigned long xf_flash = 0;

 

static void mcu_interrupt(void)

{

    unsigned short int * const bscr = (unsigned short int *)0x29;

    const unsigned short int  bscr_hint = 0x8;

 

    *bscr |= bscr_hint;

 

    delay(100);

 

    *bscr &= ~bscr_hint;

}

 

// Interrupt service routine for the API interrupt

interrupt                                    

void api_isr(void)

{

    xf_flash = 1;

}

 

 

 

static void xf_on()

{

    asm("      SSBX xf");

    asm("      nop");

    asm("      nop");

}

 

static void xf_off()

{

    asm("      RSBX xf");

    asm("      nop");

    asm("      nop");

}

 

// compute and return the factorial of 'num'

unsigned long factorial(unsigned long num)

{

unsigned long result = 1;

    while (num > 1) {

result = result * num;

num    = num - 1;

}

    return result;

}

 

main()

{

    volatile unsigned short *dsp_running = (unsigned short*)0x3805;

    volatile unsigned long  *dsp_input   = (unsigned long*) 0x3808;

    volatile unsigned long  *dsp_output  = (unsigned long*) 0x380C;

    unsigned long i, num;

 

    // Disable interrupts

    GLOBAL_INT_DISABLE;  

 

    // Clear all pending interrupts

   *IFR = 0xffff;

 

   // Enable the API interrupt

   *IMR = IMR_API;

   GLOBAL_INT_ENABLE;

 

   // Signal to the MCU that DSP is ready to receive interrupts

   *dsp_running = 1;

 

   // Wait for the interrupt from the ARM to come in

   while (xf_flash == 0) ;

 

   num = *dsp_input;

 

   // toggle DSP_XF pin the number of times requested by the ARM app

   for (i = 0; i < num; i++) {

       xf_on();

       (void)delay(0x100000);

       xf_off();

       (void)delay(0x100000);

   }

 

   // compute the factorial of the number supplied by the ARM; write the

   // result into shared memory

   *dsp_output = factorial(num);

 

   // allow time for memory write to complete

   delay(0x100000);

   

   // Write the factorial result into the API and signal the ARM

   mcu_interrupt();

5 结论

在此次毕业设计中,主要是对基于ARM7氨电炉电流控制系统进行研究与设计。来证明本系统的特点是性能高、成本低并且耗能小,并且在经过近一步改进的话,能适用于很多领域。

在通过对嵌入式系统知识后,了解了相关的知识,但是在元器件的选型时,由于自身能力不足,有些元器件选的并不是很好很合适,而且对一些东西的了解不是很透彻。运用工具书画电路图,期间出现了很多问题,不会使用工具软件,找不到合适的元件,在原理图布线时也犯了很多错误。在软件编程方面做的也不是很到位,这些我会在将来的工作中学习改正。

 参考文献

[1] 季昱 ,ARM嵌入式应用系统开发典型实例,北京:中国电力出版社,2005.7

[2] 陈章龙,嵌入式系统:Intel Strong ARM结构与开发,北京航空航天大学出版社,2003.4

[3] 杜春雷,ARM体系结构与编程,北京:清华大学出版社,2003

[4] 田泽,嵌入式系统与应用,北京:北京航天航空大学出版社,2005,6

[5] 胡伟,ARM嵌入式系统基础与实践,北京航空航天大学出版社,2006.12

[6] 沈文斌,嵌入式硬件系统设计与开发实例详解,北京:电子工业出版社,2005.11

[7] 马忠梅,嵌入式处理器结构与应用基础,北京:北京航空航天大学出版社,2002.1

[8] 朱义君,AT 91系列ARM微控制器体系结构与开发实例,北京:北京航天航空大学出版,2005.4

[9] 陈赜.ARM嵌入式教学实践教程,武汉:华中科技大学出版社,2005

[10] 张仑.32位嵌入式系统硬件设计与调试.机械工业出版社,2005.7

[11] 赵星寒等,从51到--32位嵌入式系统入门,北京:北京航天航空大学出版,2006.10

[12] 周立功等,ARM与嵌入式系统基础教程,广州周立功单片机发展有限公司,2004.11

[13] 江俊辉,基于ARM的嵌入式系统硬件设计,微计算机信息,2005年.7

[14] ARM公司, ARM Architeture Reference Manual,2002,30~77

[15] ARM公司, The ARM-THUMB Procedure Call Stardard,2002,88~104

[16] Fieldbus Foundation Overview,1996,22~45

文章评论

共有条评论来说两句吧...

用户名:

验证码:

Top