ARM嵌入式系统(通用12篇)
ARM嵌入式系统 篇1
现在社会是一个高度信息化、网络化的社会,计算机和网络已经全面渗透到日常生活的每个角落,信息时代、数字时代使得嵌入式产品获得了巨大的发展契机。嵌入式系统应用非常广泛[1],军事国防是嵌入式系统的一个重要应用领域。现在各种武器控制如火炮控制、导弹控制和智能炸弹制导引爆控制,以及坦克、舰艇、轰炸机、陆海空各种军用电子装备,雷达、电子对抗军事通信装备和野战指挥作战等各种专用设备上,都可见嵌入式系统的影子。
1 系统总体概述
1.1 系统结构
本系统由ARM板、ADU3600板、显示器、母板等组成。
1.2 ARM处理器特点
ARM(Advanced RISC Machine)微处理器体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式RISC微处理器结构,采用32位地址和数据总线,其地址空间达到了232=4GB[2],具有功耗低、性价比高和代码密度高等特点;大量使用寄存器,多数数据操作都在寄存器中完成,指令执行速度更快;寻址方式灵活简单,执行效率高。
1.3 ADU3600板特性
克服了惯性定向产品精度随时间和温度漂移的缺陷,用载波测量技术和快速求解整周模糊度技术,解算出两个GPS接收机天线处位置和两天线相位中心连线与真北之间的夹角。
2 系统硬件设计
2.1 数据接收电路
选用的GPS天线为零相位测量型天线,馈线与天线在阻抗、增益、放大倍数等方面与标配的天线有很好地匹配。
前天线:用天线馈线一端连接接口,另一端连接GPS前天线(前进方向)。
后天线:用天线馈线一端连接接口,另一端连接GPS后天线(后退方向)。
GPS后天线相位中心到GPS前天线相位中心的连线我们称为基线。基线与真北间的夹角我们称为方位角。基线越长定向精度就越高,通常基线长度增加一倍,定向精度也会提高一倍。应尽可能将两个天线安装间距拉长,这样可提高定向精度。
2.2 数据处理电路
接收板通过两条GPS天线接收到数据后,进行第一次数据处理、分类、打包等,然后通过串口把处理后的数据经由母板传送给主板,主板接收到数据后,进行第二次数据处理、分类、打包等一系列工作,最后通过显示屏把相应的数据进行显示,并同时通过串口经由母板把数据发送给外设。
2.3 接口电路
(1) 显示接口
液晶显示器(LCD)具有耗电省、体积小等特点,被广泛应用于嵌入式系统中。LCD显示器就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。
(2) 串行接口
本系统采用的RS-232C是由美国电子工业协会EIA制定并采用的一种串行通信接口标准,已经发展成为一种国际通用的串行通信接口标准。
3 系统软件设计
嵌入式软件可以分为三大类:系统软件、应用软件和支撑软件。系统软件控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统等;应用软件是嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互;支撑软件是辅助软件开发的工具软件,如交叉编译器、在线仿真工具等。本系统中的系统软件和应用软件是运行在嵌入式设备上,支撑软件运行在普通PC机上。
3.1 板级支持包
设备驱动层也叫板级支持包(Board Support Package,BSP),它包含了嵌入式系统中所有与硬件相关的代码,并向上提供一个虚拟的硬件平台使操作系统运行其上。它包括引导加载程序Bootloader和设备驱动程序。Bootloader是在操作系统内核运行之前运行的一小段程序,通过这段程序,我们可以初始化硬件设备、建立内存空间的映射图、从而将系统的软硬件环境设置到一个合适的状态,以便为最终调用操作系统内核做好准备;设备驱动程序就是一组库函数,用来对硬件进行初始化和管理。并向上层软件提供良好的访问接口。
3.2 嵌入式操作系统(Embedded Operating System,EOS)
本系统采用的VxWorks是美国WindRiver System公司开发的一款嵌入式实时操作系统,具有良好的可靠性和卓越的实时性,是目前嵌入式系统领域中使用最广泛、市场占有率最高的商业系统。它基于微内核的体系结构,采用GNU类型的编译和调试器,多数API函数都是专有的。
3.3 集成开发环境
Tornado是WindRiver公司推出的一个集成开发环境[2]。
3.4应用软件
本系统程序采用标准C语言编写,在Tornado集成开发环境中调试,通过串口或网络通信线路传输并装载到ARM板中,最终脱离宿主机在ARM板中单独运行。
4 系统性能指标
(1) 定位误差不大于30 m,定向误差不大于0.06°;
(2) 定位定向不超过2 min;
(3) 阳光下可读的EL显示器;
(4) 总功率不超过10 W;
(5) 包装箱体积不大于410 mm×322 mm×216 mm,质量不大于20 kg;
(6) 适合于-40 ℃~50 ℃工作,适合于-55 ℃~60 ℃储存。
5 结束语
本系统在综合考虑硬件平台、嵌入式处理器、外围设备、接口电路的基础上进行硬件设计,经测试达到硬件的稳定性和可靠性要求;软件设计中嵌入式平台、操作系统、编程语言、集成开发环境的选择上充分考虑了系统的实时性和可扩展性。
摘要:依据开发周期中软、硬件的划分,介绍系统在ARM处理器强大功能的基础之上,运算、处理、显示ADU3600板收集到的数据的过程;在详细阐述系统综合性能指标的基础上展现了产品应用的广阔前景。
关键词:ARM,ADU3600,处理数据
参考文献
[1]李忠民,杨刚,顾亦然,等.ARM嵌入式VxWorks实践教程[M].北京:北京航空航天大学出版社,2006.
[2]魏洪兴.嵌入式系统设计师教程[M].北京:清华大学出版社,2006.
ARM嵌入式系统 篇2
随着科技的进步,视频监控系统正在向嵌入式、数字化、网络化方向发展。嵌入式视频监控系统充分利用大规模集成电路和网络的科技成果,实现了体积小巧、性能稳定、通讯便利的监控产品。本文以S3C2410为核心硬件平台开发了基于嵌入式的远程视频监控系统,并对关键技术进行了论述和研究。首先给出了系统总体软硬件设计方案,针对本系统硬件对vivi进行了修改和移植,对编译和移植Linux内核以及制作YAFFS文件系统也做了深入的研究,重点讨论了在嵌入式Linux操作系统下开发USB接口摄像头驱动程序和利用linux提供的Video4Linux API函数实现视频数据采集,其次采用背景差法实现了对视频图像中运动目标的检测,然后通过MJPEG压缩算法实现了视频数据压缩,接着介绍了在Linux下基于TCP/IP协议的socket编程,实现了视频数据的网络发送。最后着重论述了嵌入式Web服务器的设计,编写了视频监控主界面程序,并实现了基于B/S模式的视频监控系统结构。本系统采用模块化设计方法,使得设计更加简洁、高效,具有良好的扩展性和易用性,有利于系统升级。另外采用嵌入式的方法,系统成本较低,易于推广使用。
【关键词相关文档搜索】: 控制理论与控制工程;ARM;嵌入式Linux;USB摄像头;Video4Linux;嵌入式Web服务器
ARM嵌入式系统 篇3
关键词:研究性教学;ARM嵌入式系统;研究性教学平台;研究性教学模式;研究性教学成效
作者简介:谭会生(1966-),男,湖南茶陵人,湖南工业大学电气与信息工程学院,副教授。(湖南株洲412008)
基金项目:本文系湖南工业大学教育教学改革教学之星专项(项目编号:2011C03)、湖南省教育厅大学生研究型学习与创新性实验计划项目(项目编号:2009-225)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2012)10-0070-02
一、开展本科生研究性教学的必要性和条件
研究性教学是一种新的教育理念,是一种新的现代学习观,它强调学习的自主性和开放性。在教师的研究性教学理念的引导下,教学设计被看成是一项系统工程,从研究思想、研究手段、研究策略等各方面进行教学过程的全新设计,激发学生的研究及探索科学问题的兴趣。学生运用探索的方法,对问题进行研究,最终获得知识。研究性教学理念要求教师通过自己的教学,培养学生做事和做人的能力和素质。
综合现有观点并结合作者多年实际开展研究性教学的实践,作者认为开展本科生研究性教学必要性如下:大众化高等教育的差异化教育的需要;提高大学生综合应用能力的需要;提高大学生实践动手能力的需要;提高大学生专业创新能力的需要;提高大学生专业综合素养的需要;改变大学生被动学习学风的需要。随着经济社会的发展和高等教育的大力发展,我国高等教育已由精英化教育转向大众化教育,学生群体出现多样化的趋势,学生学习兴趣、学习能力、学习需求的差异性日显突出。为了提高大众化高等教育的质量,更好地满足市场经济条件下对人才的高要求,笔者按人才培养方案组织教育的同时,对一些优秀和比较优秀的学生,根据社会发展的需求、学生的兴趣爱好、学生的职业规划等,进行加深与扩展,实现优才优教。
开展本科生研究性教学的主要条件如下:提高教师研究性教学的能力;激发学生研究性学习的积极性;提供研究性教学资源与教学场地;选择一个合适的有效平臺;构建有效的研究性教学评价与评估体系。其中选择一个合适的有效平台,是研究性教学持续而有效开展的一个关键性因素。作为电类专业研究性教学的有效平台,应该方便学生进行软件仿真和硬件设计与制作,并具有综合性强、创新性强、成本低廉、灵活性强等优点。
二、基于ARM嵌入式系统的研究性教学的主要优势
嵌入式系统是指以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统融合了计算机软硬件技术、通信技术和微电子技术,是集成电路发展过程中的一个标志性成果。可以预言,嵌入式系统将成为后PC 时代的主宰。
嵌入式系统具有非常广泛的应用,包括智能产品、工业自动化、办公自动化、电网安全、电网设备检测、石油化工、商业应用、安全防范、网络通信、汽车电子与航空航天以及军事等各个领域,是现代计算机技术改造传统产业、提升多领域技术水平的有力工具。
按照体系结构分类,目前世界上有四大流派的嵌入式处理器内核,即MIPS处理器内核、ARM处理器内核、PowerPC和68K/COLDFIRE。其中ARM架构处理器已在高性能、低功耗、低成本应用领域中占据领先地位,它在当今最活跃的无线局域网、3G、手机终端、手持设备、有线网络通信设备中得以广泛应用。
利用ARM嵌入式系统设计实现电子系统具有以下几个方面的优点:芯片内外资源丰富,硬件系统简单;可运行各种实时操作系统,降低了复杂系统应用程序开发的难度;可运行多种操作系统,应用程序开发难度降低,系统人机界面友好;系统数据处理能力强,控制精度高;有成熟的开发工具,丰富的开发资源和资料;目前ARM具有众多的开发人群,有助于降低企业项目开发成本、保持开发的连续性。
使用ARM嵌入式系统作为研究性教学的平台,它具有以下优点:技术先进、社会急需、综合性强、创新性强、成本低廉。
三、基于ARM嵌入式系统的研究性教学的研究模型
为了描述基于ARM嵌入式系统的研究性教学的研究背景、主要研究目标、主要研究内容以及主要研究期望,图1给出了基于ARM嵌入式系统的研究性教学模型。现将主要内容具体阐述如下:
1.利用ARM嵌入式系统开展研究性教学的研究目标
利用ARM技术开展研究性教学的研究目标,主要包括三个方面:基于ARM嵌入式系统的系统设计与实现基础训练;基于ARM嵌入式系统的系统设计与实现相关研究;基于ARM嵌入式系统的系统设计与实现课题研究。
2.利用ARM嵌入式系统开展研究性教学的研究内容
利用ARM技术开展研究性教学的研究内容,主要包括三个方面的内容:
(1)ARM嵌入式系统设计开发基础研究:主要包括ARM器件结构、ARM汇编语言、C/C++语言、操作系统移植、应用程序开发、驱动程序开发等嵌入式系统设计与实现基础理论、基本方法、基本工具的学习与使用。
(2)ARM嵌入式系统设计与实现相关研究:主要是与课题设计和实现有关的数字信号处理、数字图像处理、工业智能控制、网络通信控制、数字家电控制等基础理论、实现算法和系统仿真等研究,重点是实现算法的设计、选择和仿真。
(3)基于ARM的嵌入式系统设计与实现:主要包括系统设计需求分析、ARM实现硬件设计、ARM操作系统移植、ARM应用程序设计、ARM驱动程序设计、ARM系统组装与调试。
3.基于ARM嵌入式系统开展研究性教学的主要形式
基于ARM嵌入式系统开展研究性教学的主要形式,包括组建ARM嵌入式系统学习兴趣小组、课题系统设计与实现研究小组和选拔教师科研项目助理等,通过专题训练、分散研究、定期讨论、按需答疑、总结汇报等形式开展研究活动。
四、基于ARM嵌入式系统的研究性教学的主要成效
1.熟练掌握ARM嵌入式系统基础理论、基本方法、基本技巧、调试方法和调试技巧
从研究性学习训练学生的毕业设计论文的质量可以看出,他们熟练掌握ARM嵌入式系统基础理论、基本方法、基本技巧、调试方法和调试技巧,能够尽快地适应从事嵌入式系统设计与开发工作。
2.熟练掌握与ARM嵌入式系统设计开发课题相关的基础理论、基本方法、基本技巧
经过研究性学习训练的学生,无论是以前学习过并且掌握的、还是以前学过但似是而非的、或是以前根本没接触过需重新学习的,现在已熟练掌握与ARM嵌入式系统设计开发课题相关的基础理论、基本方法、基本技巧。
3.全面提高学生的综合应用能力、实践动手能力、创新创业能力和就业核心竞争力
通过研究性学习训练的学生,不但具有良好的参考文献查找能力、分析利用和文档处理能力,同时他们的综合应用能力、实践动手能力、创新创业能力大为提高,就业核心竞争力显著提高,80%的学生毕业时均能找到从事嵌入式系统设计与开发的工作,并且工资待遇也相当不错。
五、结论
实践结果表明,以课题为中心,以兴趣为纽带,以新兴的、有着广泛发展前途的ARM嵌入式系统的学习与应用为目标;采用ARM嵌入式系统学习兴趣小组、课题设计与实现研究小组、参加教师科研项目等形式;通过具体的专题训练、分散研究、定期讨论、按需答疑、总结汇报等活动;开展基于ARM嵌入式系统的电类专业本科研究性教学,对提高大学生综合应用能力、实践动手能力、创新创业能力;提高大学生的专业核心能力,就业的核心竞争力,培养从事嵌入式系统研究、设计与开发的高级人才,具有非常明显的成效。
参考文献:
[1]行龙.引入研究性教学理念,着力提高本科教学质量[J].中国高等教育,2007,(22):44-45.
[2]王金发.整合理念,构建开放式研究性的教学与学习新模式[J].中国高等教育,2007,(21):20-22.
[3]刘赞英,王岚,朱静然,等.国外大学研究性教学经验及其启示[J].河北科技大学学报(社会科学版),2007,(1):68-75,50.
[4]张伟刚.大学研究性教学与科研方法[J].高等理科教育,2009,(2):65-69.
[5]瞿振元.以培养拔尖创新人才为核心提升教育质量[J].中国高等教育,2008,(1):19-22.
[6]朱崇实.研究型大学创新型人才培养的思考与探索[J].中国高等教育,2007,(21):17 -19.
[7]李昌新,刘亮,庄森.论大学研究性教学的价值取向及实施条件[J].高等农业教育,2011,(3):19-21.
[8]马维华.嵌入式系统原理及应用[M].北京:北京邮电大学出版社,2006.
[9]李新峰,何广生,赵秀文.基于ARM9的嵌入式Linux开发技术[M].北京:电子工业出版社,2008.
[10]王诚,梅霆.ARM嵌入式系统原理与开发[M].北京:人民邮电出版社,2011.
[11]廖义奎.ARM与FPGA综合设计及应用[M].北京:中国电力出版社,2008.
(责任编辑:宋秀丽)
ARM嵌入式系统 篇4
根据公式 (1) 进行计算, 这样就可求得负载的功率。在测量负载的电流和负载两端的压降时所采用的方法可以归结为两大类:直接测量和间接测量。
直接测量, 就是利用电流表、电压表或万用表等仪器进行测量, 从而读出电流值和电压值, 最后通过计算得出功率的数值。
间接测量, 就是在负载端的电流或电压不方便或不能直接用万用表等仪器进行测量时, 通过一些其他方法间接的测量出负载端的电流和压降。初次之外, 还可以采用耦合的方法, 利用电磁感应来测量电流和压降。
1 嵌入式系统与嵌入式处理器
1.1 嵌入式系统
嵌入式系统是以应用为中心, 以计算机技术为基础, 软件硬件可裁剪, 适应应用系统对功能、可靠性、成本、体积以及功耗严格要求的专用计算机系统。嵌入式系统是设计完成复杂功能的硬件和软件, 并使其紧密耦合在一起的计算机系统。术语“嵌入式”反映了这些系统通常是更大系统中的一个完整的部分, 成为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。
某些情况下, 嵌入式系统在功能上是独立的系统。例如, 网络路由器是独立的嵌入式系统, 它由特殊的通信处理器、内存、许多网络访问接口 (称为网络端口) 以及实现包的路由算法的特殊软件组成。换句话说, 网络路由器是一个独立的嵌入式系统, 路由包从一个端口到另一个端口实现程序化的路由算法。
1.2 ARM7TDMI-S处理器
ARM7TDMI是目前低端的ARM核, 具有广泛的应用, 其最显著的应用为数字移动电话。
ARM7TDMI-S处理器是ARM通用32位微处理器家族的成员之一, 它使用流水线来增加处理器指令流的速度, 这样可使几个操作同时进行, 并使处理核存储系统连续操作, 能提供0.9MIPS/Mhz的指令速度执行。流水线使用3级, 因此指令分为3个阶段执行。
(1) 取指。
(2) 译码。
(3) 执行。
在正常操作过程中, 在执行一条指令的同时, 对下一条指令进行译码, 并将第3条指令从存储器中取出。
3阶流水线如图1所示。
注:程序计数器 (PC) 指向被取指的指令, 而不是指向正在执行的指令。
2 信号功率测量的方法
2.1 功率测量的原理
功率是指物体单位时间内做的功。也就是说, 功率是一个表征物体做功快慢的物理量。求功率的基本工式:功率=功/时间 (其中, P (功率) , W (功) , T (时间) ) 。对于信号功率的测量, 采用了“真有效值/直流 (TRMS/DC) 转换检测功率法”。
对于直接测量信号功率不是很方便且有一定难度, 因此我们需要避免直接测量。根据功率的计算公式:P=U·I, 我们可以通过测取信号的电流有效值和电压有效值, 然后将两者相乘就可得到信号的功率有效值了。
所谓真有效值即为“真正有效值”之意, 英文缩写为“TRMS”, 有的文献也称为真均方根值, 交流电压的有效值的表达式为:
近似公式为:
由以上两式可得出, 对输入电压依次进行“取绝对值→平方/除法→取平均值”运算, 也能得到交流电压的有效值。
同理, 我们也可得出电流的有效值。
真有效值仪表的的核心器件是TRMS/DC转换器。现在市场上这类单片的集成芯片很多, 真有效值仪表普遍使用了这类集成电路。单片集成电路具有集成度高、功能完善, 外围元件少, 电路连接简单、电性能指标容易保证等诸多优点, 这类芯片能准确、实时测量各种电压波形的有效值, 无须考虑波形参数和失真, 这些性能是平均值仪表无法比拟的。
因此, 测试过程中, 有效值检波电路的核心部件就采用芯片AD536AJQ。
2.2 硬件部分
功率测量系统要求能够测量多种连续信号的功率, 且要求达到较高的精度, 因此本系统采用了“真有效值/直流 (TRMS/DC) 转换检测功率法”。本系统选用有效值转换芯片AD536AJQ作为系统的功能核心;嵌入式微处理器LPC2142功能强大且廉价易得, 完全胜任系统的主控芯片。另外, 选用了一个12864的液晶屏作为人机交互界面。
最终设计的硬件电路系统框图如图2所示。
由电路系统框图可知, Philips公司的嵌入式微处理器LPC2142为整个系统的控制核心。当系统通电开始工作后, 首先, 信号经过放大电路放大, 之后进入以AD536AJQ为核心的有效值检波电路进行有效值检波;接着在一按键的控制下, LPC2142中的AD开始工作, 采集检波后的数据, 并根据公式 (1) 和 (2) 进行计算, 最终信号的电压、电流和功率被LPC2142测量出, 最终送到液晶屏LCM128645ZK上进行显示。本系统中, 由PHILIPS公司生产的嵌入式微处理器LPC2142作为控制和处理核心。
2.3 软件部分
此系统使用的ARM芯片为Philips公司的LPC2142, 因而, 软件的设计主要针对LPC2142来进行, 系统的软件流程图如图3所示。
可见, 系统软件的设计可以分为两部分。
(1) 启动代码设计。
(2) 系统功能程序的设计。
其中, 启动代码是芯片复位后进入C语言的main () 函数之前执行的代码, 主要是为运行C语言程序提供基本的运行环境, 如初始化存储器系统等, 本系统使用的启动代码由厂商提供。
2.3.1系统功能程序的设计
由于系统包含多个功能模块, 所以功能软件也可以分为多个模块进行设计, 其中LPC2142为核心控制模块。图4为主程序的流程图。
3 系统测试结果
在本次论文过程中, 系统的硬件和软件得到不断的修改与完善, 在最终调试成功之后, 针系统所需实现的功能, 进行了一些实际测量实验, 对系统的性能进行了测试, 具体测试结如表3-1所示。
第一组SIN信号, 频率10kHz, AMP5~3V
第二组SQ信号, 频率10kHz, AMP5~3V
第三组TRI信号, 频率10kHz, AMP5~3V
第四组RMAP+信号, 频率10kHz, AMP5~3V
第五组CW信号, 频率12.4k Hz~15.2k Hz, AMP为1V
实验证明该装置可以测量连续信号的电压有效值, 电流有效值以及功率的有效值, 是测量精度较为理想的功率测量仪。
参考文献
[1]周立功, 等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社, 2005.
[2]周立功, 张华, 等.深入浅出ARM7—LPC213x/214x (上册) [M].北京:北京航空航天大学出版社, 2006.
[3]谭浩强.C程序设计 (第3版) [M].北京:清华大学出版社, 2005.
ARM嵌入式系统 篇5
科技改变生活,科技为人类带来了更舒适更方便的解决方案,智能家居是现代化科技的体现,智能家居也正是在应人们需求下而产生的。
本设计的内容是设计一个基于ARM的智能家居远程监控系统。整个硬件控制系统有以下模块:控制主机STM32F103VET6、无线短信收发模块GPRS(远程监控的主要模块)、用于显示的LCD1602液晶显示屏(显示测量出来的温湿度值)、测量外部环境温湿度的温湿度传感器DHT11,异步电机28BYJ-48(模拟控制窗帘收放用到的控制器)、蜂鸣器(报警用)、LED灯(模拟室内各种灯)、继电器(模拟室内各种电器的控制开关)。
温湿度传感器测量出来的温湿度数值通过LCD1602来显示,当超过设定的阈值将通过GPRS模块发送警报短信到指定的手机上,同时也可以由手机发送特定短信到GPRS上控制LED灯的亮灭、控制28BJY-48步进电机的正反转、读取当前室内的温湿度并发送回手机上,实现远程监控的。关键词 智能家居;远程监控;GPRS;ARM Abstract Technology has changed life, science and technology has brought to mankind more comfortable and more convenient solution, smart home is a manifestation of modern technology, smart home is also in demand should be generated by people.The content of this thesis is to design a remote monitoring system of smart home based on ARM.The entire hardware control system has the following modules: the host controller STM32F103VET6, wireless SMS transceiver module GPRS(the main module of the remote monitoring), LCD display(to display the temperature and humidity measured values), temperature and humidity sensor,DHT11, be used to measure the external environment temperature and humidity, asynchronous motor 28BYJ-48(analog controller curtain used), a buzzer(alarm), LED light(simulated indoor lamps), a relay(control switch simulation of indoor each kind of electric appliance).The temperature and humidity value measured by the temperature and humidity sensor and displayed by LCD1602, when more than a set threshold an alarm SMS will be sent by GPRS module to the designated mobile phone, but also can be caused by the mobile phone to send a specific message to the GPRS to control LED light, 28BJY-48 stepper motor reversible, read the current indoor temperature and humidity and sent back to the mobile phone.Keywords smart home;remote monitoring;GPRS;ARM II
目 录
摘要.......................................................................................................................I Abstract...............................................................................................................II 第1章 绪论........................................................................................................1 1.1 课题背景..................................................................................................1 1.2国外的发展动态.......................................................................................1 1.3 国内的发展动态......................................................................................2 1.4 本文各章主要安排..................................................................................2 第2章 各个硬件模块的说明............................................................................3 2.1 主控模块..................................................................................................3 2.1.1 STM32的系统架构............................................................................3 2.1.2 STM32F103VET6的内部资源..........................................................4 2.2短信收发模块GPRS................................................................................7 2.3温湿度测量模块.......................................................................................8 2.3.1 DHT11的引脚说明............................................................................8 2.3.2 DHT11的工作原理............................................................................9 2.4 温湿度液晶显示模块LCD1602............................................................11 2.4.1 LCD1602的管脚说明......................................................................12 2.4.2 LCD1602的特性..............................................................................12 2.4.3 LCD1602的基本指令......................................................................12 2.5 收放窗帘模块步进电机28BJY-48.......................................................14 2.5.1 步进电机的工作原理......................................................................14 2.5.2 步进电机的引脚接线......................................................................14 2.6 本章小结................................................................................................15 第3章 硬件系统的设计..................................................................................16 3.1 直流稳压电源的设计............................................................................16 3.2 STM32最小系统的设计........................................................................17 3.2.1电源的供电方案...............................................................................17 3.2.2 晶振电路..........................................................................................17 3.2.3 复位电路..........................................................................................18 III 3.2.4 串口驱动电路...................................................................................18 3.3 步进电机、继电器驱动电路设计.........................................................19 3.4 本章小结.................................................................................................20
第4章 软件程序的设计...................................................................................21 4.1 主函数及TIM2中断服务函数设计......................................................21 4.1.1 主函数及TIM2中断服务函数程序代码........................................21 4.1.2 主函数及TIM2中断服务函数程序流程图....................................23 4.2 GPRS来信中断处理函数设计...............................................................24 来信中断处理函数程序代码.................................................24 4.2.2 GPRS来信中断处理流程图.............................................................26 4.3 GPRS的AT指令....................................................................................27 4.3.1 本设计中用到的AT指令................................................................27 4.3.2 PDU编码...........................................................................................27 4.3.3 AT指令的使用程序设计..................................................................29 4.4本章小结..................................................................................................31 结论.....................................................................................................................32 参考文献.............................................................................................................33 致谢.....................................................................................................................35 附录一 整个硬件系统电路图...........................................................................36 附录二 开题报告说明.......................................................................................37 附录三 文献综述...............................................................................................38 附录四 中期报告...............................................................................................39 附录五 外文文献及其翻译...............................................................................40 附录六 完整的程序代码...................................................................................41 4.2.1 GPRS IV 第1章 绪论 第1章 绪论 1.1 课题背景
随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的要求也越来越高,作为家居智能化的核心部分——智能家居控制系统也越发显得重要。智能家居控制器可以为系统提供智能控制方案,使住户的控制更便捷,更高效,更能为家庭的日常活动节约不必要的能耗[1]。而且在现在这个注重绿色环保的世界里,智能的为住户控制好空气的湿度、温度等,检查分析空气成分,让住户安心入住。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。在科学技术日新月异的今天,智能家居产品也在不断发展寻求突破,用智能的方式缓和、解决社会矛盾,这是本课题的目的及意义所在。1.2国外的发展动态
1984年,世界上第一座智能建筑在美国的康涅迪格州建成,这座意义不一般的智能建筑是对一座旧式大楼在一定程度上的改造而完成的。它只是采用计算机系统对大楼的照明、空调、电梯等设备进行监控,并提供情报资料、语音通信、电子邮件等方面的信息服务。2000年,新加坡大约有5000户家庭采用了这种家庭智能家居化系统,而与此同时,美国采用这种智能家居化系统的用户已高达4万户。目前,在国外的家庭智能化系统技术己经越来越成熟,预计今后,越来越多的新房将会安装具有一定的“智能家居化”功能的系统。于此同时,由于科学技术的发展日益标准化,这些新型智能家居系统将会比世界首富比尔.盖茨耗资六千万美元的高端智能家居别墅便宜得多。
在家居智能化系统研发方面,美国及一些西方国家一直处于领先地位。近年来,以摩托罗拉公司及美国微软公司等为首的一些国外知名企业,先后加入到智能家居系统的研发中。比如:摩托罗拉公司开发出来的“居所之门”、微软公司开发出来的“梦幻之家”、IBM公司开发出来的“家庭主任”等都以日趋成稳的技术霸占家居市场。此外,亚洲国家日本、韩国、新加坡等国 的领头大企业也纷纷致力于家居智能化的研发,对家居市场更是跃跃欲试。1.3 国内的发展动态
1990年后,我国的智能家居化住宅小区日益兴起。我国的智能家居化住宅建筑最早起于广州、深圳和上海等沿海发达城市,并慢慢地向内陆发展。在1997年香港回归时,上海的中皇广场在建设部“97跨世纪住宅小区案竞赛活动”中被建设部科技委员会评为全国首家“智能住宅示范工程”,从此揭开了我国智能家居住宅小区发展的序幕。1999年,建设部住宅产业化办公室、建设部勘察设计司联合组织实施了全国住宅小区智能化技术示范工程,这也标志着我国的智能家居进入了一个新阶段。随着信息化技术日益普,国家经贸委领头成立了家庭信息网络技术委员会,同时信息网络技术体系研究及产品开发已经被列为了国家技术创新的重点专项计划。根据建设部的要求,截止今年,大中城市中50%的住宅要实现智能化[2]。
我国的智能家居建设相对于国外起步比较晚,尚未形成一定的国家标准。国内各大硬、软件企业机构正在积极的研发更为符合市场的智能家居化产品,以解决我国当前智能化设备使用复杂、产品价格昂贵及实用性差等缺点,而技术创新能力也逐渐向国际先进水平靠拢,这样智能家居的未来值得我们期待[3-4]。1.4 本文各章主要安排
本文第二章主要介绍了智能家居控制系统中用到的各个硬件模块,有主控模块STM32F103VET6、GPRS短信收发模块GTM900-B、温湿度测量传感器DHT11、液晶显示屏LCD1602、步进电机28BYJ-48。
第三章主要介绍了硬件系统的设计,重点描述各个功能模块电路图的设计及其功能。
第四章主要介绍了控制系统软件程序的设计,主要有主函数及TIM2中断处理函数的程序设计,GPRS来信中断处理函数的设计以及GPRS的AT指令的PDU编码过程。其中给出了主要程序代码及其程序流程图。第2章 各个硬件模块的说明 第2章 各个硬件模块的说明 2.1 主控模块
本设计整个系统的主控芯片选择的具有ARM内核Cortex-M3的STM32F103VET6。该芯片属于增强型的32位高性能微控制器,具有100引脚和高达512K字节的闪存存储器。2.1.1 STM32的系统架构
STM32VET6的系统架构包含4个驱动单元:Cortex-M3内核Dcode总线、系统总线、通用DMA1和通用DMA2;4个被动单元:内部闪存存储器Flash、内部数据存储器SRAM、FSMC和AHB到APB的桥。这些单元都是通过一个多级的AHB总线构架相互连接的,如图2-1所示。
ICode: 该总线将闪存指令接口与ARM的Cortex-M3内核的指令总线相连接。指令预取在此总线上完成。
DCode: 该总线将闪存存储器的数据接口和Cortex-M3内核的数据总线相连接(常量加载和调试访问)。
系统总线: 此总线连接Cortex-M3内核的系统总线到总线矩阵,总线矩阵协调着DMA与内核之间的访问。
DMA总线: 此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到 内部闪存存储器Flash、内部数据存储器SRAM和外设的访问。
总线矩阵: 该矩阵协调DMA主控总线与内核系统总线间的访问与仲裁,仲裁采用轮换算法。总线矩阵包含4个驱动部件和4个被动部件。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。
AHB/APB桥(APB): 两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。有关连接到每个桥的不同外设的地址映射。在每一次复位以后,所有除SRAM和FLITF以外的外设都被关闭,在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟 3
图2-1 STM32系统架构
2.1.2 STM32F103VET6的内部资源
STM32F103VET6的引脚图如图2-2所示。
(1)内核:ARM的32位Cortex-M3微处理器;最高达72MHZ频率,Cortex-M3内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。Cortex-M3采用了哈佛结构,拥有独立的Dcode总线和Icode总线,可以让数据访问和取指并行不悖,这样数据访问就不再占用Icode总线,从而提升了工作性能。为实现这个特性,Cortex-M3内部含有好几条总线接口,每条都为自己的应用场合而优化过,并且它们可以并行工作。第2章 各个硬件模块的说明 图2-2 STM32F103VET6引脚图
(2)存储器:512KB的闪存程序存储器;64K字节的静态数据存储器 5
SRAM,它可以以字节、半字(16位)或全字(32位)访问。(3)时钟和电源管理:
(a)三种不同的时钟源可被用来驱动系统时钟(SYSCLK):1)HSI振荡器时钟;2)HSE振荡器时钟;3)PLL时钟。
(b)STM32的工作电压(VDD)为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源;
(c)独立的A/D转换器供电和参考电压;
(d)一个完整的上电复位(POR)和掉电复位(PDR)电路;(e)可有3种不同工作模式的电压调节器;(f)可编程电压监测器(PVD)。
(4)通用和复用功能I/O(GPIO和AFIO):5组多功能双向5V兼容的通用I/O端口;可使用复用功能重新映射到其他一些引脚上。
(5)DMA控制器:支持定时器、ADC、SPI、IIC和USART等外设。(6)嵌套向量中断控制器:
(a)有68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线);(b)16个可编程的优先等级(使用了4位中断优先级);(c)低延迟的异常和中断处理;(d)电源管理控制;
(e)系统控制寄存器的实现。
(7)模拟/数字转换(ADC):12位的ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可测量16个外部和2个内部信号源。
(8)定时器:2个高级控制定时器(TIM1、TIM8);(a)4个通用定时器(TIM2、TIM3、TIM4、TIM5);(b)2个基本定时器(TIM6、TIM7);
(c)一个实时时钟、两个看门狗定时器和一个系统滴答定时器(Systick)。
ARM嵌入式系统 篇6
当前,嵌入式的技术应用越来越广发,从航天科技到民用产品,嵌入式产品的身影无处不在,而这些嵌入式产品的核心——处理器决定了产品的市场和性能。在32位嵌入式处理器市场中,ARM处理器占有很大份额。ARM不仅是一个公司、一种技术也是一种经营理念,即由ARM公司提供核心技术,只出售芯片中的IP授权,采取了别具一格的“Chipless模式”(无芯片的芯片企业),不参与生产,而是由合作厂商去生产具体的芯片和产品。
现在由于存储空间等原因,在嵌入式芯片上编程有较大的困难,选取合适的平台就显得很重要。由于Linux是开放源码的操作系统,吸引着全世界的程序员参与到发展和完善的工作中来,所以Linux保持了稳定而且卓越的性能。由于源代码可以修改、移植,Linux在嵌入式领域中的应用也越来越广。选用Linux作为平台,可以根据具体需要自由裁减源码,打造适合目标平台的环境,编写最有效率的应用程序。
可以预见,ARM与Linux在未来已经越来越壮大,在嵌入式产品市场上会占有越来越大的份额。在这种形式下,学习和研究ARM非常有必要,所以在这里介绍一下关于基于Linux系统的ARM9嵌入式系统设计的基础理论。
首先进行一下ARM开发环境的简介:
根据功能的不同,ARM应用软件的开发工具可分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等。因此,一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统及函数库的集成开发环境一般来说是必不可少的。至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。使用集成开发环境开发基于ARM的应用软件时,其中涉及的编辑、编译、汇编、链接等工作可全部在PC机上完成,调试工作则需要配合其他的模块或产品完成。目前进行ARM嵌入式系统开发常见的开发工具主要有Real View MDK、IAR EWARM、ADS1.2、WinARM等。
RealView MDK开发工具是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,支持所有基于ARM的设备,能够自动配置启动代码,集成了flash烧写模块,还具有强大的仿真模拟、性能分析等功能。
IAR Embedded Workbench for ARM是IAR System公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。IAR EWARM中包含一个全软件的模拟程序,用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。由于ADS集成开发环境已经不再更新,因此无法支持新推出的微控制器芯片,而IAR EWARM在持续的更新环境中,因此IAR EWARM将成为越来越多的人进行嵌入式系统开发的首选开发环境。
基于ARM芯片的应用系统,多数为复杂的片上系统。在该复杂系统中,多数硬件模块都是可配置的,配置工作需要由软件预先完成。因此在用户的应用程序运行之前,需要专门的一段代码来完成系统基本的初始化工作。由于此类代码直接面对处理器内核和硬件控制器进行编程,所以一般使用汇编语言实现,这里我们称之为硬件启动程序。
在应用系统的程序设计中,如果所有的编程工作都由汇编语言来完成,其工作量巨大,并且不容易移植。由于ARM处理器的运算速度高,存储器的存取速度和存储量也很高,因此大部分编程工作可以使用c语言来实现。由此可见,c语言在ARM编程中具有非常重要的地位。
其次介绍一下ARM9嵌入式系统开发的过程:
第一,嵌入式软件开发的特点。学习嵌入式开发的过程,首先要了解嵌入式开发的特点。嵌入式系统与通用计算机在以下几个方面的差别比较明显:
一是人机交互界面,这是最大的区别,因为嵌入式系统很可能就不存在键盘,显示器等在计算机中常见的实现人机交互的设备,它所完成的事情也只能是不同的传感器的变化情况,并且按照事先规定好的过程仪式完成相应的处理任务;二是功能是有限的,嵌入式系统只能反复执行设计时已经定制好的并且在开发完成后不再变化的功能任务;三是时间的关键性和稳定性,大部分的嵌入式系统因为功能要求实时响应并且受到工作环境的影响很大,需要选择合理的硬件和保护措施,保证系统的稳定性可以正常运行。
除此之外,还要了解嵌入式软件开发具有的自身特点:
一是需要交叉的开发环境;二是引入设计方法;三是固化的程序;四是开发的难度很大。
第二,嵌入式软件开发的流程。嵌入式软件的开发因为它的开发难度大等自身特点,需要将硬件、软件、人力资源等集中起来,并进行适当的组合以实现目标应用对功能和性能的要求,而且实时性和功能一样重要。这就使嵌入式开发关注的方面更广,精准度更高。嵌入式软件开发的每个阶段都体现着嵌入式开发的特点。
一是需求分析阶段;二是设计阶段;三是生成代码阶段;四是固化阶段。
第三,嵌入式系统的调试。在进行嵌入式软件开发过程中,可以选择不同的调试方式,但应根据实际的开发需求和实际的条件进行选择,有以下几种主要的调试方式。
一是源程序模拟器方式;二是监控器方式;三是仿真器方式。
嵌入式系统的调试方法被分成不同的层次,就调试方法而言,分为硬件调试和软件调试两种。在使用硬件调试的时候,可以获得比软件调试功能更强大的调试性能,但是有的时候会价格昂贵,需要合适的开发工具。软件调试可以分为操作系统的内核调试和应用程序的调试,前者的操作比较困难,因为操作系统内核不方便增加一个调试器程序,而后者相对比较简单。
在这里我们只是对ARM9嵌入式系统做一个基础理论的讲解。嵌入式技术正在飞速发展,并期待着各种行业的深入渗透。我国具有雄厚的制造业基础,与传统的制造业结合,嵌入式系统有着巨大的市场空间。同时,基于嵌入式的应用可技术创新,将推动新产品、新产业的诞生。在新的高科技浪潮来临之际,我国正全力迎接机遇和挑战,嵌入式领域方兴未艾,Linux也越来越成熟,我们需要掌握更新的知识,实现自我价值,为祖国贡献力量!
参考文献:
[1]马忠梅,马广云,徐颖慧,等. ARM嵌入式处理器结构与应用基础(2版)[M].北京:北京航空航天大学出版社,2007.
[2]马忠梅,李善平,等. ARM&Linux嵌入式系统教程(3版)[M].北京:北京航空航天大学出版社,2014.
作者简介:刘阳(1993—),男,辽宁盘锦人,沈阳理工大学学生。
龙潜(1995—),男,江苏连云港人,沈阳理工大学学生。
浅谈基于ARM的嵌入式系统 篇7
日常生活中, 各种使用嵌入式技术的电子产品已经得到了广泛的应用, 如MP3、PDA、手机、智能玩具、智能家电、车载电子设备等。在工业和服务领域中嵌入式技术也已经大量应用于数控机床、智能工具、机器人等行业, 正在逐渐改变着传统的工业生产和服务方式。而嵌入式的应用更是涉及金融、航天、电信、网络、信息家电、医疗、工业控制和军事等各个领域, 以至一些学者断言嵌入式技术将成为后PC时代的主宰。
二、嵌入式系统介绍
1. 嵌入式系统的概念:
嵌入式系统是嵌入式计算机系统的简称, 国际电气与电子工程师协会 (IEEE) 对嵌入式系统的定义为:"嵌入式系统是用来控制或监视机器、装置或工厂等大规模系统的设备"。国内对嵌入式系统的一般定义为:"嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统"。按照历史性、本质性、普遍性的要求, 嵌入式系统应定义为:"嵌入到对象体系中的专用计算机系统"。对象系统则是指嵌入式系统所嵌入的宿主系统。
2. 嵌入式系统特点:
以ARM为代表的嵌入式系统与以PC机为代表的通用计算机系统相比有以下几个特点:
1) 嵌入式系统通常是面向特定应用的。
2) 嵌入式系统是一门综合技术学科。
3) 嵌入式系统有实时性和可靠性的要求。
4) 嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中, 而不是存储于磁盘等载体中。
5) 嵌入式系统本身不具备开发能力, 必须有一套专门的开发工具和环境才能进行开发。
6) 嵌入式系统具有较长的生命周期。
7) 嵌入式系统须满足环境的要求。
3. 嵌入式系统的基本结构:
嵌入式系统包括嵌入式软件和嵌入式硬件两部分。硬件是支撑, 软件是灵魂, 从硬件来讲, 嵌入式系统的核心部件是嵌入式微处理器。从软件来讲, 嵌入式系统的软件一般由嵌入式操作系统和应用软件组成。具体而言, 整个嵌入式系统的体系结构可以分成四个部分:嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件, 其层次关系如图1-1所示。
3.1嵌入式处理器
嵌入式系统的核心是各种类型的嵌入式处理器, 嵌入式CPU大多工作在为特定用户群所专门设计的系统中, 它将通用CPU中许多由板卡完成的任务集成到芯片内部, 从而有利于嵌入式系统在设计时趋于小型化, 同时还具有很高的效率和可靠性。
嵌入式处理器一般可以分为微控制器、嵌入式微处理器、DSP处理器和片上系统四大类。
本课题所用的ARM系列微处理器就是属于微处理器。本文主要介绍基于ARM的嵌入式系统。因此我们来了解一下ARM。3.1.1 ARM简介
ARM (Advanced RISC Machines) , 既可认为是一个公司的名字, 也可认为是对一类微处理器的通称, 还可认为是一种技术的名字。1990年ARM公司成立于英国剑桥, 主要出售芯片设计技术的授权。而它的前身是20世纪80年代早期主要开发处理器的Acorn Computers公司。目前, 采用ARM技术知识产权IP核的微处理器, 即通常所说的ARM微处理器, 己遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统、军用系统等各类产品市场。
3.1.2 ARM处理器的特点及应用领域3.1.2.1 ARM处理器具备以下特点:
(1) 处理速度快 (2) 超低功耗 (3) 价格低廉 (4) 应用前景广泛3.1.2.2 ARM处理器的应用领域
ARM具有广泛的应用领域。到目前为止, ARM微处理器及技术的应用几乎己经深入到各个领域:工业控制领域、无线通讯领域、网络应用、消费类电子产品、成像和安全产品
3.2嵌入式外围设备
在嵌入系统硬件系统中, 除了中心控制部件以外, 用于完成存储、通信、调试、显示等辅助功能的其他部件, 事实上都可以算作嵌入式外围设备。目前常用的嵌入式外围设备按功能可以分为存储设备、通信设备和显示设备三类。
存储设备主要用于各类数据的存储, 常用的有静态易失型存储器 (RAM、SRAM) 、动态存储器 (DRAM) 和非易失型存储器 (ROM、EPROM、EEPROM、Flash) 三种。
目前存在的绝大多数通信设备都可以直接在嵌入式系统中应用, 包括RS-232接口 (串行通信接口) 、SPI (串行外围设备接口) 、Ir DA (红外线接口) 、I2C (现场总线) 、USB (通用串行总线接口) 、Ethernet (以太网接口) 等。
由于嵌入式应用场合的特殊性, 通常使用的是阴极射线管 (CRT) 、液晶显示器 (LCD) 和触摸板 (Touch Panel) 等外围显示设备。
3.3嵌入式操作系统
为了使嵌入式系统的开发更加方便和快捷, 需要有专门负责管理存储器分配、中断处理、任务调度等功能的软件模块, 这就是嵌入式操作系统。它是集软硬件为一体的可以独立完成某具体工作的计算机系统。目前许多嵌入式操作系统已经被广泛应用, 如windows CE、Vxworks、uc/os-Ⅱ、Linux等等。
4.4嵌入式应用软件
嵌入式应用软件是针对特定应用领域, 基于某一固定的硬件平台, 用来达到用户预期目标的计算机软件, 由于用户任务可能有时间和精度上的要求, 因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。嵌入式应用软件和普通应用软件有一定的区别, 它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要, 而且还要尽可能地进行优化, 以减少对系统资源的消耗, 降低硬件成本。
三、嵌入式系统的发展现状
嵌入式系统是软件和硬件的综合体, 事实上, 在很早以前, 嵌入式这个概念就已经存在了。它最早于六十年代晚期在通信中被用于控制电话交换机中的电子机械交换的控制, 当时被称为"存储式程序控制系统" (Stored Program Control) 。
随着应用的发展, 其涵盖范围和领域也越来越广泛, 几乎包括了我们周围的所有电器设备, 如电视机顶盒、掌上PDA、多媒体设备、医疗仪器乃至路由器、交换机等。进入20世纪90年代, 随着信息化、智能化、网络化的发展, 嵌入式系统技术也获得了更为广阔的发展空间, 嵌入式技术全面展开, 目前已成为通信和消费类产品的共同发展方向。在自动控制领域, 嵌入式系统不仅应用于ATM机、自动售货机、工业控制等专用设备, 它还与移动通信设备、GPS、娱乐、PDA设备等相结合, 发挥出巨大作用。目前, 嵌入式系统己经广泛应用到工业、交通、能源、通信、科研、医疗卫生、国防以及日常生活等领域。
四、嵌入式系统的发展趋势
信息时代、数字时代使得嵌入式产品获得了巨大的发展机遇, 为嵌入式市场展现了美好的前景, 同时市场需求也向嵌入式产品提出了新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理, 此外, 当然还需对付更加激烈的市场竞争。目前大多数嵌入式系统还孤立于Internet之外, 但随着Internet的发展以及Internet技术在信息家电、工业控制技术等领域的应用, 嵌入式系统与Internet的结合将代表着嵌入式技术的真正未来。
参考文献
[1]涂启志ARM嵌入式系统浅论科技资讯SCIENCE&TECHNOLO-GY INFORMATION 2007 NO.22
[2]张治国ARM嵌入式系统综述科技资讯SCIENCE&TECHNOLOGYINFORMATION 2007 NO.21
[3]李宇丽基于ARM的嵌入式Linux系统的研究与应用西安电子科技大学2007
基于ARM的可信嵌入式系统设计 篇8
可信计算是近年来信息安全领域中的被广泛关注的一个概念,现在人们提出的可信计算一般的基本思路是:首先,在计算机系统中建立唯一的物理安全信任根部件,之后可以根据该信任根建立一条认证和信任链,进行逐级认证,逐级信任,从而可以把信任关系推广到整个计算机系统[1]。TCG(Trusted Computing Group)是制定可信计算平台标准的工业组织,其前身是1999年由Compaq、HP、IBM、Intel和Microsoft牵头组织的TCPA(Trusted Computing Platform Alliance),组织的目标是推动在计算和通信系统中使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性;目前拥有成员190家,大部分是全球各大洲的计算机主力厂商。TCG制定了TPM(Trusted Platform Moude)的标准,现在的大多数安全芯片都是基于此规范制造的,而且因为其硬件安全防护的优越性,正逐渐成为计算机系统的标准配置。
1 可信计算原理
可信计算平台是在计算系统中实现可信计算的核心部分,对整个系统的安全可信提供支撑服务。可信计算密码支撑平台是可信计算平台的重要组成部分,提供数字签名、消息加密、身份认证、内部资源的授权访问、直接匿名访问机制、信任链的建立和完整性测量、证书和密钥管理等服务,为平台的身份可信性、完整性和数据保密性提供密码支持[2]。可信计算平台的主要部分可以分为两个部分——可信计算模块TCM和可信软件栈(Trusted Software Stack,TSS),其功能架构如图1所示。
其中,TCM的通常实现为可信计算平台中的硬件部分,为可信计算平台提供密码运算功能,一般拥有受硬件保护的存储空间,TCM一般位于计算机系统的最底层,在加电的时候与整个计算机系统一起启动。TSS是可信计算平台内部的安全服务组件,为整个可信计算平台外部提供访问TPM的API软件接口。
2 系统设计
当前嵌入式系统上可信计算的相关研究成果主要有以下这些:
(1)ARM公司的Trust Zone技术:属于系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理(DRM)和基于Web的服务。Trust Zone技术与CortexTM-A处理器紧密集成,并通过AMBAR AXITM总线和特定Trust Zone系统IP块在系统中进行扩展。
(2)TMP(trusted mobile platform):可信计算组织TCG于2007年6月正式确定了可信移动平台TMP(trusted mobile platform)的规范,主要目的是为适应移动设备特点,在移动平台(手机、PDA等设备)上构建可信计算架构,为高端的移动设备提供安全保证[3]。
2.1 ARM Trust Zone技术
Trust Zone技术的主要目标是支持用户构建可编程环境,以保护信息的机密性和完整性遭受到特定攻击。如图2所示,ARM采用了以下方式确保系统安全:使用硬件的方法隔离So C硬件和软件资源,使它们分别独立位于两个不同的区域(用于安全子系统的安全区域以及用于存储其他所有内容的普通区域)中。在支持Trust Zone的AMBA3 AXITM总线中,处理器的硬件逻辑可使普通区域的资源无法访问任何位于安全区域资源,借此在这两个区域之间建立一个强大的安全边界。将敏感资源放入安全区域以及在安全处理器内核中运行核心软件,可大大减少整个系统中潜在的攻击,甚至包括那些难以察觉和防护的攻击(例如通过在硬件中隔离安全敏感的外设———手机键盘或触摸屏,避免输入的密码泄露)。
另外,在一些ARM处理器内核中Trust Zone硬件架构已实现了额外的扩展,单个物理处理器内核能够以时间片的方式安全有效地同时从普通区域和安全区域执行代码。这样,便无需使用专用安全处理器内核,从而节省了芯片面积和功耗,并且允许高性能安全软件与普通区域操作环境一起运行。
使用此安全架构,在普通区域和安全区域进行切换时,ARM使用了监视模式的方法。物理处理器中任何从普通区域进入监视模式的机制都会被控制,并且这些机制始终被视为监视模式软件的中断或异常。对要监视的内容可由安全监视调用SMC指令进行触发,或由硬件异常机制直接触发。也可对IRQ、FIQ、外部数据中断和外部预取中止异常进行配置,以便当特定条件满足时,处理器自动切换到监视模式。
2.2 TPM可信平台模块
可信平台中有一个用于密码运算的可信平台模块TPM(trusted platformmodule),它是整个系统的可信根,是信任链的源头,也是整个可信机制的核心。TPM实际上是一个含有密码运算部件和存储部件的小型片上系统,具备专用的运算处理器、随机数产生器、独立的内存空间、永久性存储空间和独立的总线输入输出系统[4]。使用符合标准规定的密码算法,对外提供非对称密钥生成运算、非对称算法加解密运算、杂凑函数运算、数字签名运算和随机数产生运算[5]。TCG规范中定义的TPM组成结构如图3所示。可信嵌入式系统引入了TPM,由TPM芯片控制完成嵌入式可信计算的核心算法,再由安全软件调用TPM计算出的结果来判断相应的系统可信度,控制嵌入式系统从一开始的上电启动到运行的全过程。
2.3 基于Trust Zone及TPM的可信嵌入式系统设计
Trust Zone技术集成于ARM芯片内,具成低、面积小、可编程等优点,但由于其普通区域和安全区域是否可以安全切换取决于其上运行的操作系统安全性,所以无法满足高强可信环境;而基于TPM构建的可信计算机系统,从一开机上电就可以对所有的资源进行信任检测,从而保证了整个系统的安全,但其安全可信的程度很大程度上决定于TPM芯片的强壮度和可靠性。两种技术的特点可以在构建可信系统时同时采用,使用时可以相互补益,从而建立一个强大的安全可信计算机系统。设计的可信嵌入式系统结构如图4所示。
如图4所示,设计的可信嵌入式系统采用了支持Trust Zone技术的ARM芯片作为CPU,并挂接了FPGA,作为控制除RAM和显示设备外其他外围设备的控制器。这样做的优点是:(1)系统可以根据具体的需求,进行灵活的功能扩展,对未来系统的改动带来便利。(2)可以在FPGA构建处理模块,针对复杂的运算设计固定的电路,加速数据的处理,同时可以减轻CPU的处理压力,提升系统性能。(3)针对外设对CPU提供统一的设备接口,屏蔽各种外设的物理差异,更方便地进行编程。(4)增大处理带宽,FPGA可以缓存各个设备的数据,为CPU计算处理提供物理支持并可以动态调节。
TPM模块与Boot ROM连接至FPGA,当系统加电时随Bott ROM同时开始工作,并对启动的第一段程序进行哈希校验,对比TPM的哈希值与得到的值,如果一致则信任;否则引起异常。接着,会验证第二阶段的引导程序,直至到操作系统安全启动。当操作系统启动后,运行的应用程序的安全由Trust Zone和TPM共同确保;当应用程序刚刚从存储中取出时,TPM即要对其进行信任校验,通过则交由Trust Zone进行处理,进入普通区域运行,如果需要切换到安全区域则需要进行安全检查通过后才能顺利运行。
3 结语
随着云计算、物联网等信息技术的兴起,嵌入式系统必将更加广泛地应用于消费电子、网络通信、政府办公、工业控制、军队国防等领域。针对信息敏感的应用,设计可以安全可信运行的嵌入式系统已经是当前嵌入式系统发展迫切需求解决的问题。就当前的嵌入式系统结构,设计了一种高可信、可扩展、应用灵活的可信嵌入式系统,为可信嵌入式系统的构建提供一种思路。
参考文献
[1]Joe Grand.Practical Secure Hardware Design for Embedded Sy-stems[C]Proceedings of Embedded System Conference.2004:124-126.
[2]沈昌祥,张焕国,冯登国,等.信息安全综述[J].中国科学E辑:信息科学,2007,37(2):129-150.
[3]林小茶,李光.基于嵌入式技术的信任根研究[J].计算机工程与应用,2007,43(16):165-168.
[4]TPM_Main_part1_Design_Principles_Specification_Version_1.2[EB/OL].https://www.trustedcomputinggroup.org/Specs/TPM/,2008.
ARM嵌入式系统 篇9
基于视频的检测方法主要有方差判别法、边缘检测法、相关度判别法等[4,5]。方差判别法依据车位区域图像灰度值的方差大小来判别有无车辆,但不同的天气状况、光照强度和遮挡情况会影响车位内图像灰度值,从而影响检测结果。边缘检测法根据车位区域图像的边缘信息是否丰富来判断有无车辆,这种方法在在检测区域而出现阴影(如树木或邻近车辆遮挡)的情况,检测效果欠佳。相关度判别法根据待测车位图像与背景图像的线性相关性来判别有无车辆,当摄像头拍摄角度不同产生相邻车位相互遮挡时,检测的准确性大大降低。
设计了一种基于嵌入式智能摄像头的车位检测系统,给出了程序运行流程框架。基于视频检测车位,依据每个车位的具体情况,构建了一种车位组合状态网络模型[6,7]。其中,每个车位的状态是网络模型中的一个节点。进一步,将车位状态组合问题转变为最短网络路径的求解,给出了最短路径求解的计算步骤。
在该网络模型中,以车位的各种状态为节点,以相邻车位所有状态的状态传递概率的倒数为有向支路的权重,采用求最短路径的方法求解该网络模型,最终确定各个车位最佳的组合状态。
1 总体方案设计
1.1 系统结构
基于嵌入式的车位管理系统设计,系统总体结
系统由视频采集与处理、服务器和查询终端三部分组成,这三部分是通过C/S(客户机/服务器)网络模型连接在一起的。在智能摄像头内完成视频采集与处理,实现对停车场空车位的检测;基于C/S结构,服务器向智能摄像头发送命令,智能摄像头收到命令后执行检测算法,并将检测结果发送给服务器,服务器存储车位检测结果并可以把结果发送给终端,同时,服务器兼有停车计时、收费管理等功能;终端使用触摸屏,用户可以通过查询获得当前停车场的车位状态信息,此外,也可以使用具有WIFI功能的终端设备,对车位信息进行查询。
1.2 视频采集与车位检测流程
智能摄像头内以ARM11芯片为核心,以Linux为操作系统,程序和算法用C语言实现。其中,视频采集采用标准的V4L2框架。Video For Linux Two(V4L2)是Video For Linux API的第2个版本[8],它为Linux中视频设备访问提供了通用接口,应用程序可以使用统一的API函数操作不同的视频设备。为了实现相对准确的车位判断,摄像头采集720 p(分辨率1 280×720)高清图像,并利用高清图像来进行车位识别。为了节约流量,依据服务器的带宽要求,摄像头可选(1帧~15帧)/每秒的速率,上传视频图像和检测结果。
系统中视频采集程序与空闲车位图像检测程序各为一个进程,两者并发运行,流程如图2所示。采集进程先申请若干帧视频数据内存缓冲区,循环地采集图像,将数据填充到采集存储缓冲区队列的首部,然后将该帧数据从采集队列中移出,并将其添加到检测队列尾部。检测进程不断地从待检测队列中获得一帧新的图像,并运用图像处理算法检测空闲车位。然后,将图像和检测结果上传到服务器,供管理人员和用户查询或浏览。同时,检测进程将已经处理过的图像帧从待检测队列中移出,并将其添加到采集队列尾部。当任何一个队列空的时候,相应进程休眠,等待队列非空后再被系统唤醒,继续运行。
2 车位信息检测
2.1 车位检测算法总体框图
车位检测算法总框图如以下图3所示。
从图3中可以看出车位检测算法有离线训练算法模型和在线检测计算两部分组成。离线训练部分主要给出算法模型中所需要的计算参数预置数值;在线部分根据给定的算法模型,完成空闲车位的检测。
2.2 车位检测算法模型
算法中,将车位像素按不同颜色分为两类[6,7],一类是“地面像素”,其中包含背景地面,干扰(阴影、树、固定障碍物);另一类是“车辆像素”(排除地面和干扰外的其它像素)。
采用二维的高斯函数作为对地面(或干扰)像素和车辆像素进行贝叶斯分类的判别函数,如式(1)所示。
式(1)中,m和C分别为图3中离线训练部分计算出的彩色均值和协方差矩阵;ω代表像素类别,用ωV表示车辆像素,ωG表示地面(或干扰)像素。
依据最小错误概率的贝叶斯决策规则[9],得到车位像素类别的判断准则,如下所示:
如果p(d|ωV)>p(d|ωG),则d∈ωV;
如果p(d|ωG)>p(d|ωV),则d∈ωG。
由文献[6,7]知,车位检测算法的指标函数为
其中P(di|ωi)表示像素类别模型,即第i个像素是“地面像素”(记为ωG)或者“车辆像素”(记为ωV)。P(ωi|S)表示当一行车位的组合状态为S时,像素di的类别是ωG或ωV的概率。由于当前车位像素属性可能受到相邻车的阴影或遮挡的影响,而与其他相隔的车位无关,因此可简化为:P(ωi|Sk-1,Sk),依据分类结果和图3中离线训练部分得出的像素统计概率,可得到(Sk-1,Sk)分别在四种状态组合下的当前车位Sk中所有像素的条件概率的和,其中M0为当前车位内所有像素的个数,并归一化,将其称为将前一车位的状态传递到后一车位的状态中反映的概率,简称传递概率,记为pij。其计算公式为
式(2)中i=1,2,…,n;j=1,2,3,4;ωik为第i车位的像素类别,M为第i个车位内的像素点总数,Aj、Bj代表相邻两个车位的四种状态(11、10、01、00,1代表有车、0代表无车)。传递概率较好地表达了由于摄像头视角偏移以及车辆在车位内随机停放所产生的相邻车辆遮挡的干扰影响。
实际检测中,首先对摄像头获取的图片进行预处理,消除由于拍摄时环境恶劣所产生的噪声干扰,而后将图片由RGB(Red、Green、Blue)彩色空间转换到HSI(Hue、Saturation、Intensity)空间,这样做是因为RGB空间中图像太容易受光线亮暗的影响,而HSI彩色空间中的色度(Hue)和饱和度(Saturation)基本不易受光线变化的影响,更适合在不同天气环境情况下进行车位检测。
2.3 算法模型的训练
2.2节中提到的彩色均值、协方差矩阵以及像素的条件概率均需要通过训练获得。训练过程包括建立伪训练车位样本、采集分类像素样本、以及由先验伪训练车位样本训练的每个像素的条件概率。
为了消除光线强弱等环境变化对车位检测造成的影响,采集不同光照环境条件下的车辆像素和地面像素样本,分别计算其统计参数,就得到它们的彩色均值和协方差矩阵。
建立车位伪训练样本是为了获取相邻两个车位在不同的组合状态下当前车位内每个像素类别的分布情况。先给定检测场景下的车位坐标,将每台车辆看作一个长方体,其长、宽、高分别为3个独立的高斯随机变量,并假设车位的状态服从均匀分布,且各车位状态是相互独立的,车辆停靠的位置也是随机的。基于上述的假设模型和摄像头参数,随机产生一批停车场伪训练样本。
在每一行中的所有车位上,随机地产生每个车位的状态,分别用1和0代表有车或无车停靠。对车位状态为1的车位,随机(车辆大小,实际停靠位置均是随机变量)产生一台伪车辆,由于投影的原因,其也会影响到相邻车位的像素类别。图4是随机产生的一张立体停车场伪训练样本,其中蓝线标定出各个车位底部具体位置,红线表示停车场顶部的位置信息,由于摄像头的拍摄角度的原因,当前车辆会对其左邻车辆产生遮挡影响。
统计所有车位在确定有车或无车状态下、所有车位像素属于哪种类别(地面或车辆)的条件概率,即为像素统计概率,用于在线检测车位时计算状态传递概率。
最初,通过离线训练算法模型时得到的样本彩色均值、协方差矩阵以及像素条件概率,还可以在在线检测中,根据实际车辆的实际停靠、遮挡情况不断进行修正,以便使算法模型更加准确。
3 在线检测算法
在智能摄像头中,受硬件条件和内存空间的限制,需要算法能够简单快速的运行。
3.1 在线检测算法
在线检测首先对采集到的车位图像预处理,然后对车位区域内的像素进行分类,依据训练得到的像素条件概率值计算出车位状态间的传递概率pij,以各个车位的状态为节点,以传递概率的倒数为支路权重tpi,j=1/pij,构建一种车位组合状态网络模型。
以n个车位为例,任一车位只有1和0两种状态(有车或无车停靠),于是,将n个车位的状态构建成一种车位组合状态网络模型,如图5所示。
图5中,灰色节点代表有车状态,白色的节点代表无车状态。Si(i=1,…,n)所在列的(或第Si列)节点代表第i个车位的两个状态,tpi,j表示支路权重。通过增加虚拟的开始节点S0和虚拟的终止节点Sn+1,可以将n个车位有无车的状态组合求解转变成从节点S0到Sn+1的最短路径问题求解。
Dijkstra算法[9,10]是解决关于带权图的最短路径问题的一般常见算法,但其计算程序较复杂。图5网络具有简单且对称的显著特点,给出求解该网络最短路径的快速算法如下:
设Si0和Si1分别是车位Si的两个状态节点,|S0Si0|和|S0Si1|为节点S0到Si0、S0到Si1之间的最短路径,于是有:
从节点0到节点n+1的最短路径|S0Sn+1|上所经过的状态节点,就是要求的n车位状态组合。
3.2 算法实验
通过将摄像头安放在高处,在不同的天气条件、不同的光照环境下对学校停车场进行实际的车位视频检测实验。首先进行连续多天的在线训练实验,修正离线训练实验获得的条件概率,然后,再进入到实际的正式检测。结果表明,本检测算法能快速准确地检测出不同环境下停车场的车位情况,并能实时地在液晶显示屏上显示出来。
作为示例,对图6的车位图像从左到右进行编号,依次为1、2、3、4、5;运用第2节提供的算法,计算得到各支路权重值标在图7所示的网络中。
再利用3.1小节的快速算法,容易计算出沿粗箭头路径通过的权重之和最小,即是最短路径。所经过的节点就是最适合的车位状态,故第1、3、4号车位为有车状态,第2、5号车位为无车状态。尽管3号车遮挡住2号车位约一半,但检测结果依然正确,说明本算法在一定程度上能够排除由于摄像头视角所产生的车位遮挡干扰。
4 系统运行
4.1 C/S运行模式
把停车场中所有的智能摄像头、查询终端以及数据库服务器连接在一起,组成一个局域网。网络间的数据传输是基于C/S(客户机/服务器)网络模型实现的。智能摄像头完成对停车场车位视频的采集与处理,数据库服务器管理摄像头处理的结果,并将空闲车位图像送到液晶屏上显示。用户也可以从终端上查询空闲车位,同时,服务器还可以完成停车管理、计时收费等功能。
图1中,系统启动后,服务器运行后按设定时间间隔向各个智能摄像头发送命令,摄像头收到后执行车位检测算法,检测当前停车场的车位情况,并将检测结果发送给服务器,服务器存储检测结果并更新数据库,刷新液晶屏幕显示。
服务器同时接收其他客户端的请求。用户可以通过终端查询、搜寻或浏览其他局部停车区域画面。服务器收到终端请求后,将响应用户的命令,把用户要求的查询结果或者所要求的浏览画面发送到对应液晶屏显示。
4.2 应用实验
将触摸屏放置在停车场内或者停车场管理中心,通过触摸屏可以浏览停车场图像和查询车位信息。实验中,用PC机终端代替触摸屏,图8显示了停车场区位2的浏览图形和空车位检测结果。当希望独立查看哪个区域的信息时,只需点击相应区域,就能在终端上显示出该区域的图像,并将空车位的检测结果显示出来。将图中车位从左到右依次编号为1,2,…,13,14,空闲车位的检测结果显示在图下方。也可以通过点击“全部空闲车位”查询按钮,按数字方式同时显示停车场所有区域的空闲车位。
5 结束语
提出了一种新的基于智能摄像头的车位检测、监控管理系统。检测算法运用了一种车位组合状态网络模型,将车位状态组合问题转变为最短网络路径的求解,基于最大后验概率的意义,得出一组最接近真实情况的最佳车位状态。其优点是,通过自学习,可以根据每个车位的实际情况,不同的环境位置,拍摄角度和方位,综合考虑进行识别,且在线运算量小。
给出了适合于停车位网络最短路径问题求解的快速算法,并将其移植到摄像头内嵌入的ARM11上,给出了ARM系统内程序运行流程框架。利用智能摄像头检测出空闲车位,分散了对服务器的计算压力。
在此基础上,采用基于TCP/IP协议的C/S网络模型,把检测结果同时输出到停车场的多个液晶显示屏上,供用户浏览和查询。实验表明:本车位检测算法准确、快速,并能较好地排除环境光线变化、相邻车位车辆相互遮挡对检测结果的影响,有较强的适应性。
摘要:针对室外停车场,给出一种摄像头检测空车位的方案。基于最大后验概率的意义,将车位状态组合问题转变为最短网络路径的求解,给出了求解该网络最短路径的快速算法。通过内嵌ARM11系统的智能摄像头进行图像拍摄和车位检测算法的快速运算,实时检测车位状态,然后,把检测结果传送到服务器。基于C/S网络模型,用户可以从计算机终端和液晶屏观察和查询车位信息。实验表明,该系统可以方便地用于准确检测空闲车位,同时,实现停车场的信息管理。
关键词:车位检测,车位管理,网络模型,最短路径
参考文献
[1]赵艳秋,刘桂香,王广义.环形线圈车辆检测器的研究.微计算机信息,2007;23(7—2):266—268
[2]靳霖霖,曾迎生,宋金泽.自动泊车超声传感器系统设计.微计算机信息,2010;26(5—1):113—115
[3]乔晓梅.基于RFID的停车场泊车引导与车位管理系统设计.计算机测量与控制,2012;20(5):1404—1409
[4] Tello Alonso M,Lopez-Martinez C,Mallorqui J J,et al.Edge en-hancement algorithm based on the wavelet transform for automaticedge detection in SAR images.IEEE Transactions on Geoscience andRemote Sensing.2011;49(1):222—223
[5] Tsal L W,Hsieh J W,Fan K C,Vehicle detection using normalizedcolor and edge map.IEEE Trans Image Process,2007;16(3):850—864
[6]李宇成,严娟莉,王目树,等.利用视频图像检测车位状态的方法.计算机工程与设计,2012;33(1):282—285
[7]徐家,陈奇.基于V4L2的视频设备驱动开发.计算机工程与设计,2010;31(16):3569—3572
[8](希)西奥多里蒂斯.模式识别(第四版).北京:电子工业出版社,2010;(2):41—42
[9]叶仕灏,王伊蕾.一种优化Dijkstra算法的研究.计算机应用与软件,2011,28(9):272—274
ARM嵌入式系统 篇10
ARM处理器由于其体积小、功耗低、应用方案灵活、支持软件丰富、成本低等特点近年来得到了蓬勃发展,已经广泛应用于消费类电子产品、无线通讯、图像应用、工业控制等领域[2,3]。本文对一种基于ARM处理器的多参数远程网络监控设备进行了介绍,与以往监控方式相比,该设计实时性好、功耗小、成本低,能够可靠实现对监控对象多个监控参数的智能监控。
1 系统的硬件组成
基于ARM处理器的多参数远程网络监控设备的设计如下:该监控系统主要由现场网络高速摄像头与传感器、监控系统控制器(Web服务器)、客户端浏览器3部分组成。其中,利用ARM920T内核的S3C2410处理器并移植嵌入式Linux操作系统构成的监控系统控制器是该系统的核心,如图1所示,具体包括视频信号压缩编码模块、控制模块、网络接口模块等。主要完成图像信号与传感器信号的管理、LCD触摸屏驱动、UART接口、以太网控制器、键盘驱动、控制信号的解释执行、网络数据的收发等功能。这些模块全部集成在一个设备中,安装、调试方便。同时,该控制器可通过网络进行远程设置,非常适合无人值守系统以及恶劣环境下的参数监控。
传感器的数据采集由处理器S3C2410芯片上的A/D,D/A接口以及相关的控制程序完成。图像信号由USB摄像头采集后,经MPEG-4视频压缩传送给S3C2410嵌入式处理器为基础的Web服务器,监控人员利用远端PC机上的客户端浏览器,经由网络通过访问Web服务器的方式获得现场的视频图像和监控数据并进行远程控制。
视频对象的采集选用网眼3000CMOS摄像头。监控系统控制器的核心CPU选用基于ARM920T内核的16/32位RISC处理器S3C2410X。该处理器功能强大、性价比高、功耗低、提供了一套较完整的通用外围设备接口,带MMU(内存管理单元),可支持Linux,μC/OS Ⅱ,Windows CE等多种操作系统的移植[4]。网络接口模块中的以太网接口芯片选用联杰国际的10 M/100 M自适应以太网控制芯片DM9000。S3C2410处理器与DM9000的硬件连接如图2所示。
2 系统的软件设计
2.1 系统的嵌入式软件结构
嵌入式Linux功能强大且内核代码开放,故监控系统选用嵌入式Linux操作系统,采用交叉编译调试的方式建立交叉编译环境。嵌入式Linux由内核Kernel和文件系统组成,本系统采用2.4.18版本的Linux内核。根文件系统使用root.cramfs,应用程序使用yaffs。用NFS方式建立宿主机和开发板的通讯,通过Minicom设置、监视串口工作状态,接收、显示串口收到的信息[5]。该系统的整体软件结构包括底层嵌入式硬件、嵌入式Linux操作系统、操作系统服务和应用程序4个部分。
2.2 视频采集模块的设计
视频数据的采集选用基于OV511芯片的网眼3000CMOS摄像头,该USB摄像头可被Linux内核公开支持,不需要额外编写摄像头驱动程序。进行视频采集时,首先加载关于视频设备的内核驱动模块Video4Linux,为视频采集设备提供编程接口;然后使用insmod命令动态加载摄像头驱动程序模块,摄像头即可正常工作。Linux的Video4Linux模块为视频应用程序提供了一套统一的API函数集。Video4Linux向虚拟文件系统注册视频设备文件,应用程序通过操作视频设备文件实现对视频设备的访问[6]。下面是视频采集应用程序实现的具体过程:首先通过调用函数open(“/dev/video0”,O_RDWR)打开视频设备,若错误则返回-1;然后通过ioctl(fd,VIDIOCGCAP,&vid_cap)函数访问头文件中的struct video_capability读取摄像头采集的图片的高度、宽度等相关信息,接下来就可以通过摄像头采集图像数据。该系统采用mmap()内存映射方式来截取视频图像。即设置图像的大小等信息后,将设备文件的图像映射到内存中,然后开始连续图像帧的视频采集。整个视频采集流程如图3所示。
2.3 视频压缩处理的实现
摄像头采集的未经压缩的视频信号需要较高的带宽,很难实现实时传输的要求。MPEG-4视频压缩方式具有可交互性、可扩展性和高压缩比,已成为多媒体通信领域的一种标准算法。基于其以上优点,本系统选用MPEG-4视频压缩编码方式。其图像压缩编码的过程概括如下:首先对视频序列进行分析,从原始图像中分割出各个视频对象。其中包括利用中值滤波对原始视频/图像进行简化、对视频/图像进行特征提取、确定分割决策等。然后针对不用的视频对象VO采用不同的编码策略,利用VOP视频编码技术对视频对象进行编码。最后各个视频对象的码流进行复合后输出。
3 结 语
介绍的一种基于ARM处理器的多参数远程网络监控设备经过对主要模块的测试分析,该系统性能稳定、实时性好,可广泛应用于仓储、银行、军事设施、居民小区等场合的安防监控和工业现场、电力电站、电信基站的无人值守系统,具有广阔的应用前景和一定的市场潜力。
摘要:针对复杂工业环境,需要对图像等多种信息进行监控的问题,介绍一种基于ARM微处理器的嵌入式远程网络监控系统。给出远程监控系统的整体架构,在此基础上完成系统的软件结构、视频采集模块、视频压缩处理模块的设计。最后对所设计的嵌入式远程网络监控系统进行了测试分析,系统性能稳定可靠、实时性好。
关键词:ARM,嵌入式Linux,监控系统,视频采集
参考文献
[1]冯冬芹,金建祥,褚健.Ethernet与工业控制网络[J].仪器仪表学报,2003(1):23-24.
[2]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[3]于明,范书瑞,曾祥烨.ARM9嵌入式系统设计与开发教程[M].北京:电子工业出版社,2006.
[4]S3C2410X 32-Bit RISC Microprocessor User′s Manual[S].Samsung Electronics,2003.
[5]孙天泽,袁文菊,张海峰.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M].北京:电子工业出版社,2005.
ARM嵌入式系统 篇11
关键词:嵌入式以太网;硬件接口电路;驱动程序;LwIP
中图分类号:TP393.11文献标识码:A文章编号:1007-9599 (2011) 15-0000-02
Design of Embedded EthernetInterface Based on ARM&LwIP
Xiang Yuanming1,Hu Jiansheng2
(1.PLA 94064 army,Xianyang713706,China;2.Armed Police Engineering College,Xi'an710077,China)
Abstract:This paper gives a design and principle of embedded Ethernet interface.Using the microprocessor S3C44B0X with ARM7TDMI kernel and the Ethernet controller RTL8019AS to design the hardware interface,it specifies the interface circuit diagram,the driver program and the transplant of LwIP to the S3C44B0X,and it also gives the the flow chart of the communication function.Through the debugging of software and hardware,it has realized the transmission of embedded Ethernet data.It can be applied in the medium or miniature embedded network.meeting the need of data collection and autocontrol.
Keywords:Embedded-Ethernet;Hardware-interface;Driver-program;LwIP
一、引言
以太网由于它的普遍性及低廉的接口价格,因而已经作为一种最通用的网络广泛地应用于生产生活中。嵌入式设备在价格、体积及实时性等许多方面,是通用计算机无法比拟的。实现嵌入式以太网接口,可适用于各种嵌入式应用场合。
二、接口电路设计
S3C44B0X通过RTL8019的I/O口,对其相关寄存器进行配置。在通信时,S3C44B0X与RTL8019AS的收发缓存器的数据交换由远程DMA控制,而RTL81019AS收发缓存器与以太网总线之间的数据交换由它的本地DMA控制。RTL8019AS通过中断的方式通知S3C44B0X数据收发的结果和状态,S3C44B0X通查询中断状态寄存器的值,作出相应处理。RTL8019AS使用免跳线方式,I/O和中断由外接的EEPROM93C46里的内容决定。8019的AEN与S3C44B0X的nGCS2连,所以对应S3C44B0X的存储器的起始地址0x0600—0000;RTL8019的基址地址由其引脚IOS0、IOS1、IOS2、IOS3 8019决定。
S3C 44B0X的nOE、nWE分别与RTL8019AS的IORB、IOWB相连,控制数据的读和写操作,低电平有效。RTL8019使用中断0,对应S3C44B0的外部中断1。S3C44B0X的地址总线A1~A20、数据总线D0~D15分别与RTL8019AS的地址总线SA0~SA19、数据总线SD0~SD15相连,实现地址的选择和数据传输。
三、驱动程序设计
(一)RTL8019AS的初始化
RTL8019AS初始化是根据RTL8019AS的使用手册,编写初始化函数-void ethernetif_init(struct netif*netif),完成相关工作模式的寄存器设置,分配和初接收和发送缓冲区,初始化网卡接收地址。步骤如下:首先复位RTL8019AS;然后选中Page0设置数据配置寄存器为16位,清除远程DMA计数器,设置接受缓冲区区间,设置接受和发送配置寄存器,清除中断寄存器,屏蔽所有中断,设置寄存器BNRY;选中Page1初始化物理地址和组播地址,设置寄存器CURR;选中Page0开启RTL8019AS的所有中断。
(二)数据的传输和发送
数据的传输和发送由本地DMA传输和与远程DMA传输两部分完成,其中,前者大部分工作由RTL8019AS自动完成,我们要做的是设置收发缓冲区的大小及指针变量,这些工作在RTL8019AS的初始化时已完成,因此我们在编写数据收发函数时,只需对远端DAM口的进行相关操作,这里,由于篇幅关系,我们仅介绍接受数据函数void ethernetif_input(struct netif*netif)。(发送数据函数-void ethernetif_output(struct netif*netif)省略。)
void ethernetif_input(struct netif*netif) //netif是一个指向网络接口结构体类型的指针
{RTL8019_R00=0x21; //选择寄存器页面0,首先终止远程DMA;
RTL8019_R07=0x40;//允许内部中断的产生//
RTL8019t_R0a=(*netif).len;//设置要通过远程DMA接收数据包的长度//
//通过以下两条语句设置远程DAM的起始地址,这里选择0x0040//
RTL8019t_R08=0x00;RTL8019t_R09=0x40;
RTL8019_R00(page0)=0x0a; //对DAM端口进行访问;
While((*netif).len--)do{(*netif).data++=RTL8019_10;}
(三)中断处理
这里,我们采用中断和查询相结合的方式,来决定是否发送和接收数据。编写中断处理函数-void ethernetif_isr(void),通过对RTL8019AS中断寄存器(ISR)的访问,来判断是何种中断,并作出相应的响应。若ISR(0)=1,表明RTL8019AS已正确接收数据,此时调用ethernetif_input();若IST(1)=1,表明RTL8019AS已成功发送数据,此时调用void time_delay(),延时下一个等待中断的到来,或等待应用层继续发送请求。对于ISR其余各中断位,我们不关心,因此通过对中断屏蔽寄存器IMR相应位置1,将它们屏蔽。
四、lwIP在S3C44B0X上的移植
LwIP是瑞士计算机科学院的AdamDunkels等开发的一套用于嵌入式系统的开放源代码的TCP/IP协议栈[3]。它一般只需要几十KB的RAM和40KB左右的ROM,适合在嵌入式系统中使用。在使用和移植的过程中可根据传输数据的不同需求进行删减和增补。LwIP协议栈把所有和硬件,编译器相关的部分独立出来,放在/src/arch下面。将LwIP移植到ARM7TDMI内核的SamsungS3C44B0X上就是修改这个目录下的文件,其他的文件则根据需要做相应的修改[4]。
(1)与CPU或编译器相关的include文件。/src/arch/include/arch目录下cc.h、cpu.h、perf.h中有一些与CPU或编译器相关的定义,数据长度,字的高低位顺序等。
(2)对于在无嵌入式操作系统的应用而言,只需在sys_arch.c中实现如下三部分函数:sys_sem_t信号,sys_mbox_t消息和sys_arch_timeout等待超时函数。
(3)网络设备驱动程序。LwIP的网络驱动有一定的模型,/src/netif/ethernetif.c文件即为驱动的模板。在移植时,将第3部分介绍的初始化函数、接受函数驱动程序、发送函数和中断处理函数添加到模板中即可。
五、結束语
本设计已成功地进行以太网数据传输。由于S3C44B0X出众的性价比,及丰富的外围接口,通过扩展相应的外围电路,本设计可以应用到嵌入式仪器仪表、工业数据采集网络、自动化控制等许多领域。
参考文献:
[1]S3C44B0X User's Manual.Samsung,2000
[2]RTL8019AS用户手册[Z].RealtekSemi conductor Co.Ltd,2000
[3]LwIP sourcecode.AdamDunkel
ARM嵌入式系统 篇12
嵌入式系统的引导过程,就是指从CPU上电或复位的时刻起,直到操作系统内核开始执行的全过程。引导过程的最终目的是为操作系统的运行准备好硬件和软件环境。在PC机中,CPU上电或复位以后,首先由BIOS检测系统各项硬件资源,然后由引导设备的主引导扇区中的引导程序加载操作系统,再跳转到操作系统入口处,将控制权交给操作系统,然后执行操作系统。而在嵌入式系统中没有专门的BIOS,所以以上的功能通常都由引导装载程序(Bootloader)来完成。Bootloader是用于初始化CPU及其他目标板上硬件设备,为嵌入式操作系统内核提供硬件信息,并装载和引导嵌入式操作系统内核的固件,它是CPU上电或复位以后执行的第一段代码,在嵌入式系统的开发过程中起着非常重要的作用。
1 常用Bootloader简介
1)ARMboot
ARMboot是一个为基于ARM系列微处理器的嵌入式系统所设计的开放源码项目,目前已经与PPCBoot合并成新的项目U-Boot。
ARMboot专用于支持ARM7,ARM9,Strong ARM,XScale等ARM系列的微处理器。
ARMboot支持多种类型的Flash存储器,可通过bootp、dhcp、tftp等协议从网络下载映像文件,并且支持PCMCIA和CF等存储卡引导系统。
2)U-Boot
U-Boot全称为Universal Bootloader,是一个遵循GPL的开放源码项目,由PPCBoot以及ARMboot等发展而来。
U-Boot支持的处理器包括Power PC、MIPS、ARM和x86 等不同体系结构的多种系列。U-Boot与Linux的关系非常紧密,一部分源代码也来自于Linux源码,为Linux内核的引导提供了特别的支持。
3)Blob
Blob全称为Boot Loader OBject,最初是专门为使用Strong⁃ARM系列中SA-1100处理器的LART板所设计的,现在已经移植到多种平台上。
Blob的主要功能包括初始化硬件(CPU,存储器,中断控制器,串口等),引导Linux内核以及为Linux内核提供虚拟盘(Ramdisk)支持,下载Linux内核或Ramdisk到目标板上,烧写Flash存储器,确定存储器布局,向Linux内核传递命令行等。
4)vivi
vivi是由韩国MIZI公司为ARM系列处理器设计的一个Bootloader,支持SA-1110,S3C2400,S3C2410,PXA250 等处理器,目前仅支持通过串口与主机通信。
vivi易于增加对新处理器和新目标板的支持,易于移植设备驱动,支持多种MTD驱动,可以下载测试代码到RAM中执行。
2 Bootloader的典型结构
虽然Bootloader的种类很多,但是其基本结构框架都是比较相似的。由于Bootloader需要对系统硬件进行检测和初始化设置,其中的很多代码都直接对CPU和其他硬件设备进行操作,因此Bootloader依赖于CPU的体系结构和目标板具体的硬件配置,所以大多数的Bootloader都分为stage1和stage2两个部分。
2.1 stage1部分
stage1部分主要包括依赖于CPU体系结构和目标板上具体硬件配置的那部分代码,通常用汇编语言来实现,这样可以使代码短小精悍,执行速度最快。这部分的主要功能如下:
2.1.1 初始化硬件
Bootloader第一步要完成的工作就是对目标板硬件的初始化,主要包括禁止看门狗,禁止中断,设置CPU和总线时钟频率,初始化LED数码管和串口等。根据AMBA总线协议,CPU的时钟频率FCLK、AHB总线(Advanced High-performance Bus)的时钟频率HCLK和APB总线(Advanced Peripheral Bus)的时钟频率PCLK可以配置成倍比关系。AHB总线是高速总线,一般用来连接内存等高速设备,APB总线是低速总线,一般用来连接串口,通用I/O口等低速设备。通常FCLK : HCLK : PCLK的比例为1 : 2 : 4,即如果CPU时钟频率为200MHz,则AHB总线时钟频率为100MHz,APB总线时钟频率为50MHz。
2.1.2 加载并执行stage2
为了获得更快的执行速度,以及便于存放变量和堆栈,通常需要把Bootloader的stage2部分加载到RAM空间中执行。由于stage2 通常是C语言代码,因此在分配空间时,除了考虑stage2 程序映像的大小外,还必须考虑所需堆栈空间的大小。为了确保所分配的地址空间的确是可读写的RAM空间,还必须对其进行检测。然后将stage2代码从Flash上拷贝到RAM空间中,并设置堆栈指针SP,由于堆栈是向下生长的,因此通常把SP设置为stage2 的RAM空间的最顶端。接着修改PC寄存器的值为stage2 的入口地址,从而开始执行stage2 部分。Boot⁃loader通常用一小段汇编代码作为stage2 的入口点,然后在这段汇编代码中用跳转指令跳到main() 函数的起始地址处执行。
2.2 stage2部分
stage2部分主要包括和CPU体系结构以及目标板上其他硬件配置无关的那部分代码,也包括一些复杂硬件的初始化代码,通常用C语言来实现,这样可以实现更复杂的功能,并且保证了代码的可读性和可移植性。这部分的主要功能如下:
2.2.1 检测内存映射
所谓内存映射(Memory Map),就是指在整个RAM地址空间中有哪些地址范围被分配用来寻址真正的RAM单元。在嵌入式系统中通常只将整个RAM地址空间中的一部分映射到实际的RAM单元上,因此stage2必须首先检测系统的内存映射情况,为内核映像和根文件系统映像的加载做好准备。
2.2.2 加载内核映像和根文件系统映像
根据嵌入式系统的具体配置,将操作系统的内核映像和根文件系统映像从Flash存储器中读取到RAM空间中的相应地址。
2.2.3 启动内核
在启动Linux内核之前,可以通过设置内核启动参数,向内核提供一些内核自己不能检测出的硬件信息,或者覆盖内核检测出的信息,可以通过标记列表(tagged list)或命令行参数(command line)的形式来传递启动参数。Bootloader启动Linux内核的方法通常是直接跳转到内核的第一条指令处。这样就将控制权交给了操作系统,从而完成了整个引导过程。
3 Bootloader的移植过程
嵌入式Linux系统的引导过程比较复杂,和系统硬件及操作系统内核都有着密切的关系,自己重新编写Bootloader难度较大。所以,通常都是选择一个最接近要求的现有Bootloader程序,然后根据需要进行修改后再应用到目标板中,这就是Bootloader的移植。
由于Bootloader依赖于CPU的体系结构和目标板具体的硬件配置,因此对于两块不同的嵌入式目标板而言,即使它们使用的是同一种CPU,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,通常也需要对Bootloader进行移植。
Bootloder的移植过程包括以下步骤:
1)选择参考板
根据目标板的具体硬件配置,选择一个与目标板采用同一种或者同一系列的CPU,其他硬件配置也最接近的参考板。
2)确定Bootloader的存放地址
Bootloader是CPU上电或复位以后执行的第一段代码,所以Bootloader的存放地址必须和CPU硬件复位向量所指向的地址相一致。在基于ARM系列的嵌入式Linux系统中,通常将Bootloader放在地址0x0处。
3)修改相关文件
对参考板的Bootloader程序进行修改,需要修改的文件包括stage1 的汇编语言文件(如vivi中的head.S文件或U-Boot中的start.S文件等)和stage2 中与硬件配置(如Flash,串口等)有关的C语言文件。
4)烧写Bootloader并调试
使用Flash烧写程序将Bootloader烧写到Flash中,烧写完成后,重启目标板,使用超级终端(Windows下)或minicom(Linux下)通过串口查看Bootloader的启动信息,或者进入命令行状态调试。
4 总结
Bootloader初始化和检测系统硬件,然后加载和运行操作系统内核,这些工作为整个嵌入式Linux系统的顺利运行,准备好了硬件和软件的环境。因此,对Bootloader的研究和应用在嵌入式系统开发中有着非常重要的作用。
摘要:引导装载程序(Bootloader)是嵌入式系统CPU上电或复位以后执行的第一段代码,在嵌入式系统的开发过程中起着重要的作用。该文分析了引导装载程序的功能与结构,并介绍了其移植过程。
关键词:嵌入式系统,引导装载程序,ARM,Linux
参考文献
[1]ARMboot[EB/OL].(2002-08).http://sourceforge.net/projects/armboot.
[2]U-boot[EB/OL].(2002-08).http://sourceforge.net/projects/u-boot.
[3]Blob[EB/OL].(2002-01).http://sourceforge.net/projects/blob.
【ARM嵌入式系统】推荐阅读:
ARM嵌入式系统分析08-29
arm嵌入式系统概述12-05
嵌入式ARM9系统08-08
嵌入式ARM10-07
ARM嵌入式平台06-04
嵌入式ARM1109-28
arm与嵌入式实验报告02-16