谷歌SEO

谷歌SEO

Products

当前位置:首页 > 谷歌SEO >

如何配置WordPress和Nginx以实现单页在线制作软件的伪静态效果?

96SEO 2026-02-19 18:46 0


模块时序分析…

本篇博客的实验内容是实现uart串口通信发送数据和接收数据并加入按键模块调整波特率数码管模块显示波特率实现不同波特率下的PC端与FPGA板子的数据回环并加入FIFO

如何配置WordPress和Nginx以实现单页在线制作软件的伪静态效果?

IP核对数据进行缓存当数据大于等于8个的时候一次性发送8个数据出去。

实验环境quartus

Receiver/Transmitter)是一种串行、异步、全双工的通信协议。

特点是通信线路简单适用于远距离通信但传输速度慢。

它在发送数据时将并行数据转换成串行数据来传输在接收数据时将接收到的串行数据转换成并行数据。

1.1

注意它在空闲状态下为高电平起始位为低电平停止位为高电平。

它的数据位甚至可以为5位或者4位但是不能为9位及以上。

因为它的空闲位为高电平必须有一个由高到低的下降沿变化才能知道后面要传输数据了不然如果起始位为高电平那它怎么知道你何时传数据呢

2.2

它的数据位传输顺序可以采用MSB也可以采用LSB由通信双方决定。

MSB数据高位先发送

奇校验当实际数据中“1”的个数为奇数的时候这个校验位就是“0”否则这个校验位就是“1”

偶校验当实际数据中“1”的个数为偶数的时候这个校验位就是“0”否则这个校验位就是“1”。

注意奇偶校验只能检验奇数个数据的错误对于偶数个数据的错误无法检测。

核心代码

UART的数据传输速率用波特率baud表示常见的波特率有9600、19200、38400、57600、115200最常用的是9600和115200。

通信双方必须保持一致的波特率不然数据就会出错这个在最后我们的上板验证会体现。

以9600为例它代表我们传输1bit数据所需要的时间是1/9600104160ns我们的时钟周期为20ns所以传输1bit数据需要104160/20

