什么是微控制器?
微控制器最初是围绕PC外围设备开发的如何廉价地制造打印机。控制打印机所需的一切都包含在单个芯片中,包括控制软件。 这种小型控制计算机在当时也被称为单片机。 最初这些产品仅是大众产品。 单片机解决方案的编程和生产非常复杂。 大量生产非常便宜。 现在微控制器解决方案的开发也变得很便宜,以至于即使在小批量和单个应用中也值得考虑使用微控制器。
微控制器在单个芯片中包含所有必需的组件,以充当小型计算机:
算术单位
至少一个算术逻辑单元(ALU)
今天通常也是浮点块(FPU)
控制单元
程序存储器(今天主要是FLASH)
数据存储(通常为SRAM)
内部控制的基础
计时器Timer
中断控制器
内部数据交换块
监控模块
输入模块
数字输入模块
模拟量输入模块
输出模块
数字量输出模块
模拟量输出模块
通讯模块
串行通信模块 (UART, SPI, …)
*现场总线通讯模块 (CAN, I2C, …)
网络通讯模块(以太网)
有时是无线电通信模块 (Bluetooth, WiFi, NB-IoT, …)
u.v.m.
微控制器具有小型、完整的计算机功能,可以用最少的电路立即执行复杂的控制和调节任务,因此它是理想的嵌入式系统。 它通过传感器和执行器完成任务。 在简单的嵌入式系统中,人机界面有时只是一个按钮和一个或几个LED,或者在物联网中是WiFi接口和智能手机作为用户界面。
为什么用微控制器解决任务?
为了阐明为什么选择微控制器解决方案,可以讨论以下两个对比方案。
方案1:
不带微控制器的离散金属探测器解决方案与带微控制器的等效解决方案相比
上边是PI金属探测器的离散型,下边是微控制器
微控制器解决方案具有相同的搜索性能
微控制器解决方案需要更少的组件
微控制器解决方案较低的材料成本
微控制器解决方案更小
微控制器解决方案更轻巧
微控制器解决方案提供各种搜索程序(智能)
方案2:
与使用微控制器扩展的单个解决方案相比,标准模块是现有PLC控制的扩展。解决方案是比较两个具有高采样率的模拟信号,并检测干扰和模式
左侧是用于通过两个附加模拟通道扩展PLC的标准模块,右侧是单个微控制器解决方案
标准模块的材料成本约为200欧元
单个解决方案的材料成本(3欧元的电子产品),标准的空外壳(5欧元)和生产成本(10小时),总计约208欧元
两个模块的软件成本大致相同(实现相同的算法)
标准模块,在PLC中处理大量数据,计算机负荷高,总线负荷高
单独的解决方案,在微控制器中处理大量数据,低计算机负载,低总线负载
标准模块,采样率最高5 kHz
单独的解决方案,最大采样率150 kHz
总结:
材料成本低
高性能
允许非常小的单个房间尺寸
合理的低系统成本,包括即使少量也可进行编程
最高的灵活性
通过独特的卖点获得更好的市场机会
特别适用于特殊应用,特殊情况
单个解决方案的合理成本,小批量的价格便宜,大批量更便宜
有哪些类型的微控制器?
第一个行业标准控制器是Intel 8051/52 8位控制器。这些产品在市场上占据了30多年的历史。然后有许多其他8位控制器系列的供应商,例如Atmel的AVR和Microchip PIC。在16位控制器类中,没有一种可用的体系结构能够将其自身确立为行业标准。随着32位ARM架构的出现,出现了新的行业标准。因此我们可以区分以下微控制器类别:
经典,简单的8位微控制器,具有旧的行业标准架构
现代,易于编程且在电气方面非常强大的8位控制器
价格低廉且易于编程的16位控制器
来自各种制造商的多种性能等级的行业标准32位ARM微控制器
特殊的,通常昂贵的32位和64位高性能微控制器(例如,数字信号处理器,DSP)
现在就价格和外形而言,32位ARM微控制器还覆盖了8位和16位控制器的大多数应用领域; 小型ARM Cortex M0 +并不比8位控制器贵,并且还提供小型8引脚封装。 但是ARM的速度提高了十倍,计算更精确,具有更多的内部外围组件,更多的内部存储器,并且通常仍具有更高的能源效率。 几乎没有理由不选择使用ARM微控制器。
现代微控制器能做什么?
从理论上讲,微控制器可以完成其他计算机(例如PC或平板电脑)可以完成的所有工作。有些甚至更快,更精确。但是必须考虑到由于尺寸小而存在资源差异。
现代微控制器的性能:
速度8 MHz至400 MHz(PC 2至5 GHz)
计算核心通常为1个,有时为2个核心(PC为4至16个Cores)
32位处理宽度(64位PC)
RAM 8 KB至200 KB SRAM(PC 4-32 GB)
永久存储16 KB到4 MB闪存(PC 256 GB SSD-4 TB HDD)
每秒4亿次计算操作(PC超过500,000 MIPS)
控制任务:每秒超过1,000,000个数字输入或输出(PC约1,000)
信号处理:每秒超过100,000个模拟值,分辨率为8/10/12/16位(PC约100)
如果需要以毫秒为单位,则可以在几毫秒内完成操作(PC的启动时间从几秒到一分钟)
…
如何编程微控制器?
要像对任何编程一样对微控制器进行编程,需要一台PC和一个开发环境。这将创建源代码并形成可执行程序。程序必须加载到微控制器的程序存储器中,以便可以执行。有两种方法可以做到这一点:
用于传输程序的特殊硬件(左侧示例ST-Link V2)
使用现有的通讯接口之一
专业的编程和调试设备主要提供JTAG。这是一个非常强大的界面,可用于故障排除,监视以及对嵌入式系统进行编程。 JTAG代表Join and Test Action Group,并在IEEE标准1149.1中规定。
较便宜的制造商特定的编程设备或第三方编程设备提供以下接口,例如
ISP =在系统编程中(专有)
SWD =串行线调试(JTAG的子集)
DAP =调试访问端口(当前ARM标准)
第二种选择,即在目标系统上使用通信接口,需要所谓的引导加载程序。 这是一个特殊程序,用于解码和执行通过通信接口接收的编程命令。 PC或更高级别系统的标准接口通常用作引导加载程序的通信接口,例如:COM,USB,以太网,CAN,LIN,I2C,以及蓝牙或WiFi。
本课程中引用的微控制器板使用引导加载程序。 我们使用嵌入式UML工具SiSy作为开发环境。