主题:深圳单片机培训,学单片机的三部曲
硅谷芯微
[专家分:0] 发布于 2011-09-15 11:00:00
单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,可以分为三个阶段。
第一阶段:掌握开发单片机的必备基础知识。首先是熟练掌握单片机的基本原理,其实各家各门的单片机其基本结构和原理都差不多,特别是共有的知识需要好好理解和掌握。例如,内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等一些最基本的概念和原理。除此之外,我们还需要具备模拟电子、数字电子、C语言程序开发知识以及原理图和PCB设计等一些技能。在进行系统开发的时候,进行原理设计、PCB布板、程序编写、系统联调这些工作都是在所难免的。
第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机的独有技术,学不了那么多也要多了解了解。同时尽可能多地掌握单片机的一些外围器件和常用电路,以备不时之需。有时候客户要求低成本,那我们只好选用合钛、义隆、华邦等这类台湾芯片;如果客户要求工业级的性能,那么我们就得从PIC、NEC、飞思卡尔、NXP等这些欧美和日式单片机中选择;若要进行功耗的开发,选用MSP430系列应该有一定优势;在进行测量仪器设计的时候,C8051和AduC842这类数模混合芯片就显得比较方便。所以说最好每个类型的单片机都会一两款,在实际项目选型中可以更加灵活。另外,要注意平时的技术积累。比如,在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,在其他的项目开发中,有同样或者接近的需求时马上就可以使用,又快又好。
第三阶段:在实际的项目开发过程中,不断深化单片机应用技术,不断积累应用行业的专业知识。例如,我完成了“高精度电感微位移测量系统”,就会对电感传感器的测量机理和信号特性、测量电路的设计、电磁兼容处理、误差修正和非线性处理等测控方面的专业技术有很深的认识。以后碰到类似的项目时,很多东西就可以直接利用了。有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法,再结合实际的应用背景,那么就可以随心所欲,设计出性能最优、结构最合理的单片机应用系统。
硅谷芯微技术学院单片机开班信息:
课程1:单片机工程师全程培训班(可包就业、学会为止,入学既签协议)
课程2:单片机驱动开发班(驱动)
课程3:单片机C应用班(C语言)
课程4:单片机技术开发班(汇编)
回复列表 (共100个回复)
51 楼
CQ2011 [专家分:0] 发布于 2011-11-17 10:26:00
如果准备估计一个算法的MIPS,有什么好的途径?
答:算法的运行时间是指一个算法在计算机上运算所花费的时间。它大致等于计算机执行简单操作(如赋值操作,比较操作等)所需要的时间与算法中进行简单操作次数的乘积。通常把算法中包含简单操作次数的多少叫做算法的时间复杂性。它是一个算法运行时间的相对量度,一般用数量级的形式给出。度量一个程序的执行时间通常有两种方法:
 一种是事后统计的方法。因为很多计算机内部都有计时功能,不同算法的程序可通过一组或若干组相同的统计数据以分辨优劣。但这种方法有两个缺陷:一是必须先运行依据算法编制的程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。因此人们常常采用另一种事前分析估算的方法。
 一种是事前分析估算的方法。一个程序在计算机上运行时所消耗的时间取决于下列因素:
(1)依据的算法选用何种策略;
(2)问题的规模。例如求100以内还是1000以内的素数;
(3)书写程序的语言。对于同一个算法,实现语言的级别越高,执行效率就越低;
(4)编译程序所产生的机器代码的质量。这个跟编译器有关;
(5)机器执行指令的速度。
显然,同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行时,效率均不相同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。
一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本运算的原操作,以该基本操作重复执行的次数作为算法的时间度量。
算法的MIPS有专门的一门学问,可以去好好参考相关的数据结构书籍。
52 楼
CQ2011 [专家分:0] 发布于 2011-11-18 10:25:00
通常采用什么方法来测试单片机系统的可靠性?
答:单片机系统可以分为软件和硬件两个方面,我们要保证单片机系统可靠性就必须从这两方面入手。
首先在设计单片机系统时,就应该充分考虑到外部的各种各样可能干扰,尽量利用单片机提供的一切手段去割断或者解决不良外部干扰造成的影响。我们以HOLTEK最基本的I/O单片机HT48R05A-1为例,它内部提供了看门狗定时器WDT防止单片机内部程序乱跑出错;提供了低电压复位系统LVR,当电压低于某个允许值时,单片机会自动RESET防止芯片被锁死;HOLTEK也提供了最佳的外围电路连接方案,最大可能的避免外部干扰对芯片的影响。
当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:

测试单片机软件功能的完善性。 这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。

上电掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。

老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
 ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
