1.2.STM32简介——全程手敲板书

江协科技STM32课程链接:1.2.STM32简介

前方名词警告!

请新手放开心神,跟着博主把每一个字敲一遍,后面都会把这些前置知识用上的!大概过一遍即可,不求甚解

一、STM32基本情况

1、第一条

STM32:

ST是公司名,M是Microcontroller(微控制器)的首字母。微控制器就是MCU------我们常说的单片机。
32代表着这是一款32位的单片机,比8位的STM8性能更强

ARM Cortex-M内核是STM32内部的核心部分,由ARM公司设计------其地位十分重要,包括像程序指令的执行,加减乘除的运算,都是在内核中完成的,相当于整个芯片的CPU。

matlab 复制代码
电脑厂商通常都是拿着intel或者AMD的CPU

自己完善外围电路,就可以推出自己品牌的电脑。

类似地,ST公司拿着ARM公司设计的内核,再完善外围电路,整个封装起来,就变成了STM32

其他厂商拿着ARM的内核所做出来的芯片,叫做基于ARM内核的芯片

2、第二条

STM在各个项目的运用:

  1. 循迹小车

用STM32读取光电传感器或者摄像头的数据,然后驱动电机进行前进和转弯

  1. 无人机

用STM32读取陀螺仪加速度计的姿态数据,根据控制算法去控制电机的速度,从而保证飞机的稳定运行

  1. 机器人

用STM32驱动舵机,去控制机器人的关节,然后让机器人运动

  1. 无线通信

给STM32连接上一些2.4G无限模块或者蓝牙、WIFI模块,这样STM32就可以具备无线通信的能力了

  1. 物联网

借助这些无线模块进行通信,比如蓝牙、WIFI、ZigBee,再通过STM32驱动继电器来控制220V电路的通断

  1. 工业控制

用于工业控制的PLC,其内部的主控就是一块STM32

  1. 娱乐电子产品

爱心流水灯

3、第三条

无可展开部分,略

4、右边图像

这是单片机的家族

分为四个系列:

高性能系列、主流系列、超低功耗系列和无限系列

对应着不同的产品

比如高性能系列就有

STM32F2、F4、F7、H7

下面是简介,CoreMark 就是内核跑分,跑分越高,性能越好

Cortex-M3 内核就是ARM的其中一种内核芯片

右边这个STM32H7 就是目前最强的STM32芯片

本次教程采用STM32F1系列,是主流系列的产品

二、ARM简介

IP提供商就是只设计ARM内核而不生产实物,实际的内核时各大半导体产商连同芯片一起制作的

ARM内核与参数

可以看到,ARM内核主要分为三类

其中我们只需要了解Application下的M子系列即可,因为这些是用于单片机的内核

RAM:运行内存 (实际的存储介质是SRAM)
ROM:程序存储器(实际的存储介质是Flash闪存)

注意如果要用5V电压给STM32供电,必须加一个稳压芯片,把电压降到3.3V,再给STM32供电

封装是LQFP48,有48个引脚

外设

片上资源,又叫做外设(Peripheral)

下面这个表就是STM32F1系列的外设资源。我们主要学习的就是STM32的外设。通过程序配置外设,完成我们想要的功能

其中两个深颜色的,是位于Cortex-M3内核里面的外设,剩下的都是内核外的外设

