• 如何提高太阳能电池效率?太阳能电池电级材料有哪些?

    如何提高太阳能电池效率?太阳能电池电级材料有哪些?

    太阳能电池作为常用电池类型,在现代社会得到了进一步发展。同时,太阳能电池为我们的生活带来了诸多便利,如美团单车上面的太阳能电池,为定位续航提供了支持。为增进大家对太阳能电池的认识,本文将介绍提高太阳能电池效率的技术以及太阳能电池的电级材料。如果你对太阳能电池具有兴趣,不妨继续往下阅读哦。 一、如何提高太阳能电池效率 太阳能电池,是一种利用太阳光直接发电的光电半导体薄片,又称为“太阳能芯片”或“光电池”,它只要被满足一定照度条件的光照度,瞬间就可输出电压及在有回路的情况下产生电流。在物理学上称为太阳能光伏(Photovoltaic,缩写为PV),简称光伏。 太阳能电池是通过光电效应或者光化学效应直接把光能转化成电能的装置。以光伏效应工作的晶硅太阳能电池为主流,而以光化学效应工作的薄膜电池实施太阳能电池则还处于萌芽阶段。 我们所说的太阳能电池效率是什么意思?我们使用的每个设备都具有一定的效率。考虑一台每小时可生产10个气球的机器。在这十个气球中,有两个气球有孔或其他类型的缺陷。这意味着该机器的效率为80%,因为该机器吸收了生产10个气球所需的原材料,但仅将其中的80%转换为有用的输出。因此,设备的效率代表了提供给它的每单位输入所产生的有用输出量。 晶体硅太阳能电池的理论效率为25%(AMO1.0光谱条件下)。太阳能电池的理论效率与入射光能转变成电流之前的各种可能损耗的因素有关。其中,有些因素由太阳能电池的基本物理决定的,有些则与材料和工艺相关。从提高太阳能电池效率的原理上讲,应从以下几方面着手: 1、 减少太阳能电池薄膜光反射的损失 2、 降低PN结的正向电池(俗称太阳能电池暗电流) 3、 PN结的空间电荷区宽度减少,幷减少空间电荷区的复合中心。 4、 提高硅晶体中少数载流子寿命,即减少重金属杂质含量和其他可作为复合中心的杂质,晶体结构缺陷等。 5、 当采取太阳能电池硅晶体各区厚度和其他结构参数。 目前提高太阳能电池效率的主要措施如下,而各项措施的采用往往引导出相应的新的工艺技术。 (1) 选择长载流子寿命的高性能衬底硅晶体。 (2) 太阳能电池芯片表面制造绒面或倒金字塔多坑表面结构。电池芯片背面制作背面镜,以降低表面反射和构成良好的隔光机制。 (3) 合理设计发射结结构,以收集尽可能多的光生载流子。 (4) 采用高性能表面钝化膜,以降低表面复合速率。 (5) 采用深结结构,幷在金属接触处加强钝化。 (6) 合理的电极接触设计以达到低串联电阻等。 二、太阳能电池的电极材料有哪些 太阳能电池是通过光电效应或者光化学效应直接把光能转化成电能的装置。以光电效应工作 的菁膜式太阳能电池为主流,而以光化学效应工作的式太阳能民池则还处于萌芽阶段。太阳光照在半导体p-n结上,形成新的空穴由-电子对。在p-n结电场的作用下,空穴由n区流向p区,电子由p区流向n区,接通电路后就形成电流。这就是光电效应太阳能电池的工作原理。 太阳能电池按结晶状态可分为结晶系薄式和非结晶系膜式(以下表示为a-)两大类,而前者又分为单结晶形和多结晶形。 按材料可分类硅薄膜形、化合物半导体薄膜形和有机薄膜形,百化合物半导体薄膜形又分为 非结晶形(a-Si:H,a-Si:H:F,a-SixGel-x:H等)、ⅢV族(GaAs,InP)、ⅡⅥ族(cds系)和磷化锌(Zn3P2)等。插表列出了各类太阳能电池的分类和用途。 以上便是此次小编带来的“太阳能电池”相关内容,通过本文,希望大家对如何提高太阳能电池效率和太阳能电池电级材料具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-15 关键词: 太阳能电池 指数 电极材料

  • 太阳能电池有哪些?看这一篇太阳能电池介绍就够了

    太阳能电池有哪些?看这一篇太阳能电池介绍就够了

    太阳能电池是最常见的电池之一,对于太阳能电池,我们通常也较为熟悉。上篇太阳能电池相关文章中,小编对太阳能电池效率问题有所介绍。为增进大家对太阳能电池的认识,本文将对薄膜太阳能电池的种类予以解读。如果你对太阳能电池具有兴趣,不妨继续往下阅读哦。 薄膜太阳能电池是缓解能源危机的新型光伏器件。薄膜太阳能电池可以使用在价格低廉的陶瓷、石墨、金属片等不同材料当基板来制造,形成可产生电压的薄膜厚度仅需数μm,目前转换效率最高可以达13%。薄膜电池太阳电池除了平面之外,也因为具有可挠性可以制作成非平面构造其应用范围大,可与建筑物结合或是变成建筑体的一部份,应用非常广泛。 薄膜太阳能电池的种类 非晶硅(Amorphous Silicon, a-Si)、微晶硅(Nanocrystalline Silicon,nc-Si,Microcrystalline Silicon,mc-Si)、化合物半导体II-IV 族[CdS、CdTe(碲化镉)、CuInSe2]、色素敏化染料(Dye-SensiTIzed Solar Cell)、有机导电高分子(Organic/polymer solar cells) 、CIGS (铜铟硒化物)。。等 GaAs属于III-V族化合物半导体材料,其能隙为1.4eV,正好为高吸收率太阳光的值,与太阳光谱的匹配较适合,且能耐高温,在250℃的条件下,光电转换性能仍很良好,其最高光电转换效率约30%,特别适合做高温聚光太阳电池。砷化镓生产方式和传统的硅晶圆生产方式大不相同,砷化镓需要采用磊晶技术制造,这种磊晶圆的直径通常为4—6英寸,比硅晶圆的12英寸要小得多。磊晶圆需要特殊的机台,同时砷化镓原材料成本高出硅很多,最终导致砷化镓成品IC成本比较高。磊晶目前有两种,一种是化学的MOCVD,一种是物理的MBE。GaAs等III-V化合物薄膜电池的制备主要采用MOVPE和LPE技术,其中MOVPE方法制备GaAs薄膜电池受衬底位错,反应压力,III-V比率,总流量等诸多参数的影响。GaAs(砷化镓)光电池大多采用液相外延法或MOCVD技术制备。用GaAs作衬底的光电池效率高达29.5%(一般在19.5%左右),产品耐高温和辐射,但生产成本高,产量受限,现今主要作空间电源用。以硅片作衬底,MOCVD技术异质外延方法制造GaAs电池是降用低成本很有希望的方法。已研究的砷化镓系列太阳电池有单晶砷化镓,多晶砷化镓,镓铝砷--砷化镓异质结,金属-半导体砷化镓,金属--绝缘体--半导体砷化镓太阳电池等。 砷化镓材料的制备类似硅半导体材料的制备,有晶体生长法,直接拉制法,气相生长法,液相外延法等。由于镓比较稀缺,砷有毒,制造成本高,此种太阳电池的发展受到影响。除GaAs外,其它III-V化合物如Gasb,GaInP等电池材料也得到了开发。 1998年德国费莱堡太阳能系统研究所制得的GaAs太阳能电池转换效率为24.2%,为欧洲记录。首次制备的GaInP电池转换效率为14.7%。另外,该研究所还采用堆叠结构制备GaAs,Gasb电池,该电池是将两个独立的电池堆叠在一起,GaAs作为上电池,下电池用的是GaSb,所得到的电池效率达到31.1%。 砷化镓(GaAs)III-V化合物电池的转换效率可达28%,GaAs化合物材料具有十分理想的光学带隙以及较高的吸收效率,抗辐照能力强,对热不敏感,适合于制造高效单结电池。但是GaAs材料的价格不菲,因而在很大程度上限制了用GaAs电池的普及。 铜铟硒CuInSe2简称CIC.CIS材料的能降为1.1 eV,适于太阳光的光电转换,另外,CIS薄膜太阳电池不存在光致衰退问题。因此,CIS用作高转换效率薄膜太阳能电池材料也引起了人们的注目。 CIS电池薄膜的制备主要有真空蒸镀法和硒化法。真空蒸镀法是采用各自的蒸发源蒸镀铜,铟和硒,硒化法是使用H2Se叠层膜硒化,但该法难以得到组成均匀的CIS。CIS薄膜电池从80年代最初8%的转换效率发展到现今的15%左右。日本松下电气工业公司开发的掺镓的CIS电池,其光电转换效率为15.3%(面积25 px2)。1995年美国可再生能源研究室研制出转换效率17.1%的CIS太阳能电池,这是迄今为止世界上该电池的最高转换效率。预计到2000年CIS电池的转换效率将达到20%,相当于多晶硅太阳能电池。CIS作为太阳能电池的半导体材料,具有价格低廉,性能良好和工艺简单等优点。 CdTe是Ⅱ-Ⅵ族化合物半导体,带隙1.5eV,与太阳光谱非常匹配,最适合于光电能量转换,是一种良好的PV材料,具有很高的理论效率(28%),性能很稳定,一直被光伏界看重,是技术上发展较快的一种薄膜电池。碲化镉容易沉积成大面积的薄膜,沉积速率也高。CdTe薄膜太阳电池通常以CdS/CdTe异质结为基础。尽管CdS和CdTe和晶格常数相差10%,但它们组成的异质结电学性能优良,制成的太阳电池的填充因子高达FF =0.75。 制备CdTe多晶薄膜的多种工艺和技术已经开发出来,如近空间升华、电沉积、PVD、CVD、CBD、丝网印刷、溅射、真空蒸发等。丝网印刷烧结法:由含CdTe、CdS浆料进行丝网印刷CdTe、CdS膜,然后在600~700℃可控气氛下进行热处理1h得大晶粒薄膜。近空间升华法:采用玻璃作衬底,衬底温度500~600℃,沉积速率10μm/min.真空蒸发法:将CdTe从约700℃加热钳埚中升华,冷凝在300~400℃衬底上,典型沉积速率1 nm/s. 以CdTe吸收层,CdS作窗口层半导体异质结电池的典型结构:减反射膜/玻璃/(SnO2:F)/CdS/P-CdTe/背电极。电池的实验室效率不断攀升,现今突16%。20世纪90年代初,CdTe电池已实现了规模化生产,但市场发展缓慢,市场份额一直徘徊在1%左右。商业化电池效率平均为8%-10%。 人们认为,CdTe薄膜太阳电池是太阳能电池中最容易制造的,因而它向商品化进展最快。提高效率就是要对电池结构及各层材料工艺进行优化,适当减薄窗口层CdS的厚度,可减少入射光的损失,从而增加电池短波响应以提高短路电流密度,较高转换效率的CdTe电池就采用了较薄的CdS窗口层而创了最高纪录。要降低成本,就必须将CdTe的沉积温度降到550℃以下,以适于廉价的玻璃作衬底;实验室成果走向产业,必须经过组件以及生产模式的设计、研究和优化过程。至今,不仅有许多国家的研究小组已经能够在低衬底温度下制造出转换效率12%以上的CdTe太阳电池,而且在大面积组件方面取得了可喜的进展,许多公司正在进行CdTe薄膜太阳电池的中试和生产厂的建设,有的已经投产。 在广泛深入的应用研究基础上,国际上许多国家的CdTe薄膜太阳电池已由实验室研究阶段开始走向规模工业化生产。1998年美国的CdTe电池产量就为0.2MW,日本的CdTe电池产量为2.0MW。德国公司将在Rudisleben建成一家年产10MW的CdTe薄膜太阳电池组件生产厂,预计其生产成本将会低于$1.4/W。该组件不但性能优良,而且生产工艺先进,使得该光伏组件具有完美的外型,能在建筑物上使用,既拓宽了应用面,又可取代某些建筑材料而使电池成本进一步降低。 CdTe薄膜太阳电池是薄膜太阳电池中发展较快的一种光伏器件。美国南佛罗里达大学于1993年用升华法在25px2面积上做出效率为15.8 %的太阳电池,随后,日本报道了CdTe基电池以CdTe作吸收层,CdS作窗口层的n-CdS/ p-CdTe半导体异质结电池,其典型结构为MgF2/玻璃/ SnO2:F/ n-CdS/ p-CdTe/背电极,小面积电池最高转换效率16%,成为当时CdTe薄膜太阳能电池的最高纪录,如今,太阳电池的研究方向是高转换效率,低成本和高稳定性。因此,以CdTe为代表的薄膜太阳电池倍受关注,面积为90000px2电池转换效率达到11.1%的水平。美国国家可再生能源实验室提供了Solar Cells lnc的面积为171975px2CdTe薄膜太阳电池的测试结果,转换效率达到7.7%;Bp Solar的CdTe薄膜太阳电池,面积为113500px2,效率为8.4%,面积为17650px2的太阳电池,转换效率达到10.1%;Goldan Photon的CdTe太阳电池,面积为88200px2,转换效率为7.7%。 碲化镉薄膜太阳电池的制造成本低,现今,已获得的最高效率为16%,是应用前景最好的新型太阳电池,它已经成为美、德、日、意等国研究开发的主要对象。 CdTe薄膜太阳电池较其他的薄膜电池容易制造,因而它向商品化进展最快。已由实验室研究阶段走向规模化工业生产。下一步的研发重点,是进一步降低成本、提高效率并改进与完善生产工艺。CdTe太阳能电池在具备许多有利于竞争的因素下,但在2002年其全球市占率仅0.42﹪,现今CdTe电池商业化产品效率已超过10﹪,究其无法耀升为市场主流的原因,大至有下列几点:一、模块与基材材料成本太高,整体CdTe太阳能电池材料占总成本的53﹪,其中半导体材料只占约5.5﹪。二、碲天然运藏量有限,其总量势必无法应付大量而全盘的倚赖此种光电池发电之需。三、镉的毒性,使人们无法放心的接受此种光电池。 CdTe太阳能电池作为大规模生产与应用的光伏器件,最值得关注的是环境污染问题。有毒元素Cd对环境的污染和对操作人员健康的危害是不容忽视的。我们不能在获取清洁能源的同时,又对人体和人类生存环境造成新的危害。有效地处理废弃和破损的CdTe组件,技术上很简单。而Cd是重金属,有剧毒,Cd的化合物与Cd一样有毒。其主要影响,一是含有Cd的尘埃通过呼吸道对人类和其他动物造成的危害;二是生产废水废物排放所造成的污染。因此,对破损的玻璃片上的Cd和Te应去除并回收,对损坏和废弃的组件应进行妥善处理,对生产中排放的废水、废物应进行符合环保标准的处理。现今各国均在大力研究解决CdTe薄膜太阳能电池发展的因素,相信上述问题不久将会逐个解决,从而使碲化镉薄膜电池成为未来社会新的能源成分之一。 浅谈多元化合物薄膜太阳能电池 据了解,科学家为了寻找单晶硅电池的替代品,除开发了多晶硅、非晶硅薄膜太阳能电池外,又不断研制其它材料的太阳能电池。其中主要包括砷化镓III-V族化合物、硫化镉、硫化镉及铜锢硒薄膜电池等。 在上述电池中,尽管硫化镉、碲化镉多晶薄膜电池的效率较非晶硅薄膜太阳能电池效率高,成本较单晶硅电池低,并且也易于大规模生产,但由于镉有剧毒,会对环境造成严重的污染,因此,并不是晶体硅太阳能电池最理想的替代。 据了解,砷化镓III-V化合物及铜铟硒薄膜电池由于具有较高的转换效率受到人们的普遍重视。GaAs等III-V化合物薄膜电池的制备主要采用 MOVPE和LPE技术,其中MOVPE方法制备GaAs薄膜电池受衬底位错、反应压力、III-V比率、总流量等诸多参数的影响。 除GaAs外,其它III-V化合物如GaSb、GaInP等电池材料也得到了开发。 另外,研究所还采用堆叠结构制备GaAs,Gasb电池,该电池是将两个独立的电池堆叠在一起,GaAs作为上电池,下电池用的是Gasb,所得到的电池效率达到31.1%。 铜铟硒CuInSe2简称CIS。CIS材料的能降为1.1 eV,适于太阳光的光电转换,另外,CIS薄膜太阳电池不存在光致衰退问题。因此,CIS用作高转换效率薄膜太阳能电池材料也引起了人们的注目。 CIS作为太阳能电池的半导体材料,具有价格低廉、性能良好和工艺简单等优点,将成为今后发展太阳能电池的一个重要方向。唯一的问题是材料的来源,由于铟和硒都是比较稀有的元素,因此,这类电池的发展又必然受到限制。 以上便是此次小编带来的“太阳能电池”相关内容,通过本文,希望大家对太阳能电池种类具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-15 关键词: 薄膜太阳能电池 太阳能电池 指数

  • 想了解太阳能电池吗?大佬带你看这些太阳能电池知识

    想了解太阳能电池吗?大佬带你看这些太阳能电池知识

    太阳能电池为生活带来了诸多便利,如安有太阳能电池的路灯,可以在夜间为我们守航。随着太阳能电池的普及,我们在使用过程中,可能会发现太阳能电池的一些特点等。为增进大家对太阳能电池的认识,本文将对太阳能电池的相关内容予以介绍。如果你对太阳能电池具有兴趣,不妨继续往下阅读哦。 降低硅太阳能电池成本的方法之一是尽量减少高质量硅材料的使用量,如薄膜太阳能电池。不过这种太阳能电池的效率只达到了约11-12%。研究人员们正在寻求提升其效率的方法。最近取得突破的技术有通过干法绒面优化上表面的结构和在外延层/衬底界面处插入一个中间多孔硅反射镜。采用这两种方式可将太阳能电池的效率提升到约14%。 1. 两种提升效率的技术 与基于体硅的太阳能电池相比,外延薄膜太阳能电池比较便宜。但现在外延薄膜太阳能电池的主要缺点是它们的效率相对较低。已有两种技术表明能提高薄膜太阳能电池的效率。一是利用卤素原子等离子加工,优化上表面结构,另一种技术是在外延层/衬底界面处引入中间反射镜。优化的上表面结构兼有满足均匀光散射(朗伯折射,LamberTIan refracTIon)的要求和通过微量减除硅来降低反射(因为外延硅层已相当薄)两个优点。引入中间反射镜(多重布拉格反射镜)将低能光子的路径长度至少延长了7倍,最终大大提高了太阳能电池的效率。 2. 低成本太阳能电池 基于单晶或多晶体硅基底的硅太阳能电池是光伏市场的主体。但若全部用高纯硅制作,生产这种太阳能电池非常耗能,并且比较昂贵。为进一步 推动光伏产业的发展,应通过降低材料成本来大力减少太阳能电池的生产成本。 外延薄膜硅太阳能电池具有成为体硅太阳能电池的低成本替代方案的潜力。与当前的体硅太阳能电池(200μm)相比,这种丝网印刷太阳能电池采用的衬底较便宜和有源硅层较薄(20μm)。这种低成本衬底包括高掺杂的晶体硅晶圆(用冶金级硅或废料加工的纯净硅)。用化学气相沉积法(CVD)在这种衬底上沉积一层外延有源硅薄层。 3. 产业竞争力 外延薄膜硅太阳能电池的生产工艺与传统的体硅太阳能电池非常相似。因此,与其它薄膜技术相比,在现有的生产线中实现外延薄膜硅太阳能生产相对容易。不过,外延薄膜硅太阳能电池产业竞争力的主要不足之处在于,比起传统的体硅太阳能电池,薄膜硅太阳能电池的效率较低:这些电池的开路电压和填充因数可以达到与体硅太阳能电池相近的水平,但由于存在光学活性薄层(与体硅厚度200μm相比,薄膜硅的活性层厚度仅20μm),光从外延层传输到衬底时,衬底质量较差引起光损失,短路电流损失,最多可高达7mA/cm2。 挑战在于如何在效率和成本之间获得完美的平衡,还须考虑大规模工业生产。本文介绍两种可延长光学路径长度并因此提高外延薄膜硅太阳能电池效率的技术:等离子绒面和在低成本硅衬底与活性层的界面处插入多孔硅反射镜。结果表明,这些措施可将外延薄膜硅太阳能电池的效率提高至14%左右。 4. 上表面等离子绒面 通过处理太阳能电池活性层的上表面,表面光散射发生变化,从而影响太阳能电池的性能。目的是形成最理想的上表面,100%漫反射(朗伯折射,表现出全散射)。此时光子平均以60°的角度穿过活性层,使得传播路径长度增大两倍。也就是说,仅20μm厚的活性层的光学表现为40μm厚。 利用基于氟的等离子处理,仅会去除极少量的硅(仅1,75μm),就可获得表现出朗伯折射的理想上表面。这对于外延薄膜硅太阳能电池极为重要,因为这种类型的太阳能电池的活性层相当薄(20μm)。除优化散射、提高电池效率外,等离子处理还能降低反射,实现倾斜光耦合和降低接触电阻。这就将短路电流减少1.0到1.5mA/cm2,进一步将电池效率提高0.5到1.0%。 5. 硅反射镜 提高外延薄膜硅太阳能电池效率的另一种方式是在活性层与低成本衬底的界面处插入一层多孔硅反射镜。该反射镜可降低长波长的光往衬底中的传播量。 实际上,利用电化学交替生长多孔和少孔薄层(一种多重布拉格反射镜,Bragg reflector)形成多孔硅叠层,制作反射镜,由四分之一波长定律定义交替层的厚度。外延生长活性层时,叠层中的多孔硅具有大大小小的空洞,重组为薄层,但仍保持最初布局。这种结构已被证明是有效的反射结构。这种反射镜通过布拉格效应(常规入射反射镜)或全内反射(光以大于临界角的入射角倾斜入射到反射镜)反射到达界面处的光子。结果这些光子再次通过活性层。逃逸角(大部分反射光子,因为光已被散射)以外的反射光子到达活性层的上表面,将被再次反射。因此延长了光学路径长度,提高了太阳能电池的效率。结果表明,在上表面实现完美的朗伯表面时,一个15层的多孔硅反射镜可以将光的传播路径长度提高14倍,意味着一个拥有15μm活性层的外延薄膜硅太阳能电池将与210μm厚的体硅太阳能电池具有相同性能。 引入多孔硅反射镜可使内部反射率达到80~84%,其中25%是因为存在布拉格效应本身。采用优化的反射镜设计可以进一步改进布拉格效应,优化反射镜使少孔层及多孔层的厚度随深度而变化(灵活的多孔硅叠层),让反射镜的带宽增得足够大。利用这种灵活的特殊结构,低能光子的路径长度可以在现在的基础上提高7倍之多。在低成本硅衬底上利用此反射层和丝网印制接触制作的太阳能电池达到了13.9%的高效率,而Jsc 为 29.6mA/cm2。 以上便是此次小编带来的“太阳能电池”相关内容,通过本文,希望大家对太阳能电池相关知识具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 电池 太阳能电池 指数

  • 为何要发展电源管理芯片?如何选择电源管理芯片?

    为何要发展电源管理芯片?如何选择电源管理芯片?

    芯片的重要性不言而喻,我国目前在芯片方面的成就还未达到世界巅峰。但是,小编相信中国的芯片水平将会领先世界。为增进大家对芯片的了解,本文将对电源管理芯片予以解读。本文中,你将对电源管理芯片的发展必要性以及如何选择电源管理芯片有所认识。 一、什么是电源管理芯片 电源管理芯片(Power Management Integrated Circuits),是在电子设备系统中担负起对电能的变换、分配、检测及其他电能管理的职责的芯片。主要负责识别CPU供电幅值,产生相应的短矩波,推动后级电路进行功率输出。 主要电源管理芯片有的是双列直插芯片,而有的是表面贴装式封装,其中HIP630x系列芯片是比较经典的电源管理芯片,由著名芯片设计公司Intersil设计。它支持两/三/四相供电,支持VRM9.0规范,电压输出范围是1.1V-1.85V,能为0.025V的间隔调整输出,开关频率高达80KHz,具有电源大、纹波小、内阻小等特点,能精密调整CPU供电电压。 二、电源管理芯片发展的必要性 所有电子设备都有电源,但是不同的系统对电源的要求不同。为了发挥电子系统的最佳性能,需要选择最适合的电源管理方式。 首先,电子设备的核心是半导体芯片。而为了提高电路的密度,芯片的特征尺寸始终朝着减小的趋势发展,电场强度随距离的减小而线性增加,如果电源电压还是原来的5V,产生的电场强度足以把芯片击穿。所以,这样,电子系统对电源电压的要求就发生了变化,也就是需要不同的降压型电源。为了在降压的同时保持高效率,一般会采用降压型开关电源。 同时,许多电子系统还需要高于供电电压的电源,比如在电池供电设备中,驱动液晶显示的背光电源,普通的白光LED驱动等,都需要对系统电源进行升压,这就需要用到升压型开关电源。 此外,现代电子系统正在向高速、高增益、高可靠性方向发展,电源上的微小干扰都对电子设备的性能有影响,这就需要在噪声、纹波等方面有优势的电源,需要对系统电源进行稳压、滤波等处理,这就需要用到线性电源。上述不同的电源管理方式,可以通过相应的电源芯片,结合极少的外围元件,就能够实现。可见,发展电源管理芯片是提高整机性能的必不可少的手段。 三、如何选择电源管理芯片 电源管理的范畴比较广,既包括单独的电能变换(主要是直流到直流,即DC/DC),单独的电能分配和检测,也包括电能变换和电能管理相结合的系统。相应的,电源管理芯片的分类也包括这些方面,比如线性电源芯片、电压基准芯片、开关电源芯片、LCD驱动芯片、LED驱动芯片、电压检测芯片、电池充电管理芯片等。下面简要介绍一下电源管理芯片的主要类型和应用情况。 如果所设计的电路要求电源有高的噪音和纹波抑制,要求占用PCB板面积小(如手机等手持电子产品),电路电源不允许使用电感器(如手机),电源需要具有瞬时校准和输出状态自检功能,要求稳压器压降及自身功耗低,线路成本低且方案简单,那么线性电源是最恰当的选择。这种电源包括如下的技术:精密的电压基准,高性能、低噪音的运放,低压降调整管,低静态电流。 在小功率供电、运放负电源、LCD/LED驱动等场合,常应用基于电容的开关电源芯片,也就是通常所说的电荷泵(Charge Pump)。基于电荷泵工作原理的芯片产品很多,比如AAT3113。这是一种由低噪声、恒定频率的电荷泵DC/DC转换器构成的白光LED驱动芯片。AAT3113采用分数倍(1.5&TImes;)转换以提高效率。该器件采用并联方式驱动4路LED。输入电压范围为2.7V~5.5V,可为每路输出提供约20mA的电流。该器件还具备热管理系统特性,以保护任何输出引脚所出现的短路。其嵌入的软启动电路可防止启动时的电流过冲。AAT3113利用简单串行控制接口对芯片进行使能、关断和32级对数刻度亮度控制。 而基于电感的DC/DC芯片的应用范围最广泛,应用包括掌上电脑、相机、备用电池、便携式仪器、微型电话、电动机速度控制、显示偏置和颜色调整器等。主要的技术包括:BOOST结构电流模式环路稳定性分析,BUCK结构电压模式环路稳定性分析,BUCK结构电流模式环路稳定性分析,过流、过温、过压和软启动保护功能,同步整流技术分析,基准电压技术分析。 除了基本的电源变换芯片,电源管理芯片还包括以合理利用电源为目的的电源控制类芯片。如NiH电池智能快速充电芯片,锂离子电池充电、放电管理芯片,锂离子电池过压、过流、过温、短路保护芯片;在线路供电和备用电池之间进行切换管理的芯片,USB电源管理芯片;电荷泵,多路LDO供电,加电时序控制,多种保护,电池充放电管理的复杂电源芯片等。 特别是在消费类电子方面。比如便携式DVD、手机、数码相机等,几乎用1块-2块电源管理芯片就能够提供复杂的多路电源,使系统的性能发挥到最佳。 以上便是此次小编带来的“芯片”相关内容,通过本文,希望大家对电源管理芯片具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 芯片 电源管理芯片 指数

  • 深度解读基带芯片,带你观测基带芯片的“大脑”

    深度解读基带芯片,带你观测基带芯片的“大脑”

    芯片是非常重要的电子产品,可以说,在智能设备中,芯片充当了大脑的角色。芯片技术的高低,在一定程度上反映了国家制造、创新水平。上篇芯片文章中,我们对基带芯片和射频芯片的区别有所阐述。为增进大家对基带芯片的认识,本文将对基带芯片的处理器结构予以介绍。如果你对芯片相关内容具有兴趣,不妨继续往下阅读哦。 手机的控制芯片有很多,基带芯片只是其中一部分,主要含两个部分,一个部分是射频部分,就信息发送和接收部分,一个部分是基带部分,就是信息的处理。 合起来基带芯片就是将手机的信息处理后通过射频部分发射到基站,再把基站的信号通过射频部分接收后处理完再传递给手机。 必须说明的是:早期的基带芯片一般没有音频信号的编译(编码解码)功能,也没有视频信息的处理功能。而目前的芯片,大都集成了这些功能。甚至,为了进一步简化设计,这些编译电路所需要的电源管理电路也日益集成于其中。但是,为了保证电路的稳定性和抗干扰性以及个性化设计的要求,信号的功率放大电路尚未集成于此,而是由另外芯片独立完成。 那么,基带芯片的处理器结构是怎样的呢? 常用的基带芯片大多采用基于ARM的微处理器,ARM7TDMI是低端的ARM芯核,它所使用的电路技术能使它稳定地在低于5V的电源下工作,可采用16/32位指令实现8/16/32位数据格式,具有高的指令吞吐量、良好的实时中断响应、小的处理器宏单元ARM7能高效的运行移动电话软件。以ARM7TDMI为例: 控制核ARM7TDMI,采用0.35um制造工艺。包括一个ARM7 32位RISC微处理核;1个Thumb能将16bit指令解压为32bit指令;1个快速乘法器,一个输入校验断路器(ICEbreaker)模块。ICEbreaker模块给控制核提供单片内集成调试(debug)支持,当控制器停在程序断点时,有权访问控制器的全部内容及控制器可访问的全部地址空间。通过JTAG同步串联连接,信息随后送给计算机主机用于显示。 ARM可访问的地址空间由存储器管理单元(MMU)控制。MMU负责提供片选,控制等待状态及ARM产生的全部访问数据宽度(8bit/16bit/32bit)。MMU支持外部8bit或16bit长度的程序与数据存储器,外部ROM字宽由程序存储器尺寸pin指示,外部RAM则由寄存器指示。MMU管理ARMT状态变化;工作到睡眠由ARM7软件实现,睡眠到唤醒由中断或复位实现;MMU分配被要求的外部系统总线给DSP。 中断控制寄存器是存储器的映射,它允许隐藏与清除中断,配置由中断源及由ARM产生的中断信号FIQ,IRQ之间的映射。一共有10个中断源;外部设备中断、DSP产生的中断、SIM I/F中断(要求与SIM卡交换读写字)、VART1。2中断(要求与数据终端设备交换读写字节),按键扫描中断(指示按键连通或断开),TDMA帧中断1,TDMA帧中断2,OS记号,RTC警报。 Boot ROM内含ARM与USC(Universal system connector)系统串口的基本通信代码,ROM代码用于初始化MCU系统,而且能通过一个简单的通信方案实现往内部SRAM下载更有效的通信协议。 ARM7外围设备是存储器的映射并能被灵活驱动。IM I/F驱动SIM卡,并且执行部分ETSI Rec11。11接口协议;复位序列,Card on sequence,card off sequence, byte or multi-byte transfer。16个通用输入输出(GPIO)线可用,但它们的使用有所限制,因为它们常与其它信号(如地址线、串口线等)复用,故要计算实际可用的GPIO数量。脉冲产生器产生软件可调的PWM输出频率及占空比。特殊EEPROM串口总线确保当ARMT串接EEPROM时不会降低处理速度。GPSI(General purpose serial Interface)允许连接多种设备。 键盘扫描识别25个键的状态。RTC模块能提供一个带报警提示的全天完整的时间时钟,并带100年日历(注;不同的基带芯片该项功能有差异,有的芯片的RTC只是一个32位计数器,需要通过软件计算年月日时分秒)。 以上便是此次小编带来的“芯片”相关内容,通过本文,希望大家对基带芯片的处理器结构具备一定的了解哦。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 芯片 基带芯片 指数

  • 什么是基带芯片?什么是射频芯片?二者有何关系?

    什么是基带芯片?什么是射频芯片?二者有何关系?

    芯片是重要的电子产品,芯片技术的高低决定了我们的手机、电脑等电子产品的性能。为增进大家对芯片的认识,本文将介绍什么是基带芯片、什么是射频芯片以及基带芯片和射频芯片之间的关系。如果你对芯片具有兴趣,不妨继续往下阅读哦。 一、什么是基带芯片 基带芯片是用来合成即将发射的基带信号,或对接收到的基带信号进行解码。具体地说,就是发射时,把音频信号编译成用来发射的基带码;接收时,把收到的基带码解译为音频信号。同时,也负责地址信息(手机号、网站地址)、文字信息(短讯文字、网站文字)、图片信息的编译。 基带芯片可分为五个子块:CPU处理器、信道编码器、数字信号处理器、调制解调器和接口模块。 CPU处理器:对整个移动台进行控制和管理,包括定时控制、数字系统控制、射频控制、省电控制和人机接口控制等。若采用跳频,还应包括对跳频的控制。同时,CPU处理器完成GSM终端所有的软件功能,即GSM通信协议的layer1(物理层)、layer2(数据链路层)、layer3(网络层)、MMI(人-机接口)和应用层软件。 信道编码器:主要完成业务信息和控制信息的信道编码、加密等,其中信道编码包括卷积编码、FIRE码、奇偶校验码、交织、突发脉冲格式化。 数字信号处理器:主要完成采用Viterbi算法的信道均衡和基于规则脉冲激励-长期预测技术(RPE-LPC)的语音编码/解码。 调制解调器:主要完成GSM系统所要求的高斯最小移频键控(GMSK)调制/解调方式。 接口模块:包括模拟接口、数字接口以及人机接口三个子块; 二、什么是射频芯片 射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率,频率范围从300kHz~300GHz之间。射频就是射频电流,简称RF,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。射频(300K-300G)是高频(大于10K)的较高频段,微波频段(300M-300G)又是射频的较高频段。 而射频芯片指的就是将无线电信号通信转换成一定的无线电信号波形, 并通过天线谐振发送出去的一个电子元器件。射频芯片架构包括接收通道和发射通道两大部分。对于现有的GSM和TD-SCDMA模式而言,终端增加支持一个频段,则其射频芯片相应地增加一条接收通道,但是否需要新增一条发射通道则视新增频段与原有频段间隔关系而定。对于具有接收分集的移动通信系统而言,其射频接收通道的数量是射频发射通道数量的两倍。这意味着终端支持的LTE频段数量越多,则其射频芯片接收通道数量将会显著增加。例如,若新增 M个GSM或TD-SCDMA模式的频段,则射频芯片接收通道数量会增加M条;若新增M个TD-LTE或FDD LTE模式的频段,则射频芯片接收通道数量会增加2M条。LTE频谱相对于2G/3G较为零散,为通过FDD LTE实现国际漫游,终端需支持较多的频段,这将导致射频芯片面临成本和体积增加的挑战。 为减小芯片面积、降低芯片成本,可以在射频芯片的一个接收通道支持相邻的多个频段和多种模式。当终端需要支持这一个接收通道包含的多个频段时,需要在射频前端增加开关器件来适配多个频段对应的接收SAW滤波器或双工器,这将导致射频前端的体积和成本提升,同时开关的引入还会降低接收通道的射频性能。因此,如何平衡射频芯片和射频前端在体积、成本上的矛盾,将关系到整个终端的体积和成本。 三、二者的关系 基带芯片可以认为是包括调制解调器,但不止于调制解调器,还包括信道编解码、信源编解码,以及一些信令处理。而射频芯片,则可看做是最简单的基带调制信号的上变频和下变频。 所谓调制,就是把需要传输的信号,通过一定的规则调制到载波上面让后通过无线收发器(RF Transceiver)发送出去的工程,解调就是相反的过程。 以上便是此次小编带来的“芯片”相关内容,通过本文,希望大家对基带芯片、射频芯片以及基带芯片和射频芯片的区别具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2021-04-14 关键词: 芯片 基带芯片 指数

  • 基于IPv6和ARM9的地震烈度仪开发

    基于IPv6和ARM9的地震烈度仪开发

    以低功耗微型电容式三轴向加速度传感器作为传感部件,采用基于ARM9的嵌入式系统并定制Linux作为总控系统,选择符合802.11b标准的无线通讯技术作为仪器的网络接入方式,研制完成基于无线IPv6的SI一2型地震烈度计,实现了地震烈度的网络化、数字化观测,解决了我国缺乏直接测定地震烈度仪器的问题。 引 言 当前国内外已建设的城市地震灾害速报系统一般以地震烈度计观测系统为主体。日本东京煤气公司在1994年就完成了由331台谱烈度计、20台液化传感器和5台强震仪构成的地震监测与震害快速评估系统(SIGNAL)。阪神地震取得显著的减灾效益后,东京煤气公司于1997年~2007年的十年间布设了3 800个新型地震谱烈度计。 目前我国仪器测定地震烈度是通过强震仪观测数据换算得到的。但强震仪结构相对复杂,制造成本很高,不便于大规模布设,而大量应用国外地震烈度测定仪器也不现实,因此自主开发我国适用的地震烈度传感器很有必要。 近年来,传感器网络研究和应用已成为热点。专业传感元器件产品也在向小型化、高精度发展,传感器的发展出现了智能化、网络化的新趋势而非传统的单纯检测功能。网络传感器以嵌入式微处理器为核心,集成了传感器、信号处理器和网络接口,由于引入了微处理器,采用了嵌入式技术和集成技术,使传感器的体积减小,抗干扰性能和可靠性得到提高,同时提高了控制系统的实时性和可靠性;网络接口技术的应用,为系统的扩充提供了极大的方便,具有便于远程操作、维护简单、实时监控等优点。因此,嵌入式系统和网络技术在地震观测领域已得到广泛应用。 鉴于此,新开发的SI一2型地震烈度计不只是一个单纯的地震烈度检测仪器,而是一个高度集成的网络化传感器,它集成了地震烈度感知器件、采集模块、嵌入式处理器与存储器、通信器件、嵌入式软件系统等,具有数据采集、数据存储、数据通讯、定位等功能,可以通过无线方式接入IPv6网络。应用SI一2型地震烈度计搭建的基于IPv6的地震传感器示范网络,在地震监测预警、地震应急快速响应以及减轻地震灾害方面有着广泛的应用前景。 1 系统架构 基于IPv6的SI一2型地震烈度计的软、硬件资源由加速度传感器,数据采集模块(A/D),电源,嵌入式系统(CPU),符合802.11b标准的无线网卡,GPS,内置测控软件等模块构成。市场上现有的嵌入式系统自带的操作系统一般是Linux 2.4内核,为支持IPv6须将操作系统的内核进行重新编译,升级为2.6版本内核。图1所示是SI一2型地震烈度计的总体架构。 2 主要部件选型 2.1 传感部件 选用美国Freescale公司出品的MMA7260Q低功耗微型电容式三轴向加速度传感器。传感器自身具有信号调理、一阶低通铝箔和温度补偿、高灵敏度、低噪声、低功耗、线性输出、自检等特点。测量范围:+/-2 g,测量精度:O.2μg。 2.2 数据采集A/D 地震烈度通过测量加速度换算而得,依据中国地震烈度表,最大的地震烈度2 g对应的加速度在200 cm/s2左右,采用10位A/D进行采样,其加速度分辨率为0.04 g,对应的烈度分辨率为O.024度,远高于人们所能接受的精度。 2.3 嵌入式系统 嵌入式系统采用三星公司基于ARM微处理器的S3C2410X。S3C2410X采用6层板设计,使用ARM920T内核,内部带有全性能的MMU(内存处理单元),具有高性能、低功耗、接口丰富和体积小等优良特性。在尽可能小的板面上集成了64 MB SDRAM、64 MB NAND FLASH,1 MB BOOT FLASH,RJ 45网卡,USB Host,标准串口,SD卡插座等。可集成嵌入式无线局域网设备,实现数据采集和无线传输。 2.4 定位模块 选用的GPS模块,接收特性:16通道,L1,C/A码;自带陶瓷天线;启动时间:冷启动45 s、温启动38 s、热启动2~8 s;精度<2.5 m CEP;再捕获<1 s,1PPS;刷新频率:4 Hz;内置LNA;速度<4 g。 2.5 通讯部件 考虑到地震行业地震观测的实际需要,采用了符合IEEE802.11b的无线网卡和通信距离达到1.2km的无线AP构成通信链路,作为SI一2型地震烈度计的无线通讯单元。 2.6 电源模块 选用可充电的锂电池组作为供电电源,便于长期重复使用。电池组容量为60 Ah。 3 系统功能实现 3.1 SI一2型地震烈度传感器的IPv6化 ARM嵌入式系统自带的操作系统一般是Linux2.4内核的,为支持IPv6须将操作系统的内核进行重新编译,升级为2.6版本内核。但Linux 2.6内核重编译是一个比较复杂的过程,具体步骤如下: 3.1.1 建立交叉编译环境 在RedHat9的主机上进行内核移植开发,首先需要建立交叉编译环境。由于2.6内核中采用了一些新的特性和指令,需要采用较新的工具集。采用binutils一2.15,gcc一3.4.2,glibc一2.2.5,linux一2.6.8,glibc—linuxthreads-2.2.5来建立交叉编译工具链,建立之后将工具链路径加入系统路径MYMPATH中。 3.1.2 内核修改 Linux 2.6.11.7内核加入了对S3C2410芯片的支持,不再需要任何补丁文件。修改内核源码中Makefile的交叉编译选项ARCH=arm,CROSS COMPILE=arm—linux一。针对硬件配置,需要在arch/arm/mach—s3c2410/devs.c或者smdk2410.c中添加FLASH的分区信息s3c nand info。然后在s3c device nand中增加.dev={.platform data=&s3c nand info},在arch/arm/mach—s3c2410/mach—smdk2410.c中的initdata部分增加&s3c device nand,使内核在启动时初始化NAND FLASH信息。 3.1.3 内核编译加载 由于2.6内核会根据本地系统配置进行初始设置,可以导入内核源码默认S3C2410的配置文件,方便加载内核基本配置,然后再选择所需选项。对MTD配置选择支持MTD设备驱动以及NAND FLASH驱动;选择支持要用到的各类文件系统(DEVFS,TMPFS,CRAMFS,YAFFS,EXT2,NFS)以及网络设备和协议,本传感器系统加载了网络芯片CS8900以及USB支持;在H.264多媒体系统中还需要加载Frame buff—er以支持LCD显示功能。使用交叉编译工具编译内核源码后,会在arch/arm/1boot/下生成名为zImage的内核映像,在Boot loader的命令提示模式下使用下载命令完成内核加载到开发板的存储设备FLASH中。 3.1.4 文件系统定制 Linux采用文件系统来组织系统中的文件和设备,为设备和用户程序提供统一接口。Linux支持多种文件系统,本系统使用CRAMFS格式的只读根文件系统,而将FLASH中的USER区使用支持可读写的YAFFS文件系统格式,方便添加自己的应用程序。 3.2 地震烈度计主要硬件设备驱动 3.2.1 网络设备驱动 系统中采用CS8900A的lO Mb/s网络芯片,它使用S3C2410的nGCS3和IRQ_EINT9,相应修改linux/arch/arm/mach—s3c2410/irq.c,并在roach—smdk24.10.c的smdk2410_iodesc[]中增加{SMDK2410_ETH_IO,S3C2410_CS2,SZ_1M,MT_DEVICE},内核源码中加入芯片的驱动程序drivers/net/arm/cs8900.h和cs8900.c,并且配置网络设备驱动的Makefile和Kcon—fig文件,加入CS8900A的配置选项,这样可以在内核编译时加载网络设备的驱动。 3.2.2 无线网卡驱动程序 从网上下载rt2x00的IPv4环境下的驱动程序,并针对该程序进行IPv6化改造,对其驱动程序进行修改,在系统重编译的时候,将驱动程序加入到系统的内核中。将无线网卡的驱动程序作为一个模块打包到操作系统中,可避免系统掉电后每次都要重装无线网卡驱动程序。 3.3 地震烈度计终端的软件设计 通讯传输软件主要负责完成传感器与业务服务系统之间的IPv6数据通信,软件功能如下: (1)传感器在成功接入到IPv6传感器网络后主动.向业务服务器发送传感器上线通知; (2)传感器在成功上线后每隔30 s主动采集烈度传感器的烈度值并上报给业务服务器; (3)进行GPS时间校准; (4)进行GPS定位(每隔8 min重新定位一次并上报定位数据); (5)业务服务器每隔10 min请求一次传感器配置参数; (6)响应业务服务器的配置参数请求、数据请求、历史数据请求、是否在线响应。 通讯软件包括:GPS数据处理子程序,A/D数据采集子程序,通讯子程序和传感器配置文件。对于不同的传感器,需要修改配置文件中的传感器IP、传感器ID和传感器序列号。传感器终端软件结构见图2。 4 性能指标和功能特点 4.1 性能指标 (1)网络通信协议:IEE802.11b,IEEE802.11g,IPv4,IPv6; (2)通信频率:2.412~2.462 GHz; (3)通信速率:54 Mb/s,48 Mb/s,36 Mb/s, 24 Mb/s,18 Mb/s,12 Mb/s,11 Mb/s,9 Mb/s, 6 Mb/s,5.5 Mb/s,2 Mb/s,1 Mb/s; (4)动态范围:±4g; (5)分辨率:±4mg; (6)工作距离:室内40 m,室外330 m,配合增益天线最大可达1 200 m (7)功耗:≤1.5 W (8)GPS定位精确度:水平:<6 m(50%),<9 m(90%),高度<11 m(50%),<18 m(90%),速度0.06 m/s。 4.2 功能特点 (1)无线和有线方式均支持IPv6; (2)采用集成电路方式的传感器,环境适应性强; (3)入网自动发现; (4)GPS自动定位、时间校准。 5 结 语 介绍了基于无线IPv6的SI一2型地震烈度计的技术设计和实现,该仪器建立在嵌入式Linux和ARM处理器的基础上,集成了信息感知、数据采集、处理、供电、定位、通讯等功能,具有功耗低、体积小、成本低及便于布设等优点。

    时间:2021-04-13 关键词: IPv6 ARM9 地震烈度仪

  • 电脑卡?看来你需要一块好固态了!致钛PC005带你远离卡顿

    电脑卡?看来你需要一块好固态了!致钛PC005带你远离卡顿

    谁都希望自己的电脑能够稳定流畅的运行!但是卡顿现象还是时常发生,尤其对于激战正酣的游戏中,稍微的卡顿可能就葬送了整场游戏。尤其是卡顿的时候,不小心关闭了工作的进程,而导致几个小的努力付之一炬。更是对电脑的卡顿,深恶痛绝! 虽然电脑卡顿的原因可能会比较多样,可能是CPU性能不足,也有可能是内存太小,但更加常见的问题则是,硬盘性能太过羸弱,频繁的读写造成了硬盘的阻塞,从而导致了系统的卡顿。 电脑卡顿让人头大(图片来自互联网) 那么,什么样的硬盘才能解决掉电脑的卡顿呢?好的硬盘应该具备以下优点: 一、原厂颗粒 原厂颗粒保障了NAND芯片都是原厂原装,避免了二次封装以及残次颗粒的使用。所以挑选固态原厂颗粒可以说是最为重要的一点。而致钛的PC005就采用了长江存储的原厂Xtacking架构的NAND闪存,寿命和性能都做到了优秀的水平。 长江存储的专利技术Xtacking构架 二、高速高效 为了让电脑能够流畅的运行,硬盘的速度也是关键PC005连续读取搞到3400M/s+,4K读写也表现优异,不管是拷贝大型文件,还是软件和游戏的读写,采用NVMe协议的PC005都能表现的游刃有余。 PC005的跑分极其亮眼(CrystalDiskMark跑分) 三、无忧保修 有了原厂的高质量NAND作为保障,致钛非常自信的提供了5年质保,这在业内也是非常领先的水平,对于大部分消费者来说,5年的时间足够使用到下一代的产品出现。可以说售后方面,能够做到让消费安心、放心。 致钛PC005 Active提供了业内领先的5年质保 四、1TB大容量满足存储需求 现在的软件和游戏动辄几十个G,致钛PC005最高提供1TB容量可供选择,保障了单块硬盘就能储存大量的游戏和工作文件。对于M.2接口比较少的电脑和主板非常友好。 五、超长寿命 因为采用先进的制造工艺,以及独有的Xtacking架构。致钛的硬盘有着超长的使用寿命,正常使用很难写到寿命的极限。 在老化的测试中,致钛PC005的表现也是业内顶尖,这保障长时间运行,依然能够提供绝佳的稳定性与速度。 如果你觉得你电脑卡顿,不如更换一下固态硬盘,我相信对于对于电脑流畅性的提升绝对是巨大的,因为传统的机械硬盘已经无法满足当下软件和游戏对读写的性能需求了。 电脑卡顿的你,赶快给自己电脑更换一下硬盘吧!(图片来自互联网)

    时间:2021-04-12 关键词: 电脑 硬盘 致钛 NAND

  • 详细讲解 移植Uboot到ARMer9开发系统上

    详细讲解 移植Uboot到ARMer9开发系统上

    首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。让uboot在ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个问题,uboot就可以在ARMer9开发系统上正常地从串口输出,进入提示符。很多命令都可以使用,当然有些命令需要做修改。 SMDK2410 : nor flash 是AMD的1M的; ARMer9: 是Intel E28F128J3A, 两片并联,一共32M Bytes. 下载一个uboot-1.1.1.tar.bz2.; tar jxvf uboot-1.1.1.tar.bz2; 在uboot 目录board/smdk2410 下的flash.c需要修改。这个是Flash的驱动,如何写,需要参考E28F128J3A的Datasheet. 这里我们提供一个我们修改好的flash.c文件,您只需要将这个文件覆盖掉board/smdk2410 下的文件即可。 (注意:你要安装了交叉编译器才行哦) 修改uboot目录下的Makefile,将 ifeq ($(ARCH),arm) CROSS_COMPILE = arm-linux- endif 修改成 ifeq ($(ARCH),arm) CROSS_COMPILE = /opt/host/armv4l/bin/armv4l-unknown-linux- endif 修改processor.h中: union debug_insn { u32 arm; u16 thumb; } 修改成: union debug_insn { u32 arm_mode; u16 thumb_mode; } 然后配置板子 make smdk2410_config 然后 make 在uboot目录生成uboot.bin; 通过sjf2410w程序将uboot.bin下载到nor flash中, 地址为0的地方; 串口接在UART0上,uboot的启动信息将输出。 你将发现很多命令都可以使用了。uboot果然强大。 关于网络部分,因为ARMer9开发系统使用也是CS8900A,所以代码部分几乎不用做改动,只需要在 include/configs/smdk2410.h中看看,有没有定义CONFIG_ETHADDR,CONFIG_IPADDR, CONFIG_SERVERIP这些宏没有,如果没有,请定义好。 #define CONFIG_ETHADDR 00:00:e0:ff:cd:15 #define CONFIG_IPADDR 192.168.0.5 #define CONFIG_SERVERIP 192.168.0.100 就这样修改一下,网络部分功能就通了,哈哈。 可以使用tftpboot命令从tftp服务器下载程序到系统内存中。 #tftpboot 0x33000000 zImage #bootm 0x33000000 利用uboot引导可执行映象的通用方法 uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。 mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么 root@Glym:/tftpboot# ./mkimage Usage: ./mkimage -l image -l ==> list image header information ./mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image -A ==> set architecture to 'arch' -O ==> set operating system to 'os' -T ==> set image type to 'type' -C ==> set compression type 'comp' -a ==> set load address to 'addr' (hex) -e ==> set entry point to 'ep' (hex) -n ==> set image name to 'name' -d ==> use image data from 'datafile' -x ==> set XIP (execute in place) 参数说明: -A 指定CPU的体系结构: 取值 表示的体系结构 alpha Alpha arm A RM x86 Intel x86 ia64 IA64 mips MIPS mips64 MIPS 64 Bit ppc PowerPC s390 IBM S390 sh SuperH sparc SPARC sparc64 SPARC 64 Bit m68k MC68000 -O 指定操作系统类型,可以取以下值: openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos -T 指定映象类型,可以取以下值: standalone、kernel、ramdisk、multi、firmware、script、filesystem -C 指定映象压缩方式,可以取以下值: none 不压缩 gzip 用gzip的压缩方式 bzip2 用bzip2的压缩方式 -a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载 -e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头) -n 指定映象名 -d 指定制作映象的源文件 常用U-BOOT命令介绍 1. ?或者help,得到所有命令列表; 2. help: help usb, 列出USB功能的使用说明 3. ping:注:通常只能运行uboot的系统PING别的机器 4. setenv: 设置环境变量 setenv serverip 10.36.20.49,设置TFTP Server的IP地址; setenv ipaddr 10.36.20.200,设置IP地址; setenv bootcmd ‘tftp 32000000 vmlinux; kgo 32000000’,设置启动命令(实际上就是一个脚本); 5. saveenv:在设置好环境变量以后, 保存环境变量值到flash中间; 6. tftpboot:tftpboot 0x800000 vmlinux, 将TFTP Server(IP = 环境变量中设置的serverip)中/tftpdroot目录 下的vmlinux通过TFTP协议下载到物理内存0x800000开始的地方。 7. kgo:启动没有压缩的linux内核,kgo 0x800000 8. bootm:启动通过UBOOT TOOLS—— mkimage制作的压缩LINUX内核, bootm 3200000; 9 flinfo:列出flash的信息 10. protect: 对FLASH进行写保护或取消写保护, protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护),protect off 1:0-3取消写保护 11. erase: 删除FLASH的扇区, erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除) 12. cp: 将内存中数据烧写到Flash, cp 0x800000 0xc0000 0x40000(把内存中0x800000开始的0x40000字节复制到0xc0000处); 13. mw: 对RAM中的内容进行写操作, mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF); 14. md: 显示RAM中的内容, md 0x800000; 15. loadb: 准备用 KERMIT协议接收来自kermit或超级终端传送的文件。 16. nfs: nfs 32000000 192.168.0.2:aa.txt , 把192.168.0.2(LINUX 的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0x32000000处。 17. fatls:列出DOS FAT文件系统, 如:fatls usb 0列出第一块U盘中的文件 18. fatload: 读入FAT中的一个文件,如:fatload usb 0:0 32000000 aa.txt 19. usb相关的命令: usb start: 起动usb 功能 usb info: 列出设备 usb scan: 扫描usb storage(u 盘)设备 Uboot对SMDK2410板的NAND Flash初始化部分没有写, 即lib_arm/board.c中的start_armboot函数中有这么一句: #if (CONFIG_COMMANDS & CFG_CMD_NAND) puts ("NAND:"); nand_init(); /* go init the NAND */ #endif 但是在board/smdk2410目录下任何源文件中都没有定义nand_init这个函数。 所以需要我们补充这个函数以及这个函数涉及的底层操作。 我们可以仿照VCMA9板的nand_init函数,VCMA9板是一款用S3C2410做CPU的DEMO Board,因此这部分操作和SMDK2410 Demo Board很相似。大部分代码可以照搬。 首先将board/mpl/vcma9/vcma9.c中下面代码拷贝到board/smdk2410/ smdk2410.c中来。 /* * NAND flash initialization. */ #if (CONFIG_COMMANDS & CFG_CMD_NAND) extern ulong nand_probe(ulong physadr); static inline void NF_Reset(void) { int i; NF_SetCE(NFCE_LOW); NF_Cmd(0xFF); /* reset command */ for(i = 0; i < 10; i++); /* tWB = 100ns. */ NF_WaitRB(); /* wait 200~500us; */ NF_SetCE(NFCE_HIGH); } static inline void NF_Init(void) { #if 0 /* a little bit too optimistic */ #define TACLS 0 #define TWRPH0 3 #define TWRPH1 0 #else #define TACLS 0 #define TWRPH0 4 #define TWRPH1 2 #endif NF_Conf((1<<15)|(0<<14)|(0<<13)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<0)); /*nand->NFCONF = (1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<0); */ /* 1 1 1 1, 1 xxx, r xxx, r xxx */ /* En 512B 4step ECCR nFCE=H tACLS tWRPH0 tWRPH1 */ NF_Reset(); } void nand_init(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); NF_Init(); #ifdef DEBUG printf("NAND flash probing at 0x%.8lXn", (ulong)nand); #endif printf ("%4lu MBn", nand_probe((ulong)nand) >> 20); } #endif 再将board/mpl/vcma9/vcma9.h中下面代码拷贝到board/smdk2410/ smdk2410.c中来。 #if (CONFIG_COMMANDS & CFG_CMD_NAND) typedef enum { NFCE_LOW, NFCE_HIGH } NFCE_STATE; static inline void NF_Conf(u16 conf) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFCONF = conf; } static inline void NF_Cmd(u8 cmd) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFCMD = cmd; } static inline void NF_CmdW(u8 cmd) { NF_Cmd(cmd); udelay(1); } static inline void NF_Addr(u8 addr) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFADDR = addr; } static inline void NF_SetCE(NFCE_STATE s) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); switch (s) { case NFCE_LOW: nand->NFCONF &= ~(1<<11); break; case NFCE_HIGH: nand->NFCONF |= (1<<11); break; } } static inline void NF_WaitRB(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); while (!(nand->NFSTAT & (1<<0))); } static inline void NF_Write(u8 data) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFDATA = data; } static inline u8 NF_Read(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); return(nand->NFDATA); } static inline void NF_Init_ECC(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); nand->NFCONF |= (1<<12); } static inline u32 NF_Read_ECC(void) { S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); return(nand->NFECC); } #endif 再将include/configs/vcma.9中下面代码拷贝到include/configs/smdk2410.h中来。 /*----------------------------------------------------------------------- * NAND flash settings */ #if (CONFIG_COMMANDS & CFG_CMD_NAND) #define CFG_MAX_NAND_DEVICE 1 /* Max number of NAND devices */ #define SECTORSIZE 512 #define ADDR_COLUMN 1 #define ADDR_PAGE 2 #define ADDR_COLUMN_PAGE 3 #define NAND_ChipID_UNKNOWN 0x00 #define NAND_MAX_FLOORS 1 #define NAND_MAX_CHIPS 1 #define NAND_WAIT_READY(nand) NF_WaitRB() #define NAND_DISABLE_CE(nand) NF_SetCE(NFCE_HIGH) #define NAND_ENABLE_CE(nand) NF_SetCE(NFCE_LOW) #define WRITE_NAND_COMMAND(d, adr) NF_Cmd(d) #define WRITE_NAND_COMMANDW(d, adr) NF_CmdW(d) #define WRITE_NAND_ADDRESS(d, adr) NF_Addr(d) #define WRITE_NAND(d, adr) NF_Write(d) #define READ_NAND(adr) NF_Read()

    时间:2021-04-12 关键词: 移植 Uboot ARMer9开发系统

  • 高效的C编程之:C编译器及其优化(上)

    高效的C编程之:C编译器及其优化(上)

    本章将帮助读者在ARM处理器上编写高效的C代码。本章涉及的一些技术不仅适用于ARM处理器,也适用于其他RISC处理器。本章首先从ARM编译器及其优化入手,讲解C编译器在优化代码时所碰到的一些问题。理解这些问题,将有助于编写出在提高执行速度和减少代码尺寸方面更高效的C源代码。 本章假定读者熟悉C语言,并且有一些汇编语言编程方面的知识。有关ARM编程的详细信息,请参阅本书的相关章节。 14.1C编译器及其优化 本章主要讲解C编译器在代码优化时遇到的一些问题。要编写高效的C语言源代码,必须了解C编译器对什么形式的代码有所改动,编译器涉及的处理器结构的限制,以及一些特殊的C编译器的限制。 14.1.1为编译器选择处理器结构 在编译C源文件时,必须为编译器指定正确的处理器类型。这样可以使编译的代码最大限度地利用处理器的硬件结构,如对半字加载(HalfwordLoad)、存储指令(StoreInstructions)和指令调度(InstructionScheduling)的支持。所以编译程序时,应该尽量准确地告诉编译器该代码是运行在什么类型的处理器上。有些处理器类型编译器是不能直接支持,如SA-1100,这时可以使用与该类型处理器为同一指令集的基本处理器,比如对于SA-100,可以使用StrongARM。 注意 指定目标处理器可能使代码与其他ARM处理器不兼容。例如,编译时指定了ARMv6体系结构的代码,可能不能运行在ARM920T的处理器上(如果代码中使用了ARMv6体系结构中特有的指令)。 选择处理器类型可以使用--cpuname编译选项。该选项生成用于特定ARM处理器或体系结构的代码。 如果name是处理器名称。 ·输入名称必须和ARM数据表中所示严格一致,例如ARM7TDMI。该选项不接受通配符字符。有效值是任何ARM6或更高版本的ARM处理器。 ·选择处理器操作会选择适当的体系结构、浮点单元(FPU)以及存储结构。 ·某些--cpu选择暗含--fpu选择。例如,当使用--arm选项编译时,--cpuARM1136JF-S暗含--fpuvfpv2。隐式FPU只覆盖命令行上出现在--cpu选项前面的显式--fpu选项。如果没有指定--fpu选项和--cpu选项,则使用--fpusoftvfp。 14.1.2调试选项 如果在编译C源程序时,设置了调试选项,这将很大程度地影响最终代码的大小和执行效率。因为带调试信息的代码映像,为了能够在调试程序时正确地显示变量或设置断点,包含很多冗余的代码和数据。所以如果想最大限度地提供程序执行效率、减少代码尺寸,就要在编译源文件时,去除编译器的调试选项。 以下选项指定调试表生成方法。 ·-g(--debug):该选项启用生成当前编译的调试表。无论是否使用-g选项,编译器都生成的代码是相同的。惟一差别是调试表的存在与否。编译器是否对代码进行优化是由-O选项指定调的。默认情况下,使用-g选项等价于使用:-g-dwarf2--debug_macros。 注意 编译程序时,只使用-g选项而没有使用优化选项,编译器会提示警告信息。 ·--no_debug:该选项禁止生成当前编译的调试表。这是默认选项。 ·--no_debug_macros:当与-g一起使用时,该选项禁止生成预处理程序宏定义的调试表条目(Entry)。这会减小调试映像的大小。-gt-p是-gtp的同义字。 --debug_macros当与-g一起使用时,该选项启用生成预处理程序宏定义的调试表条目。这是默认选项,会增加调试映像的大小。一些调试程序忽略预处理程序条目。 14.1.3优化选项 使用-Onum选择编译器的优化级别。优化级别分别为。 ·-O0:除一些简单的代码编号之外,关闭所有优化。使用该编译选项可以提供最直接的优化信息。 ·-O1:关闭严重影响调试效果的优化功能。使用该编译选项,编译器会移除程序中未使用到的内联函数和静态函数。如果与--debug一起使用,该选项可以在较好的代码密度下,给出最佳调试视图。 ·-O2:生成充分优化代码。如果与--debug一起使用,调试效果可能不令人满意,因为目标代码到源代码的映射可能因为代码优化而发生变化。 如果不生成调试表,这是默认优化级别。 ·-O3:最高优化级别。使用该优化级别,使生成的代码在时间和空间上寻求平衡。该选项常和-Ospace和-Otime配合使用。 ·-O3–Otime:使用该选项编译的代码比-O2–Otime选项编译的代码,在执行速度上要快,但占用的空间也更大。 ·-O3-Ospace:产生的代码比使用-O2-Ospace选项产生的代码尺寸小,但执行效率可能会差。 如果要使编译的代码更侧重于代码的尺寸或执行效率(两者往往不可兼得),可以使用下面的编译选项。 ·-Ospace:指示编译程序执行优化,以延长执行时间为代价减小映像大小。例如,由外部函数调用代替内联函数。如果代码大小比性能更重要,则使用该选项。这是编译器的默认设置。 ·-Otime:指示编译程序执行优化,以增大映像大小为代价缩短执行时间。如果执行时间比代码大小更重要,则使用该选项。例如,它编译: while(expression)body; 为: if(expression){ dobody; while(expression); } 如果既不指定-Otime也不指定-Ospace,则编译器默认使用-Ospace。可使用-Otime编译代码中对时间要求严格的部分,使用-Ospace编译其余部分。但不能在同一编译程序调用中同时指定-Otime和-Ospace。 14.1.4AAPCS选项 ARM结构过程调用标准AAPCS(ProcedureCallStandardfortheARMArchitecture)是ARM体系结构二进制接口ABI(ApplicationBinaryInterfacefortheARMArchitecture【BSABI】)标准的一部分。使用该标准可以很方便的执行C和汇编语言的相互调用。 编译程序时,使用--apcs选项可以指定所使用得AAPCS标准的版本。如果没有指定--apcs或--cpu选项,则编译器使用下面默认编译选项。 --apcs/noswst/nointer/noropi/norwpi--cpuARM7TDMI--fpusoftvfp 有关AAPCS的详细信息,请参加ARM相关文档。 14.1.5编译选项对代码生成影响示例 本节举例说明编译器的优化选项如何影响代码生成。 1.使用-O0选项 下面的例子显示了即使使用-O0编译选项对代码进行编译时,有些冗余代码还是会被编译器自动清除。 intf(int*p) { return(*p==*p); } 使用armcc-c-O0对源程序进行编译,生成的汇编代码如下所示。 f MOVr1,r0 MOVr0,#1 MOVpc,lr 通过上面的例子可以看到,编译出的最终代码中没有加载(Load)指针P的值,变量*p被编译器优化掉了。如果不想让编译器对变量*p做优化,可以使用“volatile”对变量进行声明。下面的例子,显示了将变量声明为“volatile”类型后,使用armcc编译(-O2的优化级别)后的结果。 f LDRr1,[r0] LDRr0,[r0] CMPr1,r0 MOVNEr0,#0 MOVEQr0,#1 MOVpc,lr 另外,编译的代码中的“MOVr1,r0”并没有实际意义,只是为了方便调试程序时设置断点使用。

    时间:2021-04-12 关键词: 优化 C编程 C编译器

  • 浅析基于MB86R01的汽车数字化虚拟仪表设计

    浅析基于MB86R01的汽车数字化虚拟仪表设计

    随着汽车、通信、信息电器、医疗、军事等行业的巨大的智能化需要,嵌入式软件及系统发展迅速。微处理器从8位到16位、32位甚至64位,从支持单一品种的CPU芯片到支持多品种的,从单一内核到除了内核外还提供其它功能模块。而且随着硬件技术的不断革新,硬件平台的处理能力不断增强,成本不断下降,嵌入式软件已成为产品的数字化改造、智能化增值的关键性、带动性技术。因此,开发一个集成化嵌入式控制、高速数据采集和网络通信于一体,并提供友好的人机操作界面的硬件平台和多种总线接口,对于提高嵌入式系统可靠性、组网灵活性意义重大。 据此,本文介绍的MB86R01芯片,将ARM926EJ-S核、2D/3D显示、车载通信功能、各种应用接口集成到一个单芯片上,集成度高,智能化强。而且支持程序保护功能,能够防止非法读取和篡改。 1 MB86R01的工作机制 MB86R01芯片是富士通推出的基于ARM926EJ-S内核的16/32位RISC嵌入式微处理器,主要面向汽车导航仪和仪表盘。ARM926EJ-S处理器具有完整的存储器管理、高性能、低晶粒尺寸以及低功耗等重要的多任务处理器应用;支持32位的ARM和16位的Thumb指令集;支持ARM调试体系并包括支持硬件和软件调试的逻辑;拥有一条带高速缓存(cached)的哈佛总线体系并提供一个完整的高性能处理器子系统,包括: (1)一个ARM926EJ-S定点数(integer)内核; (2)一个存储器管理单元(MMU); (3)单独的指令和数据AMBA AHB总线接口; (4)单独的指令和数据TCM接口。 MB86R01内部结构比较复杂,主要有ARM9核心、绘图显示控制器、USB多媒体系统接口、CAN控制器,以及硬盘接口IDE66(平行-ATA/ATA PI-5)等。MB86R01内部结构如图1所示。 MB86R01提供了一套非常完整的通用系统的外围设备,并且使整个系统的消耗最小。而且它具有很多常用模块,因此不用再添加配置附加设备。片上集成的功能主要包括如下方面: ◇采用90nm工艺; ◇内部内存控制器的工作频率是320MHz; ◇显示分辨率:行业标准的显示分辨率,从320*240到1024*768; ◇具有EMT9和JTAG ICE接口; ◇内置外部DDR2(频率:166MHz/双缘:333MHz)和内存接口,可支持高速运作功能; ◇具有平行Flash/SRAM主机接口; ◇具有平行ATA接口; ◇SD卡接口; ◇CAN控制器接口; ◇MediaLB接口; ◇USB2.0多媒体系统接口; ◇I2C接口; ◇I2S接口; ◇SPI接口: ◇ADC接口; ◇PWM接口; ◇GPIO接口; ◇UART接口; ◇温度范围在-45~+85℃; ◇功率损耗:1.5W; ◇封装:份子化合物塑料球栅封装阵列484针(PBGA484); ◇具有扩展外部总线,支持软件开发和硬件调试。 1.1 图像显示控制器(GDC) MB 86R01内部集成的图像显示控制器MB86296是32位,具有多种人机接口,组合了汽车环境要求的多种功能,其主要功能是在显示丰富的图像内容时控制LCD面板,其它功能包括视点导航、模拟测量仪表与两刷的实时显示,以及其它对主CPU工作不构成太大压力的信息显示。其内部集成的具体功能介绍如下: (1)具有一个几何引擎,通过浮点运算可实现精确的数字化图形处理。 (2)具有RGB/YUV双重视频显示及输出,而且能进行视频捕捉,可存储DVD及其它图形存储器中的数字视频数据,视频输入的亮度、饱和度及对比度可通过编程控制。 (3)具有双重显示功能,即可在同一个屏幕上显示视频和图像,来提供高清晰度的地图或图像。 (4)支持6层重叠/α混合,且6层显示支持4个不同的彩色调色板,每个调色板提供256色。所有层均提供24或16位分辨率直接彩色或8位分辨率的间接彩色。而且显示分辨率从320*240到1024*768。 (5)具有2D/3D作图引擎,兼容2D/3D显卡(166MHz)功能,除阴影、纹理、纹理映射等正规的3D绘图以外,硬件还支持最适用于地图的“粗线”、“虚线”、“斜线”,与图形保真功能组合使用能够绘制出光滑漂亮的直线,还有能够根据进深绘制,简单地表达交叉点和立体交叉。 (6)提供200MHz至400MHz显示点时钟频率,控制器的额定值为1.8V、500mA和3.3V、100mA,与富士通所 有的图形显示控制器IC兼容,无需外部附加逻辑电路,并可用于不同的主机CPU总线。 (7)支持纹理映射(视频材料),最大映射单元到4096*4096。 MB86296的内部结构如图2所示。 1.2 内置车载通信/媒体网络用的多种外围接口 在汽车电子方面,车载控制类系统和信息娱乐系统的合并正在加速。作为车载通信类接口,该器件内置了CAN、MediaLB,作为多媒体类接口内置了USB,作为硬盘接口内置了IDE66(平行-ATA/ATAPI-5),作为音频接口内置了I2S等,拥有各种各样的外围接口。本产品只用单芯片就能满足从车载通信控制到多媒体处理的所有需求。 1.3 支持程序保护功能 近年来,汽车仪表盘的数字化正在加速,随之出现了将保存基本软件的Flash-ROM外置的趋势。因此需要采取防止非法读取和篡改ROM代码的对策。MB86R01满足了该需求,支持程序保护功能,可以使用自己定义的密钥加密的程序。 2 带操作系统应用 MB86R01芯片可以不带操作系统应用,但是为了实现功能复杂的资源利用,提高硬件功能利用效率,简化开发难度,并且达到实时、多线程工作,需要采用实时嵌入式操作系统,如Linux,WinCE,VxWorks,UC/OS-II,QNX,TRON等。Linux和WinCE系统适用于多媒体、汽车导航和娱乐系统;对于VxWorks,UC/OS-II,QNX,TRON系统,基于启动快,实时性强,多用于汽车数字仪表显示。本人已经成功的把UC/OS-II植入MB86R01中,实现了汽车数字化仪表的多任务实时显示。 3 结束语 富士通推出的MB86R01基于ARM9的芯片,适用于汽车应用中的先进导航和视频显示,可做成汽车数字化虚拟仪表显示,用来代替现在汽车上普遍应用的机械式仪表,而且向ARM9中移植操作系统后,可很容易的实现仪表的多线程多任务同时显示,如在显示车速、转速、水温、油量等信息时,同时播放音频和视频,双屏幕显示等。嵌入式系统的高速发展势必将不断促进ARM技术的向前发展。基于MB86R01强大的ARM内核,体积小,性能高,功耗小等优点,一定会有广阔的发展前景。

    时间:2021-04-12 关键词: 汽车数字化虚拟仪表 MB86R01 ARM926EJ-S核心

  • ARM开发:一 ARM微处理器概述

    ARM开发:一 ARM微处理器概述

    1.1ARM-Advanced RISC Machines ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。 ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。 1.2 ARM微处理器的应用领域及特点 1.2.1 ARM微处理器的应用领域 到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域: 1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术, ARM以其高性能和低成本,在该领域的地位日益巩固。 3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。 除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。 1.2.2 ARM微处理器的特点 采用RISC架构的ARM微处理器一般具有如下特点: 1、体积小、低功耗、低成本、高性能; 2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定; 1.3 ARM微处理器系列 ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。 - ARM7系列 - ARM9系列 - ARM9E系列 - ARM10E系列 - SecurCore系列 - Inter的Xscale - Inter的StrongARM 其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。 以下我们来详细了解一下各种处理器的特点及应用领域。 1.3.1 ARM7微处理器系列 ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点: - 具有嵌入式ICE-RT逻辑,调试开发方便。 - 极低的功耗,适合对功耗要求较高的应用,如便携式产品。 - 能够提供0.9MIPS/MHz的三级流水线结构。 - 代码密度高并兼容16位的Thumb指令集。 - 对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。 - 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。 - 主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。 ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。 ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、 ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为: T: 支持16为压缩指令集Thumb; D: 支持片上Debug; M:内嵌硬件乘法器(Multiplier) I: 嵌入式ICE,支持片上断点和调试点; 本书所介绍的Samsung公司的S3C4510B即属于该系列的处理器。 1.3.2 ARM9微处理器系列 ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点: - 5级整数流水线,指令执行效率更高。 - 提供1.1MIPS/MHz的哈佛结构。 - 支持32位ARM指令集和16位Thumb指令集。 - 支持32位的高速AMBA总线接口。 - 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 - MPU支持实时操作系统。 - 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。 ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。 ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。 1.3.3 ARM9E微处理器系列 ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。 ARM9E系列微处理器的主要特点如下: - 支持DSP指令集,适合于需要高速数字信号处理的场合。 - 5级整数流水线,指令执行效率更高。 - 支持32位ARM指令集和16位Thumb指令集。 - 支持32位的高速AMBA总线接口。 - 支持VFP9浮点处理协处理器。 - 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 - MPU支持实时操作系统。 - 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。 - 主频最高可达300MIPS。 ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。 1.3.4 ARM10E微处理器系列 ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。 ARM10E系列微处理器的主要特点如下: - 支持DSP指令集,适合于需要高速数字信号处理的场合。 - 6级整数流水线,指令执行效率更高。 - 支持32位ARM指令集和16位Thumb指令集。 - 支持32位的高速AMBA总线接口。 - 支持VFP10浮点处理协处理器。 - 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 - 支持数据Cache和指令Cache,具有更高的指令和数据处理能力 - 主频最高可达400MIPS。 - 内嵌并行读/写操作部件。 ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。 ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。 1.3.5 SecurCore微处理器系列 SecurCore系列微处理器专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案,因此,SecurCore系列微处理器除了具有ARM体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了对安全解决方案的支持。 SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,还在系统安全方面具有如下的特点: - 带有灵活的保护单元,以确保操作系统和应用数据的安全。 - 采用软内核技术,防止外部对其进行扫描探测。 - 可集成用户自己的安全特性和其他协处理器。 SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。 SecurCore系列微处理器包含SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210四种类型,以适用于不同的应用场合。 1.3.6 StrongARM微处理器系列 Inter StrongARM SA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Inter公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。 Intel StrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。 1.3.7 Xscale处理器 Xscale 处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。

    时间:2021-04-12 关键词: ARM 微处理器 概述

  • 分析C51单片机的一些误区和注意事项

    分析C51单片机的一些误区和注意事项

    简介:常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。 1) C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是&x, 你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个初学者。 2) 设置SP的问题。 原因和1差不对,编译器在把所有变量和缓冲区赋予地址后,自动把最后一个字节开始的地方,作为SP的开始位置,所以初学者是不必 要去理会的。这体现C的优越性,很多事情C编译时候做了。 3) 用C的主程序结构: #include void main(void) { while(1); } 这是个最小的成功的C程序,包括头部文件和程序主体。 头部文件的名词解释:引用的外部资源文件,这个文件包括了硬件信息和外部模块提供的可使用的函数和变量的说明。可以用文本方 式打开reg52.h,仔细研究下,会有一些写程序的体会。 4) 这样构成一个C项目 在C中,常用项目来管理。项目一般分为两大块:C文件块和头部文件块。 我们常把不同功能写在不同的C文件中,依据项目的管理,最后把所有文件连接起来,这样就可以得到可以烧录的HEX文件或BIN文件。 这些C文件中,有且只有唯一一个包括main()函数,和3)中一样的C文件。 用头部文件把各个不同的C互相连接起来。 一个C文件基本上要对应有一个H头部文件,这个H文件就包含本C文件中可以提供给外面使 用的变量和函数,没有在H文件中列出的募??梢运闶歉肅文件的内部函数和变量,外部C不能使用。 例子:a.C: unsigned char i; unsigned char mWork; void Test1(void) { mWork++; } void Test2(void) { i++; } a.h文件中: extern unsigned char i; extern void Test1(void); 这样主程序M.c中: #include /*C编译器内部自带的H文件,使用<>*/ #i nclude 'a.h' /*自定义的H文件,一般用''*/ void main(void) { Test1(); /*使用a.c模块文件中的函数*/ while(1){ i++; /*使用a.c模块文件中的变量*/ } } 5) 51家族 核心都是基于8031的,有很多在此核心上进行扩展,有的把程序存储器放在内部:89c(S)51..,有的增加了RAM:89c(S)52..,有的增加 了一些专用硬件80C552...,有的改变时钟时序W77E58...。市面上现在常用的主要有ATMEL公司的AT89X系列,PHILIPS的P87(89)x,台 湾WINBOND的w77(78)x系列,Cygnal的C8051Fx系列。 6) 51单片机结构的C描述 这里不讲51的具体结构,只是引导初学者快速理解51单片机的物理结构。寄存器和IO及其它硬件设备的地址名称,在相应的C头部文件 中可以找到。51为reg51.h,52为reg52.h,以次类推,比如winbond的78E58就为w78e58.h这些H文件中的描述: srf,定义一个8位的设备。 srf16,定义一个16位的设备。 sbit,定义一个位的设备。 用这些语句定义后,就可以在C中象汇编一样使用这些硬件设备,这是单片机应用比标准C特殊的地方,其它差别很少。 7) 在51系列中data,idata,xdata,pdata的区别 data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式 访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用。但也有他的优点,具体用法属于中级问题,这里不提。 8) startup.a51的作用 和汇编一样,在C中定义的那些变量和数组的初始化就在startup.a51中进行,如果你在定义全局变量时带有数值,如unsigned char data xxx=100;,那startup.a51中就会有相关的赋值。如果没有=100,startup.a51就会把他清0。(startup.a51==变量的初始化)。 这些初始化完毕后,还会设置SP指针。对非变量区域,如堆栈区,将不会有赋值或清零动作。 有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。比如掉电保护的时候想保存一些变量, 但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现。 为什么还要去改? 可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性。

    时间:2021-04-12 关键词: C51 单片机 误区 注意事项

  • 51单片机几个延时程序

    51单片机几个延时程序

    简介:51单片机几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响. 一. 500ms延时子程序(晶振12MHz,一个机器周期1us.) 程序: void delay500ms(void) { unsigned char i,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--); } 计算分析: 程序共有三层循环 一层循环n:R5*2 = 81*2 = 162us DJNZ 2us 二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us 三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us 循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us 延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms 计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5 二. 200ms延时子程序 程序: void delay200ms(void) { unsigned char i,j,k; for(i=5;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--); } 三. 10ms延时子程序 程序: void delay10ms(void) { unsigned char i,j,k; for(i=5;i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--); } 四. 1s延时子程序 程序: void delay1s(void) { unsigned char h,i,j,k; for(h=5;h>0;h--) for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--); } void delay1s(void)//12M晶振,延时999999.00us { unsigned char i,j,k; for(i=46;i>0;i--) for(j=152;j>0;j--) for(k=70;k>0;k--); }

    时间:2021-04-12 关键词: 循环 51单片机 延时程序

  • 总结单片机软件抗干扰的几种办法

    总结单片机软件抗干扰的几种办法

    简介:在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。 1、软件抗干扰方法的研究 在工程实践中,软件抗干扰研究的内容主要是:一、消除模拟输入信号的噪声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。 1.1 指令冗余 CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞”到了三字节指令,出错机率更大。 在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。 此外,对系统流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。 1.2 拦截技术 所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。 (1)软件陷阱的设计 当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱: NOPNOPLJMP 0000H其机器码为0000020000。 (2)陷阱的安排 通常在程序中未使用的EPROM空间填0000020000。最后一条应填入020000,当乱飞程序落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式: NOPNOPRETI返回指令可用“RETI”,也可用“LJMP0000H”。如果故障诊断程序与系统自恢复程序的设计可靠、完善,用“LJMP0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。 考虑到程序存贮器的容量,软件陷阱一般1K空间有2-3个就可以进行有效拦截。 1.3 软件“看门狗”技术 若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。 “看门狗”技术可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断。则系统无法定时“喂狗”,硬件看门狗电路失效。而软件看门狗可有效地解决这类问题。 笔者在实际应用中,采用环形中断监视系统。用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0。采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统可靠性。对于需经常使用T1定时器进行串口通讯的测控系统,则定时器T1不能进行中断,可改由串口中断进行监控(如果用的是MCS-52系列单片机,也可用T2代替T1进行监视)。这种软件“看门狗”监视原理是:在主程序、T0中断服务程序、T1中断服务程序中各设一运行观测变量,假设为MWatch、T0Watch、T1Watch,主程序每循环一次,MWatch加1,同样T0、T1中断服务程序执行一次,T0Watch、T1Watch加1。在T0中断服务程序中通过检测T1Watch的变化情况判定T1运行是否正常,在T1中断服务程序中检测MWatch的变化情况判定主程序是否正常运行,在主程序中通过检测T0Watch的变化情况判别T0是否正常工作。若检测到某观测变量变化不正常,比如应当加1而未加1,则转到出错处理程序作排除故障处理。当然,对主程序最大循环周期、定时器T0和T1定时周期应予以全盘合理考虑。限于篇幅不赘述。 2、系统故障处理、自恢复程序的设计 单片机系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。 2.1 非正常复位的识别 程序的执行总是从0000H开始,导致程序从0000H开始执行有四种可能:一、系统开机上电复位;二、软件故障复位;三、看门狗超时未喂狗硬件复位;四、任务正在执行中掉电后来电复位。四种情况中除第一种情况外均属非正常复位,需加以识别。 (1)硬件复位与软件复位的识别 此处硬件复位指开机复位与看门狗复位,硬件复位对寄存器有影响,如复位后PC=0000H,SP=07H,PSW=00H等。而软件复位则对SP、SPW无影响。故对于微机测控系统,当程序正常运行时,将SP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1,那么系统复位时只需检测PSW.5标志位或SP值便可判此是否硬件复位。 由于硬件复位时片内RAM状态是随机的,而软件复位片内RAM则可保持复位前状态,因此可选取片内某一个或两个单元作为上电标志。设40H用来做上电标志,上电标志字为78H,若系统复位后40H单元内容不等于78H,则认为是硬件复位,否则认为是软件复位,转向出错处理。若用两个单元作上电标志,则这种判别方法的可靠性更高。 (2)开机复位与看门狗故障复位的识别 开机复位与看门狗故障复位因同属硬件复位,所以要想予以正确识别,一般要借助非易失性RAM或者EEROM。当系统正常运行时,设置一可掉电保护的观测单元。当系统正常运行时,在定时喂狗的中断服务程序中使该观测单元保持正常值(设为AAH),而在主程中将该单元清零,因观测单元掉电可保护,则开机时通过检测该单元是否为正常值可判断是否看门狗复位。 (3)正常开机复位与非正常开机复位的识别 识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位,对于过程控制系统尤为重要。如某以时间为控制标准的测控系统,完成一次测控任务需1小时。在已执行测控50分钟的情况下,系统电压异常引起复位,此时若系统复位后又从头开始进行测控则会造成不必要的时间消耗。因此可通过一监测单元对当前系统的运行状态、系统时间予以监控,将控制过程分解为若干步或若干时间段,每执行完一步或每运行一个时间段则对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值,若系统正在进行测控任务或正在执某时间段,则将监测单元置为非正常关机值。那么系统复位后可据此单元判系统原来的运行状态,并跳到出错处理程序中恢复系统原运行状态。 2.2 非正常复位后系统自恢复运行的程序设计 对顺序要求严格的一些过程控制系统,系统非正常复位否,一般都要求从失控的那一个模块或任务恢复运行。所以测控系统要作好重要数据单元、参数的备份,如系统运行状态、系统的进程值、当前输入、输出的值,当前时钟值、观测单元值等,这些数据既要定时备份,同时若有修改也应立即予以备份。 当在已判别出系统非正常复位的情况下,先要恢复一些必要的系统数据,如显示模块的初始化、片外扩展芯片的初始化等。其次再对测控系统的系统状态、运行参数等予以恢复,包括显示界面等的恢复。之后再把复位前的任务、参数、运行时间等恢复,再进入系统运行状态。 应当说明的是,真实地恢复系统的运行状态需要极为细致地对系统的重要数据予以备份,并加以数据可靠性检查,以保证恢复的数据的可靠性。 其次,对多任务、多进程测控系统,数据的恢复需考虑恢复的次序问题。 系统基本初始化是指对芯片、显示、输入输出方式等进行初始化,要注意输入输出的初始化不应造成误动作。而复位前任务的初始化是指任务的执行状态、运行时间等。 对于软件抗干扰的一些其它常用方法如数字滤波、RAM数据保护与纠错等,限于篇幅,本文未作讨论。在工程实践中通常都是几种抗干扰方法并用,互相补充完善,才能取得较好的抗干扰效果。从根本上来说,硬件抗干扰是主动的,而软件是抗干扰是被动的。细致周到地分析干扰源,硬件与软件抗干扰相结合,完善系统监控程序,设计一稳定可靠的单片机系统是完全可行的。

    时间:2021-04-12 关键词: 单片机 软件抗干扰 MCS-51单片机

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章