嵌入式系统(二)单片机基础 | 单片机特点 内部结构 最小系统 电源 晶振 复位

上一篇文章我们介绍了嵌入式系统

嵌入式系统(Embedded System)是一种特定用途的计算机系统,它通常嵌入在更大的产品或系统中,用于控制、监测或执行特定的任务。这些系统通常由硬件和软件组成,旨在满足特定的需求,如嵌入在家电、汽车、医疗设备、工业自动化、消费电子产品、通信设备等各种应用领域。

简单说嵌入式:就是嵌入到对象体中的专用计算机系统 三要素 嵌入 专用 计算机

嵌入式系统往往是一个较为复杂的系统,由单片机和硬件平台和嵌入式计算机系统等组成,其中的核心是嵌入式处理器

我们主要讲解单片机

文章目录

  • 1 单片机基本介绍
    • 1.1 单片机组成
    • 1.2 单片机特点
    • 1.3 单片机分类
    • 1.4 单片机内部结构
  • 2. 8051单片机内部结构
    • 2.1 CPU 核心
    • 2.2 ROM Flash 程序存储空间
    • 2.3 RAM 数据存储空间
    • 2.4 SFR 特殊功能寄存器
  • 3 CC2530芯片介绍
    • 3.1 组成
  • 4 单片机最小系统
    • 4.1 电源
    • 4.2 晶振
      • 4.2.1 定义种类
      • 4.2.2 基本时序周期
    • 4.3 复位
  • 5 编程

1 单片机基本介绍

1.1 单片机组成

单片机系统是经典的嵌入式系统

单片微型计算机简称单片机,他不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一块芯片上,往往集合了如下一些部分

​ (1)CPU中央处理器

​ (2)RAM 随机存取存储器

​ (3)ROM 只读存储器

​ (4)定时/计数器/ IO接口

采用哈佛结构 Harvard结构

将程序 指令储存和数据储存分开的存储器 结构。拥有独立的指令总线和数据 总线,可以让取指与数据访问分开 进行,提高了执行效率。

而不是传统我们熟悉的冯诺依曼结构

1.2 单片机特点

1)高集成度,体积小,高可靠性

2)控制功能强

3)低电压,低功耗,便于生产便携式产品

4)易扩展

5)优异的性能价格比

1.3 单片机分类

1 按数据处理位数来分

由于4位单片机性能比较低,目前已逐步退出市场。

而16位 和32位单片机虽然性能比8位的强得多,但由于成本和应用 场合的限制,尤其是近年来ARM嵌入式技术的发展,导致它 的应用空间也不如8位单片机广泛。而16位和32位单片机主 要应用于视频采集、图形处理等方面。

2 按内核分类

单片机按内核分为

51系列 爱特梅尔公司

ARM系列 安谋国际科技股份有限公司

PIC系列 美国微芯科技公司

AVR系列 爱特 梅尔公司

MSP430系列 德州 仪器公司

3 按指令类型分类 单片机按指令类型可以分为

精简指令集和复杂指令集。

1.4 单片机内部结构

1)中央处理器

运算器和控制器是核心,合称中央处理器或中央处理单元。

运算器执行所有的算术和逻辑运算;

控制器负责把指令逐 条从存储器中取出,经译码后向计算机发出各种控制命令;

而寄存器为处理单元提供操作所需要的数据。

2)存储器

存储器主要包括只读存储器和随机存储器。

3)输入设备和输出设备

输入设备和输出设备主要包括并行I/O端口串行接口等通 信方式。

并行I/O端口即输入/输出引脚,这是单片机与外部电路和 器件主要联系的端口,它既可以接收外界输入的电平信号, 也可以向外发送指定的电平信号

串行通信是一条信息的各位数据逐位按顺序传送的通信方 式。其数据传送按位顺序进行,最少只需要一根传输线即可。串行通信主要采用通用异步收发传输器(UART)实现。 其中,RxD表示接收数据端口,TxD表示发送数据端口

4)时钟电路

主要为单片机提供运行所需要的节拍信号,每到 来一个节拍,单片机就执行一步操作,所以时钟电路提供 的信号频率越高,单片机的运行速度就越快,相应的功耗 也越大。

5)中断控制系统

中断的种类大体来说,主要包括硬体中断、软体中断两类。

硬体中断的形成,通常是外界的硬体装置利用由CPU拉出的 中断要求信号线来通知 CPU中断的请求。

软体中断,通 常是CPU自己引发的,比如说执行了不该执行的指令、计算 错误或者执行了某个用来产生软体中断的指令。

6)定时器/计数器

单片机将CPU、存储器、输入/输出设备、中断控制系统、 定时器/计数器和通信等多种功能部件集成到一块硅片上, 从而构成一个体积小但功能完善的微型计算机系统。

