技术
单片机(MCU)一般都有内部EEPROM/FLASH供用户存放程序和工作数据。什么叫单片机解密呢?如果要非法读出里的程式,就必需解开这个密码才能读出来,这个过程通常称为单片机解密或芯片加密。
为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序;如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序这就叫单片机解密。大部分单片机程式写进单片机后,工程师们为了防止他人非法盗用,所以给加密,以防他人读出里面的程式。
可穿戴设备要求很高的可靠性,因此当PCB设计师面临着使用FR4(具有最高性价比的PCB制造材料)或更先进更昂贵材料的选择时,这将成为一个问题。
由于体积和尺寸都很小,对日益增长的可穿戴物联网市场来说几乎没有现成的印刷电路板标准。在这些标准面世之前,我们不得不依靠在板级开发中所学的知识和制造经验,并思考如何将它们应用于独特的新兴挑战。有三个领域需要我们特别加以关注,它们是:电路板表面材料,射频/微波设计和射频传输线。
<strong>PCB材料</strong>
PCB一般由叠层组成,这些叠层可能用纤维增强型环氧树脂(FR4)、聚酰亚胺或罗杰斯(Rogers)材料或其它层压材料制造。不同层之间的绝缘材料被称为半固化片。
中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心,它的功能主要是解释计算机指令以及处理计算机软件中的数据。主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。
目前,嵌入式处理器的高端产品有:Advanced RISC Machines公司的ARM、Silicon Graphics公司的MIPS、IBM和Motorola的Power PC 、Intel的X86和i960芯片、AMD的Am386EM、Hitachi的SH RISC芯片;掌上电脑的处理器有六类处理器,分别是:英特尔的PXA系列处理器、MIPS处理器、StrongARM系列处理器、日立SH3处理器、摩托罗拉龙珠系列处理器和德州仪器OMAP系列处理器。
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
<strong>技术原理</strong>
电子产品的设计越来越趋向于模块化,不同功能模块经过有机结合可快速打造出优质、性能各异的产品。而其中模块的连接就显得尤为重要,今天就由资深硬件工程师分享一些关于连接器选择的经验。
连接器就像程序的函数接口,设计合理了,将来产品维护、升级、移植都会事半功倍,使产品保持持久的生命力;设计不合理,造成将来维护、升级时困难重重,牵一发而动全身,最终使产品失去竞争力,连接器的重要性不言而喻。
连接器,也就是工程师俗称的接插件,用于把两个电路板或电子设备连接起来,实现电源或信号的传输。通过连接器,可以使电路模块化,简化电子产品的装配过程,使产品便于维护、升级。
连接器种类非常多,常见的种类有通信接口端子、接线端子、线对板连接器、板对板连接器等。每个种类又可细分为若干类,如:
作为一名电子工程师,对于电路不说必须要非常精通,但至少能够看得懂电路,知道电路保护器件的作用,在客户提出防护需求时,及时给出有效且具有实施性的整改意见。
电路保护元器件应用领域广泛,只要有电的地方就有安装电路保护元器件的必要,如各类家用电器、家庭视听及数码产品、个人护理等消费类电子产品、计算机及其周边、手机及其周边、照明、医疗电子、汽车电子、电力、工业设备等,涵盖人们生产生活的方方面面。
物联网在各个层面都存在严重的安全问题:硬件,软件,网络和终端用户。微软研究院的下一代操作系统技术集团一直负责Sopris项目“探索确保广大低成本的互联网连接设备的联机目标”与。他们分享了他们的第一个技术报告,其中指出“高度安全的设备的七个属性”,并描述了他们在设计基于微控制器的基于Mediatek MT7687 MIPS微控制器的原型设备的实验,并展示了这七个属性。
能同电脑的性能是天渊之别的,无论从空间资源上、内存资源、工作频率,都是无法与之比较的。PC 机编程基本上不用考虑空间的占用、内存的占用的问题,最终目的就是实现功能就可以了。对于单片机来说就截然不同了,一般的单片机的Flash 和Ram 的资源是以KB 来衡量的,可想而知,单片机的资源是少得可怜,为此我们必须想法设法榨尽其所有资源,将它的性能发挥到最佳,程序设计时必须遵循以下几点进行优化:
1.使用尽量小的数据类型
能用unsiged就不用signed;
能用char就不用int;
能不用floating就不用。
能用位操作不用算数。
2.使用自加、自减指令
三极管在数字电路里的开关特性,最常见的应用有 2 个:一个是控制应用,一个是驱动应用。所谓的控制就是如图 3-7 里边介绍的,我们可以通过单片机控制三极管的基极来间接控制后边的小灯的亮灭,用法大家基本熟悉了。还有一个控制就是进行不同电压之间的转换控制,比如我们的单片机是 5V 系统,它现在要跟一个 12V 的系统对接,如果 IO 直接接 12V电压就会烧坏单片机,所以我们加一个三极管,三极管的工作电压高于单片机的 IO 口电压,用 5V 的 IO 口来控制 12V 的电路,如图 3-8 所示。
本系列设计指南的第五篇文章将教您如何像Pro一样构建源代码。在Simplicity Studio中构建代码是很简便的,因为安装程序会为您设置所有内容,您可以在安装程序完成后几分钟内开始调试项目。但不要过分依赖构建工具。这些工具不能代替你完成所有工作,而且您可能对这些工具感到失望。把C语言转换为二进制,然后写到你的MCU这一过程背后有许多步骤。
<strong>1 不要忘记复制或连接emlib文件</strong>
对用于开启车库门等应用的小型交流感应电机而言,使用三相逆变器电路可以极低的成本实现速度控制和软启动。这些固定分相电容式(PSC)电机在所有电机类型中可谓是最简单的,也是上述应用领域使用最广泛的电机类型。它们的启动转矩和启动电流都小,但可能会因为采用无极性电容而效率低下,这些电容往往在电机中最先损坏。
来源:芯师爷
今天跟大家分享一篇高科技含量的文章,主要讲解各种MCU的攻防技术,相信能给志在研究MCU防护的同学,很多参考思路。这篇文章来自俄国人Sergei P.Skorobogatov就读英吉利剑桥大学之博士论文,真可以称为一部小百科全书。
<font size="4" ><strong>■ 什么是非侵入式攻击? </strong></font>
ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经成为嵌入式应用和设计的主流。与国内大量应用的8位单片机相比,32位的嵌入式CPU有着非常大的优势,它为嵌入式设计带来丰富的硬件功能和额外的性能,使得整个嵌入式系统的升级只需通过软件的升级即可实现。而8位处理器通常受到的64K软件限制也不存在了,设计者几乎可以任意选择多任务操作系统,并将应用软件设计得复杂庞大,真正体现“硬件软件化”的设计思想。
本文比较了8位元MCU和32位元MCU的使用案例,可作为如何选择这两种MCU架构的指南使用。
本文大部分32位元范例将关注于ARM Cortex-M装置,Cortex-M在不同MCU供应商产品组合中表现非常相似。由于8位元MCU有很多种架构,所以很难对8位元供应商之间进行类似的产品比较。为了进行比较,本文将使用广泛应用、易于理解的8051 8位元架构。
事实上,「ARM Cortex和8051哪个比较好」不是个逻辑问题,反而像是在问「吉他和钢琴哪个好」?真正要解决的问题是「哪种MCU最能帮助解决目前面临的问题?」。
不同的任务须使用不同的工具,使用者目的是要了解「如何才能善用所拥有的工具」,包括8位元和32位元装置。
来源:<a href="http://www.mesnet.com.cn/CN/news/news17306.shtml">单片机与嵌入式系统应用</a>
<strong>引言</strong>
PCB设计是开关电源设计非常重要的一步,对电源的电性能、EMC、可靠性、可生产性都有关联。当前开关电源的功率密度越来越高,对PCB布局、布线的要求也越发严格,合理科学的PCB设计让电源开发事半功倍,以下细节供您参考。
<strong><font size="4" color="blue"> 一、布局要求</font></strong>
PCB布局是比较讲究的,不是说随便放上去,挤得下就完事的。一般PCB布局要遵循几点:
1、布局的首要原则是保证布线的布通率,移动器件时注意飞线的连接,把有连线关系的器件放在一起。
keil 是使用比较广泛的单片机开发环境,在使用的过程中,工程编译完毕后可能会出现错误或者警告。对于错误必须要改,但是对于警告而言,你可以忽略。但值得一提的是,搞技术的人多多少少都有点强迫症,如果把警告在那里放着,你看着肯定不舒服,对于经常出现的警告和错误我大体总结了一下,希望对大家能有所帮助。
1. Warning 280:’i’:unreferenced local variable
说明 局部变量 i 在函数中未作任何的存取操作;
解决方法 消除函数中 i变量的声明;
<strong>背景信息</strong>
可穿戴设备不再仅是在炫酷的科幻电影中才能看到的东西 (感谢《007》、《少数派报告》、《至尊神探》这些电影!),使用可穿戴设备也不再只是梦想,可穿戴设备已经蔚然成风。
最初,可穿戴设备很简单,例如走路或跑步计步器。不过,经过短时间后,可穿戴设备就变得比较先进了,或者说更加智能了,包括更加重视外观设计而不是只重视功能,因此增大了这类设备的总体吸引力。
从智能服装、谷歌眼镜、先进的健身活动跟踪器、虚拟现实设备、夜视设备到平视显示器,可穿戴设备已经成为主流消费、军用和工业市场的组成部分。“可穿戴设备”可定义为用户可以长时间穿戴的产品,而且由于穿戴了这种产品,用户体验以某种方式得到了提升。“智能的”可穿戴设备增加了连接功能和独立的数据处理功能。
单片机程序死机,跑飞了可以从以下几个方面查找原因:
<strong>1</strong>
意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;
<strong>2</strong>
中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。
来源:SiliconLabs微信公众号
在上一节中,您了解了一些软件开发的基本实践和提示。我们在本节继续讨论这些主题,包括内联函数,读取和写入闪存(包括用户页面闪存),以及如何避免缓冲区溢出。我们将讨论类型转换的潜在问题,以及如何在出现问题时用配置锁解决问题。