ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:217.04KB ,
资源ID:6661237      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6661237.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM的数据采集系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于ARM的数据采集系统.docx

1、基于ARM的数据采集系统 课 程 实 习 报 告实习名称: 嵌入式课程设计 * 学 号: 专业班级: * 完成时间: 评阅意见: 评阅教师 日期 报告成绩: 基于ARM的数据采集系统课程设计一、设计要求1、查阅相关文献资料,熟悉所选的ARM(S3C44B0)芯片。2、系统硬件设计,熟悉AD转换原理及过程,12864液晶与ARM芯片的硬件接口实现及显示。3、系统软件设计,包括采集电压的AD转换及显示的软件实现,用C语言编程。二、设计的作用及目的本设计是基于S3C44B0 ARM 芯片为主控处理器,实现了电压的实时采集、传输、处理、12864液晶上的显示等功能,并讨论了如何提高系统的速度、可靠性和

2、可扩展性。并解决了传统的数据采集系统存在的响应慢、精度低、可靠性差等弊端,能够完全适应现代化工业的高速发展。1、注重培养综合运用所学的知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。2、了解所选择的ARM芯片各个引脚的功能、工作方式、计数/定时、I/O口、中断等相关原理,并巩固学习嵌入式的相关内容知识。3、通过软件和硬件的设计,实现利用ARM芯片对模拟量的采集、转换、处理及显示。三、课题分析数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析,处理。数据采集系统是结合基于计算机或者其他专用测试

3、平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据量测是数据采集的基础。数据量测方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。本课程设计研究基于ARM的数据采集系统,通过S3C44B0芯片自带的8路10位A/D转换器对模拟量电压采样,采集的数据由主控芯片处理,送至LCD12864液晶实

4、时显示。四、系统组成及工作原理本系统采用的是S3C44B0 ARM7 系列主控芯片,由晶振电路和复位电路构成了基本应用系统。系统包括AD采样部分(芯片内部自带的8路10位A/D变换器)、12864液晶显示部分、JTAG在线下载调试部分、电源模块分别给系统提供CPU内核所需的2.5V电压和芯片所需的3.3V电压及液晶所需的5V电压。本系统通过对电位器电压的变化的采集,由芯片内部自带的8路10位A/D转换器将模拟量变成数字量通过系统的一系列处理,在12864液晶上实时显示。五、系统硬件设计5.1 硬件设计思路本设计的基于ARM的数据采集系统和显示装置的原理框图如图1所示。有图可见,本系统采用“电源

5、部分+ARM核心控制模块+电压的采集模块”实现所需的功能。并考虑到系统的可扩展性和延伸性,本系统采用主从CPU协同工作,实现了电压的实时采集、传输与显示,具有处理速度快、精度高、人机交互界面友好、稳定性高、扩展性好等优点。5.2 电源电路设计本系统的电源电路由三部分组成,系统总电源电路和RAM核心模块电源电路及液晶所需要的电源电路。如图2:220V的交流电经过降压变压器和整流得到+12V恒定直流电源经电容滤波,分别进入7805和7905稳压,得到+5V和-5V的稳定电压输出后分别供给12864液晶显示,然后5V的电压分别经AMS1117-2.5和ASM1117-3.3 2.5V供给S3C44B

6、0的内核,转变为3.3V供给S3C44B0的I/O口和其余电路部分使用。图中IN4148是为了防止输出端并接高于本稳压模块的输出电压而烧坏7905和7805而特别设计,达到了可靠性电源设计目的。另外,由于系统正常工作电流较大,因此使用时均应在7809和7805上加散热片散热。 由图可见,系统采用双电源供电,提供了系统正常工作所需的电源电压。另外,由于考虑到便携目的,本系统采用+12V铅蓄电池提供系统所需的恒定直流电源。如图2:I/O 口提供了相应的稳定直流电源。由于S3C44B0采用2.5V作为ARM 内核电源,使用3.3V作为I/O 口电压,故ARM核心控制模块电源需要另外单独设计,其电源电

7、路如图3-2所示。由系统总电源电路提供的+5V稳压电源作为输入,分别经7805、AS1117-3.3、 AS1117-2.5稳压后,输出5.0V、3.3V和2.5V恒定电源,为RAM 内核和I/O口提供了相应的稳定直流电源 。5.3 基本应用系统基本应用系统包括S3C44B0主控芯片、晶振和复位电路。主控芯片控制整个系统工作,晶振为系统正常工作提供动力,复位电路使整个系统复位,包括了上电自动复位和手动复位,复位电路的两种方法的原理都是低电平复位。5.4 人机接口电路人机接口电路如下图4所示:人机接口电路负责数据的处理、显示,以及键控模式的切换、参数的设定等功能。人机接口交互电路由矩阵键盘、LC

