单片机(1)嵌入式介绍

768 阅读5分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

介绍

       嵌入式系统是硬件和软件的结合体,一般由微控制器以及其外围电路构成,微控制器根据存储在内部存储器的程序执行相应的动作,完成对硬件的直接控制。嵌入式系统一般是为了嵌入到某种对象中,完成对其的操控。以家用电器为例,如洗衣机、电饭锅等,按下按键即可使机器自动洗衣、煮饭,还能进行预约等功能,究其原因就是内部的嵌入式系统在控制。

       嵌入式系统的硬件部分,即微控制器以及其外围电路中,以微控制器为核心,微控制器实际上就是处理器的一种。一般作为嵌入式系统核心的微控制器也被称为单片机,为了不断增加的应用要求,单片机中会添加各种各样的单元电路,除了最基本的处理器内核外,还包括存储器(如SRAM、Flash)、I/O口和中断系统、计数器等。

       下图为stm32系列微控制器的系统架构,左上角为Cortex-M3内核,即处理器,其它部分为各个模块功能,如Flash、SRAM等内部存储器,DCode数据总线,ICode命令总线、AHB:与各个内部外设连接的系统总线等等。当然,GD系列的微控制器系统架构也类似下图。

image.png

微控制器和微处理器很容易混淆,微处理器一般指功能强大,但不为特定目的而设计的芯片。微控制器一般在各种家用电器等使用,完成特定的功能,而微处理器一般在计算机等使用,实现各种计算功能。

       目前,比较热门的微控制器有ST公司的STM系列和兆易公司的GD系列。

嵌入式学习

       嵌入式开发包括硬件、软件的设计,硬件上包括PCB制作、焊接、调试,软件则是编写程序,完成功能。一般嵌入式开发的学习都是从软件,即编写程序开始,通过开发板进行功能的验证,以掌握嵌入式开发的基础。程序的开发环境一般使用Keil5 MDK,支持大部分单片机的开发(需要有对应芯片的包)。硬件的学习主要是PCB的制作,不仅需要了解电路原理,还要熟悉选用芯片的功能、连接方式等。

       嵌入式的学习一般从编写程序开始,因此需要掌握编程的基本语言:C语言,并且需要1个开发板,开发板由微控制器电路以及其它模块电路构成,一般LED模块、按键模块、外扩引脚电路、串口模块等等,供使用者快速上手嵌入式的开发。

       当基本掌握嵌入式开发需要的知识以及技术后,可以通过参加一些比赛(建议大学生)或制作手表、小车等练手,大致流程如下:

  1. 前期设计:确定成品拥有的功能,外形等。
  2. 微控制器、元器件选型。
  3. 绘制原理图及PCB。
  4. 打样、焊接、调试。
  5. 根据设计,编写程序并调试。

注意,嵌入式的学习过程中难免遇到各种问题,一般可分为软件和硬件上的问题,遇到问题时首先应该对先问题进行定位,软件上一般可以通过keil5自带的调试功能,硬件上只能通过万用表、示波器等设备确定。

       下面介绍一些嵌入式开发的内容。

烧录

       将在开发环境中编写的代码写入到微控制器对应的存储区域,使微控制器根据代码执行相应的动作。

       烧录的方式包括串口烧录和烧录器烧录,前者是通过微控制器的TxRx接口,通过串口模块连接电脑后,通过MCU ISP(软件)进行烧录,不同芯片使用到的MCU ISP不同。后者是通过ST-Link、GD-Link或J-Link进行烧录,通过烧录器时可直接在keil5中操作。

选型

       对微控制器、各类芯片,乃至各种元器件型号的选择,选型应根据开发的需要决定,并留有相应余量。一般微控制器选型需要考虑的参数包括数据运算性能、引脚数量、引脚功能、存储器容量等,其它芯片的选型则也需要参考其数据手册中的参数决定。

参考资料

       微控制器一般会有对应的数据手册以及参考手册(也称用户手册),数据手册记录微控制器的各项参数,参考手册则记录微控制器各种功能的使用方法,当然,这种使用方法一般会比较深入,初学者建议买商家的开发板并通过其资料进行学习,目前原子以及野火的开发板和资料比较完善,但都是ST系列的,国产的GD芯片目前资料不多,若打算学习、使用该系列微控制器,推荐“卓越工程师培养系列”的开发板及教材。

专栏介绍

       本专栏虽然命名为嵌入式开发,但主要介绍微控制器的使用(基本)以及完成对某些芯片的使用(音频、存储、显示等等),硬件上的PCB制作、芯片选型、焊接等技巧基本上不会提及。