跳转到主要内容

技术

单片机加密方法

在最近一个项目中,急急忙忙把功能完成就给了客户,完全没有安全意识,现在用烧录器把Flash里的程序一读,我就慌了,完全没有加密,随随便便就把程序读出来了,那我干了一个月的活,被人家花几秒钟读出来了,我这不是白干吗。因此,在这里普及一下安全意思,顺便介绍几种常见的加密方法。

<strong>一、打磨或更改芯片型号丝印</strong>

打磨或更改芯片型号丝印可以迷惑破解者,使破解者不知从何入手。当然,这是需要成本的,根据产品价格考虑是否需要打磨。

<strong>二、使用加密芯片</strong>

使用加密芯片的成本更加高,同时对于加密芯片可靠度无法掌握,风险很大。

<strong>三、开启单片机Flash保护</strong>

AVR单片机中的EEPROM

<strong>1、EEPROM介绍</strong>

Electrically Erasable Programmable Read Only Memory 电气可拭除可编程只读存储器

发展过程:ROM – &gt; PROM –&gt; EPROM –&gt; EEPROM

<strong>2、EEPROM和FLASH的区别</strong>

2.1 使用上的区别

关于STM32单片机的IAP实现

<strong>一、基础概念</strong>

什么是IAP?IAP即在应用中编程(In-Application Programming IAP),简单的说就像是一个用户自定义的升级程序。实际上,STM32单片机的程序烧写有多种方法,可以用JTAG,也可用串口通过ISP软件烧写新程序。

JTAG的方式需要专用的烧写工具,在产品布置到现场后,更新产品程序比较麻烦,而通过串口的ISP软件升级方法可以直接使用常见的串口线升级程序,十分方便,这种方法用的是ISP。ISP可以说是单片机默认的bootloader,

MEMS 振荡器对机械应力的抵抗能力

<font color="#FD8900">作者: Maurizio Gavardoni Microchip Technology Inc</font>

<font color="#33b1c8"><strong>摘要</strong></font>

MEMS 振荡器已得到了非常广泛的使用,并在很多应用中稳步取代晶体振荡器。MEMS 振荡器与晶体振荡器相比具有诸多显著的优势,例如提高了可靠性和对机械应力的抗力,以及在宽温度范围内保持平稳的性能。MEMS振荡器还具备一定的灵活性,可通过编程和配置生成多个输出时钟。

嵌入式Linux系统移植的四大步骤

嵌入式Linux系统移植主要由四大部分组成:
&nbsp; • &nbsp; 搭建交叉开发环境;
&nbsp; • &nbsp; bootloader的选择和移植;
&nbsp; • &nbsp; kernel的配置、编译、和移植;
&nbsp; • &nbsp; 根文件系统的制作;

<font size="3"><strong>第一部分:搭建交叉开发环境</strong></font>

先介绍第一分部的内容:搭建交叉开发环境,首先必须得思考两个问题,什么是交叉环境? 为什么需要搭建交叉环境?

STM32 DAC的配置与使用

STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的DAC。DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC工作在 12 位模式时,数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。在双DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个通道的输出。DAC 可以通过引脚输入参考电压 VREF+以获得更精确的转换结果。

STM32 的 DAC 模块主要特点有:

① 2 个 DAC 转换器:每个转换器对应 1 个输出通道

② 8 位或者 12 位单调输出

③ 12 位模式下数据左对齐或者右对齐

④ 同步更新功能

⑤ 噪声波形生成

PIC单片机中断程序的设计技巧总结

所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。

在设计引脚中断程序时,有三个需要特别注意的地方。

一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。

二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假中断。

三是,一般都利用PIC单片机的引脚功能来检测按键,所以必须处理好按键消抖的问題。

MM32F0/L0/W0系列MCU之EXTI

<font size="3" color="blue">一、MM32嵌套向量中断控制器</font>

本文针对MM32F0/L0/W0系列MCU产品。

<strong>特征</strong>

&nbsp; ○ 中断都可屏蔽(除了 NMI)
&nbsp; ○ 16 个可编程的优先等级(使用了 4 位中断优先级)
&nbsp; ○ 低延迟的异常和中断处理
&nbsp; ○ 电源管理控制
&nbsp; ○ 系统控制寄存器的实现

隔离电源你所不知道的设计细节

电源是电子系统的心脏,工业应用中,为系统前级或接口供电的电源一般都要求有高的抗干扰性能,各种隔离型的模块电源模块应运而生。你或许知道隔离电源的设计方案,但你真的能够设计出一款稳定的电源吗?本文为你揭秘。

<strong>一、电源模块为何需要隔离</strong>

1、保护人员避免受到物理和电气伤害

AVR单片机的通用USB接口模块设计

<strong>1、引言</strong>

USB接口以其数据传输快、连接简单、易于扩展、支持热插拔等特点已成为外设与PC通信的主要方式之一。随着嵌入式系统的发展,嵌入式微处理器需增加通用的USB接口,以便实现与PC等USB主机系统的通信。针对这样的需求,这里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列单片机ATmega8设计一种通用的USB接口模块。该模块可方便为各种嵌入式微处理器增加USB接口,从而实现与USB主机系统的高速通信。

<strong>2、系统硬件设计</strong>

面向汽车应用的 Microchip MEMS振荡器和时钟产品

<font size="3"><strong>简介</strong></font>