bps(Bit

波特率在电子通信领域波特Baud即调制速率指的是有效数据信号调制载波的速率即单位时间内载波调制状态变化的次数。

它是对符号传输速率的一种度量1波特即指每秒传输1个符号而通过不同的调制方式可以在一个码元符号上负载多个bit位信息。

在信息传输通道中携带数据信息的信号单元叫码元每秒钟通过信道传输的码元数称为码元传输速率简称波特率。

波特率是传输通道频宽的指标。

2.1

该系统分为了6个模块分别是按键消抖模块(fsm_key)、波特率设置模块(baud)、数码管显示模块sel_seg、接收模块(uart_rx)、FIFO数据缓存模块(fifo)以及发送模块(uart_tx)。

首先是通过按键调整波特率输入的按键信号进入按键消抖模块然后将消抖后的按键信号传给波特率设置模块通过按键信号可以设置不同的波特率有常用的波特率选择9600、19200、38400、57600、115200。

默认情况下是9600。

然后把设置好的波特率传给数码管显示模块进行波特率的显示。

同时将设置好的波特率传给接收和发送模块两个模块的波特率应该保持一致。

同时接收模块接收了外界传入的串行数据后将串行数据转成并行数据传给FIFO模块进行数据缓存当FIFO里面缓存的数据大于等于8个数据时FIFO模块将开启数据发送使能信号然后把读取到的一个数据传给发送模块然后发送模块再把并行数据转成串行数据一个一个的发送出去。

每发送完一个数据后都拉高一个数据发送完成的使能信号传给FIFO模块FIFO在根据这个使能信号再读一个数据传给发送模块进行数据发送重复该步骤直到发送出8个数据为止。

2.2

podge;//上升沿//第一段状态机时序逻辑描述状态空间的切换always

(posedge

state_n;endend//第二段状态机组合逻辑描述状态转移条件always

(*)

(state_c)IDLE:beginif(nedge)begin

DOWN;endelse

state_c;endendDOWN:beginif(podge)begin

IDLE;endelse

1b0)begin//计时结束并且没有出现上升沿就证明是一个有效按下进入下一个状态state_n

HOLD;endelse

state_c;endendHOLD:beginif(podge)begin//出现上升沿进入释放抖动状态state_n

UP;endelse

:beginif(end_cnt_20ms)begin//延时结束进入空闲状态state_n

IDLE;endelse

state_c;endcaseend//第三段状态机组合时序都可以描述输出always

(posedge

{KEY_NUM{1b0}};endend//打拍寄存always

(posedge

if(add_cnt_20ms)beginif(end_cnt_20ms)begincnt_20ms

CNT_20MS;endelse

cnt;//设置波特率的计数器0为9600,1为19200,2为38400,3为57600,4为115200always

(posedge

if(add_cnt_20us)beginif(end_cnt_20us)begincnt_20us

10d0;endelse

CNT_20US;//位选信号控制每20us刷新一次always

(posedge

1b0;endend//当可度量达到标志时第一次读取数据使能信号always

(posedge

7d8)begin//空闲状态时检测剩余可读量达到标志flag

1b1;endelse

if(add_cnt_tx)beginif(end_cnt_tx

)begincnt_tx

if(add_baud)beginif(end_baud)begincnt_baud

13d0;endelse

1d1;//根据波特率求得传输1bit所需要的时钟周期//比特计数器always

(posedge

if(add_bit)beginif(end_bit)begincnt_bit

4d0;endelse

4d9;//一个数据有1bit起始位8bit数据位1bit结束位//同步打拍检测下降沿always

(posedge

rx_din_r1;//同步打拍检测到下降沿开始接收数据//同步完成检测下降沿将开始的接收的标志置为1always

(posedge

end_bit)begin//开始位为1意外关闭rx_flag

1b0;endelse

(CNT_1S/baud-1)/2)beginrx_data[cnt_bit]

rx_din_r1;endelse

rx_data;endend//结束位为1时才接收数据否则让数据为0视为无效数据assign

rx_dout[7:0]

tx_dout,//发送串行数据,低位在前高位在后output

dout_sign_tx

if(add_baud)beginif(end_baud)begincnt_baud

13d0;endelse

1d1);//根据波特率求得传输1bit所需要的时钟周期//比特计数器always

(posedge

if(add_bit)beginif(end_bit)begincnt_bit

4d0;endelse

4d9;//一个数据有1bit起始位8bit数据位1bit结束位//发送请求拉高时寄存数据always

(posedge

tx_data;endend//发送请求拉高时保持发送信号拉高直到发送完毕always

(posedge

(rx_dout_sign),//接收完成.dout_sign_tx

(tx_din)

从时序图看这里想要发送的并行数据是8’b11010011。

首先是发送请求信号拉高此时发送标志信号拉高直到数据发送完成。

采用一个10bit的寄存器对并行数据进行寄存同时由于是低位在前高位在后开始位为0停止位为1因此寄存的数据为10’b1110100110。

同时在发送标志信号拉高时cnt_baud计数器开始计数该计数器是计的发送1bit数据所需要的系统时钟周期。

计满时cnt_bit计数器加1然后发送的串行数据就是根据cnt_bit计数器对寄存的数据进行一个一个的发送。

在出现发送停止位后就表明这个数据发送完成了因此发送结束标志信号dout_sign就拉高。

2.10

从这张时序图看收到了一串的串行数据首先需要对这一串数据进行同步打拍通过同步打拍判断出下降沿出现下降沿时开始接收数据的标志信号rx_flag拉高直到接收数据完成。

然后依旧是两个计数器与发送模块的计数器功能一样cnt_baud和cnt_bit。

然后采用一个10bit的数据寄存器rx_data。

为了接收到的数据稳定因此采用当baud计数器过了一半时根据传入的串行数据打拍后的波形数据写入寄存器同时判断了开始位为1和停止位为0的话都属于无效数据不会接收无效数据。

当数据有效时最终接收到的并行数据rx_dout就为rx_data寄存器的[8:1]位。

同时接收完毕后将接收完成的标志信号拉高。

2.11

当FIFO中缓存的数据大于等于8个数据时开启读取数据的状态开启读取第一个数据的使能信号将读取到的数据发给数据发送模块当数据发送模块将一个数据发送完成后将数据发送完成的标志信号dout_sign_tx传给FIFO控制模块cnt_tx计数器加1同时重新读取一个新的数据传给数据发送模块进行发送直到发送完8个数据才重新进入空闲状态。

并且由于FIFO是使用的前显模式因此当读取数据有效时读取的数据是前面显示的那个数据。

三、仿真

(rx_dout_sign),//接收完成.dout_sign_tx

(tx_din),

1b1;#(30*CYCLE);end#(2000*CYCLE);$stop;endendmodule3.2

接收模块仿真分析

从这张仿真波形图可以看到发送的标志信号拉高后两个计数器正常工作然后10bit的数据寄存器rx_data。

在cnt_baud计数器过了一半时才会根据传入的串行数据打拍后的波形数据写入寄存器同时判断了开始位为1和停止位为0的话都属于无效数据不会接收无效数据。

当数据有效时最终接收到的并行数据rx_dout就为rx_data寄存器的[8:1]位。

同时接收完毕后将接收完成的标志信号拉高。

3.3

从这张仿真波形图可以看到当发送请求信号tx_req拉高后发送标志信号tx_flag拉高直到发送完毕。

同时10bit的数据寄存器将tx_din的并行数据存入并加上开始位0停止位1。

然后两个计数器开始正常计数。

然后发送的串行数据tx_dout就是根据cnt_bit计数器对寄存的数据进行一个一个的发送。

在出现发送停止位后就表明这个数据发送完成了因此发送结束标志信号dout_sign就拉高。

3.4

从这张仿真波形图可以看出当FIFO中缓存的数据大于等于8个数据时开启读取数据的状态开启读取第一个数据的使能信号将读取到的数据发给数据发送模块当数据发送模块将一个数据发送完成后将数据发送完成的标志信号dout_sign_tx传给FIFO控制模块cnt_tx计数器加1同时重新读取一个新的数据传给数据发送模块进行发送直到发送完8个数据才重新进入空闲状态。

并且由于FIFO是使用的前显模式因此当读取数据有效时读取的数据是前面显示的那个数据。

四、上板验证

从图片中可以看出当发送数据小于8个时它将数据接收并存入了FIFO缓冲器。

当再次输入几个数据时它会一次性输出8个数据并且先输出之前存入的数据。

当我们切换了波特率PC端设置的波特率与FPGA板子上设置的波特率不同时我们发送的数据就会解析混乱变成一些乱码存入缓存器然后达到8个数据时输出。

当我们重新调整波特率使得双方波特率一致后又能够收发同步了。

五、总结

因为该工程是分模块化的设计因此如果只需要串口的发送和接收功能就只需要将这两个模块直接拿去用就可以了大大方便了之后其他工程的设计。

另外这只是我的一点学习笔记如果有错误还请提出。



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback