新闻中心

EEPW首页>嵌入式系统>设计应用> 关于单片机的N多问题

关于单片机的N多问题

作者: 时间:2016-11-25 来源:网络 收藏
设计解码程序也可以分为三部分。
第一部分了解编码波形特性。从分析编码的高、低脉冲宽度入手,了解逻辑“1”和逻辑“0”的波形占空比、周期。了解头码的特性。
第二部分确定接收方式。一般我们可以用I/O口查询方法或者INT口中断响应方法来接收编码。这两者的区别是I/O口查询方式比较耗费单片机的运行时间资源,需要不断的去侦测I/O的电平变化,以免漏掉有效的码值;而INT口中断接收方式则比较节省资源,当外部有电平变化时,单片机才需要去处理,不需要时刻进行侦测。但是INT口中断接收方式不能辨别相同周期不同占空比的波形特性,当编码所携带的逻辑“1”和逻辑“0”具有这种特性时,就无法通过INT口中断接收方式来辨别了,因为INT中断只是在上升沿或者下降沿的时候才触发。
第三部分将接收的码值存储并分析执行。根据判断高低电平的宽度(定时器或者延时),可以得到码值,也就是我们所说的解码。一般我们连续收到3个相同的完整码值,就确认此码的确被发出,并接收成功。当解码结束,根据码值我们可以判断出是哪个按键被按下,由此去执行相对的按键功能。
HOLTEK公司的HT48以及HT49(带LCD)系列单片机,都可以符合大多数解码的任务。
32. 在学习单片机的过程中,如何理解预分频,12时钟模式(6时钟模型)等概念?
答:预分频器的英文是prescaler。它就是将输入的频率信号分频,然后再输出。HOLTEK公司有一款最基本的8位I/O型单片机HT48R05A-1,我们就以这款单片机为例说明。HT48R05A-1有一个8位向上计数的定时器Counter。系统时钟Fsys(4MHz)进入八阶预分频器(8-stage Prescaler)进行分频,再进入定时计数器Counter计数。根据软件设置,预分频器可以将Fsys进行2的n次方分频(n=1~8)。举例来说,如果软件设置为预分频器2分频,那幺预分频器输出的频率就是Fsys/2=2MHz,这个2MHz信号再进入定时计数器Counter。
如果需要HT48R05A-1或者其它各类HOLTEK单片机的详细资料,可以在如下地址下载:http://www.holtek.com.cn/referanc/htk_book.htm。
12时钟模式(6时钟模型)应该就是在MCS51系列中,12个系统时钟为一个机器周期,2个系统时钟为一个状态,即一个机器周期有6个状态。
33. A/D、D/A的采样速率与其它单片机相比有什么优势?
答:HOLTEK A/D Tyep MCU内嵌逐位逼近的A/D转换电路,精度有8bit/9bit/10bit,A/D转换时间最快为76us。
至于D/A,一般是指PWM输出,HOLTEK A/D Type MCU都带有8bit的PWM输出,但HOLTEK PWM的特点是其输出频率由系统频率决定(既系统频率选定后,PWM频率也就定了),其占空比通过对[PWM]寄存器赋值进行控制,不需要占用定时/计数器资源。
34. 采用AT89S51时,出现了按了复位按钮,RAM中的数据被修改了。这是怎么回事?注:数据放在特殊寄存器之外。
答:如果是RESET脚的复位按钮:一般MCU的RESET复位,其特殊寄存器会被重新初始化,而通用寄存器的值保持不变。
如果复位按钮是电源复位:那就是MCU的上电复位,其特殊寄存器会被初始化,而通用寄存器的值是随机数。
35. 将P2.7用来驱动一个NPN三极管,中间串接了一个1K的电阻。问题是:当我尝试向P2.7写1时,发现管脚只能输出大约0.5V的一个电平。这个电路的使用得妥当么?如何正确的使用IO功能?
答:是在仿真时遇到的问题,还是烧录芯片后遇到的问题?
可以先将P2.7的外部电路断开,测量输出电压是否正常。如果断开后输出电压正常,那就说明P2.7的驱动能力不够,不能驱动NPN三极管,应该改用PNP三极管(一般在MCU应用中,都采用PNP方式驱动)。如果断开后输出电压还不正常,那有可能是仿真器(或芯片)已经损坏。
36. 在做充电管理的时候,提高pwm的频率往往以牺牲精度为代价,如果用的AT90S4433(avr)、78P458(elan)频率分别做到16kHz(8bit)和32kHz(8bit),而希望做到的是100kHz(8bit以上),诸如atiny15那样。怎么办?
答:你所说的PWM是通过定时/计数器来控制其频率和占空比的,所以要提高频率,必然会降低精度。如果要提高PWM的频率,只能通过提高系统振荡频率来解决。
37. 汽车电子用的单片机是8位多,还是32位?如何看待单片机在汽车电子市场中的前景?
答:现今汽车制造也是一个进步很快的工业,特别是电子应用于汽车上,令多种新功能得以实现。
总的来说,汽车电子应用分三部份。
l 汽车发动机控制:限速控制,涡轮增压,燃料喷注控制等。
l 汽车舒适装置:遥控防盗系统,自动空调系统,影音播放系统,卫星导航系统等。
l 汽车操控和制动:刹车防抱死系统(ABS),循迹系统(TCS),防滑系统(ASR),电子稳定系统(ESP)等。
汽车上的各系统繁多,且日新月异,故利用何种单片机是依各系统规格,要求不一,但有一样可肯定是该单片机要符工业规格,才能忍受汽车应用的恶劣环境,高温,电源干扰,可靠度要求。不同档次的汽车其功能配置相对亦有差别,故8位单片机在较低阶的系统如机械控制,遥控防盗等应该还有空间,但高阶的系统如影音、导航及将来的无人驾驶,就非一般单片机能实现。
因汽车工业现阶段由欧美日数个大集团所把持,相关的汽车电子配件各集团会挑选单片机大厂合作,故汽车内置的电子系统亦由单片机大厂把持,市场只剩外置系统如遥控防盗,影音导航供小厂开发。
38. 在使用三星的s3c72n4时,觉得它的time/counter不够用。现在要同时用到3个counter,该怎么办?
答:您是需要三个外部counter还是需要三个定时器?如果是三个定时器标志的话,可以取这三个定时最基本的时基作为timer的基础计数,然后以这个时基来计算这三个需要的计数标志的flag,在程序中只需要查询flag是否到,再采取动作。
如果要3个外部脉冲计数的话,这个有一定的难度,如果外部脉冲不是很频繁,可以考虑通过外部中断进行,但是这个方法必须是外部脉冲的频率与MCU执行速度有一定的数量级差,否则mcu可能无法处理其它程序,一直在处理外部中断。
39. 在芯片集成技术日益进步的今天,单片机的集成技术发展也很迅速,在传统的40引脚的基础上,飞利浦公司推出20引脚的单片机系列,使很多的引脚可以复用,这种复用技术的使用在实际应用中会不会影响其功能的执行?
答:现在有很多品牌的单片机都有引脚复用功能,不止飞利浦一家,应该说这个方式前几年就已经有了。在实际应用中不会影响其功能的执行,但是要注意的是,有的MCU如果采用复用引脚的话,该引脚会有一些应用上的限制,这在相应的datasheet里面都会有描述,所以在系统规划的时候都要予以注意。
40. Delta-Sigma软件测量方式,是什么概念?
答:Delta-Sigma原理一般应用在ADC应用中。具体来说,Delta-Sigma ADC的工作原理是由差动器、积分器和比较器构成调制器,它们一起构成一个反馈环路。调制器以大大高于模拟输入信号带宽的速率运行,以便提供过采样。模拟输入与反馈信号(误差信号)进行差动 (delta)比较。该比较产生的差动输出馈送到积分器(sigma)中。然后将积分器的输出馈送到比较器中。比较器的输出同时将反馈信号(误差信号)传送到差动器,而自身被馈送到数字滤波器中。这种反馈环路的目的是使反馈信号(误差信号)趋于零。比较器输出的结果就是1/0 流。该流如果1密度较高,则意味着模拟输入电压较高;反之,0密度较高,则意味着模拟输入电压较低。接着将1/0流馈送到数字滤波器中,该滤波器通过过采样与抽样,将1/0流从高速率、低精度位流转换成低速率、高精度数字输出。
简而言之,Delta就是差动,Sigma就是积分的意思。Delta-Sigma软件测试,我的理解应该是通过软件模拟差动积分的过程。具体来说,就是侦测外部输入的电压(或者电流)信号变化,然后通过软件积分运算,得出外部信号随时间变化的基本状况。
41. 通常采用什么方法来测试单片机系统的可靠性?
答:单片机系统可以分为软件和硬件两个方面,我们要保证单片机系统可靠性就必须从这两方面入手。
首先在设计单片机系统时,就应该充分考虑到外部的各种各样可能干扰,尽量利用单片机提供的一切手段去割断或者解决不良外部干扰造成的影响。我们以HOLTEK最基本的I/O单片机HT48R05A-1为例,它内部提供了看门狗定时器WDT防止单片机内部程序乱跑出错;提供了低电压复位系统LVR,当电压低于某个允许值时,单片机会自动RESET防止芯片被锁死;HOLTEK也提供了最佳的外围电路连接方案,最大可能的避免外部干扰对芯片的影响。
当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:
l 测试单片机软件功能的完善性。 这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。
l 上电掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。
l 老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
l ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
当然如果没有此类条件,可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。
42. 在开发单片机的系统时,具体有那些是衡量系统的稳定性的标准?
答:从工业的角度来看,衡量系统稳定性的标准有很多,也针对不同的产品标准不同。下面我们大概介绍单片机系统最常用的标准。
l 电试验(ESD)
参考标准: IEC 61000-4-2
本试验目的为测试试件承受直接来自操作者及相对对象所产生之静电放电效应的程度。
l 空间辐射耐受试验(RS)
参考标准:IEC 61000-4-3
本试验为验证试件对射频产生器透过空间散射之噪声耐受程度。
测试频率:80 MHz~1000 MHz
l 快速脉冲抗扰测试(EFT/B)
参考标准:IEC 61000-4-4
本试验目的为验证试件之电源线,信号线(控制线)遭受重复出现之快速瞬时丛讯时之耐受程度。
l 雷击试验(Surge)
参考标准: IEC 61000-4-5
本试验为针对试件在操作状态下,承受对于开关或雷击瞬时之过电压/电流产生突波之耐受程度。
l 传导抗扰耐受性(CS)
参考标准:IEC 61000-4-6
本试验为验证试件对射频产生器透过电源线传导之噪声耐受程度。
测试频率范围:150 kHz~80 MHz
l Impulse
脉冲经由耦合注入电源线或控制线所作的杂抗扰性试验。
43. 在设计软体时,大多单片机都设有看门狗,需要在软体适当的位置去喂狗,以防止软体复位和软体进入死循环,如何适当的喂狗,即如何精确判定软体的运行时间?
答:大多数单片机都有看门狗定时器功能(WDT,Watch Dog Timer)以避免程序跑错。HOLTEK有一款基本I/O型单片机--HT48R05A-1,我们就以它为例做个说明吧。
首先了解一下WDT的基本结构,它其实是一个定时器,所谓的喂狗是指将此定时器清零。喂狗分为软件和硬件两种方法。软件喂狗就是用指令来清除WDT,即CLR WDT;硬件喂狗就是硬件复位RESET。当定时器溢出时,会造成WDT复位,也就是我们常说的看门狗起作用了。在程序正常执行时,我们并不希望WDT复位,所以要在看门狗溢出之前使用软件指令喂狗,也就是要计算WDT相隔多久时间会溢出一次。HT48R05A-1的WDT溢出时间计算公式是:256*Div*Tclock。其中Div是指wdt预分频数1~128,Tclock是指时钟来源周期。如果使用内部RC振荡作为WDT的时钟来源(RC时钟周期为65us/5V),最大的WDT溢出时间为2.1秒。
当我们得到了WDT溢出时间Twdt后,一般选择在Twdt/2左右的时间进行喂狗,以保证看门狗不会溢出,同时喂狗次数不会过多。
软件运行时间是根据不同的运行路线来决定的,如果可以预见软件运行的路线,那么可以根据T=n*T1来计算软件的运行时间。n是指运行的机器周期数,T1是指机器周期。HOLTEK单片机是RISC结构,大部分指令由一个机器周期组成,只需要知道软件运行了多少条指令,就可以算出运行时间了。HOLTEK的编译软件HT-IDE3000中,就有计算运行时间的工具。但是对于CISC结构的单片机,一条指令可以由若干个机器周期组成,那么就需要根据具体执行的指令来计算了。
44. 我们是一家开发数控系统的专业厂,利用各种单片机和CPU开发了很多产品,在软件开发上也采用了很多通用的抗干扰技术,如:软件陷阱、指令允余、看门狗和数字滤波等等,但实际运用中还是很不可靠,如:经常莫名其妙地死机、程序跳段、I/O数据错误等,并且故障的重复性很不确定,也不是周期性地重复。往往用户使用中出现故障,但又无法重现,很让人头痛。反复检查硬件也设查出原因,所以对软件的可靠性很是怀疑。怎么办?
答:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。
一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。
可以在定时中断里面设置一些暂存器累加,然后加到预先设定的值(一个比较长的时间),SET标志位,这些动作都在中断程序里面。而主程序只需要查询标志位就好了,但是注意标志位使用后,记得清除,还有中断里面的时基累加器使用以后也要记得清除。
45. 在单片机的应用方面应注重哪几个方面的学习?
答:学习的过程基本上可分四个阶段:
第一阶段是先浏览教科书里的硬体部分,大至了解单片机的硬体结构。如ROM、RAM、地址、I/O口等,以及看一些厂家的Data Sheet如HOLTEK网站有提供简体版各项MCU资料,来加强IC所提供各项资源的印象。
第二阶段就是了解二进位数字、十六进位数和软体方面的内容。尽管有很多高阶语言可用于单片机的编程,但我觉得初学还是以组合语言为好(即汇编语言),更有利于和硬体结合,掌握硬体结构。知道组合语言、机器语言、指令、程式、根源程式、目的程式等概念后,就从MOV指令开始,学习组合语言和编程,在此如HOLTEK的MCU组合语言系统有63条指令,简单又好理解它们怎样和硬体联系,更有助于一般学习单片机的指令整合与运用.因此其方法可先了解几条基本的MOV指令和它的机器语言,大致建立起单片机的硬体和软体概念,来知道单片机的硬体是由指令控制指挥的。
第三阶段按照编程器的使用手册,熟悉使用编程器。现在的编程器一般都和电脑相连,只要具备基本电脑知识的人都可很快掌握操作步骤。如果初学者想要快点熟悉使用单片机的开发系统,HOLTEK有提供单片机开发系统详细操作资料,可上HOLTEK网站(www.holtek.com.cn) 来Download HT-IDE3000使用手册
第四阶段是依靠实验板,学习掌握单片机的组合语言指令系统和简单编程。同时和前面所学硬体知识结合组装,起到主学软体,巩固硬体的双重作用。开始时可用别人编的简单程式在实验板上进行验证、分析,主要是熟悉该学习方法,在应用方面主要针对单片机I/O各项介面的使用,如A/D,D/A,PWM输出口的应用,LCD与VFD的控制,以及如何规范各项串列输出入口的通讯协定等,对其所控制的各项元器件须先分析驱动能力,如电流电压问题等。
46. 当今世界单片机的应用与发展有什么不同?
答:对于应用与发展是一体两面,是以市场为导向,当有市场需求时,在其应用层面的规划和分析,而引导单片机朝此方面的发展。
47. 在中国,单片机在哪方面有较好的前景?
答:观察之前几年以来各家厂商的销售地区比重,可以发现中国大陆市场比重逐渐提升,台湾与北美市场则逐渐衰退,主要原因在于多项产品制造基地转移至大陆,MCU在大陆的需求也随之提升。销货至大陆的MCU产品,多应用于电话、Caller ID、玩具与LCD等产品,预计在未来,销货至大陆的比重仍将持续增加。在中国产品应用领域可分为五大项目,包括电脑周边(高速Modem、DSC、NB中的电源管理等)、通讯产业、消费性产品(家电、冷气等)、车用市场(定速器、控制器、防盗器)及工业上的应用。有部份厂家将特别瞄准消费性产品市场跨入,如Audio方式将朝多媒、MP3解决方案前进,另外在PC连结应用上,包括无线、网路及标准应用产品,都会有一系列产品推出。另外在电源系统应用方面,在UPS(不断电系统)、Server Power(伺服器电源)、Charger(充电器)等应用上;以及周边应用领域方面,针对Game Device、记忆卡、读卡机、及Pen Drive(随身碟)等应用上。逻辑IC包括微处理器(MPU)、微控制器(MCU)、特殊应用IC(ASIC)、可程式逻辑元件(PLD)以及一般的标准应用IC(ASSP)等,不同的逻辑IC有其发展方向,而MCU产品则朝向整合型产品发展,希望能在单一的IC中加入更多的功能,以降低使用者在系统设计上的困难度与成本。
48. 虽然16位也很多,但是真正低端用户还是用4,8位。高性能要求的现在可以选用32位单片机。而16位只能是充当一个过渡的角色。这样认为对吗?
答:基本上可以这样说,微控制器历经4位元、8位元、16及32位元等开发过程,投入厂商众多,亦无所不在地应用于各种生活领域,只要与操作介面有关的范围,都能发现MCU的踪迹,MCU的使用数量,在国外甚至成为评估收入、经济状况的指标之一。由于汽车、家电和消费电子产品的销售稳健,因此将使2003年MCU市场充满活力。32位元MCU市场之中,成长最快的领域仍属因汽车、可上网手机、PDA、印表机、数位相机、高速MODEM和其它应用对其需求较大,市场机构预估2003年将成长30%、2004年上升38%。虽然32 bit市场成长潜力雄厚,不过目前能以32 bit为主力的厂商毕竟少数,而无论是国内外的IC供应商,现阶段的产品发展策略重心仍摆在8 bit领域的市场之中,而8 bit及32 bit MCU也成为厂商跨入发展的对象,至于16 bit MCU产品虽然速度比8 bit快,但由于16 bit介于8与32之中尴尬位置,且32 bit价格也逼近16 bit,因此对于业者对于16 bit产品的着墨程度相较之下少了许多。
49. 将原来的51系统过渡到ARM系统,需要注意哪些事情以及如何入手?
答:51系统转为ARM系统是比较困难的。ARM提供一系列内核、体系扩展、微处理器和系统芯片方案,并且现在已经发展了好几种内核了,现在主要有以下几种:
l ARM7:小型、快速、低能耗、集成式RISC内核
l ARM7TDMI(Thumb):它将ARM7指令集同Thumb扩展结合在一起,减少了内存容量和系统成本;而且还利用嵌入式ICE调试技术,简化了系统设计;并且有DSP增强扩展改进了性能。
l ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。
如果只是想学习上手的话,建议先做个最小系统板,根据硬件写一个能够启动的小代码包括初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的重映射;配置中断句柄,连接到C语言入口。其实还是多实践,多点经验,多上上电子网站,吸取他人的开发经验,会对自己的成长有所帮助的。
50. Holtek的编程语句是否就是C51或是相关的,能否介绍有关汽车电子设计的资料或网站地址?
答:HOLTEK的编程语句就汇编指令来说,与MCS51是不一样的,但是很多指令比较类似;而C语言,每家公司的C编译器都会有点差异,但是很多与TURBO C相似,所以还是有很大相似性,所以可读性要比汇编语言好得多,但是不同厂家也还是有一定差别,HOLTEK C语言的介绍请下载http://www.holtek.com.cn/referanc/ht-ide3k.pdf,第十章有详细介绍。而关于汽车电子设计的资料或网站地址您可以到GOOGLE上面去搜索一下,应该有比较多的链接地址。
51. 如何理解如下概念:
MTP = Multi-Time Programming (via parallel programmer)
ISP = In-System Programming (via serial interface)
IAP = In-Application Programming ?
答:MTP即指单片机的程序可重复烧写,其程序记忆体(Program ROM)可分以下几种:
l Window with EPROM:提供使用者更改程式的空间,具视窗式陶瓷包装,利用紫外线灯清除资料,可重复烧写,但包装成本非常高,仅适合小量生产或实验使用。
l EEPROM:属于可重复写入/清除之元件,此类记忆体使得程式之内容可加以清除或修改,而无需使用开窗之包装,可节省包装之成本,亦方便重复使用,但生产制程较复杂。
l Flash EPROM:当须要清除/写入较大量的非挥发性程式记忆体时,Flash EPROM比传统式EEPROM可提供较好的解决之道,因为Flash EPROM较EEPROM于清除/写入周期次数及速度上表现更好。利用Flash ROM来当作程式记忆体,由于封装上不需要EPROM特殊的视窗式陶瓷包装,使用上价格与OTP(One Time Programming)相差不大,相当合理,又具有多次重复烧写的功能
ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。ISP的实现相对要简单一些,一般需要很少的外部电路辅助实现,通用做法是内部的记忆体可以由上位机的软体通过串口来进行改写。对于单片机来讲可以通过SPI或其他的串列介面接收上位机传来的资料并写入记忆体中。所以即使我们将晶片焊接在电路板上,只要留出和上位机介面的这个串口,就可以实现晶片内部记忆体的改写,而无须再取下晶片。
ISP的优点 ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机晶片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出晶片对晶片和电路板带来的不便。
IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自己重新编程,即可用程式来改变程式。IAP的实现相对要复杂一些,在实现IAP功能时,单片机内部一定要有两块存储区,一般一块被称为BOOT区,另外一块被称为存储区。单片机上电运行在BOOT区,如果有外部改写程式的条件满足,则对存储区的程式进行改写操作。如果外部改写程式的条件不满足,程式指标跳到存储区,开始执行放在存储区的程式,这样便实现了IAP功能。IAP技术是从结构上将Flash记忆体映射为两个存储体,当运行一个存储体上的用户程式时,可对另一个存储体重新编程,之后将程式从一个存储体转向另一个。
IAP的优点 IAP技术是从结构上将Flash记忆体映射为两个存储体,当运行一个存储体上的用户程式时,可对另一个存储体重新编程,之后将程式从一个存储体转向另一个。而IAP的实现更加灵活,通常可利用单片机的串列口接到电脑的RS232口,通过专门设计的固件程式来编程内部记忆体,可以通过现有的INTERNET或其他通讯方式很方便地实现远端升级和维护。
52. 目前市场上单片机开发系统产品型号很多。想开发51系列单片机,选用什么型号的仿真器和编程器(每次编一片即可)比较好?
答:正如您所说的现在51系列单片机的仿真器产品型号很多,关于选用什么型号的仿真器,因为HOLTEK的IC不是51内核,仿真器都是HOLTEK自行开发,故并不能给你非常好的建议。而且市面的51仿真器,林林总总1500--10000价格不等,所以要选择的话可以在网上google一下有关仿真器的论坛,看看其他用户的评价,选择一个性价比最好的仿真器。
53. HOLTEK的C语言是否有关于位操作和读定义的寄存器地址的指令,如果有,它们是什么?
答:HOLTEK的C语言与标准C类似,不仅有标准C的位操作、&(按位与、按位或)、^(按位异或)、~(取反)、<<(左移)和>>(右移);还有相应的内建函数实现对整型和长整型的带和不带进位C的左移和右移。对已定义变量的地址的操作也与标准C相同,可通过指针运算符 * 和 & 来实现。
54. 在完成程序编写运行以后看到的结果是存储器中从R0到R7都被占用,而我根本就没用到几个,这是为什么?
答:要看用的是什么型号的单片机,不同型号的单片机R0到R7的定义是不同的。如果R0~R7是被定义成特殊寄存器的话,那么运行过程中自然会影响到这些寄存器,例如执行运算程序就会影响状态特殊寄存器的值。如果R0~R7是被定义成通用寄存器的话,那么可能就是在程序的开头没有初始化,单片机在上电复位时,通用寄存器的值通常是随机的。
55. 请推荐一些比较好的理论及实践教材,以其配套的编译仿真烧录的硬软件?
答:当今单片机市场种类繁多,应用广泛。以HOLTEK公司为例。HOTLEK的单片机是RISC结构的8位单片机,它可以广泛应用在家用电器、安全系统、掌上游戏等方面。大概来说可以分成I/O型单片机、LCD型单片机、A/D型单片机、A/D with LCD型单片机等等。这些单片机的中文资料我们都公开在HOLTEK网站www.Holtek.com.cn。HOLTEK各类单片机的使用手册下载地址:http://www.holtek.com.cn/referanc/htk_book.htm;HOLTEK单片机软件/硬件应用范例下载地址:http://www.holtek.com.cn/tech/appnote/appnote.htm;HOLTEK单片机支持工具下载地址:http://www.holtek.com.cn/tech/tool/tool.htm。
56. 将PWM做到100kHz(8bit以上)的方法有哪些?最好是支持C编译的。
答:要做到PWM频率100kHz(8bit)以上,单片机的频率要求100kHz*256=25。6MHz。所以,要实现这种要求的单片机需要满足两个条件:1。单片机有PWM输出;2。系统频率达到25。6MHz,或者单片机内部能自己提供25。6MHz的频率(ATtiny15内部就有提供一个25。6MHz的频率做为定时/计数器的时钟)。
57. ARM董事长认为,医疗电子将成为下一个10年推动电子产业增长的动力,EMS预测医疗电子将成为最大的代工市场。蓝牙使医疗产品移动能力增强将会广泛应用,那么随着医疗电子发展,单片机在这一领域应用会变大吗?医疗电子应用的最多是几位单片机?
答:随着16/32位嵌入式RISC发展,是会扩大医疗电子领域的应用。
一般的电子医疗保健系列产品有如下:笔式电子体温计、婴儿奶嘴式电子体温计、测温音乐奶瓶、妇女电子体温计,电子血压计等系列产品,在医疗电子仪器有酸碱度测定器,比色计等此类产品可用8位单片机来完成。
但从研究制造方面来说,针对医疗电子仪器,目前已有厂商制造心电图机、酸碱度测定器、电子测温计等仪器,仪器中心可自制示波器(oscilloscope)、显微镜等,以及X光机、超声诊断仪、电脑断层成像系统、心脏起博器、监护仪、辅助诊断系统、专家系统等,较大型复制的医疗嵌入式系统电子仪器就须用上16位,32位单片机来完成。
58. 普通商业级单片机的使用温度范围为0-70度,在低于0度和高于70度环境中使用会出现什么问题?商业级芯片和工业及芯片除温度范围不同外,在其他方面还有区别吗?(如抗干扰性能)
答:一般单片机根据工作温度可分为民用级(商业级)、工业级和军用级三种:民用级的温度范围是0℃~70℃,工业级是-40℃~85℃,其HOLTEK的MCU就属于此项等级,军用级是-55℃~125℃。如果是一般普通商业级单片机,在超规格范围使用IC时,就有可能部份IC无法工作,或工作运作不正常等发生。
至于抗干扰性能,是属于整个产品的EMS(电磁杂讯耐受性)检测,它是EMC(电磁相容)中的一项检测,另一项是EMI(电磁辐射干扰)。各国都有其EMC认证标准,例如目前在欧洲EMC指令下常用的测试规范下,针对其中法规EN61000-4-2是做静电试验(ESD),本项试验目的为测试试件承受直接来自操作者及相对物件所产生之静电放电效应的程度,其法规范如下:
l Air Discharge
l Leve1 2KV
l Leve2 4KV
l Leve3 8KV
l Leve4 15KV
以上是举个例子,就如抗静电能力,不只跟IC性能有关,也跟应用电路及PCB Layout有直接关联.
59. 各种各样的输入怎么样与MCU进行通讯?
答:首先必须确定此类输入信号是否与MCU系统的信号电平兼容,如果不兼容,则需要外接电路或用集成块来完成电平转换。其次就是选择通讯方式,通信的基本方式分为并行通信和串行通信,两者各有其优劣,并行通信速度快,缺点是数据有多少位,就需要多少根传输线。这在位数较多,传输距离又远时就不太适宜;而串行通信与前者相反,传输成本低,但是传送速度较低。最后,为了确保通信的成功,通信双方必须有一系列的约定,即通信协议,它对什么时候开始通信、什么时候结束通信、何时交换信息等问题都必须作出明确的规定。
60. 那种型号的51单片机具有两个串口、16KEPROM、512个字节的RAM?
答:PHILIPS半导体的P87C591应该能满足此条件,目前生产51单片机的半导体厂家有INTEL、ATMEL、PHILIPS、ANANOG DEVICES、DALLAS等,可以登陆其网站,查询相应的产品信息。
61. 在嵌入式开发中软件抗干扰有哪些问题?如何解决?
答:关于软件抗干扰问题和策略,如果在实际应用中能很好的遵循这些原则,再配合硬件电路的抗干扰措施,基本上可以消除干扰影响。但有时往往因为程序本身的复杂度和芯片资源的限制,再加上编程人员本身的能力限制,不能做到十分完善。所以我们只能给出一些建议,至于具体的实现,就需要各位在平时的项目实践中不断的摸索和积累经验。以下是之前有关软件抗干扰的问题答复,谨供参考:
防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。
一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。
62. 语音识别会不会是单片机下个消费热点?
答:语音识别在多年前即开始应用在低阶玩具上,如遥控车的左右前后控制,教育玩具利用发语音方式,依记忆体大少能容纳的长度经压缩编码采集后储存各字词,日后再发相同语音经单片机处理辨识后,即可作出相应动作。依成本不同,影响相关的MCU资源和速度,以及所利用的辨识技术algorithm (运算法则)的优劣,记忆体大少等,所设计出的产品其辨识率和字词长度亦有很大差异。此低阶市场在现今芯片价格下降应有可为,就看产品创新应用是否吸引人!高阶的语音识别应用是在PC(个人计算机)上,有CPU等级的资源速度和硬盘大少的记忆容量,但此市场和硬件(单片机)无关!
另一个语音识别应用是嵌入式系统,如目前的手机大都配备语音辨识电话簿,其实一般的嵌入式系统如PDA,DSC,MP3……等都有能力builtin此功能,就看需占用多少硬件资源和所能作出的效果。产品的功能定位很重要,语音识别是否必需要评估实际使用率!
63. 如何设计实现一个共模范围在0 - 120V 之间的低成本测量电池组电压的装置?
答:这里所谓高共模输入电压,是指高范围的同相输入电压,下面先说明运放一些概念:
运放有所谓的dynamic range是指运放(OP)未饱和时,正常动作时的输出、入电压范围。一般而言dynamic range越大,电源电压的有效利用率越高,例如处理同等级的信号时,就不需刻意提高电源电压也获得省能源效应。尤其是可携式消费性电子产品要求低电压低耗电量的场合,高效率的电源电压始终是备受重视的焦点,尤其是运放的ground电位,若是设于Vcc~VEE正负电源电压的中点(亦即动作点)时,就可获得极宽广的dynamic range。有鉴于此设计人员通常会在不减损输出dynamic range的前提下,使输入dynamic range大于输出dynamic range。
输入信号的电位为VEE(电源电压)时,有些OP它的极性会造成反转,虽然Output允许因过大输入造成的饱和,不过大部份的情况却不允许极性反转,所以两单电源用在运放输入信号到达VEE之前输出会反转。需注意的是即使是单电源使用运放,如果超越VEE下0。5V亦即VEE-0。5V 时,输出的极性也可能会反转。
所谓的同相输入电压范围VICM(共模输入电压)是指两个输入端子与ground之间,可施加的同相电压范围。虽然施加的同相电压超过该范围时,并不会造成元件损坏等问题,不过却会使运放的功能停止。只要差动输入电压作为增幅器时的动作正常基本上是0伏特。同相输入电压范围VICM与正负电源电压相同是属于理想状态。
一般运放会利用差动放大器的CMR(共模信号消除比)来做相同成份的去除时,在有必要将同相范围扩大的情况,可用增益(Game)1/10的反相放大器A2 之输入Vs2讯号,另外用加法方式再加入一级也是增益(Game)1/10反相放大器A1之输入Vs1讯号,这样就可以达到同相输入范围扩大之差动放大。 
如果要设计共模范围在0 - 120V 之间,其上述反相放大器A1,可用R1=100K,Rf=10K,而反相放大器A2,也是用R1=100K, Rf=10K,并且反相放大器A1输出串一10K电阻到反相放大器A2的负端输入口即可。
64. 在使用单片机控制LCD的时候,利用T1的溢出中断显示刷新时钟信息,在主程序循环时中为了显示浮点数,不断调用了spritf()函数,可是时钟信息不在刷新了,把这个函数屏蔽后,就恢复正常,请问调用这个函数会不会影响定时/计数器的中断?
答:这应该与程序有关,一般来说sprintf()函数,不会影响定时/计数器的中断,因为没看到具体程序,所以猜测原因可能是程序里面对定时器初始化的部分与sprintf()使用的buffer有些冲突,造成了定时器初始化的错误。
65. LM4915是什么IC?
答:LM4915是一款音频功率放大器,常用于带单听筒的手机、PDA和其他的便携式音频装置等低电压的应用场合,在外接极少的元器件情况下,为其提供高质量的功率输出以驱动发声装置。
66. 现在RISC架构的单片机应用很广,它的主要特点是什么?优越性在哪里?还有处理器中哈佛结构有什么特点?
答:在MCU开发方面,以架构而言,可分为两大主流;RISC(Reduced Instruction Set Computer)与CISC(Complex Instruction Set Computer), RISC代表MCU的所有指令都是利用一些简单的指令组成的,简单的指令代表 MCU 的线路可以尽量做到最佳化,而提高执行速率,相对的使得一个指令所需的时间减到最短。HOLTEK的一系列MCU便是采用 RISC 结构来设计。
再说RISC因为指令集的精简,所以许多工作都必须组合简单的指令,而针对较复杂组合的工作便需要由『编译程式』(compiler) 来执行,而 CISC MCU因为硬体所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代替,compiler 的工作因而减少许多。以一个数值运算程式来说,使用 CISC 指令集的MCU运算对于一个积分运算式可能只需要十个机器指令,而 RISC MCU在执行相同的程式时,却因为CPU 本身不提供浮点数乘法的指令,所以可能需要执行上百个机器指令 (但每一个指令可能只需要 CISC 指令十分之一的时间),而由程式语言转换成机器指令的动作是由程式语言的 Compiler 来执行,所以在 RISC MCU的Compiler 便会较复杂 。因为同样一个高阶语言 A=B*C 的运算,在 RISC MCU转换为机器指令可能有许多种组合,而每一种组合的『时间/空间』组合都不尽相同。所以 RISC 与 CISC 的取舍之间,似乎也是MCU硬体架构与软体(Compiler) 的平衡之争,应该没有绝对优势的一方,只能说因应不同的需求而有不同的产品,例如工作单纯的印表机核心 MCU,便适合使用效能稳定,但单位指令效率较佳的 RISC MCU。
对单片机处理方式而言,目前单片机的系统结构有两种类型:一种是将程式和资料记忆体分开使用,即哈佛(Harvard)结构,当前的单片机大都是这种结构。另一种是采用和PC机的冯。诺依曼(Von Neumann)类似的原理,对程式和资料记忆体不作逻辑上的区分,即普林斯顿(Princeton)结构.
67. 在很多情况下,以单片机为主控制器的测量系统要长时间保持无故障运行,因此其自诊断就成为关键。请介绍一下有关单片机系统的故障自诊断的一些知识?
答:要保证系统可以长时间故障运行,防止干扰是很重要的。最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。
一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。
68. MCU的功能只有在ROM中写入程序代码后才能显现出来。测试MCU时都是向ROM写入程序后并向输入管脚提供相应的测试矢量的情况进行的,然后对于OTP型MCU,只能一次编程,所以每次对封装后成品测试时,测试一个就废掉一个。据我所知,Holtek的MCU多为OTP版本单片机,Holtek是如何解决这个测试问题?
答:如果是IC生产厂商的测试人员,以HOLTEK的经验来说测试分两个步骤。一、对裸片的ROM烧入 Code测试,看IC是否能正常写入程序。如果测试通过,则使用紫外线擦去裸片的ROM Code,进行封装。二、使用外部测试电路来测试封装IC的逻辑电路。
如果是从厂商处拿到封装片后自行测试销售,那么所能做的就只是通过测量I/O口电阻,二极管值等参数,来测量IC的逻辑电路。无法测试ROM code是否能写入正确,除非是IC的原设计者,知道如何对IC预留的Test Rom(如果有预留的话)进行测试。
69. 作为IC生产厂商的测试人员,是在整个Wafer上进行的,还是将Wafer切割成Die后对单个Die进行?
答:裸片烧ROM Code是使用针压机器来烧录,所以必须是整个Wafer一起烧,单个Die无法排列整齐供烧录。
70. “裸片烧ROM Code是使用针压机器来烧录,所以必须是整个Wafer一起烧,单个Die无法排列整齐供烧录。” 这个阶段测试仅用来测试OTP本身,还是写入有针对性的程序代码并在输入管脚施加相应测试矢量来测试整个MCU的功能是否正确?
答:在芯片还未经分割的wafer阶段,在测试时当然要把DC test, Function test……等完成。如果是OTP 型式的芯片还需把烧code工作也一并解决。切割后就处理困难了!Probe Tester其实分两部份,Probe(针压)是机械部份,有位置对准和芯片排测功能。可把芯片上各端口引出至后部的Tester,Tester基本上是个特别配套的计算机装置,经编写不同的测试程序便可测试不同的芯片。
71. 如何编写一个很好测试程序代码以达到较高的功能测试覆盖度?
答:应在芯片电路最初的设计及仿真阶段,就要规划好测试的方法,由于现今已经有很power的芯片设计和测试pattern工具,所以很快就能算出Test pattern coverage(测试覆盖率-电路logic的0/1toggle rate)是否合要求!至于测试MCU,应该是执行一些内建测试指令使所有电路都曾经toggle过即可,这和指令组合变化无关。
72. 如果封装对OTP产生了影响,导致芯片不能正常工作,而MCU的逻辑电路又是测试合格的,如何解决呢?
答:封装后,我们分三个步骤测试OTP。1、查空,看芯片内部ROM是否为空。2、写入一部分所需Code,验证是否ok。3、测试逻辑电路,一旦裸片被刮坏的话,静态电流就会变大。一旦这三个步骤测试OK,那么基本上OTP封装片就是合格的。

关键词:单片机问

评论


技术专区