以下名词轰炸部分一定要一字不落的手敲!囫囵吞枣即可

  1. NVIC,是内核中用于管理中断的设备,比如配置中断优先级

  2. SysTick,给操作系统提供定时服务 。STM32是可以加入操作系统的,比如FreeRTOS、UCOS 等,如果用了这些操作系统,就需要SysTick 提供定时来进行任务切换的功能,但本课程不涉及操作系统。我们可以用这个定时器完成Delay函数的功能

  3. RCC可以对系统的时钟进行配置 。在STM32中,其他的这些外设在上电的情况下默认是没有时钟的,不给时钟的情况下,操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以在操作外设之前,必须要enable 它的时钟。这就需要我们用RCC来完成时钟的使能

  4. GPIO就是通用的IO口 ,我们可以用GPIO来点灯,读取按键等

  5. AFIO是复用IO口 ,可以完成复用功能端口的重定义 ,还有中断端口的配置

  6. EXTI是外部中断 ,配置好外部中断 后,当引脚有电平变化 时,就可以触发中断,让CPU来处理任务

  7. TIM是定时器 ,是整个STM32 最常用、功能最多的外设。TIM分为高级计时器、通用定时器、基本定时器 三种类型。其中高级计时器最复杂,常用的是通用定时器。这个定时器不仅可以完成 定时中断 的任务,还可以完成 测频率、生成PWM波形、配置成专用的编码器接口 等功能。像 PWM波形*,就是我们电机驱动、舵机驱动最基本的要求了

  8. ADC是模数转换器 。这个STM32 内置了12位的AD转换器 ,可以直接读取IO口 的模拟电压值,无需外部连接AD芯片,使用非常方便

  9. DMA是直接内存访问 ,这个可以帮助CPU完成搬运大量数据这样的繁杂任务

  10. USART是同步或异步串口 ,我们平常用的UART异步串口 的意思 。这里的USART则是两者都支持,然而后者用的比较多。

  11. I2C和SPI是非常常用的两种通信协议STM32 也内置了它们的控制器,可以用硬件来输出时序波形 ,更高效。当然也可以用通用IO口模拟时序波形也是没有问题的

  12. CAN和USB也都是通信协议,前者一般用于汽车领域。后者可以用于制作模拟鼠标、模拟U盘等设备

  13. RTC是实时时钟 ,在STM32内部完成年月日、时分秒的计时功能,而且可以接外部备用电池,即使掉电也能正常运行

  14. CRC校验 ,是一种数据的校验方式,用于判断数据的正确性。有了这个外设的支持,进行CRC检验就会更加方便一些

  15. PWR电源控制,可以让芯片进入睡眠模式等状态,来达到省电的目的

  16. BKP备份寄存器,这是一段寄存器,当系统掉电时,仍可用备用电池保持数据,这个根据需要,可以完成一些特殊功能

  17. IWDG和WWDG是独立看门狗和窗口看门狗 。当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定

  18. DAC是数模转换器 ,可以在IO口 直接输出模拟电压,是ADC模数转换的逆过程

  19. SDIO是SD卡接口 ,可以用来读取SD卡

  20. FSMC是可变静态存储控制器 ,可以用于扩展内存,或者配置成其他总线协议,用于某些硬件的操作

  21. USB OTG就是USB主机接口 ,用OTG 功能,可以让STM32 作为USB主机 去读取其他USB设备

芯片的命名规则


STM32 ------>基于ARM核心 的32位微控制器 现在还有一种比较常用的型号,叫STM32F103RCT6 ,对照这个表可以知道,这个RCT6的芯片是64脚256k的FlashLQFP封装 、**-40~85℃**这样的参数

芯片的系统结构

这个结构看起来比较复杂,大概留个印象即可

我们可以把这个图分为4个部分

II区域~I区域

在左上角这个部分就是Cortex-M3的内核,内核引出来了三条总线,分别是

ICode总线,DCode总线,System系统总线。

  1. ICode总线和DCode总线主要是用来连接Flash闪存的Flash 存储的就是我们编写的程序。ICode指令总线 就是用来加载程序指令的,DCode数据总线是用来加载数据的,比如常量和调试数据这些
  2. System系统总线连接到了这些其他的东西上面,

II~IV区域

比如SRAM ,用于存储程序运行时的变量数据,还有FSMC ,但是这个本课程的芯片不会用到。下面的AHB (先进高性能总线)系统总线一般用于挂载最基本的或者性能比较高的外设,比如复位和时钟控制这些最基本的电路,还有SDIO,也是挂载在AHB上的。

再后来就是两个桥接,接到了APB2APB1 两个外设总线上,APB (先进外设总线)用于连接一般的外设。

因为AHBAPB 的总线协议、总线速度、还有数据传送格式的差异,所以中间需要加两个桥接,来完成数据的转换和缓存

AHB 的整体性能比APB 高一些,其中这个APB2 的性能有比APB1 高一些。APB2 一般是和AHB 同频率,都是72MHzAPB1 一般是36MHz ,所以APB2 连接的都是一般外设中稍微重要的部分,比如GPIO 端口,还有一些外设的一号选手,比如UASRT1SPI1TIM1TIM8