解下来我们重点介绍一款应用较多的单片机

2. 8051单片机内部结构

2.1 CPU 核心

以ALU为中心的运算器

还有以各种寄存器和译码器为核心的控制器

在这里插入图片描述

除了CPU以外,有名的是单片机的三大资源

FLASH(程序存储空间ROM)

RAM (数据存储空间)

SFR 特殊功能寄存器

2.2 ROM Flash 程序存储空间

FLASH 存储器是一种非易失性存储器,用于存储嵌入式系统的程序代码。它通常用于存储固件、操作系统、应用程序和其他必要的程序代码。与传统的RAM不同,FLASH 存储器的数据在断电后仍然保持,因此适用于存储长期保持的程序代码。

对于单片机来说Flash最大的意义是断电后 数据不丢失,

2.3 RAM 数据存储空间

RAM是单片机的数据存储空间,用来存储程序运 行过程中产生的和需要的数据

跟电脑的内存是 相似的概念,关电后数据丢失,所以我 们每次打开计算器,都是从归零开始计算。

它的优点,第一是读写速度非常快,第二是理论 上是可无限次写入的,即寿命无限,不管程序怎 么运行怎么读写它都不会坏。

2.4 SFR 特殊功能寄存器

特殊功能寄存器是嵌入式系统中的一类寄存器,用于控制和配置系统的特殊功能和硬件模块。这些寄存器通常包括控制寄存器、时钟寄存器、中断寄存器、输入/输出端口控制寄存器等。通过编写和读取这些寄存器的值,开发者可以配置和控制系统的各种功能。

SFR,特殊功能寄存器。这 个概念大家可能刚开始理解不了,但是一 定要记住。单片机有很多很多功能,每个 功能都会对应一个或多个SFR,我们就是 通过对SFR的读写来实现单片机的多种多 样的功能的。

3 CC2530芯片介绍

3.1 组成

(1)CPU和内存

CC2530芯片中使用的8051CPU内核是一个单周期的8051兼容内核。

它有3种不同的内存访问总线,分别用于访问特殊功 能寄存器、数据和代码/外部数据

此外,它还包括一个调试接口和一个18路输入扩展中断单元。

(2)时钟和电源管理

数字内核和外设由一个1.8V低压差稳压器供电。它提供了 电源管理功能,可以实现使用不同供电模式的长电池寿命 的低功耗运行。CC2530有5种不同的复位源来复位设备

(3)外设

调试接口执行一个专有的两线串行接口,用于内电路调试。 通过这个调试接口,可以执行整个闪存存储器的擦除、控 制振荡器、停止和开始执行用户程序、执行8051内核提供 的指令、设置代码断点,以及内核中全部指令的单步调试。 使用这些技术,可以很好地执行内电路的调试和外部闪存 的编程。

定时器1是一个16位定时器,具有定时器/PWM功能。的消费 型IR信号。

定时器2是专门为支持IEEE 802.15.4 MAC或软件中其他时 槽的协议设计的。该定时器有一个可配置的定时器周期和 一个8位溢出计数器

定时器3和定时器4是8位定时器,具有定时器/计数器/PWM功能。

睡眠定时器在除供电模式3之外的所有工作模式下不断运行。该定时器 的典型应用是作为实时计数器,或作为一个唤醒定时器跳出供电模式1 或2

ADC支持7~12位的分辨率,分别在30kHz或4kHz的带宽。DC和音频转换 可以使用高达8个输入通道(端口0),输入可以选择作为单端或差分。 参考电压可以是内部电压、AVDD或一个单端或差分外部信号。ADC还有 一个温度传感输入通道。ADC可以自动执行定期抽样或转换通道序列的 程序

串口1(USART 0)和串口2(USART 1)被配置为一个SPI主/从或一个 UART。它们为RX和TX提供双缓冲,以及硬件流控制。

4 单片机最小系统

单片机最小系统 ,也叫做单片机 最小应用系统, 是指用最少的原 件组成单片机可 以工作的系统。 单片机最小系统 的三要素就是电源、晶振、复位

4.1 电源

常用单片机的电源系统有5V系统 和3.3V系统这两种。

4.2 晶振

4.2.1 定义种类

晶振,又叫晶体振荡器,他起到的作用是 为单片机系统提供基准时钟信号。

单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。

STC89C52单片机的18脚和19脚是晶振引 脚,我们接了一个11.0592M的晶振(它每 秒钟振荡11,059,200次),外加两个20pF 的电容,电容的作用是帮助晶振起振,并 维持振荡信号的稳定

电容分为不同种

晶振分为有源晶振和无源晶振