8、D12864液晶两部分组成,其电路原理图如图4所示。主控芯片采用S3C44B0芯片,芯片的DATA0、DATA1、DAYA2分别接LCD12864的CS、SID、SCLK。5.5 A/D采样电路本系统用于电压采集,采用S3C44B0芯片自带的8路10位A/D转换器。当扭动电位器时相应的AD采集的电压也会改变,经过主控芯片的处理在LCD12684液晶上实时显示。5.6 JTAG调试电路JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口

9、串联在一起,形成一个JTAG链,能实现对各个器件分别测试。如今,JTAG接口还常用于实现ISP(In-System Programmer,在系统编程),对FLASH等器件进行编程。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程然后再装到板上,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对DSP芯片内部的所有部件进行编程。六、系统软件设计6.1 软件设计思路本系统软件设计是在CodeWarrior for ADS开发环境下完成的。本电压数据采集与LCD12864液晶显示装置的主体由S3C44B0核心控制模块和电压数据采集模块构成,所以系统

10、软件也是围绕这两个模块来编写的。实现所要求的功能,程序流程图如图7。由该流程图可看出,刚上电时,S3C44B0要先进行ARM 内部的初始化,以使ARM进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持电压数据采集;接着通信初始化,以确定电压采集模块与ARM核心控制模块连接正常,并通过UART复位电压数据采集模块,确保其进入正常电压数据采集状态;然后初始化LCD显示和键盘,在LCD上显示相应的菜单列表,供用户通过键盘选择操作;至此,系统初始化完成,并进入正常主程序循环状态。其主程序包括温度采集程序、ARM获取温度子程序、温度处理和转换子程序。当ARM 处理器接收到正确的温度数据后

11、,立即进行相应的电压数据处理与转换,变成可被LCD直接显示的正确电压值。6.2 软件调试问题分析及解决办法1、ADS软件使用不熟练导致各种各样的小问题。2、没有正确对S3C44B0芯片I/O口初始化。3、A/D采样程序没有初始化。4、12864液晶显示程序没有延时。5、程序相对应的头文件没有添加,导致寄存器无法识别。通过对ADS编程软件的学习,学会使用了ADS软件的开发、编译、调试方法学会了跟踪/调试程序,掌握断点的设置与取消,对自己编写的代码进行编译,以及下载到开发板上。当我软件调试遇到问题时,通过查阅书籍、上网查资料之外,还有我们实验室的师兄师姐的鼎力相助。使我的这些问题迎刃而解。七、心得

12、体会及建议在这次ARM嵌入式系统课程设计中,我们小组的设计课题是基于ARM的数据采集系统设计。通过这次课程设计,我对ARM嵌入式系统尤其是数据处理中的电压采集系统有了更进一步的了解,同时知识面也进一步得到了扩展和加深。本次课程设计的任务主要是对基于传统电压采集系统的使用环节中遇到的一些问题提出的一种改进方法,有助于数据采集系统更好的发展与使用,帮助我们更好的理解嵌入式系统和数据采集系统的原理和应用。数据采集是一种直接数字处理方法。所谓电压采集系统,就是通过扭动电位器使A/D采集的电压发生变化后经过收集与处理,最后得到我们所需要的有用的数字信号并送入系统的下一环节进行其他操作。目前,由于传统的数

13、据采集系统存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,已经不能完全适应现代化工业的高速发展。随着嵌入式技术的迅猛发展,设计高速度、高效率、低成本、高可靠性、操作方便的数据采集系统成为当务之急。所以,学习和应用数据采集系统及其应用技术对我们以后的学习和工作有着十分重要的意义。在这次为期一周课程设计的过程中,我深深的感触到了团队合作的重要性,尤其是在当今的社会工作中,一个人的力量在一个巨大的任务前是那么的渺小,必须靠多人合作才能共同完成。在设计规划过程,我们小组三个人亲密无间的合作,使得本次课程设计能够非常顺利地完成,在课程设计的过程中,每个人都能按要求很好的完成分配给自己的任务,最后大

14、家一起通过讨论把所有任务串连起来完成总的设计任务。通过本次课程设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样将理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。在设计过程中,总是会遇到这样或那样的问题。有时一个问题可能会需要大家集体去查阅资料,做大量的工作,花大量的时间才能解决。通过不断地发现问题,解决问题,自然而然,我的发现问题和解决问题的能力便在其中建立起来了。这都为以后的工作积累了经验,同时也增强了我们解决问题的能力。八、参考文献 1. 熊茂华、杨震伦 ARM体系结构与程序设计M.北京:清华大学出版社 2009年. 2.