这个TIM8TIM1一样,也是高级定时器,所以也是重要的外设。

还有ADCEXTIAFIO ,也是接在APB2上面的。

那像这些2、3、4、5号外设,还有DACPWRBKP 等,这些是次要一点的外设,都会分配到APB1上去

IV区域主要就是外设的种类和分布

III区域

这个DMA 可以把它当作内核CPU 的小秘书,比如有一些大量的数据搬运的活,让CPU来干的话就太浪费时间了。

比如我有个外设ADC 模数转换,这个模数转换可以配置成连续模式,比如每1ms 转换一次,转换完的数据必须得转运出来,否则数据就会被覆盖丢失。如果让CPU 来干这活,那CPU 每过1ms 就得来转运一下数据,这样会费时费力,影响CPU 的正常工作。DMA就负责这些简单且反复要干的事情

DMA 通过DMA 总线连接到总线矩阵上,它可以拥有和CPU 一样的总线控制权,用于访问这些外设小弟。当需要DMA 搬运数据时,外设小弟就会通过请求线发送DMA 请求,然后DMA 就会获得总线控制权,访问并转运数据。整个过程都不需要CPU的参与

芯片的引脚定义

一般我们拿到一个新的芯片时,需要着重的看一下它的引脚定义,有的时候,看完了引脚定义,我们就大概知道这个芯片是怎么使用的了

局部放大图

这个就是C8T6 这个芯片的引脚序号引脚名称的示意图

在左上角有个小黑点,代表它左边的引脚是1号引脚,然后逆时针依次排列,直到48号引脚

下面这个表就是每个引脚的名称和功能


橙色 的是电源相关的引脚,蓝色 的是最小系统相关的引脚,绿色 的是IO口、功能口这些引脚

首先看一下表头,前两列是引脚号引脚名称

接着是类型S表示电源,I表示输入,O代表输出,IO代表输入输出

I/O口电平 代表IO口 所能容忍的电压,这里有FT 的,代表能容忍5V的电压,没有FT 的,只能容忍3.3V的电压。如果没有FT的需要接5V的电平,就需要加装电平转换电路

主功能就是上电后默认的功能,一般和引脚的名称相同。如果不同,那么实际功能是主功能而不是引脚名称的功能

默认复用功能IO口 上同时连接的外设功能引脚 。这个配置IO口的时候可以选择是通用IO口 还是复用功能

最后一个是重定义功能 ,这个的作用是,如果有两个功能同时复用在了一个IO口 上,而你确实需要用到这两个功能,那你可以把其中一个复用功能重映射到其他端口上,当然前提是,这个重定义功能的表里有对应的端口

关于IO口的介绍

  1. 第1号引脚VBAT ,它是备用电池供电的引脚,在这个引脚可以接一个3V的电池,当系统断电时,备用电池可以给内部的RTC时钟备份寄存器提供电源
  2. 第2号引脚IO口 或者侵入检测 或者RTCIO口 可以根据程序输出或读取高低电平,是最基本也是最常用的功能了。侵入检测 可以用来做安全保障的功能。比如你的产品安全性比较高,可以在外壳加一些防拆的触点,然后接上电路这个引脚上。如果有人强行拆开设备,那触点断开,这个引脚的电平变化就会触发STM32 的侵入信号,然后就会清空数据来保证安全。RTC的引脚 可以用来输出RTC校准时钟RTC闹钟脉冲 或者秒脉冲
  3. 第3、4号引脚IO口 或者接32.768KHz的RTC晶振
  4. 第5、6号引脚 接系统的主晶振 ,一般是8MHz 的,然后芯片内部有锁相环电路 ,可以对这个8MHz 的频率进行倍频 ,最终产生72MHz 的频率,作为系统的主时钟
  5. 第7号NRST 是系统复位引脚N代表它是低电平复位的
  6. 第8、9号引脚是内部模拟部分的电源,比如ADC、RC振荡器 等,VSS 是负极,接GNDVDD是正极,接3.3V
  7. 第10~19号引脚都是IO口 ,其中PA0 还兼具了WKUP的功能,这个用于唤醒处于待机模式的STM32
  8. 第20号引脚是IO口 或者BOOT1引脚BOOT引脚 是用来配置启动模式 的(等会补充)。此外,没有加粗(图中字体)的IO口,可能需要进行配置,或者兼具其它功能,使用时需要留意一下
  9. 第21~22号也都是IO口
  10. 第23、24的VSS_1VDD_1 时系统的主电源口 ,同样的,VSS 是负极,VDD 是正极。另外下面还有VSS_2、VDD_2、VSS_3、VDD_3 ,都是系统的主电源口 。这里STM32 内部采用了分区供电的方式,所以供电口会比较多,在使用时,把VSS都接GND,VDD都接3.3V即可
  11. 第25~33号都是IO口
  12. 第34号加上37~40,都是IO口或调试端口 ,上面默认的主功能是调试端口,调试端口就是用来调试程序和下载程序的。这个STM32 支持SWDJTAG 两种调试方式。SWD 需要两根线,分别是SWDIOSWCLKJTAG 需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST 。我们教程使用的是STLINK 来下载调试程序,STLINK 用的是SWD 的方式,所以只需要占用PA13PA14 这两个IO口。在使用SWD 的调试方式时,剩下的PA15、PB3、PB4 可以切换为普通IO口 来使用,但要在程序中进行配置,不配置的话默认是不会用作IO口
  13. 第42、43、45、46号都是IO口
  14. 最后的44号BOOT0 ,和刚刚介绍的BOOT1一样,也是用来做启动配置的

