微处理器
- 格式:doc
- 大小:30.00 KB
- 文档页数:3
微处理器实验报告摘要:本文旨在介绍微处理器实验及其结果,内容包括实验目的、实验器材与方法、实验过程、实验结果和分析以及实验结论等。
通过本次实验,我们对微处理器的工作原理和应用有了更深刻的理解,并能够熟练地进行一些简单的微处理器操作。
1. 引言微处理器是现代计算机的核心组成部分,其作用是负责指令的执行和数据的处理。
在这个实验中,我们将通过操作微处理器,深入了解其内部构造和工作原理。
同时,我们也将学习如何正确地使用微处理器进行一些简单的计算和控制任务。
2. 实验目的本次实验的目的是:- 了解微处理器的基本工作原理;- 掌握微处理器的基本操作方法;- 理解不同指令的功能和使用方法;- 实现一些简单的计算和控制任务。
3. 实验器材与方法3.1 实验器材:- 微处理器实验箱- 示波器- PC机3.2 实验方法:首先,根据实验指导书上给出的实验电路图,按照电路图连接实验器材。
然后,将微处理器与PC机通过串口或者并口连接起来。
接下来,根据实验指导书上给出的指令,编写相应的程序代码并将其烧录到微处理器中。
最后,通过操作微处理器,观察实验结果并进行实验数据的采集和分析。
4. 实验过程4.1 硬件连接:根据实验指导书上的电路图,连接实验箱和示波器,保证电路的正常工作。
4.2 软件编程:根据实验指导书上的指令,使用相应的软件工具或编程语言编写程序代码,并将其烧录到微处理器中。
4.3 实验操作:按照实验指导书上的要求,操作微处理器进行各种指令的执行,观察实验结果并记录相关数据。
5. 实验结果与分析通过本次实验,我们成功地完成了一些简单的微处理器操作,并观察到了相应的实验结果。
在实验中,我们使用了一些常见的指令,如加法指令、乘法指令和逻辑指令等,并实现了一些简单的计算和控制任务。
同时,我们还观察到了微处理器的运行速度以及实验过程中的一些注意事项。
通过对实验数据的分析,我们发现微处理器在执行指令时的速度非常快,能够实时处理大量的数据,并及时给出相应的计算结果。
CPU ⇒MPU ⇒MCU1 CPU(Central Processing Unit,中央处理器) (1)1.1 CPU的组成 (1)1.2 CPU的工作原理 (1)2 MPU(Microprocessor Unit,微处理器) (3)2.1 MPU的组成 (3)2.2 MPU的分类 (3)2.3 MPU的体系结构:冯.诺伊曼结构和哈佛结构 (3)2.4 MPU的典型代表:DSP(Digital Signal Processor,数字信号处理器) (4)3 MCU(Microcontroller Unit,微控制器/单片机) (5)3.1 MCU的概念 (5)3.2 MCU的概述 (5)3.3 MCU的分类 (6)3.4 MCU的架构:CISC架构和RISC架构 (6)3.5 常见的MCU (6)3.6 MCU的典型代表:ARM (9)4 CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件) (10)5 FPGA(Field Programmable Gate Array,现场可编程门阵列) (10)6 DSP,ARM,FPGA的区别 (10)1 CPU(Central Processing Unit,中央处理器)中央处理器(CPU)是电子计算机的主要器件之一,其功能主要是解释计算机指令及处理计算机软件中的数据。
1.1 CPU的组成CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
运算器:进行算术运算和逻辑运算(部件:算数逻辑单元、累加器、寄存器组、路径转换器、数据总线)。
控制器:控制程序的执行,包括对指令进行译码、寄存,并按指令要求完成所规定的操作,即指令控制、时序控制和操作控制。
复位、使能(部件:计数器、指令暂存器、指令解码器、状态暂存器、时序产生器、微操作信号发生器)。
寄存器:用来存放操作数、中间数据及结果数据。
1.2 CPU的工作原理CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,将指令分解成一系列的微操作,然后发出各种控制命令,执行微操作,从而完成一条指令的执行。
第一章冯诺依曼体系结构:计算机应由运算器、控制器、存储器、输入设备、输出设备组成。
微处理器:mp包括运算器和控制器,集成到一个芯片上是cpu, control processing unit。
运算器负责对信息进行处理和运算。
控制器负责根据程序的要求发出各种控制命令,协调各部件之间的工作。
存储器:用来存放当前正字啊使用的或经常使用的程序、数据和运算结果。
分为ram(随机存储器)和rom(制度存储器)微型计算机的主要性能:字长:计算机内部一次可以处理的二进制的位数;存储容量:衡量微型计算机中存储能力的指标;运算速度:每秒能执行的质量条数;外设扩展能力:软件配置:系统稳定性和兼容性:常见CPU的位数:4位:4004,8位:8008,808016位:8086、8088,8028632位:英特尔386,英特尔486,英特尔奔腾,英特尔高能奔腾,英特尔奔腾二,奔腾二至强,奔腾三,奔腾三至强,奔腾四64位:至强,安腾,安腾二,奔腾M,奔腾D,Core 2 Duo原码、反码、补码原码就是将一个数转化为二进制数,最高位是符号位(负为1,正为0),机器内表示一个数存储原码的长度和机器字长一样,数值转化后不够机器字长的,以0补齐。
反码就是原码在符号位不变的前提下按位取反。
补码就是反码加一。
计算机常用编码BCD码:计算机常用的是8421BCD码。
ASCII码:美国信息交换标准码。
汉字编码:信息交换用汉字编码。
包括输入编码、内码、字形编码,分别用于汉字的输入、内部处理、输出。
汉字的输入编码一般有数字编码、拼音码、字形编码三类。
汉字的内码是用于汉字信息的存储、交换、检索等操作的机内代码。
汉字字形编码是用来描述汉字字形的代码,是汉字的输出形式。
微处理器(CPU)微处理器的英文缩写是CPU,即中央处理单元,是计算机的核心,计算机完成的每一件工作,都是在它的指挥和干预下完成的。
计算机配置的CPU的型号实际上代表着计算机的的基本性能水平。
目前市场上流行的主要是多功能奔腾级以上的芯片。
MMX芯片MMX是英文MultiMedia eXtension(多媒体扩展)的缩写。
英特尔在1996年3月份正式公布了MMX技术的细节后,于1997年1月正式向全球推出基于MMX 技术的 166MHz和200MHz的Pentium芯片,1997年3月份推出基于MMX技术的233MHz的Pentium Pro芯片。
MMX技术是英特尔公司针对X86微处理器体系结构的一次重大扩充,使计算机同多媒体相关任务的综合处理能力提高了1.5~2倍,它不仅是英特尔自 i386面世以来对英特尔CPU体系结构的一次显著改进,同时也是英特尔对多媒体数据处理等专用芯片及功能板卡的一次强力挑战。
从芯片设计的角度来看,新技术MMX有以下一些要点:单指令多数据技术英特尔为MMX技术设计了一组基本的、通用的整型指令集,以满足各种多媒体和通讯应用的需要。
其中最基本的是单指令多数据(即SIMD)技术。
该技术允许利用任何新增加的单个指令处理多组数据。
借用寄存器将CPU中8个浮点运算单元(FPU)重新命名为8个MMX寄存器,因而在物理上不需要增加新的寄存器。
这样,现有的操作系统和应用软件无需作任何修改即可运行于具有MMX的CPU上,保证了向下兼容。
增加新指令增加了57个MMX指令。
这些指令都具有一些各自的独特功能。
例如分支指令能够利用掩码和位比较在多个操作数中执行逻辑操作,从而达到没有延时的分支效果等等。
采用新的数据类型新的数据类型包括压缩型字节、压缩型字、压缩型双字和压缩型四字,他们都是压缩的定点整数类型,可以将多个整型机器字压缩到8个64位的MMX寄存器中。
将64位数据置于单个寄存器中,使MMX CPU可以同时处理8个字节的数据,这有利于加速计算密集型的循环运算。
微处理器中的程序类型微处理器是现代计算机系统的核心部件,它是一种集成电路,能够执行各种计算和控制任务。
在微处理器中,程序类型多种多样,每种类型都有不同的用途和特点。
本文将围绕微处理器中的程序类型展开讨论,包括序列程序、分支程序、循环程序和中断程序。
一、序列程序序列程序是微处理器中最基本的程序类型。
它按照顺序执行指令,一条接一条地执行,没有分支和循环。
序列程序适用于一些简单的任务,例如进行数值计算、数据传输等。
在执行序列程序时,微处理器会逐条读取指令,并将其转换为相应的操作,最终实现特定的功能。
二、分支程序分支程序是微处理器中常见的程序类型之一。
它根据条件的不同选择不同的执行路径,使程序能够根据特定的情况做出相应的决策。
分支程序通常使用条件判断语句(如if-else语句)来实现,根据条件的真假选择不同的分支执行。
分支程序广泛应用于各种需要根据条件进行选择的场景,例如判断输入数据的大小、比较不同变量的值等。
三、循环程序循环程序也是微处理器中常见的程序类型之一。
它允许程序重复执行一段代码,直到满足退出条件为止。
循环程序在实现重复性任务时非常有用,可以极大地提高代码的复用性和效率。
常见的循环语句有for循环和while循环,它们可以根据循环条件的真假决定是否继续执行循环体。
四、中断程序中断程序是微处理器中非常重要的程序类型。
当外部事件发生时,如按键输入、定时器溢出等,微处理器会立即中断当前的执行流程,转而处理中断程序。
中断程序可以响应外部事件,并进行相应的处理,例如更新显示内容、保存数据等。
中断程序的设计需要考虑到实时性和可靠性,保证在中断发生时能够及时响应并处理。
以上是微处理器中常见的程序类型。
序列程序按照顺序执行指令,分支程序根据条件选择执行路径,循环程序重复执行一段代码,中断程序响应外部事件并进行处理。
不同的程序类型在不同的场景下发挥着重要的作用,它们相互配合,共同完成各种计算和控制任务。
熟练掌握各种程序类型的设计和应用,对于开发高效、可靠的计算机系统至关重要。
1)嵌入式微处理器结构与应用:
这是一门嵌入式硬件基础课程,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM 处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。
若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书,您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。
有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。
还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。
其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。
一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。
在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。
特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。
当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。
很多嵌入式职位招聘时都要求熟悉汇编。
(2) 嵌入式操作系统类课程
除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。
目前最重要的RTOS主要包括:
第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。
Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。
特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。
Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。
像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。
但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。
目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。
但无论如何,Vxworks在一段长时间内仍是不可动摇的。
与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。
第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。
Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。
目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的
Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM9上的,一般是将Linux2.4.18内核移植在其上,可使用更多的Linux 功能(当然uClinux更可跑在ARM 9上)。
很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。
缺点是熟悉Linux的人太少,开发难度稍大。
另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II 较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以我院不将其作为教学重点,要学习就应学直接实用的,比如uClinux就很实用。
况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。
据我所知,目前Intel、Philip都在大搞ARM+LINUX 的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。
目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux 驱动程序的人;三是熟悉Linux内核裁减和优化的人。
第三类、Windows
CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE 出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。
WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE 开发都是大家熟悉的VC++环境,所以学过Windows程序设计课程的同学都不会有多大难度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE 开发难度远低于嵌入式Linux。
对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE 是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。
根据不同的侧重点,WinCE还有两个特殊版本,一个是MS PocketPC 操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。
在PDA和手机市场上,除WinCE外,著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE 的强劲冲击下,Palm和Symbian来日还能有多长?我院可能是全国高校中唯一一家开设专门的“Windows CE嵌入式操作系统“课程的学校,这主要是基于以下原因:我院本身前面便有Windows程序设计课程,同学学过VC++后再学WinCE,非常方便自然,通过学习WinCE 同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。
很显然,嵌入式Linux永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑;
二WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,他们很需要精通WinCE的人。
总结关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若您觉得自己VC++功底较好且想短平快地学嵌入式开发,则WinCE课程是最好的
选择。
(3) 嵌入式开发的其它相关软件课程
搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。
主要的相关领域包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。
B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。
首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。
无结通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。
C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:DSP是Digital Signal
Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。
数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。
目前DSP人才较缺。
如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。
(4)嵌入式开发的相关硬件基础
对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。
另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。
我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。
有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。
嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。
另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。