【车载开发系列】MCU概念简介

【车载开发系列】MCU概念简介

【车载开发系列】MCU概念简介

  • 【车载开发系列】MCU概念简介
    • 一. 概念简介
    • 二. MCU发展历史
      • 1)初始阶段
      • 2)低性能阶段
    • 三. 单片机的分类及应用
    • 四. 单片机的基本功能
      • 1) Watchdog(看门狗定时器)
      • 2)通讯接口
        • 1.SPI接口
        • 2.UART
        • 3.IO口
        • 4.外部中断
        • 5.TImer(定时器)

一. 概念简介

MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制,诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

二. MCU发展历史

单片机出现的历史并不长,但发展十分迅猛。它的产生与发展和微处理器(CPU)的产生与发展大体同步,自1971年美国英特尔公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段。下面以英特尔公司的单片机发展为代表加以介绍。

1)初始阶段

1971年~1976年单片机发展的初级阶段。1971年11月英特尔公司首先设计出集成度为2000只晶体管/片的4位微处理器英特尔4004,并配有RAM、 ROM和移位寄存器, 构成了第一台MCS—4微处理器, 而后又推出了8位微处理器英特尔8008, 以及其它各公司相继推出的8位微处理器。

2)低性能阶段

1976年~1980年低性能单片机阶段。以1976年英特尔公司推出的MCS—48系列为代表, 采用将8位CPU、 8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构, 虽然其寻址范围有限(不大于4 KB), 也没有串行I/O, RAM、 ROM容量小, 中断系统也较简单, 但功能可满足一般工业控制和智能化仪器、仪表等的需要。1980年~1983年高性能单片机阶段。这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统, 多个16位定时器/计数器。片内RAM、 ROM的容量加大,且寻址范围可达64 KB,个别片内还带有A/D转换接口。
1983年~80年代末16位单片机阶段。1983年英特尔公司又推出了高性能的16位单片机MCS-96系列,由于其采用了最新的制造工艺, 使芯片集成度高达12万只晶体管/片。
1990年代单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。

三. 单片机的分类及应用

MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。对于无片内ROM型的芯片,必须外接EPROM才能应用(典型为8031);带片内ROM型的芯片又分为片内EPROM型(典型芯片为87C51)、MASK片内掩模ROM型(典型芯片为8051)、片内Flash型(典型芯片为89C51)等类型。
按用途可分为通用型和专用型;根据数据总线的宽度和一次可处理的数据字节长度可分为8、16、32位MCU。
目前,国内MCU应用市场最广泛的是消费电子领域,其次是工业领域、和汽车电子市场。消费电子包括家用电器、电视、游戏机和音视频系统等。工业领域包括智能家居、自动化、医疗应用及新能源生成与分配等。汽车领域包括汽车动力总成和安全控制系统等。

四. 单片机的基本功能

对于绝大多数MCU,下列功能是最普遍也是最基本的,针对不同的MCU,其描述的方式可能会有区别,但本质上是基本相同的:

1) Watchdog(看门狗定时器)

Watchdog也是绝大多数MCU的一种基本配置(一些4位MCU可能没有此功能),大多数的MCU的Watchdog只能允许程序对其进行复位而不能对其关闭(有的是在程序烧入时来设定的,如Microchip PIC系列MCU),而有的MCU则是通过特定的方式来决定其是否打开,如Samsung的KS57系列,只要程序访问了Watchdog寄存器,就自动开启且不能再被关闭。一般而言watchdog的复位时间是可以程序来设定的。Watchdog的最基本的应用是为MCU因为意外的故障而导致死机提供了一种自我恢复的能力。

2)通讯接口

MCU所提供的通讯接口一般包括SPI接口,UART,I2C接口。

1.SPI接口

此类接口是绝大多数MCU都提供的一种最基本通讯方式,其数据传输采用同步时钟来控制,信号包括:SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)及Ready信号;有些情况下则可能没有Ready信号;
此类接口可以工作在Master方式或Slave方式下,通俗说法就是看谁提供时钟信号,提供时钟的一方为Master,相反的一方则为Slave

2.UART

它的英文全称是Universal Asynchronous Receive Transmit。
他属于最基本的一种异步传输接口,其信号线只有Rx和Tx两条,基本的数据格式为:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even, Odd or None) + Stop Bit(1~2Bit)。一位数据所占的时间称为Baud Rate(波特率)。
对于大多数的MCU来讲,数据位的长度、数据校验方式(奇校验、偶校验或无校验)、停止位(Stop Bit)的长度及Baud Rate是可以通过程序编程进行灵活设定。此类接口最常用的方式就是与PC机的串口进行数据通讯。

3.IO口

