打印
[应用相关]

基于 STM32 与 FPGA 的信号采集电路设计

[复制链接]
2950|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
基于 STM32 与 FPGA 的信号采集电路设计

沙发
powermaker2568|  楼主 | 2018-10-6 16:44 | 只看该作者
为打破实际应用过程时信号采集电路中人为参与的局限,以嵌入式系统作为数据采集的应
用平台,提出了一种基于 STM32 与 FPGA 相结合的武器装备信号采集电路设计方案. 研究了 PPI 显
示器信号采集电路的信息采集模式,对信号采集过程的总体流程进行重新规划; 详细阐述了单片机
部分设计思路( 包括数据传输模式、FSMC 总线) 以及利用 FPGA 实现的数据锁存模块、双向缓冲选
通模块、MAX196 控制模块、差值测量模块的设计方法; 针对信号采集电路进行差值测量试验,通过
计算采集信号时的时间差来计算信号时序. 仿真结果表明,单片机能够解算信号间的距离,相关接
口模块的时序性和交互性得以提升,这证明信号采集总体方案具有实际价值.

使用特权

评论回复
板凳
powermaker2568|  楼主 | 2018-10-6 16:45 | 只看该作者

使用特权

评论回复
地板
powermaker2568|  楼主 | 2018-10-6 16:45 | 只看该作者
目标信号采集板主要由核心器件 FPGA,STM32
以及采集电路组成,信号的采集由 FPGA 控制完成,
内部的电路功能主要包括地址译码、逻辑控制、数据
缓存,在采集完成后,FPGA 告知 STM32 读取采集结
果,最后,由 STM32 对得到的数据进行处理和传输.
试验平台搭建如图 1 所示

使用特权

评论回复
5
powermaker2568|  楼主 | 2018-10-6 16:46 | 只看该作者
根据目标信号采集板的总体设计需求,硬件电
路设计中应有 STM32 系统电路、FPGA 及配置电路、
接口电路以及与之相关的各组成部分,目标信号采
集板如图 2 所示.

使用特权

评论回复
6
powermaker2568|  楼主 | 2018-10-6 16:46 | 只看该作者
STM32 最小系统是指能使 STM32 正常工作的
最小电路[8],主要包括 STM32 微控制器、JTAG 下载
接口、晶振、电源和复位电路. 选用的 STM32 的引脚
封装为 LQFP144.

使用特权

评论回复
7
powermaker2568|  楼主 | 2018-10-6 16:46 | 只看该作者
供电电源: STM32 使用单电源供电,电压范围
为 1. 8 ~ 3. 6 V; 除此之外,还有 2 个可选的电源模
块,使用备用纽扣电池为实时时钟和一部分备份寄
存器供电,当 STM32 进入深度节点模式时在备份电
池的支持下保持数据不丢失; 若启用 ADC 功能,有
额外的参考电压引脚 VERF + 和 VERF - ,VERF -
引脚与 VCCA 相连,而 VERF + 接 2. 4 V ~ VCC.

使用特权

评论回复
8
powermaker2568|  楼主 | 2018-10-6 16:47 | 只看该作者
下载和复位: STM32 下载调试使用 5 针的 JTAG
接口,通过 J-Link 在线下载,为了方便调试,在 nRST
引脚连接简单的复位电路,并与 JTAG 调试端口相
连,既可实现手动复位,也可使用开发调试工具强行
复位 STM32.

使用特权

评论回复
9
powermaker2568|  楼主 | 2018-10-6 16:47 | 只看该作者
动方式: 通过 STM32 的 2 个外部引脚 BOOT0
和 BOOT1 来选择最小系统的启动方式. 这里选择将
这 2 个引脚分别与 GND 相连,即 STM32 存储空间
的起始地址对齐到用户 FLASH 模块.
时钟源: STM32 带有内部 RC 振荡器,可以为内
部 PLL( 锁相环) 提供时钟,但是内部 RC 振荡器相
比而言不够准确[9],同时也不够稳定.

使用特权

评论回复
10
powermaker2568|  楼主 | 2018-10-6 16:47 | 只看该作者
使用外部时钟源,外接 2 个晶振为其内部提供时钟
源: 一个为外部高速时钟( HSE) ,使用 25 MHz 晶振
系统提供较为精准的 168 MHz 主频; 另一个是外部
低速时钟( LSE) ,接频率为 32 768 Hz 晶振,提供日
历时钟功能.
FPGA 及配置电路: FPGA 即现场可编程门阵
列,它是在 PAL,GAL,CPLD 等可编程器件的基础上
进一步发展的产物. 在 FPGA 工作过程中,FPGA 是
通过片内 RAM 中的程序来设置芯片的工作状态
的,但是片内 RAM 的数据掉电会丢失,所以在设计
中需要选择一个非易失性的存储器来存储配置程
序,通常将这种存储器称为配置芯片.
AD 转换电路: STM32 自带 AD 转换器,但是输
入量程较小,电压分辨率小,对模拟信号的输入、调
理电路设计要求较高,难以有效抑制噪声、提高信噪
比. 针对上述情况,设计选用 MAXIN 公司生产的
MAX196 作为 AD 转换器. 该芯片外围电路配置简
单,有 6 个单端模拟输入通道,12 位采集精度,多量
程双极性输入,内部集成有采样保持器,通过具有故
障保护功能和多路复用器与内部的 ADC 相连,每个
通道能承受高达 16. 5 V 的输入电压,并且每个通道
的故障不影响任何其他通道.

使用特权

