技术
MCU的安全等级正在逐步提升,一些公司甚至推出了安全主控,这是很好的现象,说明大家越来越重视嵌入式领域的信息安全和程序安全了。但对于很多特殊行业,比如消费类电子产品,低成本的通讯模块、电源控制模块等等,迫于成本压力以及更新换代速度问题,都无法使用更安全的主控MCU,有很大一部分产品甚至还在使用51单片机。
大家可能都知道破解51单片机是很容易的,但为什么容易,又是如何来破解的,可能很多人就不大清楚了,我在这里结合网上一些前辈整理的资料,和自己的经验,对MCU破解技术做个简单分析。
大家不要把解密想的很复杂,他不像研发一款产品那样,先确定客户需求或者新产品主要功能,然后立项确定技术指标,分配软硬件开发任务,基于硬件调试程序,然后验证功能,测试bug,还要做环境试验。行业里解密的方法有很多,每个人破解的思路也不一样。但是大致分为几种。
<strong>一、基本知识</strong>
<strong>1.按键分类与输入原理</strong>
按键按照结构原理科分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关灯;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入时与软件结构密切相关的过程。
物联网市场的高速发展,无疑也在搅动半导体行业原有的格局,为了在物联网时代不掉队,各个芯片厂商都在努力发展适应市场需求的新产品品类。因为联网是物联网终端设备的基本需求,所以在原有的MCU中集成RF无线收发器、能够跑各种无线协议,让物联网产品的架构和开发过程更为简洁,是最自然不过的产品演化逻辑。因此,无线MCU就应运而生了。
而面对市面上林林总总的无线MCU产品,如何能够选择一个和你的应用场景“对路”的产品,这其中还是有一些套路可寻的。
<strong>套路一,看硬件平台</strong>
通常无线MCU都是脱胎于厂商原有的一个MCU平台,比如NXP的KW无线MCU是基于ARM Cortex-M架构的Kinetis系列MCU中的一个子类,TI的SimpleLink无线MCU平台背后则是MSP430 MCU的基因。
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。
一、stm32的pwm输出引脚是使用的IO口的复用功能。
二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。
三、我们以tim3的CH1路pwm输出为例来进行图文讲解(其它类似),并在最后给出tim3的ch1和ch2两路pwm输出的c代码(已在STM32F103RBT6上测试成功,大家放心使用!)。
四、给出了PWM频率和占空比的计算公式。
步骤如下:
<font color="blue"><strong>前言</strong></font>
一般芯片开发过程中,存在 Bin 文件的拼接过程,比如在做 IAP 程序+用户程序过程中,最终烧写 bin 文件或 hex 文件需要将两个或者三个单独编译通过的程序拼接在一起作为最终烧录文件,本文就如何操作做详细说明。
<font color="blue"><strong>示例案例</strong></font>
<strong>1 引言</strong>
当今社会,随着经济的发展,人们生活水平的提高,肥胖的人越来越多,也就导致了越来越多的疾病产生,因此,人们越来越关注健康问题,而锻炼身体是让自己健康的最有效的方法。因此计步器应运而生,就成了时下流行的趋势。步行时,通过伸缩肌肉,血液在流动时的抵抗值下降,血压下降且稳定。经常步行的人很少患高血压或低血压病。坚持步行能减少血管内附着的脂肪性物质,使体重减轻,也逐渐减少心脏的负荷。而基于单片机为核心控制的计步器有着精确,可靠,稳定,方便等优点,已被大多数人所接受。通过计步器人们可以知道自己跑了多少步,实时掌握自己的锻炼情况。
<strong>2 总体设计方案</strong>
<font size="3"><strong> 一、五大内存分区:</strong></font>
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
2、堆区(heap):就是那些由new分配的内存块,它们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
3、自由存储区:就是那些由malloc等分配的内存块,它和堆是十分相似的,不过它是用free来结束自己的生命。
IO 口是处理器系统对外沟通的最基本部件,从基本的键盘、LED 到复杂的外设芯片等,都是通过IO 口的输入、输出操作来进行读取或控制的。
MSP430系列中,不同单片机的IO 口数量不同。体积最小的MSP430F20xx系列只有10 个IO,适合在超小型设备中应用;功能最丰富的MSP430FG46xx系列多达80个IO口,足够应付外部设备繁多的复杂应用。在MSP430FE425 单片机中,共有14个IO口,属于IO 口较少的系列。但由于需要大量引脚的设备,如LCD、多通道模拟量输入等都有专用引脚,不占用IO 口。因此在大部分设计中IO 数量还是够用的。
和大部分单片机类似,MSP430 单片机也将8 个IO 口编为一组。例如P1.0~P1.7都属于P1 口。每组IO口都有4个控制寄存器,其中P1 和P2 口还额外具有3个中断寄存器。
<strong>电源</strong>
我们在学习过程中,很多指标都是直接用的概念指标,比如我们说 +5 V 代表1,GND 代表0等等。但在实际电路中的电压值并不是完全精准的,那这些指标允许范围是什么呢?随着我们所学的内容不断增多,大家要慢慢培养一种阅读数据手册的能力。
在我们应用开发时,经常会有一些程序运行参数需要保存,如一些修正系数或一些自定义数据。这些数据的特点是:数量少而且不需要经常修改,但又不能定义为常量,因为每台设备可能不一样而且在以后还有修改的可能。将这类数据存在指定的位置,需要修改时直接修改存储位置的数值,需要使用时则直接读取,会是一种方便的做法。考虑到这些数据量比较少,使用专门的存储单元既不经济,也没有必要,而MM32L0系列产品内部的Flash容量较大,且擦写次数以万为单位,使用部分的Flash空间存储用户数据实现起来既方便又实惠。
MM32L0系列产品嵌入式闪存特性:
随着计算机技术的不断提高,高性能的模拟输/输出系统越来越受到重视。无论在模拟输入系统还是在模拟输出系统中,都存在着数字信号与模拟信号共存的问题。尤其是对于一块混合信号的PCB(印刷电路板),模拟电路和数字电路交错混杂。同数字信号相比,模拟信号由于其噪声免疫能力差,容易受到数字部分的高频信号的影响,更容易遭受干扰。因此,在模拟信号和数字信号并存的混合信号系统中,如何对二者划分、处理,都要进行充分的考虑,才能提高模拟信号采集的精度。而其中对系统“地”的设计是一个很关键的问题。本文主要阐述了一种在PCB设计中比较特别的地平面铺设方式—单点接地。
<strong>1 单点接地原理</strong>
用单片机来控制LCM模块,方式十分简单,LCM模块其内部可以看成两组寄存器, 一个为指令寄存器IR,一个为数据寄存器DR,由RS引脚来控制。所有对指令寄存器或 数据寄存器的存取均需检查LCM内部的忙碌标志BF,此标志用来告知LCM内部正在 工作,并不允许接收任何的控制命令。而此位的检查可以令RS=0,用读取D7来加以判 断,当D7为0时,才可以写入指令或数据寄存器。LCM控制指令共有11组,以下分别介 绍。
1. 清屏
在电路设计中,一般我们很关心信号的质量问题,但有时我们往往局限在信号线上进行研究,而把电源和地当成理想的情况来处理,虽然这样做能使问题简化,但在高速设计中,这种简化已经是行不通的了。尽管电路设计比较直接的结果是从信号完整性上表现出来的,但我们绝不能因此忽略了电源完整性设计。因为电源完整性直接影响最终PCB板的信号完整性。电源完整性和信号完整性二者是密切关联的,而且很多情况下,影响信号畸变的主要原因是电源系 统。例如,地反弹噪声太大、去耦电容的设计不合适、回路影响很严重、多电源/地平面的分割不好、地层设计不合理、电流不均匀等等。
<strong>1) 去耦电容</strong>
我们都知道在电源和地之间加一些电容可以降低系统的噪声,但是到底在电路板上加多少电容?每个电容的容值多大合适?每个电容放在什么位置更好?
目前,中国已经进入了老龄化社会,预计从2020年开始,中国将步入老龄化严重阶段;2050年中国将步入超高老龄化国家行列,60岁以上人口将占到30%左右。全国约有1400多万老年人将进入老年福利机构养老。特别是对于卧床不能自立的老年人,无论在养老院或家庭,个人卫生护理洗浴都是难题。而最重要的日常护理之一就是洗浴。因此,开发面向家用与医用环境的个人卫生护理机器人,利用智能控制、人机工程学等技术进行设计,实现洗浴过程的自动化显得尤为重要。单片机控制技术作为自动化控制技术的核心之一,采用单片机技术对服务机器人实现洗浴过程的单元模块化控制系统设计,主要实现智能洗浴、洗发、干身、按摩和康复等作用于一体化,设计控制方便,功能强,性能可靠。
<strong>一、电源的干扰及其抑制技术</strong>
一般情况下,任何电子设备或系统无疑都离不开供电电源,因此首先探讨电源的抗干扰措施具有实际的意义。信号发生器包括静电测试仪、浪涌测试仪、脉冲群模拟器等都可作为干扰源模拟测试。
电源干扰的耦合途径和其他干扰源类似,基本上也分为电磁感应耦合、电容耦合、共阻抗耦合和辐射耦合等。
<strong>1、电力供电系统的抗干扰</strong>
电力供电系统为所有用电设备提供能量来源,如果从源头上切断干扰源意义很大。
1 总体描述:
DM9000A的PHY 能够以10BASE-T 的标准在UTP3\4\5或者以100BASE-T的标准在UTP5上接口通信。它的自动协商功能是够自动配置DM9000A最大地发挥出自身性能。它同时支持IEEE 802.3X全双工数据流通信。
<strong>差分信号</strong>
差分信号(Differential Signal)在高速电路设计中的应用越来越广泛,电路中最关键的信号往往都要采用差分结构设计,什么令它这么倍受青睐呢?在 PCB 设计中又如何能保证其良好的性能呢?
带着这两个问题,我们进行下一部分的讨论。 何为差分信号?通俗地说,就是驱动端发送两个等值、反相的信号,接收端通过比较这两个电压的差值来判断逻辑状态"0"还是"1"。而承载差分信号的那一对走线就称为差分走线。
差分信号和普通的单端信号走线相比,最明显的优势体现在以下三个方面:
<strong>2.1.印制电路板</strong>
印制电路板(Printed Circuit Board,简称PCB)在电子设备中是电子元器件的载体,提供机械支撑和电气连接,并保证电子产品的电气、热和机械性能的可靠性。为自动焊锡提供阻焊图形,为电子元器件安装、检查、维修提供识别字符和图形。
PCB板由焊盘、导线、丝印、绝缘漆、定位孔、导通孔、贯穿孔等要素构成:
(1)焊盘:焊盘是电路板上用来焊接元器件或引线的铜箔,经过回焊炉将锡膏熔解或过波峰焊后对零件进行固定;
(2)导线:用于连接电路板上各种元件的引脚,完成各个元件之间电信号的连接;
(3)丝印:也即白油,文字印刷标明零件的名称、位置、方向。PCB上有产品型号、版本、厂商标志和生产批号等;
这是一个在逻辑设计中注意事项列表,由此引起的错误常使得设计不可靠或速度较慢,为了提高设计性能和提高速度的可靠性,必须确定设计通过所有的这些检查。
<strong>可靠性</strong>
1. 为时钟信号选用全局时钟缓冲器BUFG!
不选用全局时钟缓冲器的时钟将会引入偏差。
2. 只用一个时钟沿来寄存数据
使用时钟的两个沿是不可靠的,因为时钟的某沿或者两个沿会漂移。如果时钟有漂移而且你只使用了时钟的一个沿,你就降低了时钟边沿漂移的风险。这个问题可以这样来解决:就是允许CLKDLL自动纠正时钟的占空比,以达百分之五十的占空比。否则强烈建议只使用一个时钟沿。
3. 除了用CLKDLL或DCM产生的时钟外不要在内部产生时钟