任何MCU都具有一定数量的IO口,没有IO口,MCU就失去了与外部沟通的渠道。根据IO口的可配置情况,可以分为如下几种类型:
纯输入或纯输出口:此类IO口由MCU硬件设计决定,只能是输入或输出,不可用软件来进行实时的设定。
直接读写IO口:如MCS-51的IO口就属于此类IO口。当执行读IO口指令时,就是输入口;当执行写IO口指令则自动为输出口。
程序编程设定输入输出方向的:此类IO口的输入或输出由程序根据实际的需要来进行设定,应用比较灵活,可以实现一些总线级的应用,如I2C总线,各种LCD、LED Driver的控制总线等。
对于IO口的使用,重要的一点必须牢记的是:对于输入口,必须有明确的电平信号,确保不能浮空(可以通过增加上拉或下拉电阻来实现);而对于输出口,其输出的状态电平必须考虑其外部的连接情况,应保证在Standby或静态状态下不存在拉电流或灌电流。

4.外部中断

外部中断也是绝大多数MCU所具有的基本功能,一般用于信号的实时触发,数据采样和状态的检测,中断的方式由上升沿、下降沿触发和电平触发几种。外部中断一般通过输入口来实现,若为IO口,则只有设为输入时其中断功能才会开启;若为输出口,则外部中断功能将自动关闭(ATMEL的ATiny系列存在一些例外,输出口时也能触发中断功能)。外部中断的应用如下:
外部触发信号的检测:一种是基于实时性的要求,比如可控硅的控制,突发性信号的检测等,而另一种情况则是省电的需要。
信号频率的测量:为了保证信号不被遗漏,外部中断是最理想的选择。
数据的解码:在遥控应用领域,为了降低设计的成本,经常需要采用软件的方式来对各种编码数据进行解码,如Manchester和PWM编码的解码。
按键的检测和系统的唤醒:对于进入Sleep状态的MCU,一般需要通过外部中断来进行唤醒,最基本的形式则是按键,通过按键的动作来产生电平的变化。

5.TImer(定时器)

TImer的种类虽然比较多,但可归纳为两大类:一类是固定时间间隔的Timer,即其定时的时间是由系统设定的,用户程序不可控制,系统只提供几种固定的时间间隔给用户程序进行选择,如32Hz,16Hz,8Hz等,此类Timer在4位MCU中比较常见,因此可以用来实现时钟、计时等相关的功能。
另一类则是Programmable Timer(可编程定时器),顾名思义,该类Timer的定时时间是可以由用户的程序来控制的,控制的方式包括:时钟源的选择、分频数(Prescale)选择及预制数的设定等,有的MCU三者都同时具备,而有的则可能是其中的一种或两种。此类Timer应用非常灵活,实际的使用也千变万化,其中最常见的一种应用就是用其实现PWM输出。
由于时钟源可以自由选择,因此,此类Timer一般均与Event Counter(事件计数器)合在一起。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/836528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

除了GET方法,新的HTTP QUERY方法规范发布

近日IETF提交新规范讨论:定义了一种新的 HTTP 方法QUERY,QUERY方法作为一种安全、幂等的请求方法,可以携带请求内容。 大多数情况下,当请求中传送的数据量太大而无法编码到请求的 URI 中时,推荐采取QUERY方式。 例如&a…

pikachu靶场(xss通关教程)

(注:若复制注入代码攻击无效,请手动输入注入语句,在英文输入法下) 反射型xss(get型) 1.打开网站 发现有个框,然后我们在框中输入一个“1”进行测试, 可以看到提交的数据在url处有显示&#xf…

Debian Linux 下给Nginx 1.26.0 编译增加Brotli算法支持

明月发现参考【给Nginx添加谷歌Brotli压缩算法支持】一文给出的方法,在Debian Linux 12.5下就一直编译失败,主要的错误是因为文件缺失,在专门又安装了apt-get install libbrotli-dev的依赖库后依然会因为文件缺失无法编译完成,就这…

ERP与MES与WMS集成

WMS储位管理 WMS与MES集成 (一) 打通追溯链 在拣货时,将配料标签与供应商的物料标签进行关联。通过配料标签达到精确追溯及防错目的。针对模糊查询,将工单与物料的供应商信息、仓库流转信息进行关联。 (二) WMS入库 成品(半成品)下线后,M…

draw.text((left, top - 15), text,font=font, fill=“green”)

这是一个Python PIL库中的方法,用于在图片上绘制文本。具体来说,它可以在指定的位置绘制指定的文本,并使用指定的字体、颜色等参数进行渲染。其中,left和top是文本绘制的左上角坐标,text是要绘制的文本内容&#xff0c…

齿轮滚刀刃口钝化技术简介

