嵌入式系统(二)单片机基础 | 单片机特点 内部结构 最小系统 电源 晶振 复位
上一篇文章我们介绍了嵌入式系统
嵌入式系统(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位 一般给寄存器赋值,因为寄存器一般是八位
需要考虑编程的取值范围
相关文章:

嵌入式系统(二)单片机基础 | 单片机特点 内部结构 最小系统 电源 晶振 复位
上一篇文章我们介绍了嵌入式系统 嵌入式系统(Embedded System)是一种特定用途的计算机系统,它通常嵌入在更大的产品或系统中,用于控制、监测或执行特定的任务。这些系统通常由硬件和软件组成,旨在满足特定的需求&…...
NLP基础——中文分词
简介 分词是自然语言处理(NLP)中的一个基本任务,它涉及将连续的文本序列切分成多个有意义的单元,这些单元通常被称为“词”或“tokens”。在英语等使用空格作为自然分隔符的语言中,分词相对简单,因为大部分…...
阿里云服务器Alibaba Cloud Linux 3镜像版本大全说明
Alibaba Cloud Linux阿里云打造的Linux服务器操作系统发行版,Alibaba Cloud Linux完全兼容完全兼容CentOS/RHEL生态和操作方式,目前已经推出Alibaba Cloud Linux 3,阿里云百科aliyunbaike.com分享Alibaba Cloud Linux 3版本特性说明ÿ…...

WebGIS开发的常见框架及优缺点
WebGIS开发引擎的发展历程: 内容来自公众号:Spatial Data 地图API分类 WebGIS系统通常都围绕地图进行内容表达,但并不是有地图就一定是WebGIS,所以下面要讨论下基于Web的地图API分类及应用场景。Web上的Map API主要分类ÿ…...

ansible 配置jspgou商城上线(MySQL版)
准备环境 准备两台纯净的服务器进行,在实验之前我们关闭防火墙和selinux systemctl stop firewalld #关闭防火墙 setenforce 0 #临时关闭selinux hosts解析(两台服务器都要去做) [rootansible-server ~]# vim /etc/hosts 10.31.162.24 ansible-ser…...

算法导论复习——CHP22 分支限界法
LIFO和FIFO分枝-限界法 采用宽度优先策略,在生成当前E-结点全部儿子之后再生成其它活结点的儿子,且用限界函数帮助避免生成不包含答案结点子树的状态空间的检索方法。两种基本设计策略: FIFO检索:活结点表采用队列&#x…...

鸿蒙系列--装饰器
一、基础UI组件结构 每个UI组件需要定义为Component struct对象,其内部必须包含一个且只能包含一个build(){}函数,用于绘制UI;struct之内、build()函数之外的地方用于存放数据。 二、基本UI装饰器 Entry 装饰struct,页面的入口…...

FairGuard游戏加固产品常见问题解答
针对日常对接中,各位用户对FairGuard游戏加固方案在安全性、稳定性、易用性、接入流程等方面的关注,我们梳理了相关问题与解答,希望可以让您对产品有一个初步的认知与认可。 Q1:FairGuard游戏加固产品都有哪些功能? A:FairGuar…...

Redis(二)数据类型
文章目录 官网备注十大数据类型StringListHashSetZSetBitmapHyperLogLog:GEOStreamBitfield 官网 英文:https://redis.io/commands/ 中文:http://www.redis.cn/commands.html 备注 命令不区分大小写,key区分大小写帮助命令help…...
2023年广东省网络安全B模块(笔记详解)
模块B 网络安全事件响应、数字取证调查和应用安全 一、项目和任务描述: 假定你是某网络安全技术支持团队成员,某企业的服务器系统被黑客攻击,你的团队前来帮助企业进行调查并追踪本次网络攻击的源头,分析黑客的攻击方式,发现系统漏洞,提交网络安全事件响应报告,修复系统…...

每日力扣算法题(简单篇)
543.二叉树的直径 原题: 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 解题思路: …...

Flume基础知识(三):Flume 实战监控端口数据官方案例
1. 监控端口数据官方案例 1)案例需求: 使用 Flume 监听一个端口,收集该端口数据,并打印到控制台。 2)需求分析: 3)实现步骤: (1)安装 netcat 工具 sudo yum …...

通过IP地址如何进行网络安全防护
IP地址在网络安全防护中起着至关重要的作用,可以用于监控、过滤和控制网络流量,识别潜在威胁并加强网络安全。以下是通过IP地址进行网络安全防护的一些建议: 1. 建立IP地址白名单和黑名单: 白名单:确保只有授权的IP地…...
Vue.js 中使用 Watch 选项实现动态问题判断与展示答案
组件结构 以下是组件的基本结构: <template><div><!-- 输入框,用于输入问题 --><p>提出一个是/否问题:<input v-model"question" :disabled"loading" /></p><!-- 显示答案 --&…...
python笔记-自用
2024/1/3# python用号实现字符串的拼接,非字符串不能拼接 from pymysql import Connection# 连接mysql数据库salary 100 name "wang"ans "%s" % salary name print(ans)x 1 y 2 sum "%s %s" % (x, y) print(sum)# %s字符串占…...

安克创新与火山引擎数智平台开展合作:数据分析降门槛 数据协同破边界
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近日,消费电子品牌安克创新与火山引擎数智平台(VeDI)达成合作,双方将聚焦安克创新大数据平台的海量数据分析场景&…...

LDD学习笔记 -- Linux内核模块
LDD学习笔记 -- 内核模块 简介LKM类型Static Linux Kernel ModuleDynamic Linux Kernel ModuleLKM编写语法 syntax详细描述内核头文件用户空间头文件Module Initialization FunctionModule Cleanup FunctionKeyword & Tag宏 __init __exitLKM入口注册Module Metadate&#…...

springboot整合springbatch批处理
springboot整合springbatch实现批处理 简介项目搭建步骤 简介 项目搭建 参考博客【场景实战】Spring Boot Spring Batch 实现批处理任务,保姆级教程 步骤 1.建表 建表sql CREATE TABLE student (id int NOT NULL AUTO_INCREMENT,name varchar(100) NOT NULL C…...
答案解析——C语言—第2次作业:转义字符
本次作业的链接如下:C语言—第2次作业:转义字符 1.下面哪个不是C语言内置的数据类型: C char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数 …...

HTML5-新增表单input属性
新增表单属性 form控件主要新增的属性: autocomplete 是否启用表单的自动完成功能,取值:on(默认)、off novalidate 提交表单时不进行校验,默认会进行表单校验 autocomplete属性 概念:autocomplete属性…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...