15、 邱铁 ARM嵌入式系统结构与编程M.北京:清华大学出版社 2009年. 3. 王孝良 基于ARM平台的嵌入式核心编程M.北京:清华大学出版社 2011年. 4.刘迎春 C语言程序设计M.北京:.北京大学出版社,2006. 5.王田苗 嵌入式系统设计与实例开发M.北京:清华大学出版社 2003年. 6.杜春雷 ARM体系结构与编程M.北京:.清华大学出版社2003年. 附录 1 总原理图附录 2 源程序/*主程序 */#include.incmain.h#include.inc12864.h#include.incADC.h/我们用这个片编存储我们的 IRQISR 入口地址U32pIrqSta

16、rt=0;U32pIrqFinish=0;U32pIrqHandler=0;/*主函数*/intmain(void)sysUtilsSetPllValue(24,6,1);/设置片内的锁相环IoConfig();/io 端口的初始化Clr_Pled(); /关闭跑马灯Clr_DZ(); /关闭点阵显示Clr_led(); /关闭数码管显示ADC_Init(void); /ADC初始化 lcd_init();/初始化 LCDconsole_init(115200); /初始化控制台while(1)ADC_Test();while(1);return0;/*AD采样程*/#include.incA

17、DC.h#include.inc12864.hvoidADC_Init(void)rCLKCON=rCLKCON|(112); /控制系统主时钟进入ADC 单元模块rADCCON=0x1|(02); sysUtilsUSecDelay(100); /延时若干个 100usrADCPSR=10;unsignedshortRead_Adc(unsignedcharch)inti;staticintprevCh=1;if(prevCh!=ch) rADCCON=0x1|(ch2);/设置 AD 转换通道 for(i=0;i150;i+); /最小 15uSrADCCON=0x1|(ch2); /开始

18、 AD 转换 while(rADCCON&0x1); /避免标志 FLAG 错误while(!(rADCCON&0x40); /等待 AD 转换结束 for(i=0;irADCPSR;i+); /避免第二次标志 FLAG 错误prevCh=ch; returnrADCDAT; /返回 AD 转换值voidADC_Test(void) inta0=0,b0=0; ADC_Init(); /模数转换初始化 while(!(kbhit&(getkey()=ESC_KEY) a0=Read_Adc(0); /ADC 某一通道进行转换,返回转换的数据 b0=a0*2.500/1024; displayi

19、nt(3,3,b0);)/*12864液晶显示程序*/#include.inc12864.h#include.incsysUtils.h/总线地址声明volatileU8*LCD12864_MAdd=(volatileU8*)(0x6000000);#defineLCD12864_WR_H()rPDATC|=0x01;#defineLCD12864_WR_L()rPDATC&=0x01;voidlcd_wcmd(U8cmd);voidlcd_wdat(U8dat);voidlcd_init(void);voidlcd_pos(U8X,U8Y);staticU8dis1=数据采集系统;U8IRD

20、IS2;U8IRCOM4;voidlcd_wcmd(U8cmd)sysUtilsUSecDelay(150000);LCD12864_WR_L();LCD12864_MAdd=cmd;sysUtilsUSecDelay(15000);voidlcd_wdat(U8dat)sysUtilsUSecDelay(150000);LCD12864_WR_H();*LCD12864_MAdd=dat;sysUtilsUSecDelay(15000);/*LCD 初始化*/voidlcd_init(void)lcd_wcmd(0x34);/扩充指令操作sysUtilsUSecDelay(5000);/*d

21、elay(5);*/lcd_wcmd(0x30);/基本指令操作sysUtilsUSecDelay(5000);/*delay(5);*/lcd_wcmd(0x0C);/显示开,关光标sysUtilsUSecDelay(5000);/*delay(5);*/lcd_wcmd(0x01);/清除 LCD 的显示内容sysUtilsUSecDelay(5000);/*delay(5);*/*/void diaplaystring(U8 X, U8 Y,U8 *P)U8i;lcd_pos(0,0);/设置显示位置为第一行的第 1 个字符i=0;while(*(P+i)!=0) lcd_wdat(*(P+i); i+;/*设定显示位置*/voidlcd_pos(U8X,U8Y)U8pos;if(X=0)X=0x80;elseif(X=1)X=0x90;elseif(X=2)X=0x88;elseif(X=3)X=0x98;pos=X+Y;lcd_wcmd(pos);/显示地址/*显示数据在指定位置*/void displayint(uchar x,uchar y,uint NUM) uchar a_SHOW3; a_SHOW0=NUM/10+0; a_SHOW1=NUM%10+0; a_SHOW2=0; displaystr(x,y,a_SHOW);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1