介绍 在滚刀的使用中发现,进口滚刀和国产滚刀在加工质量和寿命方面存在显著差异。经过多次比较得知,滚刀的使用寿命可以达到国产滚刀的两倍以上,而进口滚刀返回原厂磨削后的使用寿命约为新刀具的90% ,但同样经过国内厂家磨削后&a…

【C语言项目】贪吃蛇(下)

个人主页~ 源码在Gitee仓库~ 上一篇贪吃蛇(上)~ 贪吃蛇 四、核心的实现游戏测试1、GameStart(1)控制台窗口大小和名字设置(2)光标隐藏(3)打印欢迎界面(4)创建…

CSS 包含块

前言:CSS 总的来说就两块,样式计算和视觉格式化模型,而包含块就是视觉格式化模型的重要内容,理解包含块的定义,对于 CSS 布局有更好的帮助。 1. 概念 什么叫包含块,指的是一个区域,某一个元素在…

azkaban-tools 项目介绍

本文背景 应一个用户的好心和好奇心,在最近水深火热的百忙之中抽时间写完了一个简短的项目介绍,其实就是几个azkaban的批量操作脚本,但在大数据集群的“运维生涯”中,还是帮了自己不少忙,也算是为了它做一个简单的回顾…

软件设计师考试——加密算法(对称,非对称)、重放攻击、内聚模式、scrum模型、CMM模型、MVC模式、桥接模式与适配器模式、事务具有的特性

加密算法 对称加密算法: 介绍:使用相同的密钥进行加密和解密。常见的对称加密算法包括DES、AES等。特点:加密和解密速度快,适合大数据量的加密;密钥管理相对简单。使用场合:适合于对数据进行加密传输或存储…

linux中passwd --stdin命令含义

linux中passwd --stdin命令的含义 在linux系统中,我们知道passwd是用来修改用户密码的命令。而--stdin是passwd命令的一个选项,用于从标准输入中读取密码。具体来说,使用passwd --stdin可以将标准输入中的内容作为新密码,通过管道…

如何在线教育系统解决方案,微信视频号运营技巧有哪些?哪些内容比较受欢迎?

微信视频号是一个机会,要做好它的秘诀就是内容好、能抓人、整合推,除了利用渠道红利,来打通朋友圈、微信群等来进行推广之外,重点还要抓内容。切中用户痛点,制造冲突和反转,引发观众内容的思考和互动&#…

LeetCode力扣第114题:多种算法实现 将二叉树展开为链表

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析…

目标检测YOLO实战应用案例100讲-基于深度学习的交通场景多尺度目标检测算法研究与应用(下)

目录 3.2 基于空洞卷积的特征融合模块设计 3.3 改进k-means聚类算法的anchor尺寸优化设计

微调大模型学习记录

微调大模型基本思路 一般来说, 垂直领域的现状就是大家积累很多垂域数据,从现实出发,第一步可以先做增量训练.所以会把模型分成3个阶段: (1)、第一阶段:(Continue PreTraining)增量预训练,在海量领域文档数据(领域知识)上二次预训练base模型…

Java | Leetcode Java题解之第85题最大矩形

题目&#xff1a; 题解&#xff1a; class Solution {public int maximalRectangle(char[][] matrix) {int m matrix.length;if (m 0) {return 0;}int n matrix[0].length;int[][] left new int[m][n];for (int i 0; i < m; i) {for (int j 0; j < n; j) {if (mat…

Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告

这篇文章主要介绍了Python3 Appium 安卓模拟器实现APP自动化测试并生成测试报告,本文给大家介绍的非常详细&#xff0c;对大家的学习或工作具有一定的参考借鉴价值&#xff0c;需要的朋友可以参考下 本文主要分为以下几个部分 安装Python3 安装Python3的Appium库 安装Andr…

Mp3tag for Mac:音乐标签,轻松管理

还在为杂乱无章的音乐文件而烦恼吗&#xff1f;Mp3tag for Mac&#xff0c;让您的音乐库焕然一新&#xff01;它支持多种音频格式&#xff0c;批量编辑标签&#xff0c;让音乐管理变得简单高效。同时&#xff0c;自动获取在线数据库的音乐元数据&#xff0c;确保您的音乐库始终…

优选算法——双指针

优选算法 一、leetcode283.移动零 题目分析&#xff1a; ​ 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 算法原理&#xff1a; ​ 快排原理&#xff1a; ​ 数组划分或者数组分块&#xff1a;即在一定…

docker 开启 tcp 端口

前言&#xff1a;查了很多网上资料 都说要修改daemons,json 完全不管用&#xff0c;而且还导致添加 {“host”:["tcp://0.0.0.0:2375","unix:///var/lib/docker.sock"]} 后&#xff0c;docker restart 失败&#xff0c;浪费了不少时间 &#xff01;&am…