嵌入式系统硬件项目设计心得

时间:2019-05-15 00:18:03下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《嵌入式系统硬件项目设计心得》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《嵌入式系统硬件项目设计心得》。

第一篇:嵌入式系统硬件项目设计心得

嵌入式系统硬件项目设计心得【转】 硬件, 设计, 解决方案, 处理器, 嵌入式

第一点:在从事设计之前,你必须充分了解各方的设计需求,确定合适的解决方案

启动一个硬件开发项目,原始的推动力会来自于很多方面,比如市场的需要,基于整个系统架构的需要,应用软件部门的功能实现需要,提高系统某方面能力的需要等等,所以作为一个硬件系统的设计者,要主动的去了解各个方面的需求,并且综合起来,提出最合适的硬件解决方案。比如A项目的原始推动力来自于公司内部的一个高层软件小组,他们在实际当中发现原有的处理器板IP转发能力不能满足要求,从而对于系统的配置和使用都会造成很大的不便,所以他们提出了对新硬件的需求。根据这个目标,硬件方案中就针对性的选用了两个高性能网络处理器,然后还需要深入的和软件设计者交流,以确定内存大小,内部结构,对外接口和调试接口的数量及类型等等细节,比如软件人员喜欢将控制信令通路和数据通路完

全分开来,这样在确定内部数据走向的时候要慎重考虑。项目开始之初是需要召开很多的讨论会议的,该尽量邀请所有相关部门来参与,好处有三个,第一可以充分了解大家的需要,以免在系统设计上遗漏重要的功能,第二是可以让各个部门了解这个项目的情况,提早做好时间和人员上协作的准备,第三是从感情方面讲,在设计之初各个部门就参与了进来,这个项目就变成了大家共同的一个心血结晶,会得到大家的呵护和良好合作,对完成工作是很有帮助的。

第二点、发挥于“拿来主义”之上,拿捏好原理图设计中要注意的问题

原理图设计中要有“拿来主义”,现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。当主要的芯片选定以后,最关键的外围设计包括了电源,时钟和芯片间的互连。

电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。比如A项目中的网络处理器需要1.25V作为核心电压,要求精度在+5%--3%之间,电流需要12A左右,根据这些要求,设计中采用5V的电源输入,利用Linear的开关电源控制器和IR的MOSFET搭建了合适的电源供应电路,精度要求决定了输出电容的ESR选择,并且为防止电流过大造成的电压跌落,加入了远端反馈的功能。

时钟电路的实现要考虑到目标电路的抖动等要求,A项目中用到了GE的PHY器件,刚开始的时候使用一个内部带锁相环的零延时时钟分配芯片提供100MHz时钟,结果GE链路上出现了丢包,后来换成简单的时钟Buffer器件就解决了丢包问题,分析起来就是内部的锁相环引入了抖动。

芯片之间的互连要保证数据的无误传输,在这方面,高速的差分信号线具有速率高,好布线,信号完整性好等特点,A项目中的多芯片间互连均采用了高速差分信号线,在调试和测试中没有出现问题。

第三点、明确PCB设计中的问题,设计完善准确的PCB,助你“决胜千里”

PCB设计中要做到目的明确,对于重要的信号线要非常严格的要求布线的长度和处理地环路,而对于低速和不重要的信号线就可以放在稍低的布线优先级上。重要的部分包括:电源的分割;内存的时钟线,控制线和数据线的长度要求;高速差分线的布线等等。

A项目中使用内存芯片实现了1G大小的DDR memory,针对这个部分的布线是非常关键的,要考虑到控制线和地址线的拓扑分布,数据线和时钟线的长度差别控制等方面,在实现的过程中,根据芯片的数据手册和实际的工作频率可以得出具体的布线规则要求,比如同一组内的数据线长度相差不能超过多少个mil,每个通路之间的长度相差不能超过多少个mil等等。当这些要求确定后就可以明确要求PCB设计人员来实现了,如果设计中所有的重要布线要求都明确了,可以转换成整体的布线约束,利用CAD中的自动布线工具软件来实现PCB设计,这也是在高速PCB设计中的一个发展趋势。

第四点、千万不要忽视检查和调试,免得一失足.....当准备调试一块板的时候,一定要先认真的做好目视检查,检查在焊接的过程中是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这个好习惯可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,要坚信“凡事都是有办法解决的”和“问题出现一定有它的原因”,这样最后一定能调试成功。

总结的话(发自肺腑的)

现在从技术的角度来说,每个设计最终都可以做出来,但是一个项目的成功与否,不仅仅取决于技术上的实现,还与完成的时间,产品的质量,团队的配合密切相关,所以良好的团队协作,透明坦诚的项目沟通,精细周密的研发安排,充裕的物料和人员安排,这样才能保证一个项目的成功。

