基于 STM32+FPGA 的通用工业控制器设计(一)系统方案设计

news2024/11/17 7:24:29
本章首先介绍了现有 PLC 系统的概况,然后提出了本文设计的通用工业控制器的
整体方案架构,分析了硬件和软件上需要实现的功能,最后对各部分功能进行分析并提
出具体的实现方案。
2.1 PLC 系统简介
可编程逻辑控制器( Programmable Logic Controller PLC )是以微处理器为基础,
综合了计算机技术、自动控制技术和通讯技术而发展起来的一种新型、通用的自动控制
装置 [14] 。它采用一类可编程的存储器,用于其内部存储程序、执行逻辑运算、顺序控制、
定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入 / 输出控制各种类型
的机械或生产过程,是工业控制的核心部分 [15]
西门子 S7-200 系列的 PLC 就是整体式 PLC ,图 2-4 是其中一款 PLC 基本单元内部
结构图,其结构由三部分组成:上面部分是核心板即 CPU ,其中包含拨码开关、扩展单
元接口;中间部分是接口板,包括 I/O 接口、 RS485 通讯接口、 220V 交流电源输入接口、
24V 直流电源输出接口等;下面部分是开关电源板, 220V 交流输入,24V 直流输出。

2.1.3 PLC 的软件系统
PLC 的软件包括系统程序和用户程序。系统程序是固化在中央处理器芯片内部的的
程序,用户不能直接对其进行更改操作,系统程序包含异常状态的检测、 I/O 单元的操
作、用户程序的执行、与外界的通信等功能。用户程序是用户使用与 PLC 控制器配套
的开发软件所开发的程序,最常用的开发语言为梯形图语言( LD ),此外还有指令表语
言( IL )、功能模块图语言( FBD )、顺序功能流程图语言( SFC )、结构化文本语言( ST )。
对于用户来讲,不必详细了解系统程序,只需根据实际生产需求编写用户程序,实现逻
辑控制即可 [28]
在编辑梯形图时会经常用到许多现成的功能块,如定时器模块、计数器模块、高速
计数器模块、模拟量输入模块、模拟量输出模块、 PID 模块、通信模块等功能块,这些
功能块的实现过程都包含在系统程序内,用户程序在使用这些功能块时只是调用了这些
实现过程 [29]
2.2 整体方案架构
本文采用整体式 PLC 结构,如图 2-7 所示,整体结构分为主控制器和远程模块,主
控制器由核心板、接口板、开关电源构成,集成中央处理单元( CPU )、 I/O 单元、电源
于一体。远程模块作为扩展模块,作用于面积大、范围广的工业现场,以便主控制器需
要控制距离较远的现场设备,同时能够为主控制器增加 I/O 点数,使控制器能够向大型
化、多功能方向靠拢。远程模块主要包括数字量输入模块( DI )、数字量输出模块( DO )、
模拟量输入模块( AI )、模拟量输出模块( AO )和以太网通信模块( EN ),其中以太网
通信模块主要负责与主控制器通信,将各个远程模块的状态与数据发送给主控制器以及
接收主控制器发来的控制命令。