两种时钟产生方式

​ 内部振荡器方式

​ 外部时钟源方式

4.2.2 基本时序周期

CPU总是按照一定的时钟节拍与时序工作,时序 定时单位共有4个,从小到大依次是:

振荡周期/时钟周期:Tc=晶振频率fosc(或外加频率)的倒数 MCS-51单片机中最小的时序单位

状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)

机器周期:CPU完成一个基本操作所需的时间称为机器周期

指令周期: 执行一条指令所需的机器周期™数,是MCS-51 单片机最大的时序单位。通常含有1~4个机器周期。

相互转换关系

振荡周期 = 晶振频率fosc的倒数;

1个状态周期= 2个振荡周期;

1个机器周期 = 12个振荡周期=6个状态周期;

1个指令周期 = 1、2、4个机器周

CC2530指令周期与标准51不同

标准51:1个机器周期为12个振荡周期 • CC2530包含一个单周期的增强51内核,不 同于标准51

CC2530

四个时钟源 两个内部振荡器,两个外部晶振

: 不做任何配置时,系统时钟 为16Mhz • 机器周期是多少? 1/16 us

4.3 复位

复位电路需要接到接到了单片机的RST(Reset)复位引脚 上。

单片机复位一般是3种情况:

上电复位、手动复位、程序 自动复位。

(1)上电复位:单片机上电后进行的一个内部的初始化过程。保证单 片机每次都从一个固定的相同的状态开始工作。

(2)手动复位: 遭受到意外干扰而导致程序死机,或 者程序跑飞的时候,我们就可以按下一个复位按键,让程序重新 初始化重新运行。

(3)自动复位 当程序死机或者跑飞的时候,单片机往往有一套自动复位机制, 比如看门狗。如果程序长时间失去响应,单片机看门狗模块会自 动复位重启单片机

电源、晶振、复位构成了单片机最小系统 的三要素,也就是说,一个单片机具备了 这三个条件,就可以运行我们下载的程序 了

而其他的比如LED小灯、数码管、液晶等设 备都是属于单片机的外部设备,即外设。

外设

通常红色贴片LED:靠电流驱动,电压 1.8V~2.2V,电流1到20mA,在1到 5mA亮度有所变化,5mA以上亮度基本 无变化

5 编程

嵌入编程中要注意数据类型,

char 8位 一般给寄存器赋值,因为寄存器一般是八位

需要考虑编程的取值范围

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL窗口函数大小详解

窗口大小 OVER 子句中的 frame_clause 选项用于指定一个滑动的窗口。窗口总是位于分区范围之内,是分区的一个子集。指定了窗口之后,分析函数不再基于分区进行计算,而是基于窗口内的数据进行计算。 指定窗口大小的语法如下: ROWS…

了解并使用django-rest-framework-jwt

一 JWT认证 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。 Json web token (JWT), 是为了在网络应用环…

2023年12月GESP C++七级编程题转Python真题解析

七、2023年12月GESP C(Python)七级编程题 2023年12月GESP Python最高六级,但C与Python同级编程题相同。本篇引用2023年12月GESPC七级编程题,用Python实现。 【七级编程题1】 【试题名称】:商品交易 时间限制:1.0 s 内存限制&…

CMake入门教程【核心篇】引用子模块.cmake文件(include)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本文的内容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 include子模块举个例…

四、HTML 属性

属性是 HTML 元素提供的附加信息。 一、HTML 属性 HTML 元素可以设置属性属性可以在元素中添加附加信息属性一般描述于开始标签属性总是以名称/值对的形式出现&#xff0c;比如&#xff1a;name"value"。 二、 属性实例 HTML 链接由 <a> 标签定义。链接的地…

HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程

⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩因为之前无论是电赛还是做项目&#xff0c;都用到了蓝牙模块&#xff0c;如&#xff1a;手机和stm32的通信&#xff0c;电赛中的双车通信&#xff0c;还是遥感小车的…

教育机构培训系统小程序功能清单

制作一款适合自己的教育机构培训系统小程序&#xff0c;可以为学员提供更便捷的学习体验&#xff0c;同时提高机构的教学效率。今天将详细介绍如何使用乔拓云平台制作教育机构培训系统小程序。 在浏览器搜索乔拓云&#xff0c;登录到后台&#xff0c;选择教育系统并点击进入。在…

使用MQTT.JS创建一个网页版的MQTT客户端

一、MQTT.JS介绍 MQTT.js 是一个开源的 MQTT 协议的客户端库&#xff0c;使用 JavaScript 编写&#xff0c;主要用于 Node.js 和 浏览器环境中。是JavaScript 环境下的 MQTT 客户端库。可以用于微信小程序、支付宝小程序等定制浏览器环境。 我们可以直接在HTML文件中进行调用…