当然如果没有此类条件,可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。
53 楼
CQ2011 [专家分:0] 发布于 2011-11-20 10:56:00
在单片机的应用方面应注重哪几个方面的学习?
答:学习的过程基本上可分四个阶段:
第一阶段是先浏览教科书里的硬体部分,大至了解单片机的硬体结构。如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的控制,以及如何规范各项串列输出入口的通讯协定等,对其所控制的各项元器件须先分析驱动能力,如电流电压问题等。
54 楼
CQ2011 [专家分:0] 发布于 2011-11-21 10:39:00
将原来的51系统过渡到ARM系统,需要注意哪些事情以及如何入手?
答:51系统转为ARM系统是比较困难的。ARM提供一系列内核、体系扩展、微处理器和系统芯片方案,并且现在已经发展了好几种内核了,现在主要有以下几种:
 ARM7:小型、快速、低能耗、集成式RISC内核
 ARM7TDMI(Thumb):它将ARM7指令集同Thumb扩展结合在一起,减少了内存容量和系统成本;而且还利用嵌入式ICE调试技术,简化了系统设计;并且有DSP增强扩展改进了性能。
 ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。
如果只是想学习上手的话,建议先做个最小系统板,根据硬件写一个能够启动的小代码包括初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的重映射;配置中断句柄,连接到C语言入口。其实还是多实践,多点经验,多上上电子网站,吸取他人的开发经验,会对自己的成长有所帮助的。
55 楼
CQ2011 [专家分:0] 发布于 2011-11-22 10:44:00
普通商业级单片机的使用温度范围为0-70度,在低于0度和高于70度环境中使用会出现什么问题?商业级芯片和工业及芯片除温度范围不同外,在其他方面还有区别吗?(如抗干扰性能)
答:一般单片机根据工作温度可分为民用级(商业级)、工业级和军用级三种:民用级的温度范围是0℃~70℃,工业级是-40℃~85℃,军用级是-55℃~125℃。如果是一般普通商业级单片机,在超规格范围使用IC时,就有可能部份IC无法工作,或工作运作不正常等发生。
至于抗干扰性能,是属于整个产品的EMS(电磁杂讯耐受性)检测,它是EMC(电磁相容)中的一项检测, 另一项是EMI(电磁辐射干扰)。各国都有其EMC认证标准,例如目前在欧洲EMC指令下常用的测试规范下,针对其中法规EN61000-4-2是做静电试验(ESD),本项试验目的为测试试件承受直接来自操作者及相对物件所产生之静电放电效应的程度,其法规范如下:
 Air Discharge
 Leve1 2KV
 Leve2 4KV
 Leve3 8KV
 Leve4 15KV
以上是举个例子,就如抗静电能力,不只跟IC性能有关,也跟应用电路及PCB Layout有直接关联。
嵌入式技术的掌握是需要一个过程的
实事求是的说,嵌入式技术的全面掌握是有相当难度的。可以轻轻松松学会嵌入式技术的说法是夸大其词了。这个就像学英语一样,学英语无论怎样学,不管是“疯狂学”还是用新理念来学,真正掌握的话还是需要一步步积累才能熟练掌握。在此,我建议大家不要想在几天内学会嵌入式,成为这方面的高手。这些想法本身是不太现实的。
现在我们需要做的是:
第一:把心踏实下来,做好打硬仗的准备。
第二:注意学习方法。尽量不要走弯路,争取一鼓作气入门。一旦入门了以后呢就好办了。嵌入式技术的掌握,本身呢就比较难,要是再走些弯路,时间上会浪费,甚至会影响学习的信心。
56 楼
CQ2011 [专家分:0] 发布于 2011-11-22 10:45:00
普通商业级单片机的使用温度范围为0-70度,在低于0度和高于70度环境中使用会出现什么问题?商业级芯片和工业及芯片除温度范围不同外,在其他方面还有区别吗?(如抗干扰性能)
答:一般单片机根据工作温度可分为民用级(商业级)、工业级和军用级三种:民用级的温度范围是0℃~70℃,工业级是-40℃~85℃,军用级是-55℃~125℃。如果是一般普通商业级单片机,在超规格范围使用IC时,就有可能部份IC无法工作,或工作运作不正常等发生。
至于抗干扰性能,是属于整个产品的EMS(电磁杂讯耐受性)检测,它是EMC(电磁相容)中的一项检测, 另一项是EMI(电磁辐射干扰)。各国都有其EMC认证标准,例如目前在欧洲EMC指令下常用的测试规范下,针对其中法规EN61000-4-2是做静电试验(ESD),本项试验目的为测试试件承受直接来自操作者及相对物件所产生之静电放电效应的程度,其法规范如下:
 Air Discharge
 Leve1 2KV
 Leve2 4KV
 Leve3 8KV
 Leve4 15KV
以上是举个例子,就如抗静电能力,不只跟IC性能有关,也跟应用电路及PCB Layout有直接关联。
57 楼
CQ2011 [专家分:0] 发布于 2011-11-23 10:46:00
各种各样的输入怎么样与MCU进行通讯?
答:首先必须确定此类输入信号是否与MCU系统的信号电平兼容,如果不兼容,则需要外接电路或用集成块来完成电平转换。其次就是选择通讯方式,通信的基本方式分为并行通信和串行通信,两者各有其优劣,并行通信速度快,缺点是数据有多少位,就需要多少根传输线。这在位数较多,传输距离又远时就不太适宜;而串行通信与前者相反,传输成本低,但是传送速度较低。最后,为了确保通信的成功,通信双方必须有一系列的约定,即通信协议,它对什么时候开始通信、什么时候结束通信、何时交换信息等问题都必须作出明确的规定。
58 楼
CQ2011 [专家分:0] 发布于 2011-11-24 10:45:00
语音识别会不会是单片机下个消费热点?
答:语音识别在多年前即开始应用在低阶玩具上,如遥控车的左右前后控制,教育玩具利用发语音方式,依记忆体大少能容纳的长度经压缩编码采集后储存各字词,日后再发相同语音经单片机处理辨识后,即可作出相应动作。 依成本不同,影响相关的MCU资源和速度,以及所利用的辨识技术algorithm (运算法则)的优劣,记忆体大少等,所设计出的产品其辨识率和字词长度亦有很大差异。 此低阶市场在现今芯片价格下降应有可为,就看产品创新应用是否吸引人!高阶的语音识别应用是在PC(个人计算机)上,有CPU等级的资源速度和硬盘大少的记忆容量, 但此市场和硬件(单片机)无关!
另一个语音识别应用是嵌入式系统,如目前的手机大都配备语音辨识电话簿,其实一般的嵌入式系统如PDA,DSC,MP3……等都有能力builtin此功能,就看需占用多少硬件资源和所能作出的效果。产品的功能定位很重要,语音识别是否必需要评估实际使用率!
59 楼
CQ2011 [专家分:0] 发布于 2011-11-25 10:28:00
单片机系统为了省电,经常要进入掉电(POWER DOWN)状态,此时单片机的I/O口的PIN应设置为何种状态能获得最低功耗?
答:单片机I/O口可用作输入和输出状态。以HOLTEK一款最简单的I/O单片机HT48R05A-1为例,当作为输入时可设置成带上拉电阻的斯密特输入;作为输出时是CMOS输出。如果程序进入省电状态(HALT)时,首先,各个有用的I/O仍需输出一定值,以保证外部电路工作正常,同时请小心不要让外部电路保持长耗电状态(如长时间导通继电器);对于暂时不用的I/O口,为了节约功耗我们建议将I/O置为输出状态,并且输出为低。
60 楼
CQ2011 [专家分:0] 发布于 2011-11-27 11:02:00
有没有很好的办法来解决加密问题但是又不破坏MCU的方法?
答:单片机系统产品的加密和解密技术永远是一个矛盾的统一体,针对科研成果保护是每一个科研人员最关心的事情,目的不使自己的辛苦劳动付注东流。对其单片机加密方法一般有采用软体加密,硬体加密,软硬体综合加密,时间加密,错误引导加密,专利保护等措施。有矛就有盾,有盾就有矛,有矛、有盾,才促进矛、盾质量水平的提高。而加密只讲盾的运用,以下就简单叙述加密的方法:
硬体加密:使他人不能读你的程式。
 高电压或镭射烧断某条引脚,使其读不到内部程式,用高电压会造成一些器件损坏,即把单片机资料汇流排的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程式的正确代码。此外还有破坏EA引脚的方法。
 重要 RAM 资料采用电池对RAM进行掉电资料保护。即先将一系列资料写入RAM并接上电池,然后将其余的晶片插上。这样,当单晶片微处理器系统运行后,CPU首先从RAM读出资料,这些资料可以是CPU执行程式的条件判别依据,也可以是CPU将要执行的程式。如果资料正确,整个系统正常运行。反之,系统不能运行。
 汇流排乱置法。汇流排乱置法通常是将MCU和EPROM之间的资料线和位址线的顺序乱置。 软体加密:其目的是不让人读懂你的程式,不能修改程式,可以在程序重要资料区先用DES混码存放,但使用时须配合外面输入Decode码(金钥匙)来解编。或者是在无程式的空单元也加上程式机器码,最好要加巧妙一点等。
用真真假假方法加密:(1)擦除晶片标识。(2)DIP 封装改成 PLCC、TQFP、SOIC、BGA 等封装。
我来回复