一个好的硬件工程师实际上就是一个项目经理,他/她需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件实现。还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案,当原理图完成后,他/她要组织同事来进行配合评审和检查,还要和CAD工程师一起工作来完成PCB的设计。与此同时,还要准备好BOM清单,开始采购和准备物料,联系加工厂家完成板的贴装。在调试的过程中他/她要组织好软件工程师来一起攻关调试,配合测试工程师一起解决测试中发现的问题,等到产品推出到现场,如果出现问题,还需要做到及时的支持。所以做一个硬件设计人员要锻炼出良好的沟通能力,面对压力的调节能力,同一时间处理多个事务的协调和决断能力和良好平和的心态等等。

细心和认真永远是我和我的老师,老师的老师告诫别人,同时告诫自己的最后一句话!

因为硬件设计上的一个小疏忽往往就会造成非常大的经济损失,比如以前碰到一块板在PCB设计完备出制造文件的时候误操作造成了电源层和地层连在了一起,PCB板制造完毕后又没有检查直接上生产线贴装,到测试的时候才发现短路问题,但是元器件已经都焊接到板上了,结果造成了几十万的损失。至今心有余悸!

最后还是那句 细心和认真永远是正确的!所以细心和认真的检查,负责任的测试,不懈的学习和积累,才能使得一个硬件设计人员持续不断的进步,而后术业有所小成。

看着有些罗嗦,说实话写文章对我来说的确有难度,哈哈

第二篇:嵌入式系统移植+心得

嵌入式系统作为近年来新兴的且发展很快的学科,它的应用越来越受到广大技术人员的重视。尤其起可移植性,显著的区别了通用操作系统。一款嵌入式操作系统通常运行在不同体系结构的处理器和开发板上,极大的方便了开发者开发与应用,节约了成本。嵌入式操作系统作为移植支持嵌入式系统应用的操作系统软件,被广泛的运用于不同应用领域。纵观嵌入式系统40多年的历史,从无操作系统的嵌入式算法阶段到简单监控式的实时操作系统,一步又一步的到现在的以Internet为标志的嵌入式系统,一批又一批的先辈为其努力而奋斗。科技的革新,带动着社会的发展,人类的进步。大数据的时代必定属于我IT人。以下我们聊一聊嵌入式系统及其移植性。嵌入式操作系统大体分为商用型和免费型。商用型主要是WindowsCE。Psos.os-9.qnx等其价格较为昂贵,开发成本高,广泛运用于通信。军事。航天等高端技术领域

免费型主要为Linux等主要运用于没有存储器管理单元的处理器而设置。嵌入式基本操作共四步

主机和目标机的连接方式;

UARA最经典90%的板子上,都支持的方式叫异部串行接口,也就是我们所说的串口。USB串行接口 TCP/IP网络接口 Debug Jtag调试接口

补充说明

1.对于串口,通常用的有串口调试助手,putty工具等,工具很多,功能都差不多,会用一两款就可以;

2.对于USB线,当然必须要有USB的驱动才可以,一般芯片公司会提供,比如对于三星的芯片,USB下载主要由DNW软件来完成;

3.对于网线,则必须要有网络协议支持才可以

安装交叉编译器

方法一:分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链。该方法相对比较困难,适合想深入学习构建交叉工具链的读者。如果只是想使用交叉工具链,建议使用下列的方法二构建交叉工具链。

方法二:通过Crosstool-ng脚本工具来实现一次编译,生成交叉编译工具链,该方法相对于方法一要简单许多,并且出错的机会也非常少,建议大多数情况下使用该方法构建交叉编译工具链。

方法三:直接通过网上下载已经制作好的交叉编译工具链。该方法的优点不用多说,当然是简单省事,但与此同时该方法有一定的弊端就是局限性太大,因为毕竟是别人构建好的,也就是固定的,没有灵活性,所以构建所用的库以及编译器的版本也许并不适合你要编译的程序,同时也许会在使用时出现许多莫名其妙的错误

搭建主机 一般情况下在嵌入式中我们用的比较多的服务就两个 在Linux下一个叫TFTP一个叫NFS,TFTP顾名思义就是FTP的一个简版,它是基于UDP传输的,相当于它的协议比较简单。NFS它的全名叫做网络文件系统,这个网络文件系统主要是Linux和Linux之间做挂载用的。

烧写测试

以上为嵌入式基本操作的四个步骤

嵌入式Linux系统移植主要由四大部分组成:

一、搭建交叉开发环境

综上所述

二、Boot loader的选择和移植

boot loader基本概念:就是在操作系统内核运行之前运行的一段小程序。

通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,他就是所谓的引导加载程序(Boot Loader)。

三、kernel的配置、编译、和移植

1将下载好的linux-2.6.35.tar.bz2拷贝到主目录下解压

2修改顶层目录下的Makefile,主要修改平台的体系架构和交叉编译器 3拷贝标准版配置文件,目的是得到跟我们开发板相关的配置信息 4配置内核 5编译内核

6通过tftp网络服务下载测试内核

四、根文件系统的制作

flash芯片的驱动程序是由系统来提供,所以它的存取特点完全是flash自身的特点,这时最好有更加适合flash的文件系统——Jffs、Yaffs、Cramfs和Romfs。这些文件系统都是嵌入式Linux系统中常用的文件系统,可以根据特点来选择使用它们,特点如下:

