‘壹’ 单片机工程师具备哪些技能
一般来说,你搞单片机至少要熟悉单片机结构,外围电路,编程语言,以及制板吧。根据不同的应用,单片机会有不同的作用,在你做单片机项目中,你会发现你需要的会很多,设计系统时你会需要去查看很多英文的芯片资料,编程时你会需要考虑如何组织程序结构来达到最高的运行效率,单片机系统出现工作不正常的现象你要能查出问题的所在来并解决。总之,需要掌握的东西太多了,根据你的单片机应用场合来掌握相关知识就可以。
如果你想独挡一面,你得硬件软件都会。硬件主要包括模电数电电子线路等基础。要学会画有理图和PCB制板。主要工具有 protell 99SE等。软件基础有C语言,汇编,编译原理,微机原理等。最好了解各种通信总线。如果你想成为高手,主要方向朝 朝嵌入式操作系统发展,经验多了,你会发现自己也可以写出一个小的,这时,某种意义上,你已经出师了。如果你想成为更高级的人才,你还得会更多。主要是思想上的东西。这东西一通百通,只要了解它的本质。到最后,可以做些知识推理,人工智能 等更高层次的东西。慢慢来,要有耐心和毅力,要严谨。既然你问出这样的问题,说明你还是很上进的。这东西一下子说不清楚的,在工作中慢慢体会。掌握工具不是目的,应用工具解决实际问题才是重点。
‘贰’ 单片机系统设计需要具备哪些方面的技能技术
呵呵,单片机,要具备,会看电路,课程学上数字电路,模拟电路。这是最基本的,你设计不知道你是大概整,还是细部也要弄。要是做板子的话,要学软件PRO99。这个可以画电路图。打到专用的纸上。贴到铜板上。再在溶液中浸泡。置换反应么,打出来的是碳粉,把你的图遮住,就做好电路板了。再说设计板子的功能。最基本的是你要会简单的编程吧,要会编程语言。单片机设计中可能会用到很多模块,你要学习下他们的大概功能。最主要的还是细细学下电路吧。本人曾独立做过一个系统设计带制作,一般就这样。不懂继续问。
‘叁’ 简述单片机的基本结构与功能
单片机的基本结构:运算器、控制器、主要寄存器。运算器功能:执行各种算术运算;执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。主要寄存器功能:用于保存当前CPU所要访问的内存单元或I/O设备的地址。
控制器功能:从内存中取出一条指令,并指出下一条指令在内存中的位置;对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作;指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
(3)单片机的技能描述扩展阅读
应用范围:单片机渗透到我们生活的各个领域。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制等等。
还有自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
‘肆’ 51单片机应该掌握哪些
任何一款mcu,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的。因此,对于任何一款mcu,主要应从如下的几个方面来理解和掌握:
* mcu的特点:要了解一款mcu,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所提供的外围功能模块(Peripheral Circuit)、中断源、工作电压及功耗等等。
* 了解这些mcu Features后,接下来第一步就是将所选mcu的功能与实际项目开发的要求的功能进行对比,明确那些资源是目前所需要的,那些是本项目所用不到的。对于项目中需要用到的而所选mcu不提供的功能,则需要认真理解mcu的相关资料,以求用间接的方法来实现,例如,所开发的项目需要与PC机COM口进行通讯,而所选的mcu不提供UART口,则可以考虑用外部中断的方式来实现;
* 对于项目开发需要用到的资源,则需要对其Manua*进行认真的理解和阅读,而对于不需要的功能模块则可以忽略或浏览即可。对于mcu学习来讲,应用才是关键,也是最主要的目的。
* 明确了mcu的相关功能后,接下来就可以开始编程了。对于初学者或初次使用此款mcu的设计者来说,可能会遇到很多对mcu的功能描述不明确的地方,对于此类问题,可以通过两种方法来解决,一种是编写特别的验证程序来理解资料所述的功能;另一种则可以暂时忽略,程序设计中则按照自己目前的理解来编写,留到调试时去修改和完善。前一种方法适用于时间较宽松的项目和初学者,而后一种方法则适合于具有一定mcu开发经验的人或项目进度较紧迫的情况;
* 指令系统千万不要特别花时间去理解。指令系统只是一种逻辑描述的符号,只有在编程时根据自己的逻辑和程序的逻辑要求来查看相关的指令即可,而且随着编程的进行,对指令系统也会越来越熟练,甚至可以不自觉地记忆下来;
mcu的基本功能:
对于绝大多数mcu,下列功能是最普遍也是最基本的,针对不同的mcu,其描述的方式可能会有区别,但本质上是基本相同的:
* Timer(定时器):Timer的种类虽然比较多,但可归纳为两大类:一类是固定时间间隔的Timer,即其定时的时间是由系统设定的,用户程序不可控制,系统只提供几种固定的时间间隔给用户程序进行选择,如32Hz,16Hz,8Hz等,此类Timer在4位mcu中比较常见,因此可以用来实现时钟、计时等相关的功能;另一类则是Programmable Timer(可编程定时器),顾名思义,该类Timer的定时时间是可以由用户的程序来控制的,控制的方式包括:时钟源的选择、分频数(Prescale)选择及预制数的设定等,有的mcu三者都同时具备,而有的则可能是其中的一种或两种。此类Timer应用非常灵活,实际的使用也千变万化,其中最常见的一种应用就是用其实现PWM输出(具体的应用,后续会有特别的介绍)。由于时钟源可以自由选择,因此,此类Timer一般均与Event Counter(事件计数器)合在一起;
* IO口:任何mcu都具有一定数量的IO口,没有IO口,mcu就失去了与外部沟通的渠道。根据IO口的可配置情况,可以分为如下几种类型:
** 纯输入或纯输出口:此类IO口有mcu硬件设计决定,只能是输入或输出,不可用软件来进行实时的设定;
** 直接读写IO口:如MCS-51的IO口就属于此类IO口。当执行读IO口指令时,就是输入口;当执行写IO口指令则自动为输出口;
** 程序编程设定输入输出方向的:此类IO口的输入或输出由程序根据实际的需要来进行设定,应用比较灵活,可以实现一些总线级的应用,如I2C总线,各种LCD、LED Driver的控制总线等;
** 对于IO口的使用,重要的一点必须牢记的是:对于输入口,必须有明确的电平信号,确保不能浮空(可以通过增加上拉或下拉电阻来实现);而对于输出口,其输出的状态电平必须考虑其外部的连接情况,应保证在Standby或静态状态下不存在拉电流或灌电流。
* 外部中断:外部中断也是绝大多数mcu所具有的基本功能,一般用于信号的实时触发,数据采样和状态的检测,中断的方式由上升沿、下降沿触发和电平触发几种。外部中断一般通过输入口来实现,若为IO口,则只有设为输入时其中断功能才会开启;若为输出口,则外部中断功能将自动关闭(ATMEL的ATiny系列存在一些例外,输出口时也能触发中断功能)。外部中断的应用如下:
** 外部触发信号的检测:一种是基于实时性的要求,比如可控硅的控制,突发性信号的检测等;而另一种情况则是省电的需要;
** 信号频率的测量;为了保证信号不被遗漏,外部中断是最理想的选择;
** 数据的解码:在遥控应用领域,为了降低设计的成本,经常需要采用软件的方式来对各种编码数据进行解码,如Manchester和PWM编码的解码;
** 按键的检测和系统的唤醒:对于进入Sleep状态的mcu,一般需要通过外部中断来进行唤醒,最基本的形式则是按键,通过按键的动作来产生电平的变化;
* 通讯接口:mcu所提供的通讯接口一般包括SPI接口,UART,I2C接口等,其分别描述如下:
** SPI接口:此类接口是绝大多数mcu都提供的一种最基本通讯方式,其数据传输采用同步时钟来控制,信号包括:SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)及Ready信号;有些情况下则可能没有Ready信号;此类接口可以工作在Master方式或Slave方式下,通俗说法就是看谁提供时钟信号,提供时钟的一方为Master,相反的一方则为Slaver;
** UART(Universal Asynchronous Receive Transmit):属于最基本的一种异步传输接口,其信号线只有Rx和Tx两条,基本的数据格式为:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even, Odd or None) + Stop Bit(1~2Bit)。一位数据所占的时间称为Baud Rate(波特率)。对于大多数的mcu来讲,数据为的长度、数据校验方式(奇校验、偶校验或无校验)、停止位(Stop Bit)的长度及Baud Rate是可以通过程序编程进行灵活设定。此类接口最常用的方式就是与PC机的串口进行数据通讯。
** I2C接口:I2C是由Philips开发的一种数据传输协议,同样采用2根信号来实现:SDAT(串行数据输入输出)和SCLK(串行时钟)。其最大的好处是可以在此总线上挂接多个设备,通过地址来进行识别和访问;I2C总线的一个最大的好处就是非常方便用软件通过IO口来实现,其传输的数据速率完全由SCLK来控制,可快可慢,不像UART接口,有严格的速率要求。
* Watchdog(看门狗定时器):Watchdog也是绝大多数mcu的一种基本配置(一些4位mcu可能没有此功能),大多数的mcu的Watchdog只能允许程序对其进行复位而不能对其关闭(有的是在程序烧入时来设定的,如Microchip PIC系列mcu),而有的mcu则是通过特定的方式来决定其是否打开,如Samsung的KS57系列,只要程序访问了Watchdog寄存器,就自动开启且不能再被关闭。一般而言watchdog的复位时间是可以程序来设定的。Watchdog的最基本的应用是为mcu因为意外的故障而导致死机提供了一种自我恢复的能力。
mcu程序的编写:
mcu的程序的编写与PC下的程序的编写存在很大的区别,虽然现在基于C的mcu开发工具越来越流行,但对于一个高效的程序代码和喜欢使用汇编的设计者来讲,汇编语言仍然是最简洁、最有效的编程语言。对于mcu的程序编写,其基本的框架可以说是大体一致的,一般分为初始化部分(这是mcu程序设计与PC最大的不同),主程序循环体和中断处理程序三大部分(见图1 a 和 b),其分别说明如下:
* 初始化:对于所有的mcu程序的设计来讲,出世化是最基本也是最重要的一步,一般包括如下内容:
** 屏蔽所有中断并初始化堆栈指针:初始化部分一般不希望有任何中断发生;
** 清除系统的RAM区域和显示Memory:虽然有时可能没有完全的必要,但从可靠性及一致性的角度出发,特别是对于防止意外的错误,还是建议养成良好的编程习惯;
** IO口的初始化:根据项目的应用的要求,设定相关IO口的输入输出方式,对与输入口,需要设定其上拉或下拉电阻;对于输出口,则必须设定其出世的电平输出,以防出现不必要的错误;
** 中断的设置:对于所有项目需要用到的中断源,应该给予开启并设定中断的触发条件,而对于不使用的多余的中断,则必须给予关闭;
** 其他功能模块的初始化:对于所有需要用到的mcu的外围功能模块,必须按项目的应用的要求进行相应的设置,如UART的通讯,需要设定Baud Rate,数据长度,校验方式和Stop Bit的长度等,而对于Programmer Timer,则必须设置其时钟源,分频数及Reload Data等;
** 参数的出世化:完成了mcu的硬件和资源的出世化后,接下来就是对程序中使用到的一些变量和数据的初始化设置,这一部分的初始化需要根据具体的项目及程序的总体安排来设计。对于一些用EEPROM来保存项目预制数的应用来讲,建议在初始化时将相关的数据拷贝到mcu的RAM,以提高程序对数据的访问速度,同时降低系统的功耗(原则上,访问外部EEPROM都会增加电源的功耗)。
* 主程序循环体:大多数mcu是属于长时间不间断运行的,因此其主程序体基本上都是以循环的方式来设计,对于存在多种工作模式的应用来讲,则可能存在多个循环体,相互之间通过状态标志来进行转换。对于主程序体,一般情况下主要安排如下的模块:
** 计算程序:计算程序一般比较耗时,因此坚决反对放在任何中断中处理,特别是乘除法运算;
** 实时性要求不高或没有实时性要求的处理程序;
** 显示传输程序:主要针对存在外部LED、LCD Driver的应用;
* 中断处理程序:中断程序主要用于处理实时性要求较高的任务和事件,如,外部突发性信号的检测,按键的检测和处理,定时计数,LED显示扫描等。一般情况下,中断程序应尽可能保证代码的简洁和短小,对于不需要实时去处理的功能,可以在中断中设置触发的标志,然后由主程序来执行具体的事务——这一点非常重要,特别是对于低功耗、低速的mcu来讲,必须保证所有中断的及时响应。
* 对于不同任务体的安排,不同的mcu其处理的方法也有所不同。例如,对于低速、低功耗的mcu(Fosc=32768Hz)应用,考虑到此类项目均为手持式设备和采用普通的LCD显示,对按键的反应和显示的反应要求实时性较高,应此一般采用定时中断的方式来处理按键的动作和数据的显示;而对于高速的mcu,如Fosc>1MHz的应用,由于此时mcu有足够的时间来执行主程序循环体,因此可以只在相应的中断中设置各种触发标志,并将所有的任务放在主程序体中来执行;
* 在mcu的程序设计中,还需要特别注意的一点就是:要防止在中断和主程序体中同时访问或设置同一个变量或数据的情况。有效的预防方法是,将此类数据的处理安排在一个模块中,通过判断触发标志来决定是否执行该数据的相关操作;而在其他的程序体中(主要是中断),对需要进行该数据的处理的地方只设置触发的标志。——这可以保证数据的执行是可预知和唯一的。
总之,对于mcu开发来讲,必须记住一点:“条条大路通罗马”,没有做不到的事,关键是看方法是否正确!再就是多做多动手和多想。
‘伍’ 一般来说单片机开发系统应具备哪些功能
单片机应用系统的开发大体可分为三个阶段
1)确定任务,完成总体设计
(1)确定设计任务和系统功能指标,编写设计任务书
在单片机应用系统开发的前期阶段,首先必须认真细致地调查研究,深入了解用户各个方面的技术要求,了解国内外相似课题的技术水平,进行系统分析,摸清软件、硬件设计的技术难点等。然后确定课题所要完成的任务和应具备的功能,以及要达到的技术指标。综合考虑各种因素提出设计的初步方案,编写设计任务书。
设计任务书不但要明确系统设计任务,还要对系统规模做出规定,如主机机型、分机机型、配备哪些外围设备等,这是硬件设计、成本的依据。同时还应详尽说明系统的指标参数,操作规范,这是软件设计的基础。
(2)总体设计
拟定总体设计方案一般要通过认真调研、论证,最后定稿,以避免方案上的疏忽造成软件、硬件设计产生较大的返工,延误项目开发进程一总体方案的关键性计算难点,应设专题深入讨论,如传感器的选择。传感器常常是测试系统中的关键环节,一个设计合理的测控系统,往往会因传感器精度、非线性、温漂等指标限制,造成系统达不到指标要求。
总体设计要选择确定系统硬件的类型和数量,绘出系统硬件的总框图。其中主机电路是系统硬件的核心,耍依据系统功能的复杂程度、性能指标、精度要求,选定一种性能价格比合适的单片机型号,同时根据需要选定外围扩展芯片、人机接口电路及配置外部设备。
输入/输出通道是系统硬件的重要组成部分,总体设计要根据信号参数、功能指标要求合理选择通道数量、通道的结构、抗干扰措施、驱动能力等,确定输入/输出通道所需的硬件类型和数量。硬件电路各种类型的选择,一般都要进行综合比较,这些比较和选择必须是在局部试验的基础之上完成的。
总体设计还应完成软件设计任务分析,绘出系统软件的总框图。设计人员还应反复权衡哪些功能由硬件完成,哪些任务由软件完成,对软件、硬件比例做出合理安排。
总体设计一旦确定,系统的大致规模、软件的基本框架就确定了。然后就可将系统设计任务按功能模块分解成若干课题,拟定出详细的工作计划,使后面的软件、硬件设计同时并行展开。
2)硬件、软件设计与调试 U209B
(1)硬件设计
总体设计之后,就进入正式研制阶段。为使硬件设计尽可能合理,应注意下列原则。
①尽可能选择典型电路,采用硬件移植技术,力求硬件标准化、模块化。
②尽可能选择功能强的新型芯片取代若干普通芯片,以简化硬件电路,同时随着新型芯片价格不断降低,硬件系统成本也可能育所下降。
③系统扩展与配置应充分满足应用系统的功能要求,并留有余地,以备将来系统维护及更新换代。
④尽可能以软代硬。软、硬件具有可换性,硬件多了不但会增加成本,而且使系统出现故障的概率增加。以软代硬的实质是以时间代空间,可见这种代替是以降低系统的实时性为代价的。同此,考虑以软代硬的原则,应以不影响系统的性能为前提。
⑤可靠性及抗干扰设计。为确保系统长期可靠运行,硬件设计必须采取相应的可靠性及抗干扰措施,包括芯片、器件选择,去耦滤波,合理布线,通道隔离等。
⑥必须考虑驱动能力。单片机各I/O端口的负载能力有限,外部扩展应不超过其总负载能力的70%,如果扩展芯片较多,可能造成负载过重,系统工作不可靠。此时,应考虑设置线路驱动器。
⑦监测电路的设计。系统运行中出现故障,应能及时报警,这就要求系统具有自诊断功能,必须为系统设计有关监测电路。
⑧结构工艺设计。结构工艺设计是单片机应用系统设计的重要内容,可以单独列为硬件设计、软件设计之外的第三项设计内容,这里把它放在硬件设计中来研究。结构工艺设计包括系统设备的造型、壳体结构、外形尺寸、面板布局、模块固定连接方式、印制电路板、配线和插接件等。要求尽量做到标准化、规范化、模块化。一般以单片机为核心的产品,其单片机系统都足内装式、嵌入式,与设备本身有机地融为一体,这类产品都要求结构紧凑、美观大方,人机界面友好,便于操作、安装、调试及维修。
为提高硬件设计质量,加快研制速度,通常在设计印制电路板时,考虑开辟一小片机动布线区。在机动布线区中,可以插入若干片集成电路插座,并有金属化孔,但无布线。当样机研制中发现硬件电路有明显不足需要增加若干元器件时,可在机动布线区中临时拉线来完成,从而避免大返工。
(2)软件设计
单片机应用系统的设计以软件设计为重点,软件设计的工作量比较大。首先将软件总框图中的各功能模块具体化,逐级画出详细框图,作为软件设计的依据。
编程可采用汇编语言或各种高级语言。对于规模不大的软件多采用汇编语言编写,而对于较复杂的软件,且运算任务较重时,可考虑采用高级语言编程。C51、C96交叉编译软件是近年来较为流行的一种软件开发工具,它采用c语言编写源程序。
软件设计应当尽可能采用结构化设计和模块化编程的方法,这有利于查错、调试和增删程序。为提高可靠性,应实施软件抗干扰措施,编程必须进行优化,仔细推敲,合理安排,利用各种程序设计技巧,设计出结构清晰,便于调试和移植,占内存空间小,执行时间短的应用程序。
(3)碗件、软件调试
单片机应用系统硬件、软件研制与调试,由于单片机系统本身不具备自开发能力,所以必须借助于开发工具——单片机开发系统。通过它可方便地进行编程、汇编、调试、运行、仿真等操作。
单片机开发系统性能的优劣直接影响应用系统的设计水平和研制的工作效率。目前使用较多的是“通用型开发系统”,由通用微机系统、在线仿真器、EPROM及EEPROM读/写器等部分组成,如图5.3所示。另外,还有“简易型开发系统”、“软件模拟开发系统”、“专用开发系统”等。
硬件调试分以下两步进行。
①硬件电路检查。硬件电路检查在单片机开发系统之外进行,可用万用表、逻辑笔等常规工具,检查电路制作是否正确无误,要核对元器件规格、型号,检查芯片间连线是否正确,是否有短路、虚焊等故障,对电源系统更应仔细检查以防电源短路,极性错误。
②硬件诊断调试。硬件诊断调试在单片机开发系统上进行,用单片机开发系统的仿真头代替应用系统的单片机,再编制一些调试程序,即可迅速排除故障完成硬件的诊断调试。
硬件电路运行是否正常,还可通过测定一些重要的波形来确定。例如,可检查单片机及扩展器件的几个控制信号的波形与硬件手册所规定的指标是否相符,断定其工作正常与否。
3)系统总调、性能测定
系统样机装配好之后,还必须进行联机总调,排除应用系统样机中的软件、硬件故障。在总调阶段还毖须进行系统性能指标测试,以确定是否满足设计要求,写出性能测试报告。系统样机联机总调、测试工作正常之后便可投入现场试用。
最后一项重要工作是编制设计文件,这不仅是单片机应用系统开发工作的总结,而且是系统使用、维修、更新的重要技术资料文件。设计文件内容应包括:设计任务和功能描述;设计方案论证;性能测试和现场使用报告;使用操作说明;硬件资料:硬件逻辑图、电路原理图、元件布置和接线图、接插件引脚图和印制电路板图等;软件资料:软件框图和说明,标号和子程序名称清单,参量定义清单,存储单元和输入/输出口地址分配表以及程序清单。
随着技术的进步,单片机应用系统开发可采用在系统可编程技术,即采用JTAG接口完成系统软件设计和调试,仅仅需要一根下载线和一台通用PC及相关软件。
‘陆’ 现阶段单片机开发工程师必需的技术和技能是什么呢, 需要注意的是什么呢
单片机的重要性在后PC时代逐渐加重了,现在更多的电子设计者和爱好者讨论最多的话题莫过于嵌入式系统的设计,C51、VHDL、RTOS、CPLD、FPGA、DSP、ARM已是当今挂在电子工程师嘴边最多的几个词,由于工艺的进步,家庭智能化已不是空中楼阁,其中功能越来越强大、体积越来越小、成本越来越低的MCU出现正是这场革命的推动者。下面就由福州卓跃教育具体介绍。
总结现阶段单片机开发工程师必需的技术和技能,学单片机之前先把C语言弄透,以后会少走好多弯路。
至于实验初学者可以先学流水灯、矩阵按键、数码管扫描,完后玩一点更稍级的18B20、DS1302、LED屏幕、液晶等,这些都会了然后往更高层次发展。
单片机是工具,它需要你具备一定的模拟、数字基础知识,学这些都不难,最难的是坚持学下去。手机上、MP3上的控制芯片现在用的是ARM,这算是一种更高级的单片机,这就是单片机和电子的关系。单片机是一种潮流,推动电子往更高层次发展的潮流。
‘柒’ 生活中我们经常遇到单片机的例子,请你选其中的一样,描述其工作原理
【例子】:火灾报警器。
【原理】:报警器通过内部智能处理器感应离散光源、微小的烟粒和气雾来检测,一旦检测到烟雾,立刻通过一个内置的专用IC驱动电路和一个外部压电式换能器输出报警声,使人们及早得知火情,将火灾扑灭在萌芽状态。其采用低功耗 CMOS 微处理器就属于单片机。
【硬件组成】:电源、烟雾感应器、CMOS 微处理器(单片机)、烟雾报警器、蜂鸣器等。两总线制方式挂接EI系列剩余电流式电气火灾监控探测器,接收并显示火灾报警信号和剩余电流监测信息,发出声、光报警信号。
(7)单片机的技能描述扩展阅读:
单片机的相关应用特点:
1、单片机拥有强大的控制功能,同时运行电压比较低;
2、单片机拥有简易携带等优势, 同时性价比较高。单片机主要应用于下面几种领域当中,分别是:自动化办公、机电一体化、尖端武器和国防军事领域、 航空航天领域、汽车电子设备、医用设备领域、商业营销设备、计算机通讯、家电领域、日常生活和实时控制领域等。
3、拥有良好的集成度, 单片机自身体积较小,拥有强大的控制功能,同时运行电压比较低。