本文设计的控制器主要实现以下结构和功能:
硬件方面:硬件 PCB 板需包含核心板、接口板、开关电源、以太网通信模块、数
字量输入模块、数字量输出模块、模拟量输入模块、模拟量输出模块。接口板上需要包
含数字量输入输出接口、模拟量输入输出接口、数字量高速输入输出接口、高速 USB
通信接口、 RS485 通信接口、以太网通信接口等。
软件方面: modbus 通信协议,作为主控制器与远程模块通信时的数据协议;远程
模块内部通信协议,作为各个远程模块之间通信时的数据协议。设计模块化控制功能,
包括工业现场经常使用到的运动控制和过程控制,同时会用到 PID 控制算法,如果需要
驱动变频器或者逆变器,还会需要用到 SPWM 算法、 SVPWM 算法。设计高速计数器
模块,用于采集旋转编码器之类的传感器信号。设计人机交互界面,便于现场工人操作
控制器。设计用户程序的编程语言,作为人类自然语言与底层芯片编程语言之间的桥梁,
方便没有任何编程语言基础的普通工人进行现场编程和测试工作。
2.3 主控制器方案设计
主控制器的总体方案设计如图 2-8 所示,分为核心板、接口板、开关电源。
信迈提供STM32+FPGA的运动控制解决方案。
主控制器几乎所有的对外接口都设计在接口板上,只有连接本地扩展模块的接口设
计在核心板上。 由于主控制器的体积有限,因此所包含的接口数量、 I/O 点数有限,如
需更多的 I/O 点数需要以太网接口连接远程模块来使用。主控制器上对外接口包含 16
路数字量输入接口、 16 路数字量输出接口(继电器输出)、 8 路数字量高速输出接口(晶
体管输出)、 220V 交流电源输入接口、 24V 直流电源输出接口、高速 USB 通信接口、
RS485 通信接口、以太网通信接口。在主控制器内部,开关电源与接口板相连,接口板
将从外界输入进来的 220V 交流电源输入到开关电源板,然后经过开关电源后会得到稳
定的 24V 直流电源。接口板与核心板相连,一是将 24V 经过 DC/DC 降压后得到的 5V
电源传递到核心板,二是与核心板上的控制芯片进行 I/O 信号的传递以及串口通信。
2.3.1 核心板方案设计
核心板的硬件结构包括控制芯片电路、下载电路、晶振电路、复位电路、芯片电源
电路、 RS485 通信电路、状态选择电路、状态指示电路、 I/O 指示电路、电平转换电路
等。
控制芯片采用目前较为流行的“ MCU+FPGA ”的方式进行控制 [32] MCU 是微控制
单元( Micro Controller Unit ),又称单片微型计算机或单片机,是将中央处理器、内存、
计数器、 USB A/D 转换、 UART PWM DMA 等周边接口集成到一片芯片上,形成
芯片级计算机,应用于手机、遥控器、汽车、机械臂等控制领域。 FPGA 是现场可编程
门阵列( Field Programmable Gate Array ),它是专用集成电路中的一种半定制电路,通
过编程对底层逻辑门阵列进行组合,从而实现内部各模块之间以及 I/O 之间的连接方式。
FPGA 具有以下优点:并行度高,可以支持多个模块同时进行独立的计算;可定制,即
通过编程实现自己的逻辑电路,并且可以无限次编程;运算速度快,通常情况下任务在
硬件上跑比软件上跑得要快,比如比较一个 64 位数高 32 位和低 32 位的大小,在 CPU
下需要 2 条区数指令,两条位与指令,一条移位指令一条比较指令和一条写回指令,而
FPGA 下只要一个比较器就行了。 FPGA 同时也存在着缺点,所有功能均依靠硬件实
现,无法实现分支条件跳转等操作,同时诸如 A/D 转换、 flash 等外设很少,这正好能
够靠 MCU 来弥补。因此本文利用 MCU FPGA 组合的方式,能够最大的发挥两者各
自的优势 [33]
MCU 选择意法半导体集团开发的 32 STM32 微控制器,该芯片是基于 ARM
Cortex-M 处理器内核的嵌入式单片机,有着集成度高、低功耗等特点。 FPGA 选择
ALTERA Cyclone IV 系列芯片,该系列芯片在 Cyclone CycloneII CycloneIII 的基
础上提升了性能并降低成本。 STM32 利用其自身丰富的外设作为主控芯片,使用 UART
与外界通信; FPGA 利用运算速度快、并发性好的特点,对 I/O 信号进行处理。 STM32
FPGA 之间的通信方式有串行通信、并行通信以及共用存储器通信。串行通信所需引
脚少,但是速率没有另外两种通信方式快;共用存储器通信方式在硬件线路上较为复杂,
一般用在数据交换量较大的场合,用在这里有点大材小用;并行通信虽然占用引脚较多,
但是通信效率高 [34] 。综合来看选择并行通信方式。
电源电路需要根据控制芯片所需电压来决定,核心板上选择的控制芯片 STM32
具体型号为 STM32F103ZET6 ,工作电压为 3.3V FPGA 的具体型号是 EP4CE6E22C8
工作电压为 3.3V 2.5V 1.2V
STM32 的下载方式包括 SWD JTAG 方式, SWD 模式比 JTAG 在高速模式下面更
加可靠,在大数据量的情况下面 JTAG 下载程序会失败,但是 SWD 发生的几率会小很
多,并且 SWD 需要的引脚数量少,可以节省 PCB 空间。 STM32 虽然有 8MHz 内部晶
振,但是精度没有外部配置的高速晶振精度高。外部晶振有高速晶振和低速晶振两种,
典型的低速晶振为 32.768KHz ,高速晶振可选择 4~32MHz ,然后可以经过锁相环设置将
主频升至 72MHz 。核心板上需要预留的扩展模块接口用于连接多个扩展模块,而与扩
展模块之间的通信方式这里选择 RS485 通信,因为 RS485 支持一主多从模式。同时
STM32 周围需要设计状态选择电路和状态指示电路,状态选择电路是用拨码开关作为
STM32 的引脚输入,状态指示电路是用 LED 作为 STM32 的引脚输出。
FPGA 没有片内 flash ,因此 FPGA 的程序需要存储到片外 flash 中,这里选择
EPCS4SI8N 作为 FPGA 的片外 flash FPGA 的下载方式有 JTAG 模式、 AS 模式和 PS
模式。 AS 模式是将程序烧入到配置芯片 EPCS 中, FPGA 每次上电时,作为控制器从配
置芯片 EPCS 中读取数据; PS 模式是将 EPCS 作为控制器件,将 FPGA 作为存储器, FPGA
上电时, EPCS 会主动将数据写入到 FPGA 中,此模式可以实现对 FPGA 的在线编程;
JTAG 模式是最常用的一种模式,直接把程序烧录到 FPGA SRAM 中,所以掉电后程
序会消失。 FPGA 在正常工作时,它的配置数据存储在 SRAM 中,加电时须重新下载。
在实验系统中,通常用计算机或控制器进行调试,因此可以使用 PS 。但是在实用系统
中,多数情况下必须由 FPGA 主动引导配置操作过程,这时 FPGA 将主动从外围专用存
储芯片中获得配置数据,而此芯片中 FPGA 配置信息是用普通编程器将设计所得的 .pof
格式的文件通过 AS 烧录进去。通过 JTAG 模式烧录 .sof 文件会将程序烧录到 SRAM 中,
但是通过文件转换,将 .sof 文件转换成 .jic 文件,通过 JTAG 模式烧录会将程序通过 FPGA
固化到配置芯片 EPCS 中,这样 FPGA 重新上电是会从 EPCS 中读取程序。本文最终考
虑到调试的方便性,所以选择了 JTAG 模式。
FPGA 的主频需要用到外部晶振, STM32 内部有晶振的起振电路故可以用无源晶振,
FPGA 没有,所以 FPGA 外部只能接有源晶振,这里选择 50MHz 作为 FPGA 时钟源,
通过锁相环的倍频后可以得到高达 300MHz 的时钟。
FPGA 的引脚既可以配置为输入模式,也可以配置为输出模式,都是 3.3VTTL 信号,
FPGA 输入输出引脚直接控制 LED ,作为 I/O 指示灯,共 40 个, 16 个输入点、 16 个输
出点、 8 个高速输出点。核心板与接口板通过接插件接在一起,用来传递 I/O 点数据信
号,在 FPGA 与接插件之间还要接入电平转换芯片,在 3.3VTTL 信号与 5VTTL 信号之
间转换,并且电平转换芯片能够起到保护作用,避免 FPGA 引脚直接与外部连接 [35]
2.3.2 接口板方案设计
接口板的硬件结构包括光耦输入电路、继电器输出电路、晶体管输出电路、 RS485
通信电路、 USB 通信电路、以太网通信模块、 DC/DC 降压电路、与核心板和电源板的
接口电路等。
光耦输入电路用于对外部开关量信号的输入,一般 PLC 的输入模块由若干输入点
和一个公共端组成。如图 2-9 a) b) PLC 直流输入电路的两种不同形式,区别在于
当外部开关闭合时, a) 中的电流从公共端 M 流出 PLC (源型输入), b) 中的电流从公共
M 流入 PLC (漏型输入)。当开关闭合时, PLC 内部光耦的发光二极管点亮,光敏三
极管饱和导通,再将该信号传送至中央处理器,认为有输入信号。 c) d) 分别是 a) b)
的多路信号结构。为了适应更多的现场设备,本文使用 e) 所示的混合型输入电路,光耦
选择双向输入型光耦,外部接线形式既能源型输入也能漏型输入。

