[发明专利]基于FPGA的异步串行数据交换系统及方法有效

专利信息
申请号: 201910581916.3 申请日: 2019-06-30
公开(公告)号: CN110377549B 公开(公告)日: 2023-04-07
发明(设计)人: 刘超 申请(专利权)人: 中国船舶集团有限公司第七一六研究所;江苏杰瑞科技集团有限责任公司
主分类号: G06F13/40 分类号: G06F13/40;G06F13/42
代理公司: 南京理工大学专利中心 32203 代理人: 朱宝庆
地址: 222061 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 fpga 异步 串行 数据 交换 系统 方法
【权利要求书】:

1.一种基于FPGA的异步串行数据交换系统,其特征在于,包括FPGA、施密特反相器、差分总线收发器和串行外设接口;其中

施密特反相器的输出端Y1接FPGA的输入端Sin,

施密特反相器的输出端Y0和输入端A1连接,

FPGA的输出端En通过第一电阻(R1)接地且还分别接差分总线收发器的输入端DE和输入端DE_N,

 FPGA的输出端Sout接差分总线收发器输入端D,

差分总线收发器输出端G通过第二电阻(R2)接工作电压5V且还接施密特反相器输入端A0,

差分总线收发器的VCC端通过第一保险丝接串行外设接口第一输入引脚,

差分总线收发器的输出端A接串行外设接口的第二输入引脚,

差分总线收起器的输入端B接串行外设接口的第三输出引脚,

差分总线收发器的GND端接串行外设接口的第四引脚,

差分总线收发器的VCC端和输出端A之间串联第三电阻(R3),

差分总线收发器的输出端A和输出端B之间串联第五电阻(R5),

差分总线收发器的输出端B和GND段串联第四电阻(R4);

定义信号Bus_Direction指示串行总线的方向,将信号Bus_Direction置1时,表示串行总线的方向为FPGA发送;反之,将信号Bus_Direction置0时,表示串行总线的方向为FPGA接收,信号Bus_Direction映射到FPGA的En端口;

通过两个有限状态机FSM的方式实现数据帧的发送和接收;其中

(1)数据发送过程包括:

FPGA将指令数据写入Buffer1,启动有限状态机FSM,同时调整半双工总线的方向为FPGA发送,有限状态机FSM由Idle1状态切换到Start1状态,通过端口Sout在串行总线上发送数据帧开始信号Start;

然后再切换到Shift1状态,通过端口Sout将Buffer1中的数据发送到串行总线;

数据发送结束后,切换到Stop1状态,通过端口Sout在串行总线上发送数据帧结束信号Stop;

切换到Idle1状态,同时调整半双工总线的方向为FPGA接收,即Bus_Direction = 0;

(2)数据接收过程包括:

在半双工总线的方向为FPGA接收状态下,当检测到有效的数据帧接收开始信号Start后,启动有限状态机FSM并切换到Start2状态;

数据帧开始信号Start结束后,切换到Shift2状态,通过端口Sin接收串行总线上的数据并写入Buffer2;

数据接收结束后,切换到Stop2状态,接收并校验串行总线上是否为数据帧结束信号Stop;

切换到Idle2状态,同时调整半双工总线的方向为FPGA发送,即Bus_Direction = 1;

在数据帧检验正确且结束信号Stop正确的情况下,将Buffer2数据赋予Data;

采用bit数据多次采样方法,在一个bit位保持期间,7次采样数据总线上bit值并分别计数,在一个bit结束时刻,取采样值个数较多者作为该bit的真实值。

2.根据权利要求1所述的基于FPGA的异步串行数据交换系统,其特征在于,所述,7次采样数据总线上bit值并分别计数,具体为:

即在bit接收期间,依次采样第1个Clk_Fpga时刻、第3个Clk_Fpga时刻、第5个Clk_Fpga时刻、第7个Clk_Fpga时刻、第9个Clk_Fpga时刻、第11个Clk_Fpga时刻及第13个Clk_Fpga时刻等7个时刻的bit值,并取其中个数较多者作为该bit位的真实值。

3. 根据权利要求1所述的基于FPGA的异步串行数据交换系统,其特征在于:定义变量count_clk用于计数Clk_Fpga时钟个数,在Buffer1_Empty上升沿到来时同步开始加1计数,即count_clk := count_clk + 1;

在Buffer1_Empty上升沿到来时,即rising_edge,表示数据帧的发送流程结束,此时将信号Bus_Direction置0,即Bus_Direction= ‘0’,串行总线的方向调整为FPGA接收;

如果检测到Rx_finish = 1,即正常完成了全部数据帧的接收且校验正确,则将信号Bus_Direction置1,即Bus_Direction= ‘1’,串行总线的方向调整为FPGA发送;

定义常量类型变量const_clk,设定其值m大于发生Buffer1_Empty下降沿事件到发生Rx_finish = 1事件之间的Clk_Fpga时钟个数,同时m值小于一个完整的数据帧发送与接收周期,即小于相邻两次Buffer1_Empty下降沿事件之间的Clk_Fpga时钟个数;

定义信号rx_timeout,用于指示接收数据帧超时;

变量count_clk计数达到const_clk时,即m值,如果检测到状态标志Rx_finish等于0,即Rx_finish = 0,表示此刻仍未能完成接收全部数据帧或校验错误,则将信号rx_timeout置1,即rx_timeout= ‘1’,表示接收数据帧超时;反之,如果检测到状态标志Rx_finish等于1,表示此前已正常完成了全部数据帧的接收且校验正确,则将变量Rx_finish置0,即Rx_finish := 0;

在rx_timeout上升沿到来时,即rising_edge(rx_timeout),将信号Bus_Direction置1,即Bus_Direction= ‘1’,串行总线的方向调整为FPGA发送;

在下一个Clk_Fpga上升沿到来时,如果检测到rx_timeout等于1,则将rx_timeout置0,即rx_timeout= ‘0’;

当检测到rx_timeout发生跳变时,表示未能完成接收全部数据帧或校验错误,认定发生数据帧接收超时事件,强制调整串行总线的方向为FPGA发送,并触发数据帧接收超时处理机制。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶集团有限公司第七一六研究所;江苏杰瑞科技集团有限责任公司,未经中国船舶集团有限公司第七一六研究所;江苏杰瑞科技集团有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910581916.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top