STM32的启动配置

启动配置是刚刚讲的BOOT0BOOT1两根引脚的功能

这个启动配置的作用就是指定程序开始运行的位置

一般情况下,程序都是在Flash程序存储器开始执行,但是在某些情况下,我们也可以让程序在别的地方开始执行,用以完成特殊的功能

STM32F10xxx 里,可以通过配置BOOT0BOOT1引脚,来选择三种不同的启动模式

  1. BOOT0 引脚为0,就是接地 的意思,这个时候BOOT1 接x(就是无论接什么),启动模式都是主闪存存储器 的模式。这时候主闪存存储器 被选为启动区域 ,也就是正常的执行Flash闪存里面的程序,这个模式是最常用的模式,一般情况下都是这个配置
  2. BOOT1 接0,BOOT0 接1(接1就是接到3.3V电源正的意思),那启动模式就是系统存储器 (说明是系统存储器被选为启动区域)。这个模式就是用来做串口下载 用的。这个系统存储器存的就是STM32 中的一段BootLoader 程序------作用就是接受串口的数据 ,然后刷新到主闪存中,这样就可以使用串口下载 程序了。一般我们需要串口下载程序的时候会配置到这个模式上。

// 那我们什么时候需要用到串口下载呢

我们可以看到这个引脚定义表,第34、37~40号是调试端口 ,它们既可以 用来下载程序,也可以作为普通IO口 使用。如果我们在程序中把这5个端口 全部配置成了IO口,那这就坏了,因为这个芯片没有调试端口了,也就下载不了程序了,所以,在配置这几个端口 的时候要小心一点,不要把他们全部变成普通IO口 了,那如果全部变成IO口 了,下载不进去程序了,这时候需要用到串口 的方式下载程序了。如果想使用串口下载,就需要配置BOOT1 为0,BOOT0 为1。总而言之,没有调试端口(用来下载程序)时,就需要用到串口下载

//当然串口下载也不光是用来救急的

如果你没有STLINK ,也没有JLINK ,那就可以使用串口 来进行下载程序,这样就多了一种下载程序的方式。后续会提到串口下载的操作

  1. BOOT1 接1,BOOT0 接1,这时配置的是内置SRAM 启动,这个模式主要用来进行程序调试的。不会用到,略。

  2. 最后一段话:在系统复位 后,SYSCLK 的第4个上升沿 ,BOOT引脚 的值将被锁存 。用户可以通过设置BOOT1BOOT0 引脚的状态,来选择在复位后的启动模式

    //意思就是:BOOT引脚的值是在上电复位 后的一瞬间有效的,之后就随便了。在这个引脚定义中我们可以看到,这个BOOT1PB2 是在同一个引脚上的,也就是在上电的瞬间,是BOOT1 的功能,当第4个时钟 过之后,就是PB2的功能了

对以上引脚定义BOOT引脚的配置的学习后,我们对这个芯片的用法就大概有思路了