2.5 软件方案设计
2.5.1 嵌入式操作系统
虽然嵌入式应用程序能够在芯片上直接运行,但是为了能够更加合理的调用多任务、
充分利用系统资源,本文采用在 STM32 上移植嵌入式操作系统的方案。目前常用的嵌
入式操作系统有 μClinux μC/OS-II eCos FreeRTOS
μClinux micro-control Linux )是微控制 Linux ,同标准 Linux 相比, μClinux 内核
小,但仍然继承了 Linux 良好的稳定性、可移植性,并具有强大的网络功能、出色的文
件系统、标准丰富的 API 以及 TCP/IP 网络协议等。在移植方面,由于 μClinux Linux
针对嵌入式系统的一种改良,所以其结构比较复杂,目标处理器需要足够容量的外部
ROM RAM ,对于 STM32F103 来说,移植此系统需要至少 512KB RAM 空间, 1MB
ROM/FLASH 空间,而 STM32F103 仅有 256KB FLASH ,所以需要外接存储器,
这就增加了硬件成本。并且 μClinux 结构复杂,移植难度大,实时性也差,不适合作为
本系统的移植方案。
μC/OS-II 是用 C 语言编写的一个结构小巧、抢占式的多任务实时内核。 μC/OS-II
最多支持 64 个任务,分别对应优先级 0~63 ,其中 0 代表优先级最高, 63 为最低,系统
保留了 4 个最高优先级和 4 个最低优先级,所以用户可以使用的任务数有 56 个。
μC/OS-II
能够提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,
具有执行效率高、占用空间小、实时性能优良和扩展性强等特点。在移植方面, μC/OS-II
支持当前流行的大部分 CPU ,由于其本身内核小,最小代码仅有 2KB ,需要数据空间
仅有 4KB RAM ,所以移植相对简单,只需要修改与处理器相关的代码即可,比较适
合在本系统上移植。
eCos embedded Configurable operating system )是嵌入式可配置操作系统,是一种
源代码开元的能够配置、可移植、面向深度嵌入式应用的实时操作系统。其最大的特点
就是内核可配置,采用模块化的设计方式带来的灵活的配置,核心部分由小同的组件构
成,通过 eCos 配置工具能够方便的配置内核、 C 语言库和底层运行包等组件,能够很
好的满足不同嵌入式应用需求。在移植方面, eCos 内核小,最小代码仅有 10KB ,所需
数据空间仅有 10KB RAM ,可移植性好,比 μClinux μC/OS-II 都更加容易,但是
其应用并不广泛,资料没有 μC/OS-II 多,更适用于例如消费电子领域中的应用。
FreeRTOS 是一款完全免费并能够在小 RAM 单片机上运行的实时操作系统,具有源
代码开元、可移植性强、可裁剪、调度策略灵活等特点。 FreeRTOS 操作系统能够完成
任务管理、时间管理、信号量、消息队列、内存管理、记录等功能,可以满足一个最小
操作系统的基本需求。在移植方面, FreeRTOS 能够方便的移植到不同处理器上,例如
ARM MSP430 PIC AVR C8051F 等, STM32 的内核就是 ARM ,所以 FreeRTOS
适合本系统移植,也是本文所采用嵌入式操作系统。
2.5.2 软件系统
软件系统由系统程序和用户程序组成。系统程序是固化在控制芯片中的程序,本控
制器由主控制器和远程模块构成,主控制器上有 STM32 FPGA 两个控制芯片, 5
远程模块为实现各自功能分别有一个 STM32 作为控制芯片,因此需要设计 7 套不同的
系统程序,编程语言包含 STM32 所需的 C 语言和 FPGA 所需的 Verilog HDL 语言。用
户程序的编辑本文设计了两套方案,一是设计一款 PC 端编程软件,通过 USB 端口下载
到主控制器 STM32 上的 flash 中,另一种是现场编程功能,即通过人机交互界面,利用
关键词让没有编程基础的普通用户能够编写简单的测试程序,方便现场调试 [36][37]
2.5.3 模块化功能
本文设计了模块化功能,运动控制和过程控制。运动控制经常用于机械、机床、机
器人、电梯控制等场合,用于驱动步进电机、伺服电机或交流电动机,此时需要控制器
产生相应的驱动信号,如驱动异步交流电动机需要用 SPWM SVPWM 算法,同时运动
控制还会经常用到编码器来测量速度和位置,本文在软件上设计高数计数器功能。过程
控制经常用于冶金、化工、锅炉控制等场合,用于对温度、压力、流量等模拟量的闭环
控制,此时需要控制器实现 PID 算法。
2.5.4 通信协议
各个 PLC 厂商一般都有自己的通信协议,比如罗克韦尔的 PLC 都支持 DF1 协议,
GE 90-70 90-30 系列 PLC 支持 SNP 协议,西门子 S-200 系列 PLC 支持 MPI PPI
等协议,施耐德 PLC 支持 Modbus Modbus Plus 协议,欧姆龙 PLC 支持 Host Link
议,三菱 PLC 支持 CC-Link 协议,松下 PLC 支持 MEWTOCOL-COM 协议。这其中Modbus
已经不仅仅是 PLC 的通信协议,在许多智能仪表、变频器中也有应用,已经在工控领
域中得到广泛的应用 [38] 。本文选择 Modbus 作为主控制器与远程模块之间通信的数据协
议,上述的协议中 MEWTOCOL-COM 协议对外开放且简单,本文在其基础上做些更改
作为 RMEN I/O 模块之间通信的数据协议,后称为 RM-COM 协议。

