单片机应用编程技巧问答(三)
扫描二维码
随时随地手机看文章
41. 通常采用什么方法来测试单片机系统的可靠性?
答:单片机系统可以分为软件和硬件两个方面,我们要保证单片机系统可靠性就必须从这两方面入手。
首先在设计单片机系统时,就应该充分考虑到外部的各种各样可能干扰,尽量利用单片机提供的一切手段去割断或者解决不良外部干扰造成的影响。我们以 HOLTEK最基本的I/O单片机HT48R05A-1为例,它内部提供了看门狗定时器WDT防止单片机内部程序乱跑出错;提供了低电压复位系统LVR, 当电压低于某个允许值时,单片机会自动RESET防止芯片被锁死;HOLTEK也提供了最佳的外围电路连接方案,最大可能的避免外部干扰对芯片的影响。
当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:
测试单片机软件功能的完善性。 这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。
上电掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。
老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
当然如果没有此类条件,可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。
42. 在开发单片机的系统时,具体有那些是衡量系统的稳定性的标准?
答:从工业的角度来看,衡量系统稳定性的标准有很多,也针对不同的产品标准不同。下面我们大概介绍单片机系统最常用的标准。
电试验(ESD)
参考标准: IEC 61000-4-2
本试验目的为测试试件承受直接来自操作者及相对对象所产生之静电放电效应的程度。
空间辐射耐受试验(RS)
参考标准:IEC 61000-4-3
本试验为验证试件对射频产生器透过空间散射之噪声耐受程度。
测试频率:80 MHz~1000 MHz
快速脉冲抗扰测试(EFT/B)
参考标准:IEC 61000-4-4
本试验目的为验证试件之电源线,信号线(控制线)遭受重复出现之快速瞬时丛讯时之耐受程度。
雷击试验(Surge)
参考标准 : IEC 61000-4-5
本试验为针对试件在操作状态下,承受对于开关或雷击瞬时之过电压/电流产生突波之耐受程度。
传导抗扰耐受性(CS)
参考标准:IEC 61000-4-6
本试验为验证试件对射频产生器透过电源线传导之噪声耐受程度。
测试频率范围:150 kHz~80 MHz
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提供一系列内核、体系扩展、微处理器和系统芯片方案,并且现在已经发展了好几种内核了,现在主要有以下几种:
ARM7:小型、快速、低能耗、集成式RISC内核
ARM7TDMI(Thumb):它将ARM7指令集同Thumb扩展结合在一起,减少了内存容量和系统成本;而且还利用嵌入式ICE调试技术,简化了系统设计;并且有DSP增强扩展改进了性能。
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上面去搜索一下,应该有比较多的链接地址。