引脚定义表 里,如果我们想让STM32 正常工作,那么首先就需要把电源部分最小系统部分 的电路连接好,也就是表中标橙色蓝色的部分。

上面已经把引脚的功能都介绍了,接下来就可以看一下STM32最小系统电路了

最小系统电路

一般来说,我们单片机只有一个芯片是无法工作的,我们需要为他连接最基本的电路,这些最基本的电路就叫做最小系统电路

STM32及供电

右边这一部分就是STM32 及供电的部分,其中我们可以看到,这三个分区供电主电源模拟部分电源 都连接了供电引脚

VSS (负极)都连接了GNDVDD (正极)都连接了3V3 。在3V3和GND之间,一般会连接一个滤波电容 ,这个电容 可以保证供电电压的稳定,像我们在设计电路的时候,一般只要遇到供电,都会习惯性的加上几个滤波电容 。当然加这个滤波电容 也是非常有必要的,大家设计电路的时候可以注意一下。

剩下还有一个VBAT ,是接备用电池的,如果需要接备用电池,那就这样来接。可以选择一个3V 的纽扣电池,正极接VBAT ,负极接GND就行了。

备用电池是给RTC备份寄存器 服务的,如果不需要这些功能,就不用接备用电池,那这个VBAT 直接接3V3即可,或者悬空也是没问题的

这就是整个供电的部分,可以说STM32 的供电还是比较多的,而且芯片四周都有供电引脚,这个要是自己画板子的话,就会深有体会啊,这个供电实在是有点多,走线还是很头疼的,但是虽然头疼,还是要把这些供电都接好。

晶振电路

这是一个典型的晶振电路 ,在这里接了一个8MHz主时钟晶振STM32主晶振 一般都是8MHz8MHz 经过内部锁相环倍频 ,得到72MHz的主频

这个晶振 的两个引脚分别通过这两个网络标号 ,接到STM32 的5、6号引脚,另外还需要接两个20pF 的电容,作为启震电容,电容的另一端接地即可。

这就是晶振电路 ,如果你需要RTC 功能的话,还需要再接一个32.768kHz晶振OSC32 ),电路和这个一样,接在3、4号引脚.为什么要用32.768kHz 的呢,因为327682^15 ,内部RTC 电路经过 2的15次方分频**,就可以生成1s 的时间信号了**

复位电路

这个复位电路 是一个10k 的电阻和0.1uF 的电容组成的,它用来给单片机提供复位信号

这中间的NRST 接在STM32的7号引脚 .NRST低电平复位 的,当这个复位电路在上电的瞬间,电容是没有电的。电源通过电阻开始向电容充电,并且此时电容呈现的是短路状态 ,那NRST 就会产生低电平

当电容逐渐充满电时,电容就相当于短路

当电容逐渐充满电时,电容就相当于断路 ,此时NRST 就会被R1 拉为高电平 ,那上电瞬间的波形 就是先低电平,然后逐渐高电平

这个低电平就可以提供STM32上电复位信号。当然电容充电还是非常快的,所以在我们看来,单片机就在上电的一瞬间复位了,这就是复位电路的作用

电容左边还并联 了一个按键,这个可以提供一个手动复位 的功能,当我们按下按键时,电容放电,并且NRST 引脚也通过按键直接接地 了,这就相当于手动产生了低电平复位信号 ,按键松手后,NRST 又回归高电平 ,此时单片机就从复位状态 转为工作状态 。平时我们也可以见到这种复位按键,一般在设备上有一个小孔

当设备死机并且还不方便断电重启时,我们就可以拿个针戳一下这个小孔里的按键,这样就会使设备复位了

这就是手动复位的意思,按下按键,程序就从头开始的意思

启动配置电路

这个H1 相当于开关的作用,拨动这个开关,就可以让BOOT引脚 选择接3.3V 还是GND

在我们这个最小系统板上,使用的是这种跳线帽 来充当开关的功能

跳线帽 插在左边两个脚时,就相当于接地

插在右边两个脚时,就相当于接3.3V,这样就可以配置BOOT高低电平

当然如果你要自己设计电路的话,接一个拨码开关 也是没问题的,这样比插跳线帽还方便一些

下载端口电路

