Board logo

标题: 单片机应用编程技巧100问(九) [打印本页]

作者: yuchengze    时间: 2016-9-18 15:26     标题: 单片机应用编程技巧100问(九)

79. 同样的功能实现,采用RISC和CISC内核的MCU,代码量哪个更大,即哪种需要更大的RAM以及ROM?
答:微处理随着微指令的复杂度可分为RISC及CISC这两类。下面先针对这两项做说明:一、复杂指令集电脑CISC(Complex Instruction Set Computer)
CISC是一种为了便于编程和提高记忆体访问效率的晶片设计体系。早期的电脑使用组合语言编程,由于记忆体速度慢且价格昂贵,使得CISC体系得到了用武之地。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系──包括Intel的80x86和Motorola的68K系列等。
1.CISC体系的指令特征
使用微代码。指令集可以直接在微代码记忆体(比主记忆体的速度快很多)里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程式。
庞大的指令集:可以减少编程所需要的代码行数,减轻程式师的负担。 高阶语言对应的指令集:包括双运算元格式、寄存器到寄存器、寄存器到记忆体以及记忆体到寄存器的指令。
2.CISC体系的优缺点
优点:能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上相容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软体。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。
缺点:指令集以及晶片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。
二、精简指令集电脑RISC(Reduce Instruction Set Computer)
RISC是为了提高处理器运行的速度而设计的晶片体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在晶片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU,像HOLTEK MCU系列等。
1.RISC体系的指令特征
精简指令集:包含了简单、基本的指令,透过这些简单、基本的指令,就可以组合成复杂指令。
同样长度的指令:每条指令的长度都是相同的,可以在一个单独操作里完成。
单机器周期指令:大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。
2.RISC体系的优缺点
优点:在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速度将是CISC的2~4倍。由于RISC处理器的指令集是精简的,它的记忆体管理单元、
浮点单元等都能设计在同一块晶片上。RISC处理器比相对应的CISC处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术, 开发更快的下一代处理器。
缺点:多指令的操作使得程式开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快记忆体,这通常都集成于处理器内部,就是L1 Cache(一级缓存)。
综合上面所述,若要再进一步比较CISC与RISC之差异,我们可以由以下几点来分析:
1。指令的形成
CISC因指令复杂,故采微指令码控制单元的设计,而RISC的指令90%是由硬体直接完成,只有10%的指令是由软体以组合的方式完成,因此指令执行时间上RISC较短,但RISC所须ROM空间相对的比较大,至于RAM使用大小应该与程序的应用比较有关系。
2。定址模式
CISC的需要较多的定址模式,而RISC只有少数的定址模式,因此CPU在计算记忆体有效位址时,CISC占用的汇流排周期较多。
3。指令的执行
CISC指令的格式长短不一,执行时的周期次数也不统一,而RISC结构刚好相反,故适合采用管线处理架构的设计,进而可以达到平均一周期完成一指令的方向努力。显然的,在设计上RISC较CISC简单,同时因为CISC的执行步骤过多,闲置的单元电路等待时间增长,不利于平行处理的设计,所以就效能而言RISC较CISC还是站了上风,但RISC因指令精简化后造成应用程式码变大,需要较大的程式记忆体空间,且存在指令种类较多等等的缺点。
80. 如何设计出具有照像、存储、输出、视频同步。本线路可接监视器,用为监视之用;在不拍照时,图像是时实的,在拍照的时候,在监视器的图像会停在那,显示所照的相片。照下来的照片可存储起来,要查看的时候可以调用。如何才能做到?
答:针对数位相机一些技术层面说明:
数位相机使用JPEG或MPEG-4影像压缩标准,其负责中枢的专用控制晶片组逐渐走向单晶片化,一般单晶片内含资料压缩与记忆体控制。若从整个系统的控制方式来看,影响数位相机质量的参数包含:镜头,曝光装置,观景窗,瞻前萤幕、影像储存,Gamma修正,彩色平衡与修正,储存装置与编辑软体等,主要分为两大控制部份:其一是负责I/O介面,JPEG影像处理,资料压缩与储存,其二是负责处理所有自动光学处理功能如自动光圈(Auto Iris,简称AI)、自动聚焦(Auto Focus,简称AF),自动曝光(Auto Exposure,简称AE)与白平衡(White Balance)控制,过去这两大部份的控制系使用两颗微控制器(MCU)分别处理,目前已渐由单颗MPU或DSP另加一颗微控制器组成所取代。
经由光电转换元件CCD(或CMOS Sensor)将撷取到的物体所反射光的亮度、色彩与分布处理以后转换成数位信号,再将拍得图像存至数位相机的记忆体里。信号传递方式是类比R。G。B。信号自CCD转换成数位R。G。B。,整个过程中经信号放大、Gamma修正与白平衡修正才得以达成;数位R。G。B。资料再转换成亮度资料(Y)与两色差(Cr,Cb)。当影像资料进行压缩,压缩比若为1/4时图像资料所占的记忆容量就跟着降至1/4,例如记忆容量6Mbit的图像资料
减至1。5Mbit,Y。Cr。Cb资料经再次取样重排后一个图框的数位资料记忆容量整个会降至3Mbit,其中Y占1。5Mbit, Cr、Cb两个合占1。5Mbit,整个转换过程不会影响垂直与水平的解析度,称为线的再次取样回复使用。
再论CCD(Charged Coupled Device)中文译为「电子耦合元件」,它就像传统相机的底片一样,是感应光线的装置,可以将它想像成一颗颗微小的感应粒子,铺满在光学镜头后方,当光线与影像从镜头透过、投射到CCD表面时,CCD就会产生电流,将感应到的内容转换成数位资料储存起来。CCD画素数目越多、单一画素尺寸越大,收集到的影像就会越清晰。因此,尽管CCD数目并不是决定影像品质的唯一重点,我们仍然可以把它当成相机等级的重要判准之一。
播放处理系经由记忆体读出所撷取之数位信号资料,透过解压缩电路及内插法处理转成PC或TV需要之信号。曝光控制,则由CCD(或CMOS)驱动电路里的Timing Generator来负责。
81. Holtek和AT系列编程有何不同,现有AT系列程序如何转为Holtek?
答:从指令集来看,ATMEL的AVR系列是8位RISC型的单片机,共有118条指令,而HOLTEK是63条指令,要将AVR的汇编程序转为HOLTEK的汇编需要熟悉两者的汇编指令将AVR的程序转译成HOLTEK汇编,而不能直接在HOLTEK芯片上使用,如果程序是用C编写,则大部分应该是可以直接使用的,但数据定义以及寄存器的定义可能需要改变;另外在编程的过程还需要考虑两者硬体结构的差异对指令实现功能的影响,有时候可能会因为硬体的不同,需要对项目进行重新的规划。
82. Holtek和AT系列有无FLASH可电擦写的型号?
答:目前HOLTEK没有FLASH可电擦写的型号,可以使用OTP芯片的DICE或者开窗片对EPROM进行紫外线擦除,实现对芯片的多次编程。
83. 在一个由MCU的产品中,开发完成,批量生产时,需要测试。然而,测试员可能不能测试到软件的每一处。在写程序时,做一个专门的测试流程,在某种条件满足时(比如几个键盘的同时按下),进入测试程序。测试程序中用一些比较短的时间来工作。如何实现?
答:以HOLTEK IC生产厂商的角度来看,对于一个MCU成品,一旦它的外围器件连接OK,它的MCU芯片基本逻辑功能运行正常,此MCU成品基本上就是良品了。因为IC在出厂前,都经过了逻辑、烧写测试,所以发给客户的封装片都是合格的。客户生产时所产生的不良片,大多数是I/O遭到破坏造成的(例如ESD破坏、高电压破坏),如果IC的I/O逻辑功能运行正常就说明此IC可以运行任何程序,并不需要测试到软件的每一处才能保证MCU成品的良率。因此您的测试方法已经可以保证IC的良率了。
84. 有没有很好的办法来解决加密问题但是又不破坏MCU的方法?
答:单片机系统产品的加密和解密技术永远是一个矛盾的统一体,针对科研成果保护是每一个科研人员最关心的事情,目的不使自己的辛苦劳动付注东流。对其单片机加密方法一般有采用软体加密,硬体加密,软硬体综合加密,时间加密,错误引导加密,专利保护等措施。有矛就有盾,有盾就有矛,有矛、有盾,才促进矛、盾质量水平的提高。而加密只讲盾的运用,以下就简单叙述加密的方法:
硬体加密:使他人不能读你的程式。
① 高电压或镭射烧断某条引脚,使其读不到内部程式,用高电压会造成一些器件损坏,即把单片机资料汇流排的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程式的正确代码。此外还有破坏EA引脚的方法。
② 重要 RAM 资料采用电池对RAM进行掉电资料保护。即先将一系列资料写入RAM并接上电池,然后将其余的晶片插上。这样,当单晶片微处理器系统运行后,CPU首先从RAM读出资料,这些资料可以是CPU执行程式的条件判别依据,也可以是CPU将要执行的程式。如果资料正确,整个系统正常运行。反之,系统不能运行。
③ 汇流排乱置法。汇流排乱置法通常是将MCU和EPROM之间的资料线和位址线的顺序乱置。软体加密:其目的是不让人读懂你的程式,不能修改程式,可以在程序重要资料区先用DES混码存放,但使用时须配合外面输入Decode码(金钥匙)来解编。或者是在无程式的空单元也加上程式机器码,最好要加巧妙一点等。
用真真假假方法加密:①擦除晶片标识。②DIP 封装改成 PLCC、TQFP、SOIC、BGA 等封装。
85. 在开发一个需要长时间可靠工作的控制系统(发电机系统),如何设计复位电路?
答:单片机复位可分为内部与外部事件复位。外部事件复位包括上电复位、RES复位和低电压复位。
上电复位和RES复位是人为的正常复位,以保证程序计数器被清零且程序从头开始执行。要正常进行这两种复位动作,需要外接正确的RES复位电路,一般来说不同的单片机的复位电路稍有不同,单片机厂商都会提供标准的复位电路资料。以HOLTEK IC为例,我们提供的复位电路是RES脚接100K欧姆的电阻至VDD;RES脚再接10K电阻和0。1uF的电容至VSS。
当电源电压受外部干扰,低于正常工作电压时,会造成程序功能运行不正常,严重的还可能造成单片机死机。此时发电机系统就会造成严重的后果,我们就需要用低电压复位来解决这个问题。通常我们可以用两个方法实现低电压复位:1、外加一个电压检测芯片(例如7033)加到RES脚上,当电源电压低于某个临界值时,电压检测芯片会给出一个低电平到RES脚是单片机复位,防止单片机死机。2、有些厂家的单片机内部会有一个低电压检测LVR的功能,例如HOLTEK单片机。当电源电压低于某一个临界值时,单片机会自动复位避免死机,外部不需要再连接任何检测电压的电路。
除了外部电源不稳定会造成单片机复位,内部WDT溢出也会造成复位,即内部事件复位。对于需要长时间稳定工作的系统来说,看门狗是十分必要的,它可以避免程序跑飞造成的错误。
当复位发生时,要保证复位后能与复位前的各个状态无缝的连接起来,就需要用软件来判定复位前程序执行到哪个程序段。以HOLTEK MCU为例,除了上电复位之外,通用寄存器复位前后的值不会发生变化。那么就可以设定一些寄存器记录程序当前运行在哪一个程序功能段。一旦发生复位,只需要读出那些寄存器的值就可以跳转到复位之前运行的程序功能段运行。另外HOLTE MCU内部有两个特殊标志位PD和TO,可以根据此两位的值来判定具体是什么原因造成
的复位。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0