信迈提供STM32+FPGA的运动控制解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/797485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux----软连接和硬链接

介绍 # 文件分 文件名 inode信息:文件类型,大小,位置,时间 文件真正存储位置block# 软连接---》复制一份inode信息(win的快捷方式)软链接文件会将inode指向源文件的block,当我们访问这个软链接文件时,其实访问的是源文件本身…

数据决定AIGC的高度,什么又决定着数据的深度?

有人曾言,数据决定人工智能发展的天花板。深以为然。 随着ChatGPT等AIGC应用所展现出的强大能力,人们意识到通用人工智能的奇点正在来临,越来越多的企业开始涌入这条赛道。在AIGC浪潮席卷全球之际,数据的重要性也愈发被业界所认同…

使用ComPDFKit PDF SDK 构建iOS PDF阅读器

在当今以移动为先的世界中,为企业和开发人员创建一个iOS应用程序是必不可少的。随着对PDF文档处理需求的增加,使用ComPDFKit这个强大的PDF软件开发工具包(SDK)来构建iOS PDF阅读器和编辑器可以让最终用户轻松查看和编辑PDF文档。 …

嵌入式行业真的没前途吗?

就嵌入式而言,需要学的东西比较多。linux底层驱动的了解,单片机底层驱动开发、RTOS、bootloader、应用层开发(MBD)、各种标准、服务、协议等等,还要懂一些硬件,看得懂硬件原理图,最好自己能画板…

