智能循迹小车硬件分析(一)

讨论一下这个项目的一些问题
(boot :启动)

1.单片机的启动方式,以及单片机的复位电路

      **单片机的启动过程是加电后,先运行芯片内部固有程序(这个程序是用户访问不到也改写不了的),即启动代码。启动代码程序建立完运行环境后,会去读串口状态,就是用户下载程序用到的各个端口,判断用户是否正在使用端口准备下载程序,如果是,就按用户要求,把用户程序下载到指定地址上。如果不是,就跳转到已经下载过的用户程序入口,从而把芯片控制权交给用户程序。如果是新的芯片还没有下载过,那么就停留在读取串口状态的循环中。**

复位电路
复位电路,就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才会撤除,微机电路开始正常工作。

51单片机的复位电路

    电容充电时间计算:T = 1.1RC = 1.1 * 1000 * 0.0000001 = 0.011s = 10.1ms![51单片机复位电路图](https://img-blog.csdnimg.cn/20200523213429640.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RpYW5xaWN5dXlhbg==,size_16,color_FFFFFF,t_70#pic_center)
    先看右边部分电路,由于复位时高电平有效,当刚接上电源的瞬间,电容C1两端相当于短路,即相当于给RESET引脚一个高电平,等充电结束时(这个时间很短暂),电容相当于断开,这时已经完成了复位动作。 

1)把左边的电路加上,就是带手动复位的复位电路,当按键按下去的时候,即给予一个高电平,同样可以完成复位动作。
2)上电复位,顾名思义可以理解成加上电源就复位了,至于其他复位当然还有很多了,不同的系统对复位的准确性和可靠性要求不一样。

stm32单片机的复位电路

stm32f03rct6的复位电路,功能51的一样
复位电路的作用是为了是系统恢复到初始状态的,单片机的复位方式也是存在好几种的:上电复位,系统复位,备份区域复位
上电复位:其产生的条件是,当系统上电、掉电,以及系统从待机模式返回时,发生电源复位。电源复位能够复位除了备份区域寄存器之外的所有寄存器的状态。

系统复位:以下任一事件发生时,均能产生一个系统复位:

  1. NRST引脚上的低电平(外部复位)

  2. 窗口看门狗计数终止(WWDG复位)

  3. 独立看门狗计数终止(IWDG复位)

  4. 软件复位(SW复位)

  5. 低功耗管理复位

系统复位能够复位除时钟控制寄存器CRS中的复位标志和备份区域中的寄存器之外的所有寄存器。

备份区域复位:对于备份区域的复位,一种是在软件复位的时候设定备份区域控制寄存器中的对应位产生的;另一种是当电源和电池都掉电又重新上电时产生的。

STM32 内核复位 与 系统复位

内核复位与系统复位的区别
本文说的内核是指处理器内核,也就是MPU(Microprocessor Unit)。比如STM32F103,其内核就是Cortex-M3内核。
而这里的系统就是包含内核和外设,也就是MCU(Microcontroller Unit),对于STM32F103来说,就是Cortex-M3内核+各种外设接口。
内核复位:只复位Cortex-M3处理器,而不复位外设如GPIO、TIM、USART、SPI等的寄存器。
系统复位:即复位Cortex-M3处理器,又复位外设寄存器。
因此,我们常说的复位一般指的是系统复位。
(两个名词:硬件系统(由一些硬件共同去实现一个功能的硬件的组合),软件系统)

STM32单片机的三种启动模式解析

STM32三种启动模式对应的存储介质均是芯片内置的,它们是:
1)用户闪存 = 芯片内置的Flash。
2)SRAM = 芯片内置的RAM区,就是内存啦。
3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。
要注意的是,一般不使用内置SRAM启动(BOOT1=1 BOOT0=1),因为SRAM掉电后数据就丢失。多数情况下SRAM只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM中诊断板上的其他电路,或用此方法读写板上的Flash或EEPROM等。还可以通过这种方法解除内部Flash的读写保护,当然解除读写保护的同时Flash的内容也被自动清除,以防止恶意的软件拷贝。

一般BOOT0和BOOT1跳线都跳到0(地)。只是在ISP下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0的跳线接回0,也即BOOT0=0,BOOT1=0 。
注:(ISP技术 Lattice是ISP(在线可编程)技术的发明者(据说Lattice公司最早是由华人创办的),ISP技术极大的促进了PLD产品的发展。 在系统编程ISP ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。ISP技术是未来发展方向。 ISP的工作原理 ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。 ISP的优点 ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。)

程序下载电路

以下是三种不同的硬件电路图接法:

1、串口ISP
  在使用串口ISP下载的时候,将BOOT0上拉接3.3V,将BOOT1接GND。最简单的电路如下图所示。
       在这里插入图片描述这里写图片描述
  当我们需要更新程序时,将开关拨向2,当程序烧写完毕之后,在拨回原来的位置,即1处,然后复位之后程序即可正常运行。这种串口ISP的方式有一个弊端,就是只能通过它来烧写程序,我们不能通过它来调试程序。

2、JTAG
  在STM32的学习中,JTAG是我们经常使用的一种调试模式,STM32的JTAG一般选择20pin的。其电路原理图如下图所示。
  在这里插入图片描述
这里写图片描述
  JTAG的各引脚的定义如下:
    TCK——测试时钟输入
    TDI——测试数据输入,数据通过TDI输入JTAG口
    TDO——测试数据输出,数据通过TDO从JTAG口输出
    TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式
    TRST(可选)——测试复位,输入引脚,低电平有效。

3、SWD
  在我们的实际生活中,SWD相比JTAG有许多优势,首先,4线(或3线)的SWD要比JTAG的引脚少的多,这就节约了许多的PCB空间。其次,SWD在高速模式下要比JTAG模式更加可靠。
  我们在使用SWD模式时,对BOOT0和BOOT1需要做如下处理,将BOOT0悬空(或接高电平),将BOOT1经过一个10K的下拉电阻拉低。SWD模式的接口电路如下图所示。
            这里写图片描述在这里插入图片描述

2.步进电机以及启动电容

3.7805稳压芯片…

4.CH340芯片,以及单片机程序下载

5.L293D芯片

6.LM393芯片

7.HC-SR04 超声波模块

8.常见的单片机的供电电路

51单片机和STM32单片机的差别

单片机简介
  单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已。
  51单片机简介
  应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。
  51单片机之所以成为经典,成为易上手的单片机主要有以下特点:

51单片机特性
  1、从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。
  2、同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便,
  3、乘法和除法指令,这给编程也带来了便利。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
  51单片机缺点
  1、AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担
  2、虽然I/O脚使用简单,但高电平时无输出能力,这也是51系列单片机的最大软肋
  3、运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利
  4、51保护能力很差,很容易烧坏芯片
  51单片机应用范围
  目前在教学场合和对性能要求不高的场合大量被采用。
  使用最多的器件:8051、80C51
  STM32单片机简介
  由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名…其强大的功能主要表现在:
  STM32单片机特性
  1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法
  2、存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器
  3、时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振
  4、调试模式:串行调试(SWD)和JTAG接口。最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口。
  STM32常用的器件
  使用最多的器件:STM32F103系列、STM32 L1系列、STM32W系列。
  51单片机和STM32单片机的区别
  51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型号就是ATMEL公司的AT89系列。
  STM32单片机则是ST(意法半导体)公司使用arm公司的cortex-M3为核心生产的32bit系列的单片机,他的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本上接近于计算机的CPU了,适用于手机、路由器等等。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值