共同点

基于MTD驱动 Jffs

A.针对NOR Flash的实现

B.基于哈希表的日志型文件系统

C.采取损耗平衡技术,每次写入时都会尽量使写入的位置均匀分布

D.可读写,支持数据压缩

E.崩溃/掉电安全保护

F.当文件系统已满或接近满时,因为垃圾收集的关系,运行速度大大放慢 Yaffs

A.针对Nand Flash的实现

B.日志型文件系统

C.采取损耗平衡技术,每次写入时都会尽量使写入的位置均匀分布

D.可读写,不支持数据压缩

E.挂载时间短,占用内存小

F.自带Nandflash驱动,可以不使用VFS和MTD Cramfs

A.单页压缩,支持随机访问,压缩比高达2:1

B.速度快,效率高

C.只读,有利于保护文件系统免受破坏,提高了系统的可靠性,但是无法对其内容进行扩充

Romfs

A.简单的、紧凑的、只读的文件系统

B.顺序存放数据,因而支持应用程序以XIP(execute In Place,片内运行)方式运行,在系统运行时,节省RAM空间

特有的文件系统类型:Ramdisk文件系统 在Linux系统中,内存经常用于存储文件系统,这种叫做Ramdisk,Ramdisk有两种,一种是完全把内存看成物理存储介质,利用内存模拟磁盘,运用磁盘的文件系统类型;另一种只是在内存中存储了文件系统逻辑结构,运用tmpfs&ramfs文件系统类型:

tmpfs&ramfs

1.概述

用物理内存模拟磁盘分区,挂载这种分区后,就可以跟读写磁盘文件一样读写这里面的文件,但是操作速度要比磁盘文件快得多;所以一般应用在下面几个方面:

1)读写速度要求快的文件应该放在这种文件系统中

2)磁盘分区为flash的情况下,把需要经常读写的文件放在这种文件系统中,然后定期写回flash

3)系统中的临时文件,如/tmp、/var目录下的文件应该放在这种文件系统中

4)/dev设备文件(因为设备文件随驱动和设备的加载和卸载而变化),应该放在这种文件系统中

2.特点

1)由于数据都存放在物理内存中,所以系统重启后,这个文件系统中的数据会全部丢失

2)ramfs在没有指定最大的大小值情况下,会自动增长,直到用掉系统中所有的物理内存为止,这时会导致系统的崩溃,建议挂载时最好限定其最大的大小值

3)tmpfs如果指定了大小值,自动增长至大小值后,系统会限定它的大小;这个文件系统占用的物理内存页可以背置换到swap分区,但是ramfs不行

由于嵌入式技术发展飞速,新技术不断涌现。大数据时代的IT人更该更加努力。发愤图强。嵌入式兼顾硬件和软件更加考验我们的能力,需要更多的基础知识。天下英豪出我辈,一入IT岁月催。加油了!

第三篇:学习嵌入式系统心得

学习嵌入式系统心得

说实在话在没有学习之前,以及在学之前通过一些口中得知这是一门很不错,很有意思的一门课。而且目前是十分吃香的一门课程,如果学好了工作很好找并且待遇也很好。听到这些,我内心非常期待上这门含金量如此之高的一门技术课。据我了解,嵌入式系统是一个很有前景的行业。学会嵌入式技术,就相当于给自己创造了更多的机会。那么,在可以预计的将来,嵌入式技术的应用会越来越广泛。(大量的人才需求,未来五年内,国内LINUX嵌入式软件开发的人才缺口达到120万)

说实在的,第一天,我满怀期望的去上这门课。可是一上课听到老师的介绍,我就头昏脑胀了。这是什么课啊,谁会听得懂。犹如天书一般。

实事求是的说,嵌入式技术的全面掌握是有相当难度的。可以轻轻松松学会嵌入式技术的说法是夸大其词了。这个就像学英语一样,学英语无论怎样学,不管是“疯狂学”还是用新理念来学,真正掌握的话还是需要一步步积累才能熟练掌握。在此,我们通过短短的几个星期简单的了解和学习一下嵌入式,想成为这方面的高手。这些想法本身是不太现实的。我心里清楚我们需要做的是:

第一:把心踏实下来,做好打硬仗的准备。

第二:注意学习方法。尽量不要走弯路,争取一鼓作气入门。一旦入门了以后呢就好办了。嵌入式技术的掌握,本身呢就比较难,要是再走些弯路,时间上会浪费,甚至会影响学习的信心。

这就是我这段时间的学习心得。

鲁增庆 110402110 A11电气

第四篇:嵌入式系统设计报告

嵌入式系统设计实验报告

班 级:学 号:姓 名:成 绩:指导教师:

20090612 2009112107 侯金钟 武俊鹏、刘书勇 1.实验一

1.1 实验名称

嵌入式系统硬件开发环境

1.2 实验目的

1.熟悉UP-net3000实验平台。

2.超级终端设置及BIOS 功能使用。

1.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

1.4 实验内容及要求

