欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    ARM嵌入式系统课程设计报告高速数据采集系统的设计.docx

    • 资源ID:8860642       资源大小:145.17KB        全文页数:25页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ARM嵌入式系统课程设计报告高速数据采集系统的设计.docx

    1、ARM嵌入式系统课程设计报告高速数据采集系统的设计摘 要近年来,随着计算机技术、电子技术等技术的发展,如何对数据进行采集和处理显得越发重要,数据采集的速度和精度是数据采集系统发展的两个主要方向。单片机、ARM、DSP 等各种微处理器的广泛应用,为数据采集系统提供了一个有效的平台。对信号进行高速和高精度的采集以及对采集数据处理的研究和设计是本课题的主要任务。本文基于ARM7S3C44B0X处理器的高速、高精度、多通道数据采集系统,利用ARM7S3C44B0X丰富的功能接口和较高的工作频率,实现对信号的采集和数据处理的功能。本文介绍了数据采集系统的国内外研究现状和发展趋势,对本系统的主要芯片进行了

    2、选型尤其是模数转换芯片AD7663的接口电路。将系统化分成各个功能单元并对各个功能模块进行分析。并提供了原理图和总体电路图,并编写了程序代码,最后提出了关于高速高精度数据采集系统设计的观点。该系统具有成本低、功耗低、识别性能强及智能程度高等优点,具有较为广阔的应用前景。关键词:ARM,S3C44B0X,数据采集系统,AD7663一绪论1.1课题的背景及研究意义随着工业技术的发展,数据采集装置具有越来越广泛的应用领域。在工业生产过程中,受产品质量、生产成本等多方面因素影响,通常需要对工业现场的一些参数进行监控。数据采集装置是解决这一问题的有效手段。在科学研究中,应用数据采集装置可获得被测对象的动

    3、态信息,是研究瞬间物理过程的有力工具, 也是获取科学奥秘的重要段之一。在生产实践中,为了得到我们需要的数据,通常需要将一些由传感器输出的模拟信号转换成数字信号。再通过计算机或者处理系统进行相应的处理。这种过程即被称为数据采集。数据采集装置在各个领域被广泛应用,己渗透到了工业现场、地质勘测、医药器械、电子通信、航空航天等各个领域,为人类更好的获取各种信息提供了便利的条件。综上可知,研究通用化高精度数据采集技术和网络技术,可以有效提高生产管理的自动化水平,对于提高我国劳动生产率和推动经济发展具有非常重要的意义。1.2 论文的主要内容本文以基于ARM的嵌入式系统为核心,并综合应用高精度数据采集方法和

    4、网络通信接口技术,实现了基于ARM的通用高精度数据采集装置。在分析国内数据采集系统的基础上,考虑到数据的采集速度、精度和系统可扩展性, ARM7微控制器S3C44B0X,设计出一套通用性较强的数据采集系统。实现了高速和高精度信号采集,显示及传输等功能。二数据采集系统的总体设计2.1 数据采集系统设计目标本文设计了一种基于ARM7S3C44B0X处理器的高速、高精度、多通道数据采集系统。它的主要设计目标是:(1) 实时性强。系统的主要工作是对大量的过程状态参数实时监测、数据存储、数据处理、进行实时数据分析等。因此要求硬件上必须要有实时时钟和优先级中断信息处理电路。(2) 可靠性高。他是系统设计的

    5、一个重要要求。由于数据采集系统往往是安放在被控对象的工作环境中,所以不仅数据、湿度大,而且腐蚀多,干扰也很多,要求系统有较好的抗干扰能力和采集速度。(3) 结构简单,功耗低,性能优良。2.2 系统的整体设计 本文设计的高速高精度数据采集系统有硬件和软件两部分组成。而硬件部分主要完成数据采集、存储功能,软件部分则完成对硬件控制、对采集数据进行处理。该系统的控制核心S3C44B0X。它为手持设备和一般类型应用提供了高性价比和高性能的微控制器解决方案。为了降低成本,S3C44B0X提供了丰富的内置部件:8KB Cache,可选的内部SRAM,LCD控制器,带自动握手的2通道UART,4通道DMA,系

    6、统管理器(片选FP/EDO/SDRAM控制器),带PWM功能的5通道定时器,I/O端口,RTC,8通道10为ADC,IIC总线接口,IIS总线接口,同步SIO接口和PLL倍频器。S3C44B0X采ARM7TDMI内核,0.25um工艺的CMOS标准宏单元和存储编译器。它低功耗,精简,出色和全静态的设计特别适用于成本和功耗敏感的应用。同样S3C44B0X还采用了一种新的总线结构,即SAMBAII(SAMSUNG ARM CPU 嵌入式微处理器总线结构)。S3C44B0X的显著特性时它的CPU核,是由ARM公司设计的16或32位的ARM7TDMI最高为66MHz的 RISC处理器。微处理器S3C4

    7、4B0X提供全面的,通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置,从而最小化系统的成本。系统以S3C44B0X为数据采集模块核心处理器,采用模块化方法设计,按照功能的不同,分为电源电路、通道选择电路、模数转换电路、通信电路、多路开关及信号调理电路、计算机人机交互界面部分,数据采集系统整体结构图2-2所示2-2 高速高精度数据采集系统的电路框图数据采集系统工作流程:传感器输入的模拟信号经过信号调理电路的处理(包括隔离、变换、放大、滤波等各种处理)以满足数模转换芯片对输入电平和信号质量的要求,然后通过多路开关进行信号选择,选通的信号由高性能高速电压反馈放大器AD8021的进一步的处

    8、理获得更精确,精度更高的模拟信号,在微处理器的控制下模拟信号通过16位逐次渐近型模数转换器AD7663的转换处理存入数据缓存,进一步通过S3C44B0X处理器的控制的显示、键盘模块实现人机交换功能。同时多路开关的选择与控制有微处理器控制。软件部分的设计分为两个部分,分别为数据采集系统控制软件和数据程序处理两个部分。软件设计共包括五部分:通道选择,数据采集处理,数据存储,数据显示和键盘控制。三数据采集模块的硬件设计与实现本设计主要有五个模块,分别是:多路开关及信号调理模块,模数转换模块,存储模块,键盘模块,显示模块。3.1 多路开关及信号调理模块设计 3.1.1 信号调理模块信号采集系统中,绝大

    9、多数模拟量输入都带有大量的噪声不能直接输入到模数转换器中去,需要对信号进行调理。信号调理电路用来对传感器输入的信号进行隔离,变换,放大,滤波等各种处理,以满足模数转换芯片对输入电平和信号质量的要求。调理电路如图3-1所示。图3-1 信号调理电路AD623是高精度、低噪声的仪表放大器,R1是输入限流电阻,R2是增益电阻,调节此电阻的值可改变AD623的增益G,算式为G=100/R1(k)+1。MAX291是滤波器,截止频率其由电容C1决定。若设为100Hz:fc(kHz)=1000/3C1(pF),计算得C1取值为3300pF。使用中还要注意:MAX291的零点漂移达-200mV-400mV,因

    10、而可在输出端串接一个10F左右的钽电容,隔去MAX291引入的直流分量8。3.1.2 多路开关的选择本系统选用的是8通道的模拟数据选择器MAX308,输出哪路信号通过总线控制。带串行接口的16位模数转换集成电路(ADC),它包含有跟踪/保持电路的一个低漂移、低噪声、掩埋式齐纳电压基准电源。它的转换速度快、功率消耗底、采样速率高达308 kb/s点,满量程输入电压范围为5V,功耗为210mW。可与大多数流行的数字信号处理器的串行接口直接接口,该输入可以接收TTL或CMOS的信号电平,时钟频率0.1-5.5MHz,其电路图如图3-2所示。图3-2 多路开关MAX308 IN1IN8是模拟输入通道,

    11、模拟信号由此输入。A0A2是通道选择信号,其选择由微处理器S3C44B0X控制。 3.2 模数转换模块模数转换是把数据采集系统采集到的模拟信号转换成系统可以识别并处理的数字信号。它的精度与速度如何将影响到系统的现实性和系统的性能。本设计采用的是,本模块的设计目的就是为了实现这功能9。3.2.1 信号驱动放大器信息本模块由两部分组成:信号驱动放大器AD8021与具有低噪声、高精度和出色的长期稳定特性的基准电压源ADR421提供基准电压的模数转换芯片AD7663。信号驱动放大器AD8021是一款出众的高性能,高速电压反馈放大器,可以用于16bit分辨率系统。AD8021具有低压噪声和低电流噪声,是

    12、当今的高速低噪声运算放大器产品中静态电源电流(7mA 5V)最低的产品。AD8021工作电压范围较宽,为2.25V12V,也可以采用5V单电源供电,因此非常适合高速低功耗仪器仪表。输出禁用引脚可以将静态电源电流进一步降低至1.3 mA。与同类放大器相比,AD8021不仅技术性能出众,而且价格优势明显,静态电流也低得多。AD8021是一款高速、通用放大器,非常适合各种增益配置,可以用于信号处理链路以及控制环路。AD8021 图3-3 信号驱动AD8021采用标准8引脚SOIC与MSOP封装,工作数据范围为:-40C+85C 。芯片电路如图3-3所示。传感器输入的信号通过多路开关及信号调理模块处理

    13、后得到比较符合要求的模拟信号,进一步通过信号驱动放大电路AD8021的处理得到精度较高的、稳定的模拟信号,通过分辨率高,采样速率高,功耗小的模数转换芯片AD7663的作用,输出符合要求的数字信号,完成模数转换。3.2.2 模数转换芯片的选择A/D转换器实际上是将模拟信号转换成数字量的装置,其转换工程主要包括采样、量化、编码三个步骤。A/D芯片是数据采集系统的关键部件,它的性能往往直接影响整个系统的技术指标,目前市面上A/D转换器的品种较多,每种芯片具有不同的控制方式和应用条件。比较常用的ADC按转换电路结构和工作原理主要分为四类:积分型AD转换器、逐次逼近型、并行比较型ADC、-转换器。其中,

    14、积分型模数转换器的采样速度和带宽都非常低,但它们的精度可以做得很高,并且抑制高频噪声和固定的低频干扰(如50Hz或60Hz)的能力,使其对于嘈杂的工业环境以及不要求高转换速率的应用有用(如热电偶输出的量化)。逐次逼近型模数转换器在 1 个时钟周期内只能完成 1 位转换。N位转换需要N个时钟周期,故这种模数转换器采样速率不高,输入带宽也较低。它的优点是原理简单,便于实现,不存在延迟问题,适用于中速率而分辨率要求较高的场合。并行比较式 A/D 转换器原理直观,转换速度极快(最高1GHz的采样速率),常用于数字通信和高速数据采集领域。缺点是功耗大,制造成本高且易产生离散的、不确定的误码输出。-模数转

    15、换器采样速率较低,但采样精度会做得很高,且成本低廉,一般限于对低频较窄的转换。 图3-5 模数转换接口电路对于一般的工业采集系统在保证精度和速度的条件下,要尽量提高采样速度,以满足实时采集、实时处理和实时控制的要求。通常选择逐次逼近型或并行比较型AD转换器。A/D转换器的性能参数主要有:转换精度,转换速率、输入量程以及转换误差等,根据这些参数本系统中选择开关电容结构的16位并行A/D转换器AD7663。模数转换接口电路如图3-5所示。A/D7663的输入阻抗仅为3.41k,若MAX308输出的信号直接输入A/D7663进行A/D转换时,会产生较大的增益误差。因此,必须用阻抗极低的信号源来驱动A

    16、D7663的输入端,这里选用了信号驱动放大器AD8021。为了实现高速高精度数据采集与存储的同步,解决ADC和控制器之间速度匹配问题,保证采集数据的完整性,本系统设计了高速高精度的转换器AD7663和74H273作数据采集缓冲器的设计方案,使数据的采集和传输速率进行有效的匹配,实现了数据的实时采集。AD转换是数据采集的核心,它决定着系统数据采集的精度和速度,本设计采用的是AD7663模数转换器,AD7663是一款16位、250KSPS、低功耗、逐次逼近型模数转换器,采用5V单电源供电,并提供8位或16位并行口和一个串行口。AD7663具有分辨率高、采样速率高、功耗小等优点,在高速高精度的数据采

    17、集系统中得到了广泛的应用。图3-6模数转换接口电路AD7663负责实现模数转换的功能,它支持串行和并行方式输出,在本设计中AD7663与S3C44B0X以16位并行总线的方式连接。S3C44B0X将总线设备分为8个BANK进行访问,AD7663挂在BANK3上,因此将BANK3的使能信号nGCS3接到AD7663的片选引脚/CS上,复位信号nRESET接到AD7663的RESET,总线读信号nOE接AD7663的/RD。此外,S3C44B0X通过两个I/O(nCAS0连至/CNVST,GPG3连至BUSY)来控制AD7663的A/D转换过程。3.3 存储模块设计3.3.1 存储模块电路设计传统

    18、的数据采集系统由于数据传输速率比较低,数据量比较小,一般可以完成实时分析和处理,所以存储问题并不突出,但高速高精度数据采集系统的数据传输速率很高并且数量很大,采集速度到达一定的限度就无法进行实时分析和处理,这是需要选择适当的存储方式就行存储。高速高精度数据采集系统的存储要解决两方面的问题,一是存储器的低存储速度与A/D转换器数据端口的高输出速率的匹配问题。二是存储器的容量要大,其原因是高速数据采集会在很短时间内产生巨大的数据流,存储系统的容量应满足设计要求。解决A/D转换器与存储器之间的速度匹配问题有两个:一是对高速A/D的数据进行锁存,二是对数据进行高速存储。本设计采用的是对高速的数据进行锁

    19、存。选择的芯片是SST39VF160 Flash Rom。SST39VF160是2MB的Flash芯片,芯片供电电压为2.73.6V,符合JEDEC标准输出引脚,可擦写100000个周期,数据保存能力达100年。擦除时间分别为:扇区擦除时间与块擦除时间都是18ms,片擦除时间70ms。利用翻转或数据采集来确定编程是否完成。芯片内部结构与电路图如3-8图所示。 图3-8 SST39VF1630芯片内部结构图通过利用微处理器对SST39VF160进行写命令字节的形式来进行数据的读写操作。保持CE#信号低的同时拉低WE#信号写入命令字节,在WE#或CE#信号的下降沿(有出现最晚的来确定)锁存地址总线

    20、,而数据总线在WE#或CE#(有出现最早的来确定)信号上升沿被锁存。本设计是以SST39VF160为设计芯片,详细的介绍在S3C44B0X上进行Flash ROM接口设计。Flash ROM接口设计首先应该确定硬件电路连接,然后设置好S3C44B0X存储器,再按照命令字读、擦除、写操作Flash。本节编写了SectorErase()扇区,BlockErase ()块和ChipErase()芯片擦除函数,以及一个测试主函数来验证读写擦除操作是否正确。Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行。因此,应将存有程序代码的Flash存储器配置到ROM/SRAM

    21、的Bank0位置,即将S3C44B0X的nGCS0的引脚接至SST39VF160的n CE引脚;SST39VF160的nOE引脚接S3C44B0X的nOE引脚;nWE引脚接S3C44B0X的nWE;由于SST39VF160的数据宽度是16位。所以将S3C44B0X的引脚OM1接地,OM0通过一上拉电阻接+3.3V,使其工作在16位模式;将SST39VF160的地址总线A19A0与S3C44B0X的地址总线ADDR1ADDR20相连,地址线偏移了一位,这是因为S3C44B0X是按字节编址的,而SST39VF160的数据是以每一个16位作为一个数据单元;16位数据总线DQ15DQ0与S3C44B0

    22、X的低16位数据总线DATA31DATA16相连。Flash的地址空间为0x000000000x000FFFFF。与S3C44B0X芯片连接电路如图3-9。 图3-9 Flash ROM连接电路图其引脚功能描述为:SCLK:系统时钟;nSCS:片选;SCKE:时钟使能;A0A11:行/列地址复用线;BA0BA1:BANK选通地址;SRAS:行地址使能。3.3.2 硬件和存储器设置由于ARM是32位处理器,以字节为单位编制,数据处理可以以32位进行,存储方式有大小端之分。在这里,将ARM芯片上的EDIAN端接地,选取小段存储方式。SST39VF160是16位数据宽度的,因此还必须设置ARM数据总

    23、线宽度,即设置OM1:0为01,将Bank0数据总线宽度设置成16位。BANKCON0寄存器设置中包含了Tacs、Tcos、Tacc、Toch、Tcah、Tpac和PMC7个参数。对它们的设置分别为(此程序段在BootLoader的配置程序中)。Bank 0 ParametersB0_Tacs EQU 0x0 ; 0个时钟周期B0_Tcos EQU 0x0 ; 0个时钟周期B0_Tacc EQU 0x6 ; 6个时钟周期B0_Toch EQU 0x0 ; 0个时钟周期B0_Tcah EQU 0x0 ; 0个时钟周期B0_Tacp EQU 0x0 ; 0个时钟周期B0_PMC EQU 0x0 ;

    24、正常(1data)除了Tacc之外,其他值均设为零,Tacc的值要大于芯片的读周期时间,由于S3C44B0X处理器的时钟频率为64MHz,周期大约为15ns,SST39VF160读写时间周期为70ns,所以,Tacc在这里设置为6个时钟周期,即0x611。3.4 键盘模块设计键盘的结构一般分为两种形式:线性键盘和矩阵键盘。本设计采用的是44矩阵键盘。矩阵键盘的案件按N行M列排队每个键盘占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数为NM。键盘扫描过程就是有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。一旦处理器判定有一个键被按下,键盘扫描程序就会滤掉抖动,然后再判定是哪个

    25、键被按下。每个键被分配一个称为扫描码的唯一标示符,应用程序利用该扫描码来判断应按下了什么键。3.4.1 键盘线路模块设计 3-10 键盘连接电路图本设计采用S3C44B0X通用I/O引脚的GPE4GPE7为行线输入端,GPF5GPF8为列线输出端,与44的键盘相连。通过软件延迟的方式来消除按键抖动,并通过循环扫描的方式得到具体的按键值。由于通用的I/O口有限,而又需要大量的按键输入,这就要求一种合理的按键结构,即用尽量少的I/O口实现尽可能多的键盘输入。本设计的电路连接方式如图3-10示,以8个I/O口实现16键键盘。GPE4GPF7为行线输入端,GPF5GPF8为列线输出端,如图3-1012

    26、。3.4.2 寄存器的设置使用到的I/O口的各个特殊寄存器的地址定义如下:通用I/O特殊寄存器:#define rPCONE (*(volatile unsigned *)0x1d20028)#define rPDATE (*(volatile unsigned *)0x1d2002c)#define rPUPE (*(volatile unsigned *)0x1d20030)#define rPCONF (*(volatile unsigned *)0x1d20034)#define rPDATF (*(volatile unsigned *)0x1d20038)#define rPUPF

    27、 (*(volatile unsigned *)0x1d2003c)对使用的GPE和GPF引脚寄存器进行配置,列输出引脚GF5GF8在开始时拉低,便于按键发生时,使得行线的输入信号遍地。程序如下:void InitKey(void) rPCONE &= 0xff; rPUPE |= 0xf0; rPCONF = (rPCONF & 0x3ff) | 0x92400; /设置GPF5-8为输出,其他位保持不变 rPUPF |= 0x1e0; /连接键盘的输出都置低电平 rPDATF &= 0x1f;四.数据采集系统的软件设计硬件电路提供了系统运行的必须环境,还需要软件部分控制才能够运行。本章介绍

    28、高数高精度数据数据采集系统的软件设计。软件设计分为数据模数转换模块的程序设计,存储器模块的软件设计,键盘模块的程序设计,LCD显示模块的程序设计和主程序设计。由于C语言具有了可读性强、效率高、易于维护等优点。因此本系统数据采集系统采用C语言进行编写,实现对数据采集模块的控制,数据的处理和显示存储等功能。本章介绍主要的程序模块。4.1 主程序流程 图4-1 数据采集模块程序框图 系统的主程序所要实现的功能主要是实现系统的初始化、系统芯片之间的信息交流、相应的处理程序。本设计采用模块化编程方式,达到编写不同功能的子程序,实现具体操作的目的。系统的基本流程是,上电复位后,系统首先进行初始化,然后根据

    29、相关程序命令转入到相应的子程序模块,完成相应的功能。程序流程图4-1所示。主程序如下:#includeadc.h#includeflash.h#includelcd.h#includekeyboard.h#define addrstar 0 /定义flash起始地址*函数名:init_system*作用:初始化系统void init_system(void)LCD_Init();/初始化LCD InitKey();/初始化键盘 SectorErase(addrstar);/擦除从addrstar开始的一个扇区 init_adc();/初始化ad转换器AD7663 reset_adc();/复位

    30、AD7663*函数名:switch_chanel*作用:通过键盘来选择采样通道*按数字键边切换到对应通道char switch_chanel(char chanel) char keynum; keynum=ReadKey();/读取键盘值 switch(keynum) case 1:chanel=1;break; case 2:chanel=2;break; case 3:chanel=3;break; case 4:chanel=4;break; case 5:chanel=5;break; case 6:chanel=6;break; case 7:chanel=7;break; cas

    31、e 8:chanel=8;break; default:break; return chanel;int main(void) INT16U data1,data2; char chanel; int i=0,x,y; init_system();/初始化系统 while(1) chanel=switch_chanel(chanel);/选择采样通道 ADC_CHANEL(chanel);/切换通道 data=read_adc(chanel);/读取AD转换数据 SectorErase(addrstar);/擦除addrstar开始的一个扇区 WordPrograme(addrstar,data);/将数据写入扇区 data2=ReadFlash(addrstar);/将数据从flash中读出来 y=(int )(data*1.0/65536)*240);/将采样的值转换成x,y坐标 x=i; LCD_PutPixel(x,y,color);/将点显示在LCD上 i+; if(i=320)/一屏显示完 i=0;


    注意事项

    本文(ARM嵌入式系统课程设计报告高速数据采集系统的设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开