【业务功能篇53】Springboot 数据封装对象

Entity、VO、DTO解释 1)Entity:实体,与数据库的每一行数据打交道的,它的属性对应数据库每个字段 class User{ private Long idCard; private String name; private Date birthday; ...... } 对应数据库的id,name&…

VMware虚拟机安装VMware tools

一、挂载光驱 执行以下命令来创建 /mnt/cdrom 目录: mkdir -p /mnt/cdrom-p 参数会确保如果 /mnt/cdrom 的上级目录(例如 /mnt)不存在的话也会被创建。 然后,你可以再次尝试挂载光盘: mount /dev/sr0 /mnt/cdrom这次…

DragGAN:用崭新的方式进行图像处理

该项目的论文被SIGGRAPH 2023 收录,论文以 StyleGAN2 架构为基础,实现了 “Drag” 关键点就能轻松 P 图的效果。 https://github.com/XingangPan/DragGAN https://vcai.mpi-inf.mpg.de/projects/DragGAN/ 目录 原图1测试一测试二测试三 原图2测试一测试…

基于Java+SpringBoot+vue前后端分离师生健康信息管理系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

数据结构 | 基本数据结构——栈

目录 一、线性数据结构 二、栈 2.1 何谓栈 2.2 栈抽象数据类型 2.3 用Python实现栈 2.4 匹配括号 2.5 普通情况:匹配符号 2.6 将十进制数转换成二进制数 3.7 前序、中序和后序表达式 3.7.1 从中序到后序的通用转换法 3.7.2 计算后序表达式 一、线性数据结…