静态代理、JDK动态代理、CGLIB动态代理以及JDK和CGLIB动态代理的区别

代理 什么是代理&#xff1f;两个设计原则三要素 静态代理静态代理的实现定义接口-定义行为静态代理 -> 目标角色静态代理-> 代理角色静态代理测试 特点 JDK动态代理newProxyInstance获取代理对象通过代理对象实现目标对象的功能特点 Java动态代理类中的invoke是怎么调用…

P8 RV1126推流 —— 摄像头和咪头模块初始化

前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_C…

对偶问题的基本性质

写于&#xff1a;2024年1月3日晚 修改于&#xff1a; 原规划与对偶规划 原规划对偶规划 max ⁡ z C T X s.t. { A X ≤ b , 其中 X ( m ∗ 1 ) X ≥ 0 \begin{aligned} & \max \mathrm{z}\mathbf{C}^T \mathbf{X} \\ & \text { s.t. }\left\{\begin{array}{l}\mat…

RFID在物流、供应链管理、工业自动化等领域的广泛应用

随着物联网技术的不断发展&#xff0c;RFID&#xff08;无线射频识别&#xff09;技术作为一种自动识别和跟踪技术&#xff0c;在物流、供应链管理、工业自动化等领域得到了广泛应用。本文将介绍RFID解决方案及其应用场景。 一、RFID技术概述 RFID是一种通过无线电波通信&…

Apache的配置与应用

目录 1、Apache简介 2、Apache连接保持 3、Apache的访问控制 3.1、客户机地址限制 3.2、用户授权限制 &#xff08;1&#xff09;创建用户认证数据文件 &#xff08;2&#xff09;添加用户授权配置 &#xff08;3&#xff09;验证用户访问授权 4、Apache日志分割 4…

ALSA学习(5)——ASoC架构中的Machine

参考博客&#xff1a;https://blog.csdn.net/DroidPhone/article/details/7231605 &#xff08;以下内容皆为原博客转载&#xff09; 文章目录 一、注册Platform Device二、注册Platform Driver三、初始化入口soc_probe() 一、注册Platform Device ASoC把声卡注册为Platform …

FreeRTOS——计数型信号量知识总结及实战

1计数型信号量概念 1&#xff09;计数型信号量相当于队列长度大于1 的队列&#xff0c;因此计数型信号量能够容纳多个资源 2&#xff09;适用场景&#xff1a; 事件计数&#xff1a; 当每次事件发生后&#xff0c;在事件处理函数中释放计数型信号量&#xff08;计数值1&#x…

shell编程二

shell 脚本规范 shell脚本文件需要以.sh结尾 第一个原因&#xff0c;让别人认的这个是shell脚本&#xff0c;sh后缀编辑时有高亮显示。 拓展名后缀,如果省略.sh则不易判断该文件是否为shell脚本 ​ # 执行脚本方式 1、 sh 脚本.sh 2、 bash 脚本.sh 3、 ./脚本.sh # 需要执行权…

【C语言】数组

㊙️小明博客主页&#xff1a;➡️ 敲键盘的小明 ㊙️ ✅关注小明了解更多知识☝️ 文章目录 前言一、什么是数组&#xff1f;二、一维数组的创建和初始化2.1 一维数组的创建2.2 一维数组的初始化2.3 一维数组的使用3.3 一维数组的存储 三、二维数组的创建和初始化3.1 二维数组…

每日一练:LeeCode-503. 下一个更大元素 II (中)【单调栈】

本文是力扣LeeCode-503. 下一个更大元素 II 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode。 给定一个循环数组 nums &#xff08; nums[nums.length - 1] 的下一个元素是 nums[0] &#xff09;&#xff0c;返回 nums 中每个…

【大数据实战】亿级数据量: 检索一个元素是否在一个集合中 [bloom过滤器及其应用]

目录 亿级数据量: 检索一个元素是否在一个集合中 [bloom过滤器]问题描述bloom过滤器简介传统方法哈希表bloom的思路 bloom过滤器为什么快&#xff1f;bloom过滤器更加节省空间&#xff01;优缺点实际应用javagopython 亿级数据量: 检索一个元素是否在一个集合中 [bloom过滤器] …

uniapp中用户登录数据的存储方法探究

Hello大家好&#xff01;我是咕噜铁蛋&#xff01;作为一个博主&#xff0c;我们经常需要在应用程序中实现用户登录功能&#xff0c;并且需要将用户的登录数据进行存储&#xff0c;以便在多次使用应用程序时能够方便地获取用户信息。铁蛋通过科技手段帮大家收集整理了些知识&am…
最新文章