基于FPGA的日志及参数文件存储设计

基于FPGA的日志及参数文件存储设计

基于FPGA的日志及参数文件存储设计

功能需求

  • 支持设备运行日志记录(设备至少使用10年);
  • 支持上位机读/写/擦除 Flash;
  • 支持本地信息查询;
  • 支持多台设备参数管理

系统设计

  • Flash型号:W25Q256JVEIQ
  • 总线:SPI
  • 时钟速率:25MHz

日志功能

  • 上电默认不开启日志功能(防止上一次运行日志被擦除)
  • 单条日志长度为256字节,每分钟记录一次
  • 使用两个 32KB 空间进行存储,每存满一个 32KB,擦除另一个 32KB 继续记录(双缓存设计可以保证在擦除过程断电,也有日志可查)
  • 日志内容:回复帧信息(包含运行时间)
  • 寿命计算(按照10年寿命来设计):
    • 擦除一次记录日志条数:64K(B)/256(B) = 256(条)
    • 若频率为 1分钟,则擦除一次可以记录 256 分钟
    • 连续擦除10万次可记录时长:100000*256(分钟)/60(分钟)/24(小时)/365(天) = 48.7 (年)

上位机参数存储

上位机读取 flash 模块状态,当模块为空闲状态时可进行 flash 的读/写/擦除操作。

本地参数查询

上位机下发信息查询帧,设备发送信息回复帧。

多台设备参数管理

设备通过信息查询帧自动进行设备ID分配,上位机可指定其中一台或者广播方式进行参数管理。

在这里插入图片描述

系统框图

在这里插入图片描述

通信协议定义

见协议文档。

Flash芯片

引脚定义

在这里插入图片描述

Flash相关指令

Read Manufacturer / Device ID (90h)
在这里插入图片描述


在这里插入图片描述
Write Enable (06h)

每次进行页编程、擦除、写状态寄存器都要先执行该指令。

在这里插入图片描述
Sector Erase (20h)

1 Sector = 4KB

在这里插入图片描述
32KB Block Erase (52h)
在这里插入图片描述
64KB Block Erase (D8h)
在这里插入图片描述
Page Program (02h)

1 Page = 256B

在这里插入图片描述
Read Data (03h)

Read Status Register
在这里插入图片描述
Write Status Register
在这里插入图片描述

状态寄存器定义

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

AC参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试结果

日志功能

在这里插入图片描述

上位机读/写/擦除 Flash

在这里插入图片描述

本地信息查询及多台设备参数管理

在这里插入图片描述

调试心得

该芯片每次指令操作开始都要拉低片选信号,单条指令完成后需拉高片选信号,否则 Flash无法正常工作。

Read more

前端防范 XSS(跨站脚本攻击)

目录 一、防范措施 1.layui util  核心转义的特殊字符 示例 2.js-xss.js库 安装 1. Node.js 环境(npm/yarn) 2. 浏览器环境 核心 API 基础使用 1. 基础过滤(默认规则) 2. 自定义过滤规则 (1)允许特定标签 (2)允许特定属性 (3)自定义标签处理 (4)自定义属性处理 (5)转义特定字符 常见场景示例 1. 过滤用户输入的评论内容 2. 允许特定富文本标签(如富文本编辑器内容) 注意事项 更多配置 XSS(跨站脚本攻击)是一种常见的网络攻击手段,它允许攻击者将恶意脚本注入到其他用户的浏览器中。

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例)

Cursor+Codex隐藏技巧:用截图秒修前端Bug的保姆级教程(React/Chakra UI案例) 前端开发中最令人头疼的莫过于那些难以定位的UI问题——元素错位、样式冲突、响应式失效...传统调试方式往往需要反复修改代码、刷新页面、检查元素。现在,通过Cursor编辑器集成的Codex功能,你可以直接用截图交互快速定位和修复这些问题。本文将带你从零开始,掌握这套革命性的调试工作流。 1. 环境准备与基础配置 在开始之前,确保你已经具备以下环境: * Cursor编辑器最新版(v2.5+) * Node.js 18.x及以上版本 * React 18项目(本文以Chakra UI 2.x为例) 首先在Cursor中安装Codex插件: 1. 点击左侧扩展图标 2. 搜索"Codex"并安装 3. 登录你的OpenAI账户(需要ChatGPT Plus订阅) 关键配置项: // 在项目根目录创建.