技术
<strong>1 、电路设计原理</strong>
(1)电路板设计主要分为3个步骤:设计电路原理图、生成网络表、设计印制电路版。
(2) 网络表是电路原理设计和印制电路板设计中的一个桥梁,它是设计工具软件自动布线的灵魂。
(3)网络表的格式包括2部分:元器件声明和网络定义。(缺少任一部分都有可能在布线的时候出错)
(4) 电路原理图设计不仅是整个电路设计的第一步,也是电路设计的基础。包括以下的一些具体步骤:
A、建立元器件库中没有的库元件。
B、设置图纸属性。
C、放置元件。
D、原理图布线。
E、检查与校对。
F、电路分析与仿真。
G、生成网络表。
H、保存与输出。
ARM中有5种异常模式,有7种中断源。这7种中断源中有些中断是我们希望发生的,但有些中断是我们不希望发生的。
我们希望发生的中断:
软中断:属于svc模式,通过SWI指令便可以产生软中断,进入到svc模式。
irq中断:属于irq模式,当产生普通的外部中断时,处理器便进入到IRQ模式。
fiq中断:属于fiq模式,当产生高优先级外部中断时,处理器便进入到FIQ模式。
我们不希望发生的中断:
复位:属于svc模式,当系统上电时便会产生复位中断,系统进入到svc模式。复位中断不需要中断返回。
取指中止中断:属于abt模式,当预取指发生错误时,便产生取指中止中断,进入到abt模式。
数据中止中断:属于abt模式,当访问数据存储器时,便产生数据中止中断,进入到abt模式。
<strong>1.前言</strong>
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。
MCS-51单片机在物理结构上有四个存储空间
1、片内程序存储器(片内ROM)
2、片外程序存储器(片外ROM)
3、片内数据存储器(片内RAM)
4、片外数据存储器(片外RAM)
在逻辑上(即从用户的角度上)MCS-51单片机有三个存储空间
1、片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC)
2、256B的片内数据存储器(片内RAM)的地址空间(MOV)
3、以及64K片外数据存储器(片外RAM)的地址空间(MOVX)
在很多电子类应用场合中,我们经常需要采集产品工作的周围环境温度,一般采取的方式有两种:
1)外加温度传感器
2)采用MCU内部温度传感器
外加温度传感器会增加产品的成本以及布板空间,所以在很多场合,我们只要使用内部温度传感器就可以了,今天给大家介分享一下自带内部温度传感器EFM32JG系列MCU的使用方法和步骤。
<strong>基本原理:</strong>
EFM32JG的内部ADC集成在模拟模块部分,内部温度传感器上面的电压随着温度变化,需要通过12bit ADC采集温度传感器的ADC值,把ADC值换算成为温度值。
<font color="#33b1c8">第一步:ADC采集</font>
ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,本文就将对ARM异常中断的集中情况进行总结,并给出了一些解决方法。
在正式介绍之前,要为大家补充一些较为重要的基础知识。首先R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此PC总是指向第三条指令。当ARM状态时,每条指令为4字节长,所以PC始终指向该指令地址加8字节的地址,即:PC值=当前程序执行位置+8;而ADS中的pc,是为了调试看着方便而修改过的,它指向的是正在执行的指令,即“真正pc-8”!
对于每个单片机爱好者及工程开发设计人员,在刚接触单片机的那最初的青葱岁月里,都有过点亮跑马灯的经历。从看到那一排排小灯按着我们的想法在跳动时激动心情。到随着经验越多,越来又会感觉到这个小灯是个好东西,尤其是在调试资源有限的环境中,有时会帮上大忙。
极管的管型及管脚的判别是电子技术初学者的一项基本功,为了帮助读者迅速掌握测判方法,笔者总结出四句口诀:“三颠倒,找基极;PN结,定管型;顺箭头,偏转大;测不准,动嘴巴。”下面是其详细讲解部分。
<strong>1、三颠倒,找基极</strong>
大家知道,三极管是含有两个PN结的半导体器件。根据两个PN结连接方式不同,可以分为NPN型和PNP型两种不同导电类型的三极管,图1是它们的电路符号和等效电路。
测试三极管要使用万用电表的欧姆挡,并选择R×100或R×1k挡位。图2绘出了万用电表欧姆挡的等效电路。由图可见,红表笔所连接的是表内电池的负极,黑表笔则连接着表内电池的正极。
机载电台担负着空空和地空之间通信,为保证电台性能,需要对其进行定检。基于单片机的检测仪存在测量速度慢、可扩展性差的问题;而基于PXI仪器或VXI仪器的检测仪存在着功耗大、体积大、价格高等缺点。为解决上述问题,利用基于ARM处理器来实现电台检测控制器成为重要的发展方向,ARM是一种高性能、低功耗的RISC结构处理器,由于其出色的性能被广泛应用于工业控制、无线通讯、成像和安全、网络应用等方面,采用基于ARM的电台检测控制器具有可移植性强、可扩展性好、抗干扰能力强等优点。
<strong>1 硬件设计</strong>
有客户需要用到MM32L073,需要通过IAP进行固件升级,在FLASH里面要烧录两份代码:一个Boot loader,一个用户应用程序。在开发应用程序时,使用中断函数不能相应中断。
在开发IAP的用户应用程序时,必须得重新映射中断向量表,中断向量表即某个中断服务程序的入口地址的集合。
在Cortex-M3内核的MCU上可以通过设置SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;该寄存器的值来实现中断向量表的重定义。但用户反馈在MM32L0xx系列以Cortex-M0为内核的单片机中却怎么也找不到这个设置中断向量表的寄存器,用户可以通过以下方法来实现中断向量表重定义。
实现方法基本思想:
介绍了一个简单的可调实时时钟系统的设计。设计中采用了Atmel32位的ARM微处理器作为控制驱动器件,实现了对DS1307实时时钟芯片的时间信息采样和液晶显示,并通过键盘来调节时间信息。通过实际的测试,该模块得到稳定的运行。
实时日历时钟在测控系统和智能显示中得到了广泛的应用。通过软件编程和CPU中断构造软时钟是一种较为常用的方法,时钟计时无需外围硬件支持,但是此种方法的弊端是计时精度会受到CPU主晶振、起振电容以及掉电的影响,而导致计时精度不高。因此采用硬件设计实时时钟是一种更为可靠的方式。
DS1307是I2C接口的8引脚实时时钟芯片,片内含有8个特殊功能寄存器和56bit的SRAM。它是一款按BCD码存取、低功耗的时钟/日历芯片,已被应用到人造板尺寸检测以及电控单元中。
上一篇:<a href="http://mcu.eetrend.com/content/2018/100010113.html">嵌入式系统之接口技术篇(一)</a>
<strong>12 、PCI 接口</strong>
(1)PCI 总线是 地址 、 数据多路复用的高性能32位和64位总线,是微处理器与外围控制部件、外围附加板之间的互连机构。
(2)从数据宽度上看,PCI 定义了32位数据总线,且可扩展为64位。从总线速度上分,有33MHz 和66MHz两种。
<strong>1. Flash 存储器</strong>
(1)Flash 存储器是一种非易失性存储器,根据结构的不同可以将其分为 NOR Flash 和 NAND Flash 两种。
(2) Flash 存储器的特点:
A、 区块结构:在物理上分成若干个区块,区块之间相互独立。
B、 先擦后写:Flash 的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为1。擦除操作的最小单位是一个区块,而不是单个字节。
C、 操作指令:执行写操作,它必须输入一串特殊指令(NOR Flash)或者完成一段时序(NAND Flash )才能将数据写入。
您是否有遇到使用中的程序无故丢失?产品调试非常稳定,布置到现场后频繁系统崩溃和数据遗失,亦或产品应用一年后批量涌现存储器件损坏?本文将深入探明这些问题的原因及提供参考解决方案。
Flash编程原理都是只能将1写为0,而不能将0写成1.所以在Flash编程之前,必须将对应的块擦除,而擦除的过程就是将所有位都写为1的过程,块内的所有字节变为0xFF。因此可以说,编程是将相应位写0的过程,而擦除是将相应位写1的过程,两者的执行过程完全相反。
(1)闪存芯片读写的基本单位不同
应用程序对NorFlash芯片操作以“字”为基本单位。为了方便对大容量NorFlash闪存的管理,通常将NOR闪存分成大小为128KB或64KB的逻辑块,有时块内还分扇区。读写时需要同时指定逻辑块号和块内偏移。应用程序对NandFlash芯片操作是以“块”为基本单位.NAND闪存的块比较小,一般是8KB,然后每块又分成页,页大小一般是512字节。要修改NandFlash芯片中一个字节,必须重写整个数据块。
<strong>ARM处理器的工作状态</strong>
在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。
《嵌入式系统开发与应用教程(第2版)》上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子:
ARM核就好比一个高中学校,那种包含普通高中和职业高中的。普通高中就相当于ARM状态,职业高中就相当于Thumb状态,这样还不能理解的话:可以认为 泡泡卡丁车 中普通模式和加速模式,,卡丁车加速要等到集气管加满,然后“ctrl”一下,就切换到了加速模式,气放完了就又回来了,不管加速模式还是普通模式都是在跑,只是速度不一样而已。
MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍两种简单的扩展方法:
<strong>一、采用硬件请求和软件查询的方法:</strong>
这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下:
Void zhongduan (void) interrupt 0 using 3 //中断函数
{
EX0=0;//关中断
近年来,电子门禁系统发展非常迅速,按照其开门方式可以分为3类:密码识别、卡片识别和生物识别。
无线射频识别技术(RFID)在门禁系统中得到广泛的应用,本例中以使用工作频率为125KHz的射频ID卡和密码识别相结合的门禁系统为例,说明单片机控制门禁系统的原理及应用。
本门禁系统主要应用于居民小区的居民楼,其工作原理如下:当有人要进入时,可以通过以下两种方式实现:
一是通过在门禁处主机上刷卡,当该卡为门禁系统中存在的ID卡时,门可以打开,否则,语音提示该卡不存在;
二是输入房间号码+密码的方式开门,若有访客要进入时,访客可以提前和住户联系,获得住户的房间号和密码,当访客输入正确的房间号和密码后,楼宇门可以打开,否则提示密码错误。
浮点运算一直是定点CPU的难题,比如一个简单的1.1+1.1,定点CPU必须要按照IEEE-754标准的算法来完成运算,对于8位单片机来说已经完全是噩梦,对32为单片机来说也不会有多大改善。虽然将浮点数进行Q化处理能充分发挥32位单片机的运算性能,但是精度受到限制而不会太高。对于有FPU(浮点运算单元)的单片机或者CPU来说,浮点加法只是几条指令的事情。
现在又FPU或者硬件浮点运算能力的主要有高端DSP(比如TI F28335/C6000/DM6XX/OMAP等),通用CPU(X87数学协处理器)和高级的ARM+DSP处理器等。
有客户需要用到高精度的DAC模块,MM32L0系列产品内部没有集成DAC模块,考虑到外接DAC芯片会增加成本,所以在本实验中将为大家介绍使用PWM输出,经过简单的变换电路即可实现DAC,这将大量降低电子设备的成本、减少体积,并提高精度。本实验在PWM到DAC转换关系的理论分析基础上,设计出输出为0~5V电压的DAC。
MM32L0系列产品包含1个高级控制定时器、5个通用定时器(1个32 位定时器和5个16 位定时器),以及 2个看门狗定时器和1个系统嘀嗒定时器。
每个定时器都有 PWM 输出或单脉冲模式输出,所以MM32L0系列产品任意一款型号都可以用PWM做DAC输出功能。