评论回复
11
powermaker2568|  楼主 | 2018-10-6 16:48 | 只看该作者
通道转换电路: 将外部电路与 FPGA 芯片连接,
在输出电路中由于 FPGA 的工作电压最高为 3. 3 V,
外设电路的工作电压为 5 V,而 FPGA 向外输出高电
平信号并没有达到 5 V 的电压,加上电路的不稳定,
可能该高电平信号就被判定为低电平从而造成数据
的丢失. 为了解决这个问题,在 FPGA 与外设电路之
间用 74245 芯片进行缓冲,把 FPGA 输出的 3. 3 V 提
高到 5 V,以避免数据的丢失; 另外 74245 芯片还具有
双向传输数据能力,根据实际要求,可以通过控制触发
端电平的高低,选择数据的传输方向,其原理图见图 3.

使用特权

评论回复
12
powermaker2568|  楼主 | 2018-10-6 16:48 | 只看该作者
目标信号的采集使用了 STM32 + FPGA 的组合
方式,这种组合方式在一定程度上可使各自的长处
得以发挥,避免了单一的核心器件在采集和处理上
的局限性. 利用 STM32 丰富的外设功能和数据处理
能力,以及 FPGA 灵活的逻辑可操控性,可完成目标
信号的采集,采集软件流程见图 4.

使用特权

评论回复
13
powermaker2568|  楼主 | 2018-10-6 16:49 | 只看该作者
对于 STM32 的软件设计主要基于 ST 官方提供
的设备固件库,该固件提供了 STM32 所有外设的底
层驱动函数,在这些底层驱动函数的基础上编写应用
程序就可以很方便地使用 STM32 的标准外设; STM32
嵌入式系统的开发与传统的单片机系统设计相比,系
统开发时间大大缩短. 开发调试的软件开发环境
为 Keil u Vision4,该软件支持最新的 Cortex-M4 内核
处理器,能够自动配置启动代码,集成了 Flash 烧写模
块、强大的设备模拟、性能分析器等单元.

使用特权

评论回复
14
powermaker2568|  楼主 | 2018-10-6 16:49 | 只看该作者
上位机与下位机之间需要通过网络传输数据,其中遵照 UDP 协议. UDP 协议是 user datagram pro-
tocol 的简称,即用户数据报协议,是 OSI 参考模型
中一种无连接的传输层协议[11
],提供面向事务的简
单不可靠信息传送服务,用于处理数据包,虽然其有
不提供数据包分组、组装和不能对数据包进行排序
的缺点,UDP 协议仍不失为一项非常实用和可行的
网络传输层协议. 文中使用 UDP 协议连接上位机与
下位机,通过网络进行传输,具体协议见表 1.

使用特权

评论回复
15
powermaker2568|  楼主 | 2018-10-6 16:50 | 只看该作者
FPGA 能够控制采集电路完成数据的采集,关
键在于 FPGA 内部逻辑的设计,也可称为 FPGA 的
开发. FPGA 作为一种可编程的逻辑器件,从广义上
讲,就是可以通过软件手段更改配置器件内部连接
结构和逻辑单元,完成既定设计功能的数据集成电
路[12

. FPGA 的设计开发使用 Altera 公司的综合开
发平台 QuartusⅡ,该软件集成了 Altera 的 FPGA 开
发流程中所涉及的所有工具和第三方软件接口,支
持器件种类众多,通过使用此综合开发工具,可以方
便的创建、组织和管理自己的软件. 对于 FPGA 需要
能够顺利进行高效、低耗地工作,同时要对整体的内
部运行的空间简化、编译,因此在 FPGA 里设计一个
译码电路,原理图见图 5.

使用特权

评论回复
16
powermaker2568|  楼主 | 2018-10-6 16:50 | 只看该作者
在 该 译 码 电 路 里,采 用 器 件
74688,74154. 在 74688 器 件中 Q0 - Q5 接 地,而
Q6 - Q7 外接电源,数据输入接口( P0 - P7) 连接数
据锁存电路的 A8 - A15,完成对高位数据的译码.
74154 单片 4 线至 16 线译码器是一款高速
CMOS 器件,非常适用于高性能存储器. 当 G1N
和 G2N 为低时,它可将接受的 4 位有效二进制地址
输入( 在该电路中,输入端连接数据锁存电路输出
的 A0 - A3) ,并提供 16 个互斥的低有效输出,产生
译码地址,地址具体功能如下:

使用特权

评论回复
17
powermaker2568|  楼主 | 2018-10-6 16:51 | 只看该作者

使用特权

评论回复
18
powermaker2568|  楼主 | 2018-10-6 16:51 | 只看该作者
实现调解的方法如下: 用 4 个输入线写出输出
线的地址,使得在一个选通输入为低时数据通过另
一个选通输入; 任何一个选通输入为高时,所有输出
都为高。

使用特权

评论回复
19
powermaker2568|  楼主 | 2018-10-6 17:12 | 只看该作者
数据锁存模块
74374 为三态输出的 8D 透明锁存器,具有锁存
允许输入有回环特性. 当三态允许控制端 OE 为低
电平时,D0 - D7 为正常逻辑状态,可用来驱动负载
或总线. 锁存允许端 G 通过外接 I/O 接口与单片机
AT89S52 地址锁存允许信号管脚 ALE / PROG 连接,
当锁存允许端 G 为高电平时,输出随数据输入而
变. 当 G 为低电平时,输出被锁存在已建立的数据
电平,如图 6 所示.

使用特权

评论回复
20
powermaker2568|  楼主 | 2018-10-6 17:12 | 只看该作者
双向缓冲对于由外部 MAX196 经过 A/D 转换
后的 数 据,处 理 时 需 要 进 行 缓 冲,再 次 返 回
MAX196,因此需要一个能实现双向传输数据功能
的电路. 双向缓冲模块如图 7 所示.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

523

帖子

3

粉丝