当前课程知识点:ARM微控制器与嵌入式系统 > 第二章 绪论 > 2.5 不同领域、不同系列的嵌入式系统 > 2.5 不同领域、不同系列的嵌入式系统
各位同学大家好
我是清华大学工程物理系的曾鸣老师
欢迎大家回到我们ARM微控制器
与嵌入式系统的课堂
我们继续进行第二章的学习
在上一个单元呢
我们站在历史的角度
或者说听了一段八卦计算机史
来了解计算机乃至嵌入式系统背后的很多故事
特别是几位先哲们的创新精神
和他们年轻的时候的青葱岁月
那么从嵌入式系统理解的角度来讲
这个单元用非常简短的语言来给大家看一看
从不同的应用和领域的角度
嵌入式系统在我们身边的方方面面
以及从产品线的角度
嵌入式系统到底是多么的丰富和多彩
这张图呢大约是15年以前
电子行业一个非常有名的对于未来世界的畅想
因为15年以前
大家并不会觉得他是原始人时代对吧
看上去很多东西跟我们今天仍然很一样
但是在这张图里 很多东西在当时并没有实现
今天我们已经耳熟能详
最最典型的是我们智能手机的高速发展
随身的计算和移动的这种计算平台的使用
还有呢就是随着物联网的发展
我们身边的智能家居
以及各种能够联网的家电的使用
所以我们会说未来的世界
是Connected and smart Society
也就是互联的并且聪明的社会
那么从一个人到他出门的交通工具
到他的家庭、建筑物
乃至天上的、地上的、随身的通讯和计算
无处不存在智能的设备和计算机系统
它的背后的支撑就是我们今天要说
在各种应用领域里头的嵌入式系统
我们之前有一个概念说嵌入式系统
方方面面从大到小
如果我们从身边划拉划拉
我们可以简单的给大家梳理一下
在身边的很多地方我们都能感觉到
嵌入式系统的存在
比如说我们出门都会坐车
一辆汽车根据它的档次的高和低
可以有从20、30个到200多个嵌入式系统
在一辆车里头
从我们坐上车的时候
一个车身的电子产品从接入到远程的控制
从车身的姿态的控制载荷的调整
乃至从安全的角度安全气囊的调控
ABS的控制系统汽车的主动悬挂
再到动力系统
从发动机的转速、传动的轴承情况
都是有专门的芯片测量
和嵌入式计算机系统加以处理
我们小小的一个电动车门
也会有一个八位或者十六位的微控制器
或者叫单片机
来完成你的控制和自动功能
那么在很多车辆上还有音响
语音这样多媒体系统
然后这些分布式的嵌入式系统之间
又会通过LIN总线、CAN总线
把它们进行分布式的互联
将数据加以汇总
如果我们看一下这张图你会发现从奔驰
宝马一直到像本田这样的摩托车里头
都有大大小小的微控制器
也就说我们这门课所要学习的对象
如果抛开车
如果我们看看我们生活的环境
工业仪表还有各种设备当中那更是无处不在
大家都能够想象到是工程中的设备
从机器手到机器人
会使用各种各样的微控制器
包括现场总讯加以通讯
而实际上我们的电网
我们的智能供电系统
电表、电力线载波这些都会使用嵌入式系统
那么今天发展非常旺盛呢
各种各样的终端、磁卡、二维码扫描取款机
乃至我们大家非常熟悉的医疗设备
心电图、PET、CT、核磁共振
以及安全方面的指纹识别
OCR语音识别这样的大量的系统
它都需要有微小的计算平台在背后加以支撑
那么放在消费电子的角度那就更多了
我们都会使用非常非常多的白色家电
在最早期的智能变频的空调里头
一般就会有一个4比特的微控制器
或者叫单片机来加以支撑
那么我们都会使用蓝牙耳机
包括我前面来讲八卦计算机
给大家讲到各种各样的游戏机、手机、PDA
乃至媒体播放器
还有我们今天所使用的计算机的各种外设
从显示屏到鼠标到键盘
越智能的设备
要需要里头有智能的嵌入式系统的支撑
那么如果更进一步说
当代社会的计算机的发展
最主要的应用呢是网络的应用
当我们享受着便利的网络的时候
我们所使用的路由、交换机、网关这些网络设备
乃至光纤设备大量的也是由强大的嵌入式
计算平台作为一个计算机单元
来实现各种网络数据的吞吐
所以说嵌入式系统从行业的角度来讲
是无处不在的
那么与之相关的另外一个话题呢
就是站在嵌入式系统的角度
有这么多种不同的运用他们都使用同样的平台吗
显然不是的
我们会发现嵌入式的器件
往往有很多半导体厂商提供
比如说我与现在的NXP
也就是以前的Freescale为例
如果你选择嵌入式系统你进入它的主页
你会发现他会有非常非常多的产品数
这个Family member (产品成员)
那么这些产品从8位、16位一直到32位
从微控制器一直到性能强大的微处理器
显然它是针对我们刚才所说的花样百出
生活当中无处不在的嵌入式系统来进行研发的
所以当我们要设计一个简单的车门控制
或者变频空调的时候
我们考虑成本可能会选择
价格低廉的八位微控制器
当我们要使用一个复杂的发动机控制
或者更加强大的机器人功能的时候
我们可能要使用32位的嵌入式系统
而如果我们要使用像华为、思科
这样的高吞吐量GHz的数据吞吐的
网络设备的时候
我们可能要的不是控制功能
我们会使用多核并行的32位微处理器
来设计我们的平台
所以就像这张图所示
在任何半导体厂商你会发现
即使是嵌入式的计算机设计
它也不仅仅限于微控制器
不仅仅限于8位、16位当中的某一个型号
而是有非常丰富的产品数的存在
那么我们如何去认知这些产品数呢
作为一个初学者
你可能只能学一个平台
一种系列比如我们下个单元会给大家讲
我们这门课讲授的是ARM微控制器
那么在每一个系列里我们会慢慢树立
我们会从系列到子系列
再到型号的这样一种概念
那么通一,通百
学会了计算机嵌入式开发的通用知识
和基本概念任何一种品种任何一种类型
大家日后都会具备能力
非常容易的上手进行开发
我们举一个例子
比如说非常著名的16比特的
NXP Freescale 的S12系列的MCU
他在2005年起一直到现在
都是全国大学生智能车比赛可以使用的平台之一
它的前身是68HC11摩托罗拉的一款经典芯片
这个芯片在全世界的销量超过了几十亿片
是人类有史以来销量第三大的芯片系列
那么这样一个系列的芯片
如果我们去选择的时候你会发现
他的型号是一个长长的字符串
像这样比如说MC开头
表示摩托罗拉的量产产品
9代表它片内的非易失存储器是flash工艺
S12代表他的母系列名
也就他的CPU
他的汇编指令是哪个指令集
而后面的两个字母D或者X或者别的字母
代表了它的子系列集
我们称为Family
最后的数字代表他片内的存储级大小
所以一个芯片型号的这个字符串
就跟我们买一台电脑一样
你买的是因特尔哪一款的CPU
配的是多大的硬盘还有多大的内存
有没有配显卡能不能打游戏
这就构成了一个麻雀虽小
五腑俱全的微控制系系统的基本定义
那么我们再来看看这里头几个词的含义
S12代表了它是某一种特定架构的
指令集构成了CPU内核
这在我们前面的课刚好已经讲过
而后面这个D开头这个字符串可能有很多组合
分在Family数里头也就说这个家族数里头
我们会看到这么一张表它的横轴是随着时间
不断的越来越新的芯片
纵轴呢是性能越来越高的芯片
一个个的块就是一个个子家族
一个个的系列型号比如说有XD
有时候有UF等等这样的字母
每一个系列它使用同样的CPU
就跟我们同样的计算机CPU
能够组装不同的电脑一样
在选择同系列的微控制器的时候
它有的片内固化了
能够支持液晶显示屏的模块
有的芯片固化了内部具有USB的接口
有的芯片带有很强的电机控制能力
有的芯片具有以太网的通讯
这样不同的组合会形成不同高度定制
但在编程模型上已知的子家族
而在每个子家族里我们刚才看到型号的
最后一个数字是片内存储器的大小略有差异
所以当我们选择一个芯片的时候
我们会发现虽然世界很大
我们暂时不知道怎么选但是我们有一个概念
就是有非常非常多不同档次性能的CPU
可以供我们选择
同一种的CPU有根据不同的外设
像组装电脑一样不同的系列可以组合
而在固定的型号上又根据存储器的大小
和运算能力的大小
又有具体的子型号可以供我们的选择
随着时间的演进
这些产品是一代一代推出的
我们的半导体工艺也在不断的改变
从300多纳米的半导体晶体管工艺
一直到现在的深亚微米 90纳米的工艺
一直演进到现在
那么在一个具体的型号选择完的时候
日后大家如果去选择器件
你还会遇到一件事情
就是同样内部结构的芯片
根据成本的控制可能会有不同的封装
那么这些封装意味着这个芯片有大有小
有的引脚引出来了
有的引脚没有引出来
影响他们的是成本的不一样
而同等封装的芯片
又有可能有不同的温度范围
我们把商业级的器件一般称为0到70度可以工作
军工级或者叫汽车级的器件
可能从负的40度到135度这样的范围
或者85度这样的范围可以工作
所以有如此多的芯片可以选择
那么当我们学完门课
最终有朝一日变成一个
真正的嵌入式系统的设计者的时候
你可能会考虑
我应该如何去在这么繁多的种类
和型号当中加以选择
那么我们会考虑若干个要素
可能大家随之学习的深入和经验的丰富
会越来越体会
比如说我们会考虑工艺尽可能的新
这样它的生命周期长
它的功耗会更低价格也会更低
我们可能会选择在够用的情况下
引脚尽可能小成本会更低
我们会在不同的温度档次里
根据我们所使用场合的需要
选择相对低级别够我们使用的器件
当然如果你希望可靠性
你可能赶着高的级别选择
而牺牲你的成本和经济性
此外我们会考虑它的资料的丰富程度
以及尽可能使用通用性器件
具有更多的批量更低的价格
以及更多的技术资源的分享
总而言之嵌入式的世界非常大
我们从这门课才刚刚入门
下个单元我会跟大家讲
我们究竟学的是其中哪一种
但是在这里站在已经学完的角度来讲的话
嵌入的世界的选择很多时候没有最好
只有最合适 大家一定要记住这样一个原则
好这个单元的学习呢就到这儿
那么下一个单元我给大家讲一讲
32位的嵌入式系统
特别是我们这门课程所逐步
我们要针对的ARM嵌入式系统的历史和它的构架
-1.1 课程概览
--1.1 课程概览
-1.2 如何学好嵌入式系统
-2.1 计算机的基本概念、发展历史
-2.2 从晶体管到CPU
-2.3 概念CPU、微控制器MCU和嵌入式系统
-2.4 八卦计算机史
-2.5 不同领域、不同系列的嵌入式系统
-2.6 ARM历史与MKL25Z128 MCU
--2.6 ARM历史与MKL25Z128 MCU【习题】
-3.1 CPU的基本结构和运行机制
-3.2.1 堆栈的概念
--3.2.1 堆栈的概念【习题】
-3.2.2 堆栈的概念-头脑体操
-3.3.1 ARM的体系结构
--3.3.1 ARM的体系结构【习题】
-3.3.2 ARM的体系结构-头脑体操
-3.4.1 中断的概念和机制
-3.4.2 中断子程的概念和编程
-3.5 复位、时钟、存储器和总线
--3.5 复位、时钟、存储器和总线【习题】
-3.6 小结:MCU的总体结构和程序运行机制
--3.6 小结:MCU的总体结构和程序运行机制【习题】
-4.1 第一种外设:IO
-4.2 IO外设的编程实操-点亮LED
-4.3 IO外设的进阶知识
-4.4 嵌入式开发的基本概念与工具链
-4.5 嵌入式开发的进阶知识
-4.6 嵌入式开发中的C语言(上)
--4.6 嵌入式开发中的C语言(上)【习题】
-4.7 嵌入式开发中的C语言(下)
--4.7 嵌入式开发中的C语言(下)【习题】
-E0.1 实验零 开发板的初步认识与工具链的安装
-E0.2 实验零 体验一个例程的编译与下载
-E0.3 实验零 编写第一个程序:点亮核心板LED
-E1 实验一 点灯秘籍
-5.1 ARM微控制器外设学习概述
-5.2.1 ARM微控制器外设:通讯
-5.2.2 ARM微控制器外设:异步串行通讯UART的原理(上)
--5.2.2 ARM微控制器外设:异步串行通讯UART的原理(上)
--5.2.2 ARM微控制器外设:异步串行通讯UART的原理(上)【习题】
-5.2.3 ARM微控制器外设:异步串行通讯UART的原理(下)
--5.2.3 ARM微控制器的外设:异步串行通讯UART的原理(下)
--5.2.3 ARM微控制器外设:异步串行通讯UART的原理(下)【习题】
-5.2.4 ARM微控制器外设:RS-232串口与USB虚拟串口
--5.2.4 ARM微控制器外设:RS-232串口与USB虚拟串口
-5.2.5 ARM微控制器外设:UART的寄存器编程(上)
--5.2.5 ARM微控制器外设:UART的寄存器编程(上)
-5.2.6 ARM微控制器外设:UART的寄存器编程(下)
--5.2.6 ARM微控制器外设:UART的寄存器编程(下)
--5.2.6 ARM微控制器外设:UART的寄存器编程(下)【习题】
-E2 实验二 UART编程实操
-5.3.1 ARM微控制器外设:IO的中断编程(上)
-5.3.2 ARM微控制器外设:IO的中断编程(下)
-5.4.1 ARM微控制器外设:定时器的原理
-5.4.2 ARM微控制器外设:定时器的编程
--5.4.2 ARM微控制器外设:定时器的编程【习题】
-E3 实验三 定时器中断编程实操
-5.5.1 ARM微控制器外设:PWM的原理
-5.5.2 ARM微控制器外设:PWM寄存器与编程
-5.5.3 ARM微控制器外设:PWM编程实例—电子音乐
--5.5.3 ARM微控制器外设:PWM编程实例—电子音乐
-E4 实验四 数码管显示编程实操
-5.6.1 ARM微控制器外设:SPI通讯简介
--5.6.1 ARM微控制器外设:SPI通讯简介【习题】
-5.6.2 ARM微控制器外设:SPI寄存器与编程
-5.6.3 ARM微控制器外设:SPI编程实例—OLED显示屏驱动
--5.6.3 ARM微控制器外设:SPI编程实例—OLED显示屏驱动
-5.7.1 ARM微控制器外设:I2C通讯简介
-5.7.2 ARM微控制器外设:I2C的通讯协议
-5.7.3 ARM微控制器外设:I2C寄存器与编程
--5.7.3 ARM微控制器外设:I2C寄存器与编程【习题】
-5.7.4 ARM微控制器外设:I2C编程实例—加速度传感器
--5.7.4 ARM微控制器外设:I2C编程实例—加速度传感器
-5.8.1 ARM微控制器外设:ADC简介
-5.8.2 ARM微控制器外设:ADC基础
-5.8.3 ARM微控制器外设:ADC寄存器与编程
-E5 实验五 ADC编程实操
-E6 挑战实验
--E6 挑战实验
-6.1 嵌入式系统的接口与设计
-6.2 嵌入式系统的实例