单片机初识

本文介绍了单片机的基础概念,包括单片机的工作原理、冯诺依曼与哈佛体系结构、8位单片机的含义,以及TTL和COMS集成电路的区别。此外,详细阐述了单片机的开发流程,从前期准备、参数设计到PCB制作、软件优化和文档整理,为读者提供了完整的开发指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

第一章提纲挈领,介绍单片机与其他CPU的区别,以及单片机研究的一般步骤

一、基础概念

参考书籍《PIC单片机使用教程——基础篇》作者李学海
link

1.1 单片机是什么

 单片机就是微控制器即MCU。从结构上看,单片机内部结构包含cpu(用于运算和控制),存储器,以及IO、定时器等外设。
 有人会问单片机和电脑芯片有什么区别?
 答案是:两者结构和功能相似,区别是单片机往往用于嵌入式系统,电脑芯片是用于通用计算机系统
通用计算机体系,其实是基于intel和AMD芯片构建的计算机体系。这类芯片支持CISC指令集,常运行操作系统(Windows)。它的通用性体现于计算机的普及,以及一个通用的计算机模型(主板+键盘+鼠标+显示器等等)。由于存在磁盘(硬盘),通用芯片(intel和AMD)往往不需要把程序下载到芯片里,而只需要存在磁盘上。通用计算机体系,更多的用于开发应用(软件)。
嵌入式计算机体系,说白了,单片机资源更少,但能满足嵌入式系统的实时性,耐用性,并且价格低。单片机固化上不同的程序,单片机就拥有对应功能,烧写完程序的单片机也称为固件。另一方面,嵌入式芯片更加专用于某一类电子系统(如冰箱,汽车等等)。这一类系统往往没有操作系统,或者操作系统简单,人们只需要按键或者简单的界面就能操作。嵌入式芯片往往属于中低端芯片,更多地是开发底层驱动程序。也因此开发一个嵌入式芯片成本可控,可按需求添加总线和通信模块。
 PS:随着ARM芯片的不断壮大,像高通和华为麒麟运行安卓系统已经和电脑差距缩小,但更便捷。
最后聊一下软件和硬件的区别:说白了软件就是程序,程序就要有对应的语言及其编译器。而编译器翻译而成的指令,必须能让CPU识别(必须能翻译成CPU支持的指令集)才能执行。所以一定程度上,程序就是应用芯片所具备的硬件资源,来实现逻辑功能。有一些芯片具备有一定功能的硬件单元,比如加法器(也算是实现了算法的硬件化)。所以说,设计芯片实际上等于设计一套工具/资源,然后提供给用户去使用资源(写程序)。

1.2 单片机工作原理是什么

 单片机工作原理,一方面指的是单片机编程。编程时,核心是调用内核,其次是控制各个外设。
 内核包括CPU,数据存储器和程序存储器,及其相关内容。内核相关的主要内容就是CPU的指令集(单片机内核能实现哪些操作),以及如何实现RAM(数据存储器)的直接访问和间接访问,如何实现ROM/flash(程序存储器)的直接跳转和间接跳转。
 现在大多数单片机都有自己的C语言编译器。但是学习单片机的汇编编程,能更好地了解CPU是如何控制指令执行的顺序,以及译码执行的。通过软件仿真器和硬件仿真器,看见程序运行时每一步产生的变化。
 另一方面,单片机能实现通信,这又涉及通信协议的内容。

1.3 体系结构和总线结构

体系结构指的是程序存储器和数据存储器的编制方式。典型的体系结构有两种,如下:

  1. 普林斯顿体系结构,也就是冯诺依曼体系结构
     普林斯顿体系结构中,程序存储器和数据存储器是统一编址,两者在一个逻辑空间。
  2. 哈佛体系结构
     哈佛体系结构是将程序存储器和数据存储器分开编址。

总线结构指的是数据总线和指令总线的使用方式
PIC单片机采用的哈佛总线结构是将数据总线和指令总线分开。这样可以实现“流水作业”,即一个指令执行的同时下一个指令开始取值。

1.4 8位单片机的8位指什么

CPU处理的数据的宽度,参与运算的寄存器的数据长度可能不同。平常我们说的8位单片机,8位指的是CPU一次能处理8位二进制数。
具体称多少位单片机,参考以下链接:http://www.elecfans.com/d/585218.html

1.5 TTL集成电路和COMS集成电路

 TTL集成电路使用(transistor)晶体管来构成逻辑门电路。功耗较大,驱动能力强,一般工作电压+5V。
 CMOS集成电路使用MOS管来构成逻辑门电路,其功耗小,工作电压范围很大
参考链接:link.


二、单片机开发流程

2.1 前期准备

 单片机选项,元件选型,设计原理图草图。此时,可以购买市面上同型号的单片机开发板进行软硬件测试。

2.2 参数设计

计算各元件参数,各芯片时序配合。考虑单片机的资源分配,设计软件框架,通信协议

2.3 PCB设计与制作

采用Altium Designer或Cadence进行原理图和PCB设计,然后找加工厂如华秋网,进行生产,实际生产花费不高。

2.4 软件设计与优化

画程序流程图。代码写进行单模块测试,然后再组合到一起。这样有利于充分暴露问题,减少调试压力。

2.5 整理数据和编写文档

记录设计上的失误,调试时遇到的问题,以及分析过程,改进方法等等。具体的比如原理图中元件的参数,PCB封装模型,以及软件程序的调整等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值