熟悉UP-net3000实验平台的硬件电路和外设,ARM JTAG的安装和使用,利用超级终端检验外设的工作状态。

1.5 实验设计与实验步骤

1.建立工程

(1)运行ARM SDT 2.5 集成开发环境(ARM Project Manager).(2)在新建的工程中,如图1A-2 所示,选中工程树的“根部”。

(3)因为开发板上的嵌入式处理器ARM7TDMI 没有浮点处理器,所以,如图1A-3 所

示,在弹出的对话框中设置Floating Point Processor 为none,并保持其他的设置不变。(4)选中工程树的“根部”,通过菜单Project | Tool Configuration for work1.apj | asmlink | Set,对整个工程的连接方式进行设置。(5)在弹出的对话框中,选中Entry and Base 标签,如图1A-4 所示,设置连接的Read-Only(只读)和Read-Write(读写)地址。

(6)选择Linker Configuration 的ImageLayout 标签,(7)选择Project | Edit Project Tamplete 菜单,弹出Project Template Editor 对话框。

(8)选择Project | Edit Variables for work1.apj,弹出Edit Variables for work1.apj 对话框。

2.进行程序的在线仿真、调试

1.6 实验过程与分析

熟悉UP-net3000实验平台的硬件电路和外设,安装了ARM JTAG,利用超级终端检验了外设的工作状态。

1.7 实验结果总结

软件安装成功,结果显示正常。

1.8 心得体会

通过此次试验,我对ARM的环境的功能有一定的了解与完善。对试验台有了基本的认识与使用。

2.实验二

2.1 实验名称

嵌入式系统软件开发环境

2.2 实验目的

1.熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。

2.使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

2.4 实验内容及要求

本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量。

2.5 实验设计与实验步骤

(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。

(2)在新建的工程中,选择Debug 版本,使用Edit | Debug Settings菜单对Debug 版本进行参数设置。(3)在Debug Settings 对话框中选择Target Settings 项。在Post-linker一栏中选择ARM from ELF。

(4)在Debug Settings 对话框中选择ARM Linker 项

(5)在第四步中如果选择简单的地址连接设置,在Debug Settings 对话框中选择ARM Linker 项

(6)回到的工程窗口中,选择Release 版本,使用Edit | Release Settings 菜单对Release 版本进行参数设置。(7)参照第(3)、(4)、(5)、(6)步在Release Settings 对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。(8)回到如图1B-3 所示的工程窗口中,选择Targets 选项卡,如图1B-11 所示。选中DebugRel 版本,按Del 键将其删除。DebugRel 子树是一个折衷版本,通常用不到,所以在这里删除。

2.6 实验过程与分析

1)回到工程窗口选中Debug 版本,执行菜单Project | Make 对工程进行编译连接。(2)在ADS 中执行菜单Project | Debug 启动ADS1.2 的调试工具AXD。(3)在AXD 中执行菜单Options | Configure Target 对AXD 进行设置。(4)点Select 按钮选择远程连接为ARM ethernet driver,点Configure 按钮输入仿真器的IP 地址。