数十年来,振荡器和时钟始终依靠石英晶体来产生稳定的参考频率。晶体在许多应用中表现出十分优异的性能。但十年前,使用MEMS谐振器代替石英晶振的微机电系统(Microelectromechanical System,MEMS)技术进入了市场,并迅速受到广泛的关注。

基于MEMS的时序器件兼具高可靠性、扩展工作温度、小体积和低功耗特性。

在2015年,Microchip通过收购Micrel获得了MEMS时序技术,而Micrel在此之前已收购Discera。Discera在2008年交付了第一批振荡器成品,迄今为止已制造并销售了近1亿个器件。

四款555定时器产生方波的电路

1、555定时器原理分析

555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为 0,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 C1 的输出为 0,C2 的输出为 1,可将 RS 触发器置 0,使输出为低电平。

Cortex-M3寄存器等基础知识

1.寄存器

CM3拥有R0~R15通用寄存器和一些特殊功能寄存器

R0~R12这些通用寄存器,复位初始值都是不可预料的

2.CM3有R0到R15的通用寄存器组

<center><img width="600" src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100011268-39800-1.jpg&q…; alt="Cortex-M3寄存器等基础知识"></center>

用单片机解码红外遥控器

遥控器使用方便,功能多.目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。如果能将遥控器上许多的按键解码出来.用作单片机系统的输入.则解决了常规矩阵键盘线路板过大、布线复杂、占用I/O口过多的弊病。而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。下面以TC9012编码芯片的遥控器为例。谈谈如何用常用的51系统单片机进行遥控的解码。

ARM异常中断处理

<font color="#33b1c8">在ARM体系中,通常有以下3种方式控制程序的执行流程:</font>

• 在正常程序执行过程中,每执行一条ARM指令,程序计数器寄存器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)的值加2个字节。整个过程是顺序执行。

• 通过跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作的同时,保存子程序的返回地址;BX指令在执行跳转操作的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态;BLX指令执行3个操作:跳转到目标地址处执行,保存了子程序的返回地址,根据目标地址的最低位可以将程序状态切换到Thumb状态。

STM8使用24MHz外部晶振无法正常运行

<font color="#33b1c8"><strong>前言</strong></font>

目前很多用户在使用 STM8 的时候使用了 16MHz 的内部振荡或者外部晶体来作为时钟源。事实上,STM8 家族中有些系列是支持最高 24MHz 主频的,比如 STM8S207、STM8AF52,等等。那么,需要更快的运行速度时,是否只需要使用更高的主频就可以直接运行了呢?

<font color="#33b1c8"><strong>问题</strong></font>

信号完整性(一):PCB走线中途容性负载反射

很多时候,PCB走线中途会经过过孔、测试点焊盘、短的stub线等,都存在寄生电容,必然对信号造成影响。走线中途的电容对信号的影响要从发射端和接受端两个方面分析,对起点和终点都有影响。

首先按看一下对信号发射端的影响。当一个快速上升的阶跃信号到达电容时,电容快速充电,充电电流和信号电压上升快慢有关,充电电流公式为:I=C*dV/dt。电容量越大,充电电流越大,信号上升时间越快,dt越小,同样使充电电流越大。

我们知道,信号的反射与信号感受到的阻抗变化有关,因此为了分析,我们看一下,电容引起的阻抗变化。

基于PIC单片机的SPWM控制技术

在UPS等电力电子设备中,控制方法是核心技术。早期的控制方法使得输出为矩形波,谐波含量较高,滤波困难。SPWM技术较好地克服了这些缺点。

目前SPWM的产生方法很多,汇总如下:

1)利用分立元件,采用模拟、数字混和电路生成SPWM波。此方法电路复杂,实现困难且不易改进;

2)由SPWM专用芯片SA828系列与微处理器直接连接生成SPWM波,SA828是由规则采样法产生SPWM波的,相对谐波较大且无法实现闭环控制;

3)利用CPLD(复杂可编程逻辑器件)设计,实现数字式SPWM发生器;

4)基于单片机实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,受外界干扰小。

CMOS电路多余输入端悬空,会造成逻辑混乱,该如何处理?

集成电路按晶体管的性质分为TTL和CMOS两大类,TTL以速度见长,CMOS以功耗低而著称,其中CMOS电路以其优良的特性成为目前应用最广泛的集成电路。

有初学者在使用CMOS集成电路时,有些多余的输入端,做悬空处理,是非常不当的做法。

CMOS电路的输入端是不允许悬空的,因为悬空会使电位不定,破坏正常的逻辑关系。另外,悬空时输入阻抗高,易受外界噪声干扰,使电路产生误动作,而且也极易造成栅极感应静电而击穿。所以“与”门,“与非”门的多余输入端要接高电平,“或”门和“或非”门的多余输入端要接低电平。若电路的工作速度不高,功耗也不需特别考虑时,则可以将多余输入端与使用端并联。

除了以上这一点,关于CMOS集成电路的使用,在认真阅读产品说明及有关资料,了解其引脚分布及极限参数外,还应注意以下几个问题。

51单片机不能正常起振的原因

<strong>如何确定晶振正常起振?</strong>

1、判断方法很多,用示波器看波形是最直接的,用数字万用表的电压档测电压也行,因晶振波形的占空比为50%,所以测得的平均电压为1/2Vcc左右,对于51单片机,在使用外置程序存储器的时候还可以测PSEN引脚或P0口引脚的电压或波形,只有晶振电路正常工作,那些引脚才会有信号输出,但现在很少采用片外扩展存储器,所以测晶体两端的电压或波形即可,只是晶振电路设计不良时,测试设备的引入有可能导致停振。