如果你是用STLINK下载程序的话,那需要把SWDIOSWCLK 这两个引脚引出来方便接线,另外再把3.3VGND 引出来,这个GND 是必须引出来的,3.3V 如果你自己板子有供电的话,可以不引。不过建议都引出来,这样方便一些

这些就是有关最小系统电路的内容了,如果自己画板子的话,可以参考一下这个电路。

当然如果你是用STM32 最小系统板来设计电路的话,就不需要这个最小系统 了,因为这个最小系统板已经包含了这些电路了

在b站@江协科技 的STM32资料中给出了一个STM32的最小系统原理图,我们来看看不同之处

概览:

左上角是复位电路 ,一致

第二个是BOOT配置电路 ,也是一样的

第三个接了两个测试的LED

上面这个直接接到了VCC3V3GND ,是电源指示器

下面这个接到了PC13 ,是一个IO口 的测试灯

第四个的下载电路也是一样的,在这个供电也加了一个电源滤波 ,这个作用也是稳定供电

这是一个稳压芯片 ,用于给5V 的电降到3.3V ,给STM32供电。

左边的输入是USB5V 电源,右边输出的是3.3V

有两个引脚的排针P3、P4.这两个排针把芯片的引脚都引出来,方便我们接线的


中间这个大的是STM32F103C8T6 的芯片

右上角和左下角是四个STM32 供电的滤波电容

左边是USB 的接口,它接的PA11PA12STM32USB 引脚,可以进行USB 通信,另外这个USB 还可以提供5V的供电,这个电经过我们刚才介绍的这个稳压芯片,降到3.3V,剩下的电路都是3.3V的供电

最后就是这两个晶振电路了。

上面一部分是32.768kHz晶振 ,接到了STM32PC14PC15 ,这两个引脚就是OSC32得到那两个引脚

下面这一部分是8MHz主时钟晶振 ,接的是STM32OSC 这两个引脚

最后我们再看一下这个最小系统板的实物图,大概的认识一下板子上的元件

中间的黑色小芯片,就是STM32F103C8T6

左边这两个跳线帽,是用来配置BOOT引脚的

下面那个是复位按键

再左边就是这个USB接口 ,它可以进行USB通信 ,也可以为板子供电

STM32F103C8T6 右边这个金属外壳的是8MHz主时钟晶振 ,它的右边是32.768kHzRTC晶振 ,再右边是两个LED 。上面的LEDPWR****电源指示灯 ,下面这个LED 是接在PC13口的测试灯.

最右边的是SWD的调试接口,用来下载程序的

上下两排是用于接线的排针

看下背面

这个5个脚的小芯片,就是3.3V稳压芯片

剩下的就是电容电阻这些小元件了

三、总结

我们把

STM32的基本情况、ARM内核、参数、外设、命名规则、系统结构、引脚定义、最小系统

都介绍了,这些就是有关于STM32的最基本的介绍

相关推荐
三佛科技-134163842122 小时前
全自动削皮机方案,果蔬去皮机/削皮机MCU控制方案开发设计
单片机·嵌入式硬件
应用市场2 小时前
基于STM32的多模态智能门锁系统设计与实现
stm32·单片机·嵌入式硬件
xiaohai@Linux2 小时前
STM32在LVGL上实现移植FatFs文件系统(保姆级详细教程)
stm32·单片机·嵌入式硬件·lvgl·fatfs
Jerry丶Li2 小时前
二十二、STM32的ADC(二)(ADC单通道)
stm32·单片机·嵌入式硬件
飞睿科技2 小时前
超越蓝牙与Wi-Fi,UWB技术如何解锁手机下一波创新浪潮?
嵌入式硬件·物联网·智能手机·uwb
点灯小铭2 小时前
基于单片机的交流功率测量仪设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
星辰pid4 小时前
STM32基于OLED的多级菜单(控制步进/无刷电机/舵机,含FLASH存储数据掉电不丢失)
stm32·单片机·嵌入式硬件
飞睿科技5 小时前
乐鑫ESP32-C2小尺寸高性价比,物联网应用的理想无线连接方案
嵌入式硬件·物联网·智能路由器
RFID舜识物联网5 小时前
NFC与RFID防伪标签:构筑产品信任的科技防线
大数据·人工智能·科技·嵌入式硬件·物联网·安全