(5)等待程序装载完毕以后,通过Execute | Go 菜单以及Execute | Stop(或者工具栏中的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出程序暂停的位置。(6)通过Execute | Step 菜单(或者工具栏中的相应按钮)可以单步运行程序。

(7)程序停止后可以通过Processor Views | Sources 菜单查看源文件,并可在适当位置按F9 设置端点。

(8)使用在Processor View 菜单下的Registers、Variables 和Memory 命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。

2.7 实验结果总结

超级终端输出“Hello World!”。

2.8 心得体会

基本了解了ADS1.2的配置条件,学会了ARM仿真器的使用方法。

3.实验三

3.1 实验名称

键盘及LED实验

3.2 实验目的

1.学习键盘及LED 驱动原理。

2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

3.4 实验内容及要求

通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。要求从右至左循环显示至少四位数字。

基本功能实现之后可考虑实现从左至右显示四位及四位以上数字(最大八位),并可设置清零键等扩展功能。

3.5 实验设计与实验步骤

利用所给的基础代码进行调试,观察输出结果,结合指导书和教材掌握基本原理和源代码的编写方式。根据实验的要求设计函数流程,并反复调试,实现功能。1.新建工程,将“Exp3 键盘及LED 驱动实验”中的文件添加到工程。2.定义ZLG7289 寄存器(ZLG7289.h)

#define ZLG7289_CS(0x20)//GPB5 #define ZLG7289_KEY(0x10)//GPG4 #define ZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)#define ZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;rSIOCON=ZLG7289SIOCtrl;}while(0)3.编写ZLG7289 驱动函数(ZLG7289.c)4.定义键盘映射表:(Keyboard16.c)

unsigned char KeyBoard_Map[]= {4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//64 键值映射表,通过查找键盘映射表来确定键盘扫描码对应的按键值。

5.定义键值读取函数。(Keyboard16.c)6.编写主函数,将按键值在数码管上显示。

3.6 实验过程与分析

利用键盘驱动函数实现基本数字输入,然后利用循环左移函数实现输入数字做一样功能,并通过改变函数中相应delay的值来消除键盘按键带来的抖动。

3.7 实验结果总结

按键值可以在LED上显示出来。要求从右至左循环显示八位数字,同时可以复位清零。达到实验的效果。

3.8 心得体会

通过本次实验,我了解了LED的显示屏幕的数字的移位功能,这个功能不止可以用一个方法实现,而循环左移是其中比较巧妙且省力的一种,在遇到类似情况的时候,可以优先考虑能不能利用到文件中已经存在的函数,这样可以不必自己编写函数,省时省力。是一种可靠的方法。4.实验四

4.1 实验名称

电机转动控制及中断实验

4.2 实验目的

1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.了解44B0处理器上中断的应用。5.学习在44B0处理器上中断的应用。

6.进一步熟悉平台外围硬件及其驱动程序的编写。

4.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

4.4 实验内容及要求

1.学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM 知识,掌握 PWM 的生成方法,同时也要掌握 I/O的控制方法。

2.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。

3.编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

4.通过键盘控制直流电机与步进电机的切换。5.设置并启动定时器。

6.设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。

4.5 实验设计与实验步骤

1.添加并打开工程。

2.进行直流电机初始化设置和代码编写。3.进行步进电机初始化设置和代码编写。

4.对Timer3编程,编写定时器中断服务程序,完成对中断次数的计数。5.编写LED计数显示函数,使LED能正确计数并显示0-9999。6.编写中断初始化函数和中断响应函数。7.终端下载测试。

4.6 实验过程与分析 1.对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。

2.对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。

4.掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。

4.7 实验结果总结

实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。完成了中断的响应和定时中断。当对其中一个旋钮转动时,就可以由直流电机转换成步进电机的转换,达到实验的效果。

4.8 心得体会

通过本次实验,我了解了直流电机和步进电机的工作原理,同时也知晓了电机间的转换过程,了解其中的道理内涵,熟悉了ARM自带的A/D转换器的工作原理及编程方法,了解了中断的意义和实现方法,实现了简单了中断处理程序。同时我也收获了很多关于ARM处理机的相关知识。

5.实验五

5.1 实验名称

触摸屏驱动实验

5.2 实验目的

1.了解触摸屏的基本概念与原理。

2.理解触摸屏与LCD的关系。3.编程实现对触摸屏的控制。

4.熟悉用 ARM 内置的 LCD控制器驱动 LCD。

5.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

5.4 实验内容及要求

1.了解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示器配合的过程。2.通过编程实现触摸两点自动在两点间划直线。3.通过编程实现在触摸屏上动态画出曲线。5.5 实验设计与实验步骤

1.添加并打开工程。

2.在头文件中定义宏和常量及驱动函数。

#define ADS7843_CTRL_START 0x80 #define ADS7843_GET_X 0x50 #define ADS7843_GET_Y 0x10 #define ADS7843_CTRL_12MODE 0x0 #define ADS7843_CTRL_8MODE 0x8 #define ADS7843_CTRL_SER 0x4 #define ADS7843_CTRL_DFR 0x0 #define ADS7843_CTRL_DISPWD 0x3 // Disable power down #define ADS7843_CTRL_ENPWD 0x0 // enable power down #define ADS7843_PIN_CS(1<<6)//GPF6 #define ADS7843_PIN_PEN(1<<5)//GPG5 /////////触摸屏动作//////// #define TCHSCR_ACTION_NULL 0 #define TCHSCR_ACTION_CLICK 1 //触摸屏单击 #define TCHSCR_ACTION_DBCLICK 2 //触摸屏双击 #define TCHSCR_ACTION_DOWN 3 //触摸屏按下 #define TCHSCR_ACTION_UP 4 //触摸屏抬起 #define TCHSCR_ACTION_MOVE 5 //触摸屏移动

#define TCHSCR_IsPenNotDown()(rPDATG&ADS7843_PIN_PEN)(ADS7843_CTRL_START|ADS7843_GET_X|ADS7843_CTRL_12MODE |ADS7843_CTRL_DFR|ADS7843_CTRL_ENPWD)//采样x 轴电压值,数据为12 位,参考电压输入模式为差分模式,允许省电模式

#defineADS7843_CMD_Y(ADS7843_CTRL_START|ADS7843_GET_Y|ADS7843_CTRL_12MODE |ADS7843_CTRL_DFR|ADS7843_CTRL_ENPWD)int TchScr_Xmax=1840,TchScr_Xmin=176, TchScr_Ymax=195,TchScr_Ymin=1910;//触摸屏返回电压值范围 #defineADS7843_CMD_X 3.校准触摸屏坐标,进行坐标转换。

4.实现触屏取点并显示功能。

将触摸动作及触摸点坐标在超级终端上显示出来。5.实现两点间自动划线功能。6.实现触摸屏动态划线功能。

可以使用TchScr_GetScrXY()函数(第三个参数为0)来获得液晶屏的x、y 方向的电压

范围,分别点触摸屏有效面积的左上角和右下角,得到下列参数:

TchScr_Xmax=1840;TchScr_Xmin=176;TchScr_Ymax=195;TchScr_Ymin=1910;//此数值仅供参考,请以实际校对为准

5.6 实验过程与分析 1.在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。

2.获取第一个点坐标并储存,获取第二个点坐标并储存,由编写的划线函数取得储存的两点间直线上所有点的坐标,并对其改变颜色,显示在LCD上,即完成划直线功能。

3.将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。

5.7 实验结果总结

了解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。验证触摸屏的灵敏度的实验。

5.8 心得体会

通过这次实验,我基本掌握了通过编程驱动触摸屏以及触摸屏响应时间,实现了触摸屏对不同动作消息的响应。同时也知晓了在触摸屏上的描点画线的实现,但是由于不知名的原因,描点画线的误差较大,位置偏差较大,同时触摸屏有时会不灵敏,出现时好时坏的现象,但是由于我们的辛勤钻研,最终克服了这个困难,实现了最后的触摸屏的实现。

6.实验六

6.1 实验名称

UCOS-Ⅱ在ARM微处理器上的裁剪

6.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法。3.学习如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

4.通过对UCOS-Ⅱ配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对UCOS-Ⅱ的裁剪。

6.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

6.4 实验内容及要求

对UCOS-Ⅱ内核进行裁剪并移植到ARM7微处理器上。

6.5 实验设计与实验步骤 1.按照要求,载入STARTUP目录下文件,完成系统初始化、环境配置。2.载入UCOS-Ⅱ的全部源码,与处理器架构相关的文件位于arch目录下。3.在os_cpu.h中编写与处理器和编译器相关的代码。

4.编写os_cpu_c.c等6个与操作系统相关的函数。5.编写os_cpu.asm等4个与处理器相关的函数。

6.6 实验过程与分析

按照实验步骤进行,得到了需要的系统。

6.7 实验结果总结

按照要求进行了裁剪,得到了满足需要又紧凑的应用软件系统。

6.8 心得体会

通过本次实验,我了解了UCOS-Ⅱ内核的主要结构,掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法,学会了如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

7.实验七

7.1 实验名称

UCOS-Ⅱ在ARM微处理器上的移植和编译

7.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握将UCOS-Ⅱ内核移植到ARM7处理器上的基本方法。

7.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

7.4 实验内容及要求

1.将UCOS-Ⅱ内核进行移植到ARM7微处理器上。

2.编写两个简单任务,在超级终端上观察两个任务的切换。

7.5 实验设计与实验步骤

1.该实验的文件分为两类,其一是 STARTUP 目录下的系统初始化、配置等文件,其二是 UCOS-Ⅱ的全部源码,arch 目录下的 3 个文件是和处理器架构相关的。

2.设置 os_cpu.h 中与处理器和编译器相关的代码。

3.用 C 语言编写 6 个操作系统相关的函数(OS_CPU_C.C)。4.用汇编语言编写 4 个与处理器相关的函数(OS_CPU.ASM)。5.编写一个简单的多任务程序来测试一下移植是否成功。6.编译并下载移植后的 UCOS-Ⅱ。

7.6 实验过程与分析

1.按照实验步骤进行,将µC/OS-II 内核移植到了ARM7 微处理器上。2编写了两个简单任务,在超级终端上观察两个任务的切换。

7.7 实验结果总结

将µC/OS-II 内核顺利移植到了ARM7 微处理器上。

7.8 心得体会

通过本次实验,使我更加了解了µC/OS-II 内核的主要结构,掌握了ARM的C语言和汇编语言的编程方法,了解了ARM7处理器结构,掌握了将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法。

8.实验八

8.1 实验名称

综合实验

8.2 实验目的

对前七次实验进行总结,应用之前所学的知识,将前几次实验内容结合起来,完成键盘,LED,触摸屏,直流电机,步进电机各种功能的组合。实现一个较为全面的功能结构。

8.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

8.4 实验内容及要求

对前七次实验进行总结,应用之前所学的知识,完成自拟的嵌入式系统,要求综合前期基础实验的各种功能。

8.5 实验设计与实验步骤

1.添加并打开工程。2.进行LCD设计,在LCD显示屏输出文本。

3.进行LED及键盘设计,完成LED输出显示功能和键盘输入功能。4.进行电机控制设计,完成键盘控制电机转动功能。5.进行中断设计,完成定时中断功能。

6.进行触摸屏设计,完成触摸屏感应和划线功能。7.进行裁剪和移植功能设计和完成。

8.6 实验过程与分析

1.完成LCD显示功能,在LCD显示屏上输出文本:“Hello World!”。2.进入界面触屏控制选择功能,实现触屏选择功能。

3.自定义四种种功能,第一为电机控制,从键盘读取命令,并将功能编号显示在LED上,LED显示的是计数的数据,同时旋转按钮完成电机转速的控制选择。

4.第三种功能为划线,功能编号显示在LED高四位上,同时LCD屏幕清屏,为划线功能做准备,可以实现划线功能。

5.第四种功能为定时中断,当由键盘控制时,LED显示数值清零,实现了中断。6.实现裁剪与移植功能。

8.7 实验结果总结

完成了各种基本功能,并通过自拟的系统将各种功能整合起来,完成了一个小的嵌入式系统,对前七次的功能有了更深入的了解。通过LED的计数,当在计数值在前30秒之内,由键盘控制LED的数值及显示,按键盘上的某一个按键,实现对LED上的数值清零,后30秒由触摸屏控制清零,并且在前30秒之内,旋转按钮,实现对直流电机的运转,并且到步进电机的转换。

8.8 心得体会

通过这次实验,我更加深刻地掌握了前几次实验中的基本功能的实现方法,并且把几种功能联合在一起,实现一些功能,把LED 显示屏,LCD触摸屏,键盘,直流电机,步进电机等等设备联合在一起,对该实验有一定的帮助与提高,而我和我的队友也对嵌入式系统有了更深入的了解,在此期间,也学习了关于ARM处理器的开发与实践,了解了关于手机的嵌入式设备的产生过程,我也深深的对此充满了兴趣,对未来的嵌入式课程设计奠定了深厚的基础,可是令我遗憾的是,我和队员的水平所限,没有完成中断优先级的控制。本来想完成更多的功能,可是最后由于时间紧迫,也有一些其他的事情来分神分心,所以就只能完成这些,但是在未来的几周内,嵌入式课程设计也给了我们很大的空间去做未完成的事情。我相信我们会做的更加完美,功能更强大,用于未来的生活中去实践。

第五篇:《嵌入式系统设计》教学大纲

《嵌入式系统设计》课程教学大纲

嵌入式系统设计(Design of Embedded Systems)

一、课程教学目的和基本要求

教学目的:

嵌入式系统技术已被广泛地应用于工业控制系统、信息家电、通信设备、医疗仪器、智能仪器仪表等众多领域。如手机、PDA、MP3、手持设备、智能电话、机顶盒等,可以说嵌入式系统无处不在。本课程讲述当前主流的嵌入式处理器—ARM的微处理器和实时操作系统µC/OS,介绍嵌入式系统的基本原理和应用及设计方法。通过本课程的学习,着重培养学生的实际动手能力,使学生掌握ARM的系统结构、指令系统、程序设计方法、系统扩展方法、应用及开发技术等。使学生在工作中具有利用嵌入式系统开发产品和解决实际问题的基本能力。

基本要求:

1、掌握嵌入式系统技术的基本原理。

2、了解并掌握ARM的系统结构、指令系统、程序设计方法、系统扩展方法、应用及开发技术等。

3、比较熟练地用ADS进行ARM实验箱的编程及调试。

4、了解并掌握实时操作系统µC/OS,并学会用µC/OS开发小型应用系统。

二、先修课程及本课程总学时

先修课程:C程序设计语言、单片机原理 本课程总学时:36

三、课程章节及各章节学时安排

第一章 嵌入式系统概述(2学时)

第二章 嵌入式系统硬件基础(2学时)

第三章 设计方法及ADS集成开发环境(4学时)

第一节 嵌入式系统的设计方法(2学时)第二节 ADS集成开发环境(2学时)第四章 ARM7体系结构(4学时)

第一节ARM7体系结构介绍(2学时)第二节ARM7TDMI(-S)指令集简介。(2学时)第五章 ARM指令集(8学时)

第一节 ARM处理器寻址方式。(2学时)第二节ARM指令集。(2学时)第三节ARM汇编程序设计。(2学时)第四节C与汇编混合编程。(2学时)第六章 硬件结构与功能(12学时)第一节 LPC2106/2105/2104结构(2学时)第二节 GPIO及引脚连接模块。(2学时)

第三节 UART0和UART1、I2C接口、SPI接口。(2学时)第四节 定时器0和定时器1。(2学时)第五节 脉宽调制器(PWM)。(2学时)

第六节 看门狗及Flash存储器系统和编程。(2学时)第七章 µC/0S-II程序设计(4学时)

第一节 µC/0S-II简介及移植(2学时)第二节 移植µC/0S-II。(2学时)

四、课程主要内容

第一章 嵌入式系统概述(2学时)

1、嵌入式系统简介(包括什么是嵌入式系统,嵌入式系统的特点,嵌入式系统的分类)。

2、嵌入式系统的应用领域。

3、嵌入式系统的现状和发展趋势。

4、嵌入式微处理器和嵌入式操作系统。

5、嵌入式系统中的一些重要概念。难点:什么是嵌入式系统。

第二章 嵌入式系统硬件基础(2学时)

1、嵌入式系统的总体结构。

2、与嵌入式系统相关的硬件知识。难点:总体结构。

第三章 设计方法及ADS集成开发环境(4学时)第一节 嵌入式系统的设计方法

包括嵌入式系统的设计流程,嵌入式系统的一般设计方法,嵌入式系统的硬件/软件协同设计技术。第二节 ADS集成开发环境

1、ADS 1.2 集成开发环境的组成

2、工程的编辑

3、工程的调试

4、仿真器的安装与应用 难点:调试、仿真器。

第四章 ARM7体系结构(4学时)第一节ARM7体系结构介绍

1、处理器模式。

2、内部寄存器。

3、程序状态寄存器。

4、异常。

第二节ARM7TDMI(-S)指令集简介。难点:异常。

第五章 ARM指令集(8学时)第一节 ARM处理器寻址方式。第二节ARM指令集。

第三节ARM汇编程序设计。第四节C与汇编混合编程。难点:ARM汇编程序设计。

第六章 硬件结构与功能(12学时)第一节 LPC2106/2105/2104结构

1、存储器寻址。

2、系统控制模块。

3、存储器加速模块。

4、向量中断控制器。

第二节 GPIO及引脚连接模块。

第三节 UART0和UART1、I2C接口、SPI接口。第四节 定时器0和定时器1。第五节 脉宽调制器(PWM)。

第六节 看门狗及Flash存储器系统和编程。

难点:存储器重新映射,编程实现功能部件的初始化和控制。本章实验:LPC2106/2105/2104功能部件基础实验。

第七章 µC/0S-II程序设计(4学时)第一节 µC/0S-II简介及移植

1、移植规则。

2、编写LPC2106/2105/2104的启动代码。第二节 移植µC/0S-II。难点:移植µC/0S-II。本章实验:学习移植µC/0S-II。

五、教材及主要参考书

教材:

《嵌入式系统设计与开发》,马文华,科学出版社,2006年

主要参考书:

[1] 田苗苗.嵌入式控制系统.北京航空航天大学出版社,2002年 [2] 吕 骏 译.嵌入式系统设计.电子工业出版社,2002年

[3] 周立功等.ARM微控制器基础与实战.北京航空航天大学出版社,2003年

[4] 李驹光等.ARM应用系统开发祥解.清华大学出版社,2003年

[5] 劭贝贝译.uCOS-II-源代码公开的实时嵌入式操作系统.中国电力出版社,2001年 [6] 田苗苗.嵌入式系统设计与实例开发.清华大学出版社,2002年 [7] 袁勤勇等译.嵌入式系统构件.机械工业出版社,2002年 [8] 田苗苗.《实用嵌入式系统设计与开发—基于ARM微处理器与μCOS-II实时操作系统》(第二版),清华大学出版社,2003.9 [9] 邵贝贝译.《源代码公开的实时嵌入式操作系统——μCOS-II》,北京航空航天大学出版社,2003年

六、其他需要说明的情况

1.采用多媒体教学。

2.实验课单列,每周2学时。

3.每周作业量2~3小时,主要针对基本概念、开发环境的操作和编程。

七、成绩评定

1.理论考核

占60% 2.实践考核

占40%(其中包括:实验、作业、课堂提问、学生自行设计制作的作品)。

下载嵌入式系统硬件项目设计心得word格式文档
下载嵌入式系统硬件项目设计心得.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    《嵌入式系统设计》教案

    嵌入式系统设计教案 课程总学时: 32 讲课学时: 24 实验学时: 8 授 课 人: 杨词慧 南昌航空大学信息工程学院 目录 1 嵌入式系统概述 ...............................................

    北航—嵌入式系统设计教学大纲

    《嵌入式系统设计》课程计划 北航机器人研究所王田苗魏洪兴 一、课程名称:嵌入式系统设计 二、课程目的: 嵌入式系统技术已被广泛地应用于工业控制系统、信息家电、通信设备、......

    嵌入式系统设计基础总结报告

    嵌入式系统设计基础 嵌入式系统设计基础 结题报告 学生1: 学生2: 学生3: 组长: 组长电话: 指导老师: 完成时间: 嵌入式系统设计基础 目录 目录 ........................................

    硬件工程师面试之嵌入式篇

    硬件工程师面试之嵌入式篇 1、请用方框图描述一个你熟悉的实用数字信号处理系统,并做简要的分析;如果没有,也可以自己设计一个简单的数字信号处理系统,并描述其功能及用途。(仕兰......

    嵌入式系统设计项目实训报告格式(合集五篇)

    合肥学院 嵌入式系统设计项目实训报告 (20 ___- 20___第__学期)专业:______________________________________ 实训项目:__________________________________ 实训时间:_________......

    智能小车嵌入式系统设计分析

    前言 智能小车是在动态不确定环境下对人工智能的考验,是以各种工控目的为载体的高科技对抗,是培养信息、自动化领域科技人才的重要手段,同时也是展示高科技水平的生动窗口和促......

    嵌入式系统设计论文解读(五篇)

    嵌入式系统设计论文 专业:电子信息工程(信号处理)班级:姓名:指导教师: 评分: 年月 日 【摘要】 当今信息时代,嵌入式系统的应用无处不在,而ARM嵌入式系统应用市场份额约占75%。从嵌......

    大学生嵌入式系统设计竞赛简介

    全国大学生嵌入式系统设计竞赛简介“英特尔杯全国大学生电子设计竞赛嵌入式系统专题邀请赛”是教育部高等教育司和信息产业部共同主办,上海交通大学协办的全国性面向大学本科......