Docker 镜像操作

Docker镜像操作 我们已经介绍了容器操作,今天来了解下 Docker镜像 以及 镜像操作 。让我们一起开启镜像之旅吧。 Docker镜像 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库…

QML 往图表添加文字显示

需求: 需要在图表的某几个点上,添加相应的文字显示。效果如下: 主要是,如何将坐标进行转化为图表的相对坐标,然后动态创建文本后,将转换坐标设置到Text中。 演示demo。需要点击Text按钮后,图表显示。 impo…

如何为WordPress博客网站配置自己购买的域名,并且公网可访问?

文章目录 如何为WordPress博客网站配置自己购买的域名,并且公网可访问?前置条件:具体操作步骤如下:步骤1: 后台预留自定义域名步骤2: 配置您的域名DNS解析步骤3: 测试域名解析步骤4: 在前台终端测试运行步骤4: 修改cpolar配置文件…

等保测评需要做几次?做一次以后还需要做吗?

虽然我国等保政策已经严格落地执行了,但不少企业对于等保测评相关政策还不是很了解,有人在问,等保测评需要做几次?做一次以后还需要做吗?今天我们就来简单回答一下吧! 等保测评需要做几次?做一…

【无公网IP】在公网环境下Windows远程桌面Ubuntu 18.04

文章目录 一、 同个局域网内远程桌面Ubuntu1. 更新软件仓库2. 安装支持包3. 安装XFCE4桌面环境4. 安装XRDP5. 环境设置5.1 XFCE桌面配置5.2 在配置文件中,加入XFCE会话 6 重启服务7. 查看IP地址8. 使用Windows远程桌面连接 二、公网环境系统远程桌面Ubuntu1. 注册cp…

如何恢复U盘数据 U盘数据恢复图文教程

u盘是我们日常生活中很常用到的存储设备,我们会经常用到u盘去保存重要的数据或文件,但是使用的频率多了,有时候也会因为一些原因,出现各种各种的异常问题,就比如说u盘数据丢失。那,当u盘数据丢失后还可以恢…

金山云与平凯星辰达成全面战略合作 技术创新模式助力企业数字化转型

在新型经济形态下,云计算成为数字化发展的必然方向,互联网、金融、医疗等行业的企业纷纷加速数字经济转型。2023 年,金山云与企业级开源分布式数据库厂商平凯星辰(PingCAP)达成战略合作,顺应技术创新与行业…

python 之 浮点数精度丢失例如:0.1 + 0.2,产生的原因、问题的推导、解决的方案

一、背景 计算机基本上使用二进制数字,即 0 或 1表示; 十进制: 1 / 3 0.3333333333… 无限循环的情况 浮点数的总数是无限且不可数的,浮点数在计算机占用的内存是有限的,如果表示计算机内存则占满 不可能用有限的内存…

Kafka 入门到起飞系列 - 到底什么是再平衡?谁来执行再平衡呢?什么是组协调器呢?

再平衡(Rebalance) 本质上是一种协议,规定了一个消费组中所有消费者如何达成一致来分配订阅主题的每个分区 其实就是建立分区和消费者映射关系的这么一个过程,最终主题下的一个分区只会分配给一个消费者 比如有10个分区&#xff…

个人博客系统 -- 登录页面添加图片验证码

目录 1. 功能展示 2. 前段代码 3. 后端代码 1. 功能展示 在登录页面添加验证码登录 1. 检测到没有输入验证码或者输入的验证码错误时,进行弹窗提示.并且刷新当前验证码图片 2. 点击验证码进行刷新 2. 前段代码 1. 添加验证码标签,在密码的下面,在login.html进行修改 主要…

多模态预训练 + 自监督学习 + 下游任务介绍

预训练 1)特征提取要解决的问题是怎么分别量化文字和图像,进而送到模型学习? 特征抽取: 文本:倾向于bert等大模型 图像:神经网络,VIT等 2)特征融合要解决的问题是怎么让文字和图像的表征交…