汽车作为一部大型的机电一体化设备,汽车电子在汽车整体成本中的比例越来越大,其涵盖了从车身控制、动力传动、车身安全,到车内娱乐的各个方面。
微控制器(MCU)作为汽车电子系统内部运算和处理的核心,也遍布悬挂、气囊、门控和音响等几十种次系统(Sub-System)中。由于汽车作为高速交通工具承载了对用户生命安全的保障,同时汽车经常工作在十分恶劣的环境中,其对内部电子设备的可靠性要求要远高于一般性电子产品。因此汽车电子所用的MCU与一般性产品的结构差异虽然并不很大,而一般的MCU产品由于可靠性不能符合厂商的要求而并不能被选用,这也是汽车电子产品同一般性电子产品市场的区别之一。
<strong><font size="5">技术特性需求</font></strong>
MCU由于内部资源的限制,软件设计有其特殊性,程序一般没有复杂的算法以及数据结构,代码量也不大, 通常不会使用 OS (Operating System), 因为对于一个只有若干K ROM、一百多byte RAM 的MCU来说,一个简单OS 也会吃掉大部分的资源。
对于无OS的系统,流行的设计是主程序(主循环 )+(定时)中断,这种结构虽然符合自然想法,不过却有很多不利之处,首先是中断可以在主程序的任何地方发生,随意打断主程序。其次主程序与中断之间的耦合性(关联度)较大,这种做法 使得主程序与中断缠绕在一起,必须仔细处理以防不测。
随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,开关操作等引起的电磁振荡会波及很多电气设备。
随着单片机的发展,单片机在家用电器、工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛。然而处于同一电力系统中的各种电气设备通过电或磁的联系彼此紧密相连,相互影响,由于运行方式的改变,故障,开关操作等引起的电磁振荡会波及很多电气设备。这对我们单片机系统的可靠性与安全性构成了极大的威胁。单片机测控系统必须长期稳定、可靠运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大损失。因此单片机的抗干扰问题已经成为不容忽视的问题。
几十年前,8位单片机(MCU)席卷业界,但现在8位MCU有让位32位架构的趋势,有行业分析师指出,32位和8位单片机还在在不断成长。不过,最早使用MCU的人对BASIC以及Microchip PIC还念念不忘,不过以最新Arduino Uno来说,这就是一个从8位到32位架构转变的典型案例。即使你现在的应用程序只需要一个8位架构,但因为所谓的“智能”设备需求增长过些日子8位就不够用了,值得庆幸的是,现在有大量开源开发工具可以让那些渴望“冒险”的激进工程师使用。
本手册介绍了 32 位基于 ARM Cortex M0 微控制器 MM32F031xx 的固件函数库。
该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。
该函数库还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也可以轻松应用每一个外设。因此,使用本固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。
每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API(applicationprogramminginterface 应用编程界面)驱动,API 对该驱动程序的结构,函数和参数名称都进行了标准化。
MM32F031使用高性能的ARM® Cortex®-M0 32位的RISC内核,最高工作频率为48MHz,内置高速存储器,丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含1个12位的ADC、5个通用16位定时器、1个高级PWM定时器,还包含标准和先进的通信接口:1个I2C接口和SPI接口、1个UART接口。
MM32F031产品供电电压为2.5V至5.5V,包含-40°C至+85°C温度范围和-40°C至+105°C的扩展温度范围。一系列的省电模式保证低功耗应用的要求。
MM32F031产品提供包括32脚与48脚共2种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。
这些丰富的外设配置,使得MM32F031产品微控制器适合于多种应用场合:
作者:sunheshan
<strong><font size="5">1、 异常</font></strong>
M3支持15个系统异常,240个外部异常IRQ,其中NMI,复位,hardfault三个异常的优先级固定不可更改且是负数,其余的都可编程。
M3的异常分为抢占优先级和子优先级。
<strong><font size="5">2 、关于中断优先级</font></strong>
大家都用过计算器,有没有想过它是怎么实现的呢?这里我不详述计算器的原理,而只对思路进行简单介绍。等我们学会了单片机,也可以亲手制作一个计算器。
<strong><font size="5">用电路进行数学计算</font></strong>
通过电路进行数学计算,应该怎么做呢?为了便于理解,下面我举个很简单的例子。
MM32F031 主系统由以下部分构成:
二个驱动单元:
- CPU 内核系统总线(S-bus)
- 通用DMA
三个被动单元
- 内部SRAM
- 内部闪存存储器
- AHB 到APB 的桥(AHB2APBx),它连接所有的APB 设备
这些都是通过一个多级的AHB 总线构架相互连接的,如错误!未找到引用源。所示:
<center>图1. MM32F031 系统架构</center>





