[发明专利]一种面向智能物联的同步串行大数据可靠传输方法有效
申请号: | 201711427894.2 | 申请日: | 2017-12-26 |
公开(公告)号: | CN108153701B | 公开(公告)日: | 2018-12-07 |
发明(设计)人: | 陶飞;邹孝付;左颖 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F15/76 | 分类号: | G06F15/76 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;邓治平 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向智能物联的同步串行大数据可靠传输方法,该方法利用VHDL语言设计并在FPGA上实现,具体包括:同步串行数据接收模块:FPGA同步串行时钟接收管脚的上升沿检测;建立BRAM将接收到的数据进行一级缓存并判断数据的有效性;读取一级缓存中的数据并保存到另一个BRAM中进行二级缓存,当一级缓存中的数据存在连续5个高电平时,跳过下一个数据接着读取。同步串行数据发送模块:利用FPGA主时钟分频得到同步串行发送时钟;在同步串行发送时钟下降沿时将待发送的数据按照bit位从低到高的顺序依次赋值给FPGA同步串行数据发送管脚,并检测FPGA同步串行数据发送管脚是否存在连续5个高电平,如果存在就插入一个低电平,并赋值给FPGA同步串行数据发送管脚。 | ||
搜索关键词: | 同步串行数据 同步串行 一级缓存 发送管 读取 同步串行发送 可靠传输 大数据 物联 上升沿检测 智能 二级缓存 发送模块 接收模块 判断数据 时钟接收 低电平 高电平 下降沿 主时钟 分频 高电 管脚 跳过 发送 保存 检测 | ||
【主权项】:
1.一种面向智能物联的同步串行大数据可靠传输方法,该方法利用VHDL语言设计并在FPGA上实现,其特征在于:包括以下步骤:步骤一:设计同步串行数据接收模块,包括一个位宽为1bit的一级缓存BRAM、一个位宽为1bit的二级缓存BRAM,具体实现如下:①设FPGA主时钟为clk,设FPGA同步串行时钟接收管脚为rx_clk,在clk的驱动下检测rx_clk状态,当rx_clk产生上升沿时,置变量rx_true为高电平;②在clk的驱动下,当rx_true为低电平时,计时模块timer工作,当timer达到10毫秒时,timer复位,同时复位一级缓存BRAM的地址addr_BRAM_1为0,并跳转到④;当timer没有达到10毫秒且rx_true为高电平,timer复位,并跳转到③;③在clk的驱动下,将FPGA同步串行数据接收管脚rx_data上的值保存进一级缓存BRAM,同时使一级缓存BRAM的地址addr_BRAM_1加1,变量bit_BRAM_1加1,置变量rx_true为低电平,并返回①;④在clk的驱动下,通过控制addr_BRAM_1的自加1完成依次读取一级缓存BRAM中的8个数据,将这8个数据按照从低到高的顺序组合成一个字节数据;⑤当该字节为十六进制7E时,说明检测到一个帧头,变量F_Head_cnt加1,并跳转到⑥,否则,将addr_BRAM_1自减6,并跳转到⑥;⑥在clk的驱动下,当F_Head_cnt大于等于1时,说明一级缓存中的帧头全部检测完毕,记录此时的一级缓存BRAM地址,记作addr_BRAM_1_F_start,跳转到⑦;否则:当addr_BRAM_1>(bit_BRAM_1-9)时,说明一级缓存BRAM中没有帧头,一级缓存BRAM中的数据无效,此时清空一级缓存BRAM,并跳转到①;当addr_BRAM_1≤(bit_BRAM_1-9)时,跳转到④;⑦在clk的驱动下,使addr_BRAM_1=(bit_BRAM_1-8),然后通过控制addr_BRAM_1的自加1完成依次读取一级缓存BRAM中的8个数据,将这8个数据按照从低到高的顺序组合成一个字节数据;⑧当该字节为十六进制7E时,说明检测到一个帧尾,变量F_Tail_cnt加1,并跳转到⑨,否则,将addr_BRAM_1自减8,并跳转到⑨;⑨在clk的驱动下,当F_Tail_cnt大于等于1时,说明一级缓存中的帧尾全部检测完毕,记录此时的一级缓存BRAM地址,记作addr_BRAM_1_F_stop,此时跳转到⑩;否则:当addr_BRAM_1小于1时,说明一级缓存BRAM中没有帧尾,一级缓存BRAM中的数据无效,此时清空一级缓存BRAM,并跳转到①;当addr_BRAM_1大于等于1时,跳转到⑦;⑩在clk的驱动下,依次读取一级缓存BRAM中从addr_BRAM_1_F_start到addr_BRAM_1_F_stop的数据,该数据即为一级缓存BRAM的净荷数据,当连续读取到5个高电平时,则跳过下一个地址,然后接着读取,并保存进二级缓存BRAM;当一级缓存BRAM中的净荷数据全部搬移到二级缓存BRAM中后,同步串行数据接收完毕,二级缓存BRAM中的数据即为同步串行接收到的数据,返回①;步骤二:设计同步串行发送时钟产生模块,具体实现如下:1)设变量tx_clk_cnt_1和tx_clk_cnt_2,设同步串行发送时钟为tx_clk_band,令tx_clk_cnt_1=clk/(tx_clk_band×2),令tx_clk_cnt_2=clk/tx_clk_band;2)设变量tx_clk_cnt_3,并赋初始值0,同时在clk的驱动下,tx_clk_cnt_3自加1;3)在clk的驱动下,当tx_clk_cnt_3等于0时,将FPGA同步串行时钟发送管脚tx_clk置低电平;4)在clk的驱动下,当tx_clk_cnt_3等于tx_clk_cnt_1时,将FPGA同步串行时钟发送管脚tx_clk置高电平;5)在clk的驱动下,当tx_clk_cnt_3等于tx_clk_cnt_2时,将tx_clk_cnt_3复位为0,返回3);步骤三:设计同步串行数据发送模块,具体实现如下:A)在clk的驱动下,每当tx_clk_cnt_3等于0时,依次将待发送的数据按照bit位从低到高的顺序赋值给FPGA同步串行数据发送管脚tx_data;B)在clk的驱动下,检测FPGA同步串行数据发送管脚tx_data是否存在连续5个高电平,如果存在就插入一个低电平,并赋值给FPGA同步串行数据发送管脚tx_data,返回A)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711427894.2/,转载请声明来源钻瓜专利网。
- 上一篇:一种iOS上声控计算器的实现方法
- 下一篇:一种外设访问方法和装置