|首页|

 |公司简介|

|产品介绍|

|技术支持|

|方案推介|

|资料下载|

|客户留言|

|客户服务|

 

单片机MCU FPGA/ASIC ARM DSP 编程器/烧录 仿真器 实验开发板 适配器/插座
无线收发 语音音乐 温湿度计 计时定时 计算器 万年历 计步器 计数器
健康运动表 调光控光 遥控 编解码 闪灯彩灯 电波钟 电子秤 胎压监测
仪器仪表 医疗保健 玩具游戏 防盗报警 电器控制 电子指南针 LCD/LCM VFD/TFT/EL
风扇/密码 GPS 通信模块 电子礼品 数据采集 接口转换 新奇特IC 传感器
     
 
单片机基础
单片机厂牌
单片机技术
单片机产品中心
EMC义隆
78系列八位单片机    
四位单片机   
八位单片机  
液晶&单片机  
来电显示FSK   
PC周边IC        
语音单片机   

仿真器和烧写器相关介绍  

 HOLTEK合泰
单片机-----MCU    
液晶驱动---LCD   
储存器--Memory 
遥控IC--Remote  
电源IC---Power  
通讯IC----Comm  
时钟IC---Timer  
语音/体温/混响  
 Microchip--PIC
PIC12XXX
PIC16XXX
PIC17XXX  
EEPROM
PIC18XXX  
 ATMEL
51单片机
AVR单片机 
储存器  
WINBOND
WINBOND系列8位单片机选型指南 
PHILIPS
PHILIPS系列单片机选型指南
MOTOROLA
MOTOROLA8位单片机选型指南
SILICON
C8051单片机选型指南
FRAM铁电存储器
FRAM铁电选型
3V外围器件
TI/FREESCALE/INTEL
TI/FREESCALE单片机选型指南
STHYUNDAI/OKI
STHYUNDAI/OKI单片机选型指南
 
     
 
专用集成电路IC介绍

电子指南针IC/传感器方案

LCD/LCM/TFT/EL显示驱动

风扇控制IC

其它IC

各种功能模块、COB板

无线收发模块、数传模块

无线收发模组选型与报价

微型无线收发模块报价

遥控器/遥控开关/遥控模块

编解码开关/智能开关

常用传感器/开关/自控产品

RS232/485/USB/CAN/光纤/转换器、隔离器、驱动器、联网模块、多用户卡

EDA工业数据采集模块、USB采集模块、智能传感器、电量变送器

电子表/多功能表机芯总汇

GSM/CDMA/GPRS通信模块

扩频模块/MODEM模块

GPS模块/天线/应用方案

语音/变音/音效COB、模块

计时/定时/计步/计数

温度/湿度/时间显示控制

数字温湿度计/电子表

数传IC/数传模块

智能控制模块

LCD/LCM/TFT显示屏/模块

小家电/家电控制模块

消费类、控制类成品

 专用电路成品

温度/湿度/时间类

温度计/温湿度计/耳温枪

计步/计数/定时类

玩具/礼品类

报警类

医疗保健类

单片机/嵌入式控制

单片机/MPU/RISC芯片

仿真器/开发板/编程器

MCU/DSP/ARM/开发工具

PLD/CPLD/FPGA/ASIC

 
 
 
     
   
   
 
   
   
 
   
 
 
        
 
    单片机开发中应掌握的几个基本技巧
         
     
           在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握的几个基本技巧。



    一、  如何提高C语言编程代码的效率

          邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”



     
    二、如何解决单片机的抗干扰性问题

     
          邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。
        一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。


     
    三、 如何测试单片机系统的可靠性

     
          有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:
          1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件的写的正确完整。
          2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。
          3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
          4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
          邓宏杰强调:“还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。”

     

     
     
    单片机系统硬件抗干扰常用方法实践

     
         一、影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。
       
          (1)充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感,要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成π形滤波电路,当然条件要求不高时也可用100Ω电阻代替磁珠。
          (2)如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波电路)。
          (3)注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定。
          (4)电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源(如电机、继电器)与敏感元件(如单片机)远离。
          (5)用地线把数字区与模拟区隔离。数字地与模拟地要分离,最后在一点接于电源地。A/D、D/A芯片布线也以此为原则。
          (6)单片机和大功率器件的地线要单独接地,以减小相互干扰。大功率器件尽可能放在电路板边缘。
          (7)在单片机I/O口、电源线、电路板连接线等关键地方使用抗干扰元件如磁珠、磁环、电源滤波器、屏蔽罩,可显著提高电路的抗干扰性能。

     
          二、 提高敏感器件的抗干扰性能

          提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对干扰噪声的拾取,以及从不正常状态尽快恢复的方法。

          提高敏感器件抗干扰性能的常用措施如下:
         (1)布线时尽量减少回路环的面积,以降低感应噪声。
         (2)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声。
         (3)对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置端在不改变系统逻辑的情况下接地或接电源。
         (4)对单片机使用电源监控及看门狗电路,如: IMP809,IMP706,IMP813, X5043,X5045等,可大幅度提高整个电路的抗干扰性能。
         (5)在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字电路。
         (6)IC器件尽量直接焊在电路板上,少用IC座。

     

     

    单片机硬件系统设计原则

     
           一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。

     
          系统中的相关器件要尽可能做到性能匹配。 如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。

     
          单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载。

          尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。随着单片机片内集成的功能越来越强,真正的片上系统SoC已经可以实现,如ST公司新近推出的μPSD32××系列产品在一块芯片上集成了80C32核、大容量FLASH存储器、SRAM、A/D、I/O、两个串口、看门狗、上电复位电路等等。

     

     

    单片机系统软件抗干扰方法

     
          在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。

     
          单片机系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。

     
    单片机破解的常用方法及应对策略

     
          介绍了单片机内部密码破解的常用方法,重点说明了侵入型攻击/物理攻击方法的详细步骤,最后,从应用角度出发,提出了对付破解的几点建议。

     
          单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓拷贝保护或者说锁定功能。事实上,这样的保护措施很脆弱,很容易被破解。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花费大量金钱和时间辛辛苦苦设计出来的产品被人家一夜之间仿冒的事情发生。
         
          

     

    单片机攻击技术

            目前,攻击单片机主要有四种技术,分别是:


     
          (1)软件攻击。该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的一个典型事例是对早期ATMELAT89C 系列单片机的攻击。攻击者利用了该系列单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁定位后,停止下一步擦除片内程序存储器数据的操作,从而使加过密的单片机变成没加密的单片机,然后利用编程器读出片内程序。

     
          (2) 电子探测攻击。该技术通常以高时间分辨率来监控处理器在正常操作时所有电源和接口连接的模拟特性,并通过监控它的电磁辐射特性来实施攻击。因为单片机是一个活动的电子器件,当它执行不同的指令时,对应的电源功率消耗也相应变化。这样通过使用特殊的电子测量仪器和数学统计方法分析和检测这些变化,即可获取单片机中的特定关键信息。

     
         (3)探针技术。该技术是直接暴露芯片内部连线,然后观察、操控、干扰单片机以达到攻击目的。

     
          虽然大多数普通单片机都具有熔丝烧断保护单片机内代码的功能,但由于通用低档的单片机并非定位于制作安全类产品,因此,它们往往没有提供有针对性的防范措施且安全级别较低。加上单片机应用场合广泛,销售量大,厂商间委托加工与技术转让频繁,大量技术资料外泻,使得利用该类芯片的设计漏洞和厂商的测试接口,并通过修改熔丝保护位等侵入型攻击或非侵入型攻击手段来读取单片机的内部程序变得比较容易。
     

     

     

    应对单片机破解的几点建议

     
          任何一款单片机从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。所以,在用单片机做加密认证或设计系统时,应尽量加大攻击者的攻击成本和所耗费的时间。这是系统设计者应该始终牢记的基本原则。除此之外,还应注意以下几点:
     
         (1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片。
         (2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。
         (3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度。
         (4)选择采用新工艺、新结构、上市时间较短的单片机,如ATMELAVR系列单片机等。
         (5)在设计成本许可的条件下,应选用具有硬件自毁功能的智能卡芯片,以有效对付物理攻击。
         (6)如果条件许可,可采用两片不同型号单片机互为备份,相互验证,从而增加破解成本。
         (7)打磨掉芯片型号等信息或者重新印上其它的型号,以假乱真。
          当然,要想从根本上防止单片机被解密,程序被盗版等侵权行为发生,只能依靠法律手段来保障。

     
        如果说单片机就是一个电脑你可能不会认可,其实它和我们用的电脑的在本质上没有区别,只是5步和100步的区别,想当年比尔.盖茨也给类似的东西搞过编程,当时机器的显示器是几个LED显示灯。

     
          单片机到底是什么呢?就是一个电脑,只不过是微型的,麻雀虽小,五脏俱全:它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影!......它主要是作为控制部分的核心部件

     
          单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

     
          由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。

     


    什么是单片机


     
          
          弹片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。
      可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成(如图1所示)。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器,如图2所示)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在
      产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
      目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
      学习单片机是否很困难呢?应当说,对于已经具有电子电路,尤其是数字电路基本知识的读者来说,不会有太大困难,如果你对PC机有一定基础,学习单片机就更容易。为使绝大多数读者能用上单片机。我们这里将尽量按深入浅出、删繁就简、理论联系实际的原则把单片机的基本工作原理、使用方法交给读者,以达到把大家领进单片机之“门”的目的。不过,单片机和PC机一样,是实践性很强的一门技术,有人说“计算机是玩出来的”,单片机亦一样,只有多“玩”,也就是多练习、多实际操作,才能真正掌握它。因此,本讲座会提供各种练习和实验,并介绍一些适用于初学者且性价比较高的单片机和开发系统的货源。你只有认真完成成这些实践环节,才能为进一步深造,打好基础。
      “入门既不难,深造也是办得到的”,只要你有恒心、有决心,跟随我们的“连载”一步步走下去,将来就一定能在单片机世界里遨游.


     

     

    什么是PIC单片机

     
          PIC单片机(Peripheral Interface Controller)是一种用来开发的去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。
        
          PIC 单片机是一个小的计算机。PIC单片机有计算功能和记忆内存像CPU并由软件控制允行。然而,处理能力—存储器容量却很有限,这取决于PIC的类型。但是它们的最高操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变(1*)。如果是同样的体系结构,时钟频率较高的处理能力会较强。

     
          这里用字来解释程序容量。用一个指令(2*)表示一个字。通常用字节(3*)来表示存储器(4*)容量。一个字节有8位,每位由1或0组成。PIC16F84A单片机 的指令由14位构成。当把1K个子转换成位为:1 x 1,024 x 14 = 14,336位。再转换为字节为:14,336/(8 x 1,024) = 1.75K。在计算存储器的容量时,我们规定 1G 字节 = 1,024M 字节, 1M 字节 = 1,024K 字节, 1K 字节= 1,024 字节. 它们不是以1000为倍数,因为这是用二进制计算的缘故。

     
          1*计算机的物理结构,包括组织结构、容量、该计算机的CPU、存储器以及输入输出设备间的互连。经常特指CPU的组织结构,包括它的寄存器、标志、总线、算术逻辑部件、指令译码与执行机制以及定时和控制部件。

     
          2*指出某种操作并标识其操作数(如果有操作数的话)的一种语言构造
     
          3*作为一个单位来操作(运算)的一个二进制字符串,通常比计算机的一个字短。

     
          4*处理机内的所有可寻址存储空间以及用于执行指令的其它内存储器。

          在计算存储器的容量时,我们规定 1G 字节 = 1,024M 字节, 1M 字节 = 1,024K 字节, 1K 字节= 1,024 字节. 它们不是以1000为倍数,因为这是用二进制计算的缘故。

     
          用PIC单片机使电路做的很小巧变得可能。因为PIC单片机可以把计算部分、内存、输入和输出等都做在一个芯片内。所以她工作起来效率很高、功能也自由定义还可以灵活的适应不同的控制要求,而不必去更换不同的IC。这样电路才有可能做的很小巧。其实你没有真正搞懂!单片机一词是从外表一片来叫出他的名字,他有什么用途有什么本领都没有反映出来!如果把他叫嵌入式微控制器更确切,这样才把他的用途本领都体现出来了!因为他是微小的控制器,什么东西、物体、产品中都可嵌进去,并且具有智能的功能。组成智能机器人是其中一个典型应用例子。但是是大家叫习惯了这一名称,一时也改不过来了,所以还是叫他单片机--请不要忘了他的用途及本领!

          中国不科学的名称、字、词很多,因为是不懂科学技术造成的,现在有的改过来了,有的是改不过来了!

    举例说明:
          单片机能做什么?
          单片机到底能够做些什么?
          我认识的一个家伙非常精于此道,他能用单片机做一些不可思议的事情:

          比如说用组模式把寻址能力提高到1M,在NOVRAM中放置程序等等。我比较佩服,但自己绝对不会去做这种事情。如果我的系统需要1M以上的寻址能力,我宁愿采用其他类型的CPU,而不是在51系统上折腾。我认为51系统长于控制而非计算,最好用于小型仪器或控制系统的开发。现在51系统有了RTOS,这可真是个好东西,但我从未尝试过。主要原因是可以调试RTOS的仿真器太贵了,而我编制中断服务程序又不太糟糕。但我认为RTOS终究是这个行当的发展方向,应该好好下一番功夫。另外,单片机与计算机的通讯技术也应掌握。

     
         单片机主要用来提高反跟踪的性能。它通过固化的软件(该软件不可读)对写入和读出的数据按一定的算法进行变换,并采用金天地公司独创的数据交换随机技术使得每次软件与狗交互的字节流都不一样(即使写入的数据是相同的)。这样就有效地防止了软件跟踪和逻辑分析仪的分析,保证了加密的可靠性。



     

 

 

欢迎来电洽购我司产品或索取免费详细资料、设计指南和光盘

传感器世界仪器仪表专家网:HTTP//WWW.SENSOR-IC.COM/

智能工控安防消防网:HTTP//WWW.PC-PS.NET/

消费电子专用电路网:HTTP://WWW.SUNSTARE.COM/

地址: 深圳市福田区福华路福庆街鸿图大厦1602    E-MAILszss20@163.com

电话:0755-83398389 83387030  83387016

传真:0755-83376182  83338339   邮编:518033  手机:(0)13902971329

E-MAIL:xjr5@163.com    MSN: xjr5@163.com    QQ: 195847376
    技术支持: 0755-83394033 13501568376

深圳展销部:深圳华强北路赛格电子市场2583  TEL/FAX0755-83665529  13823648918

北京分公司:北京海淀区知春路132号中发电子大厦3097TEL  18927445855  13823791822  FAX010-62543996 

上海分公司:上海市北京东路668号上海賽格电子市场地下一层D25 TEL  56703037  13823676822  FAX021-56703037

西安分公司:西安高新开发区20(中国电子科技集团导航技术研究所           西安劳动南路88号电子商城二楼D23 

TEL  18926764199  FAX:029-77678271