基于fpga的波特率快速自适应方法、处理器及接收端的制作方法

文档序号:7868965阅读:454来源:国知局
专利名称:基于fpga的波特率快速自适应方法、处理器及接收端的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种基于FPGA的波特率快速自适应方法、处理器及接收端。
背景技术
在数据通信、计算机网络、嵌入式计算机系统以及各类工业控制系统中,经常使用串行通信的方式来交换数据和信息。
在串行通信系统中,用波特率来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为bps (bits per second),它是衡量串行通信系统数据传输速率快慢的主要指标。
串行通信的发送端与接收方之间必须遵守相同的协议,否则无法正常通信。串行通信协议规定了发送端与接收方之间的波特率、数据位长度、奇偶校验位、停止位等参数。为了便于双方通信,国际上规定了一系列标准的波特率300bps、2400bps、9600bps、 115200bps 等。
在实际工作中,尽管终端的比特率有多种情况,但是大部分都还是采用通用标准的比特率,这样双方就必须使用相同的波特率设置,简单的做法是双方设置成固定的值,但这样做使得系统的灵活性变差。如果一方的波特率发生改变,另一方也需要进行相应的调整设置,需要人为修改较为不便,也使得串行设备的通用性和灵活性差。发明内容
本发明要解决的技术问题在于针对现有技术中串行设备采用标准波特率进行通信,使得串行设备的通用性和灵活性差的缺陷,提供一种可以自行适应波特率的基于FPGA 的波特率快速自适应方法及系统。
本发明解决其技术问题所采用的技术方案是
提供一种基于FPGA的波特率快速自适应方法,包括以下步骤
通过总线接收TTL电平信号或者CMOS电平信号;
检测总线上的电平,当总线上电平出现下降沿时,计数器根据采样频率生成器生成的采样频率开始计数;
总线上的下降沿使误触发检测电路启动,判断该下降沿是否为收发双方预设的起始帧的起始位,具体为误触发检测电路根据预先设置的阈值进行延时判断,若延时判断的结果是总线为高电平,则该下降沿为非起始位,控制计数器置位,等待下一个下降沿;若延时判断的结果是总线为低电平,则该下降沿为起始位,控制计数器继续计数;延时判断结束后,误触发检测电路停止工作;
当总线上的电平出现上升沿时,计数器暂停计数;
总线上的上升沿使误触发检测电路再次启动,判断该上升沿是否为所述起始帧的数据位,所述起始帧数据位的第一个比特位预设为高电平,具体为误触发检测电路进行延时判断,若延时判断的结果是总线为低电平,则该上升沿为非数据位,控制计数器继续计数,等待下一个上升沿;若延时判断的结果是总线为高电平,则该上升沿为数据位,控制计数器停止计数;延时判断结束后,误触发检测电路停止工作;
当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。
本发明所述的方法中,还包括步骤
判断是否接收到收发双方预设的结束帧,若是,则停止通信,重置计数器,下一帧数据将会重新计算新的波特率并按此波特率进行通信。
本发明解决其技术问题所采用的另一技术方案是
提供一种可实现波特率快速自适应的FPGA处理器,包括
数据收发模块,用于通过总线接收TTL电平信号或者CMOS电平信号;
采样频率生成器,用于生成采样频率;
计数器,用于检测总线上的电平,当总线上电平出现下降沿时,计数器根据采样频率生成器生成的采样频率开始计数;
误触发检测电路,用于在总线上的下降沿触发下启动,判断该下降沿是否为收发双方预设的起始帧的起始位,具体为根据预先设置的阈值进行延时判断,若延时判断的结果是总线为高电平,则该下降沿为非起始位,控制计数器置位,等待下一个下降沿;若延时判断的结果是总线为低电平,则该下降沿为起始位,控制计数器继续计数;延时判断结束后,误触发检测电路停止工作;
所述计数器还用于当总线上的电平出现上升沿时,暂停计数;
所述误触发检测电路,还用于在总线上的上升沿触发下再次启动,判断该上升沿是否为所述起始帧的数据位,所述起始帧数据位的第一个比特位预设为高电平,具体为进行延时判断,若延时判断的结果是总线为低电平,则该上升沿为非数据位,控制计数器继续计数,等待下一个上升沿;若延时判断的结果是总线为高电平,则该上升沿为数据位,控制计数器停止计数;延时判断结束后,误触发检测电路停止工作;
波特率计算模块,用于当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入所述数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。
本发明所述的FPGA处理器中,若发送端需要切换波特率,则发送当前波特率的结束帧,处理器接收到该结束帧后,重置波特率自适应过程,根据下一帧数据将会计算新的波特率并按此波特率进行通信。
本发明解决其技术问题所采用的第三技术方案是
提供一种基于FPGA的波特率快速自适应的接收端, 其特征在于,包括收发器和 FPGA处理器,其中,
所述收发器,用于将发送端发送的数据转化为所述FPGA处理器可直接处理的TTL 电平信号或者CMOS电平信号;所述FPGA处理器为权利要求3或4所述的可实现波特率快速自适应的FPGA处理器。
本发明产生的有益效果是本发明根据双方预设的起始帧的起始位即可检测出当前波特率,,实现了一种任意波特率自适应技术,使波特率不受限制于标准波特率,可以实现任意波特率的自适应;利用误触发检测电路,有效的去除了由于总线上的尖峰或毛刺引起的波特率检测误差;
进一步地,本发明根据起始帧、结束帧即可切换波特率,尤其适用于数据传输需要加密的场合。


下面将结合附图及实施例对本发明作进一步说明,附图中
图1是本发明实施例基于FPGA的波特率快速自适应方法的流程图2是本发明实施例起始帧波特率检测示意图3是本发明实施例误触发电路原理示意图一;
图4是本发明实施例误触发电路原理示意图二 ;
图5是本发明实施例波特率切换示意图6是本发明实施例可实现波特率快速自适应的FPGA处理器的结构示意图7是本发明实施例基于FPGA的波特率快速自适应的接收端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例基于FPGA的波特率快速自适应方法,包括以下步骤
S101、预先设置通信协议参数,通信的双方必须采用相同的串行通信协议,包括起始帧格式、结束帧格式、数据位长度、停止位、奇偶校验位等;在本实施实例中,如图2所示,将起始帧设置为0xFF,结束帧设置为3个连续的数据帧0x55AA55,数据位长度设置为 8bit,停止位设置为Ibit,不设置奇偶校验位。
S102、FPGA处理器通过总线接收TTL电平信号或者CMOS电平信号;接收端根据发送方的电气特性选择相应的收发器,收发器将从发送方接收的信号转化为FPGA可以直接处理的TTL电平信号或者CMOS电平信号;
S103检测总线上的电平,检测是否为下降沿;根据异步串行通讯协议的规定当双方没“0”的状态,当发送方发起数据传输时,一定会在总线上产生一个由“ I”至“O”的跳变,即下降沿。
S104、将计数器的启动标志设置为下降沿触发,当总线上电平出现下降沿时,总线上的下降沿使误触发检测电路启动,判断该上升沿是否为起始帧的数据位,起始帧数据位的第一个比特位预设为高电平,具体为误触发检测电路根据预先设置的阈值进行延时判断,确定下降沿是由发送方传输数据产生的,还是由总线上的尖峰或毛刺产生的,如图4所示,若延时判断的结果是总线为高电平,则该下降沿为非起始位,则说明该跳变是由于总线上的尖峰或毛刺产生的,控制计数器置位,等待下一个下降沿;如图3所示,若延时判断的结果是总线为低电平,则该下降沿为起始位,说明该跳变是由发送方传输数据产生的,控制计数器继续计数;延时判断结束后,误触发检测电路停止工作;利用误触发检测电路,可有效去除由于总线上的尖峰或毛刺引起的波特率检测误差;
S105、当总线上电平出现下降沿时,计数器根据采样频率生成器生成的采样频率开始计数;计数器的采样频率记为=Freq ;本发明实施例中,计数器和误触发检测电路的采样频率均由FPGA处理器外部的高精度时钟或内部时钟发生器决定。在本实施实例中,外部高精度时钟频率为40MHz,可以满足一般波特率采样的要求,若要提高采样频率,可以利用 Xilinx 公司的 FPGA 设计开发套件 ISE14. 2,调用 LogiCORE IP Clocking Wizard v3. 6 X 具,对外部时钟进行进一步分频,得到更高的采样频率。误触发检测电路的延时宽度设置为 10个时钟周期,可以排查250ns以内的总线尖峰和毛刺,若检测结果为正常的数据传输,则继续计数,若检测结果为总线尖峰或毛刺,则置位计数器;
S106、检测总线上的电平是否出现上升沿;
S107、将计数器的结束标志设置为上升沿触发,当总线上的电平出现上升沿时,计数器暂停计数;总线上的上升沿使误触发检测电路再次启动,判断该上升沿是否为数据位, 具体为误触发检测电路进行延时判断,若延时判断的结果是总线为低电平,则该上升沿为非数据位,则说明该跳变是由于总线上的尖峰或毛刺产生的,控制计数器继续计数,等待下一个上升沿;若延时判断的结果是总线为高电平,则该上升沿为数据位。
S108、若该上升沿为数据位,说明该跳变是由发送方传输数据产生的,则控制计数器停止计数;延时判断结束后,误触发检测电路停止工作;
S109、当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入FPGA的数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。本发明中发送方所采用的任意波特率,接收方都可以根据上述方法快速自适应。
根据异步串行通讯协议的规定当双方没有进行通信时,通信接口处于空闲状态, 总线处于高电平,即“I”的状态,当需要传送一帧数据时,首先会发送一个逻辑为“O”的起始位,由于每个起始位仅占用lbit,根据波特率的定义,起始位的宽度即为该数据帧波特率的倒数,本发明就是利用串行通信协议的这个特点进行工作;
起始位宽度记为T (秒);
波特率记为Baud(bps);
起始位宽度与波特率的关系为T=1/Baud ;
计数值记为n ;
起始位的宽度与计数值的关系为T=n/Freq ;
波特率与计数值的关 系为Baud=Freq/n。
本发明的一个实施例中,若发送端需要切换波特率,则发送当前波特率的结束帧, 接收端接收到该结束帧后,重置波特率自适应过程,根据下一帧数据将会计算新的波特率并按此波特率进行通信,具体包括步骤
SI 11、判断是否接收到收发双方预设的结束帧;
S112、若检测到结束帧,则停止通信,重置计数器,转入执行步骤S 103,重新计算新的波特率并按此波特率进行通信。
如图5所示,收发双方开始以波特率I进行通信,发送方需要改变当前数据传输的波特率,则由发送方发送结束帧,在接收方FPGA处理器检测到结束帧后,重置计数器,总线重新变为空闲状态,FPGA处理器等待下一个起始帧的到来。在本实施实例中,结束帧由 3个连续的数据帧组成0x55AA55,FPGA处理器的数据收发模块接收到此数据后,停止当前波特率下的数据传输,等待包含新波特率的起始帧的到来,再重计数,重新计算新的波特率 2,并按此波特率2进行通信。
本发明实施例可实现波特率快速自适应的FPGA处理器20,包括
数据收发模块21,用于通过总线接收TTL电平信号或者CMOS电平信号;
采样频率生成器22,用于生成采样频率;可通过对FPGA处理器外部的高精度时钟或内部时钟发生器进行采样,得到时钟采样频率。
计数器24,用于检测总线上的电平,当总线上电平出现下降沿时,计数器根据采样频率生成器生成的采样频率开始计数;
误触发检测电路23,用于在总线上的下降沿触发下启动,判断该下降沿是否为收发双方预设的起始帧的起始位,具体为根据预先设置的阈值进行延时判断,若延时判断的结果是总线为高电平,则该下降沿为非起始位,控制计数器置位,等待下一个下降沿;若延时判断的结果是总线为低电平,则该下降沿为起始位,控制计数器继续计数;延时判断结束后,误触发检测电路停止工作;
所述计数器24还用于当总线上的电平出现上升沿时,暂停计数;
所述误触发检测电路23,还用于在总线上的上升沿触发下再次启动,判断该上升沿是否为数据位,具体为进行延时判断,若延时判断的结果是总线为低电平,则该上升沿为非数据位,控制计数器继续计数,等待下一个上升沿;若延时判断的结果是总线为高电平,则该上升沿为数据位,控制计数器停止计数;延时判断结束后,误触发检测电路停止工作;
波特率计算模块25,用于当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入所述数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。
本发明实施例中,若发送端需要切换波特率,则发送当前波特率的结束帧,处理器接收到该结束帧后,重置波特率自适应过程,计算新的波特率并按此波特率进行通信。
本发明实施例基于FPGA的波特率快速自适应的接收端,如图7所示,包括收发器 30和FPGA处理器20,其中,
所述收发器30,用于将 发送端发送的数据转化为所述FPGA处理器可直接处理的电平信号;接收端根据发送方的电气特性选择相应的收发器,收发器将从发送方接收的信号转化为FPGA可以直接处理的TTL电平信号或者CMOS电平信号;根据实际情况收发器的电气接口可以为RS232、RS422、RS485等。本发明的一个实施例中,发送方采用的是RS485 标准接口,全双工通信方式,波特率不高于IMbps。由于RS485接口采用差分传输方式,其共模电压为-7V +12V,必须选用相应的收发器才能实现与FPGA之间的通信,同时还应采用一定的电路保护措施,如在收发器的前端增加齐纳二极管防止瞬变电压和浪涌电流,增加上拉电阻确保串行总线在空闲时为“1”,增加串联端接电阻减少线路中的反射效应;
所述FPGA处理器20为上文实施例的可实现波特率快速自适应的FPGA处理器,在此不赘述。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换, 而所有这些改进和变换都应属于本发明所附权利要求的保护范 围。
权利要求
1.一种基于FPGA的波特率快速自适应方法,其特征在于,包括以下步骤 通过总线接收TTL电平信号或者CMOS电平信号; 检测总线上的电平,当总线上电平出现下降沿时,计数器根据采样频率生成器生成的采样频率开始计数; 总线上的下降沿使误触发检测电路启动,判断该下降沿是否为收发双方预设的起始帧的起始位,具体为误触发检测电路根据预先设置的阈值进行延时判断,若延时判断的结果是总线为高电平,则该下降沿为非起始位,控制计数器置位,等待下一个下降沿;若延时判断的结果是总线为低电平,则该下降沿为起始位,控制计数器继续计数;延时判断结束后,误触发检测电路停止工作; 当总线上的电平出现上升沿时,计数器暂停计数; 总线上的上升沿使误触发检测电路再次启动,判断该上升沿是否为所述起始帧的数据位,所述起始帧数据位的第一个比特位预设为高电平,具体为误触发检测电路进行延时判断,若延时判断的结果是总线为低电平,则该上升沿为非数据位,控制计数器继续计数,等待下一个上升沿;若延时判断的结果是总线为高电平,则该上升沿为数据位,控制计数器停止计数;延时判断结束后,误触发检测电路停止工作; 当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。
2.根据权利要求1所述的方法,其特征在于,还包括步骤 判断是否接收到收发双方预设的结束帧,若是,则停止通信,重置计数器,根据下一帧数据将会重新计算新的波特率并按此波特率进行通信;若否,则继续按当前波特率进行通 目。
3.一种可实现波特率快速自适应的FPGA处理器,其特征在于,包括 数据收发模块,用于通过总线接收TTL电平信号或者CMOS电平信号; 采样频率生成器,用于生成采样频率; 计数器,用于检测总线上的电平,当总线上电平出现下降沿时,计数器根据采样频率生成器生成的采样频率开始计数; 误触发检测电路,用于在总线上的下降沿触发下启动,判断该下降沿是否为收发双方预设的起始帧的起始位,具体为根据预先设置的阈值进行延时判断,若延时判断的结果是总线为高电平,则该下降沿为非起始位,控制计数器置位,等待下一个下降沿;若延时判断的结果是总线为低电平,则该下降沿为起始位,控制计数器继续计数;延时判断结束后,误触发检测电路停止工作; 所述计数器还用于当总线上的电平出现上升沿时,暂停计数; 所述误触发检测电路,还用于在总线上的上升沿触发下再次启动,判断该上升沿是否为所述起始帧的数据位,所述起始帧数据位的第一个比特位预设为高电平,具体为进行延时判断,若延时判断的结果是总线为低电平,则该上升沿为非数据位,控制计数器继续计数,等待下一个上升沿;若延时判断的结果是总线为高电平,则该上升沿为数据位,控制计数器停止计数;延时判断结束后,误触发检测电路停止工作; 波特率计算模块,用于当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入所述数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。
4.根据权利要求3所述的FPGA处理器,其特征在于,若发送端需要切换波特率,则发送当前波特率的结束帧,处理器接收到该结束帧后,重置波特率自适应过程,根据下一帧数据将会计算新的波特率并按此波特率进行通信。
5.一种基于FPGA的波特率快速自适应的接收端,其特征在于,包括收发器和FPGA处理器,其中, 所述收发器,用于将发送端发送的数据转化为所述FPGA处理器可直接处理的TTL电平信号或者CMOS电平信号;所述FPGA处理器为权利要求3或4所述的可实现波特率快速自适应的FPGA处理器。
全文摘要
本发明公开了一种基于FPGA的波特率快速自适应方法、处理器及接收端,其中方法包括以下步骤总线上的下降沿使误触发检测电路启动,通过其判断该下降沿是否为收发双方预设的起始帧的起始位,若为起始位,控制计数器继续计数;总线上的上升沿使误触发检测电路再次启动,通过其判断该上升沿是否为数据位,若为数据位,控制计数器停止计数;当计数器停止计数时,根据计数器的计数结果和高精度时钟的频率计算出当前数据帧的实际波特率,并将该波特率写入数据收发模块,使其按此波特率进行通信,完成波特率的自适应过程。本发明可以实现任意波特率的自适应;利用误触发检测电路可有效的去除由于总线上的尖峰或毛刺引起的波特率检测误差。
文档编号H04L25/02GK103036823SQ20121054612
公开日2013年4月10日 申请日期2012年12月14日 优先权日2012年12月14日
发明者许霄龙, 李锡武, 何冲 申请人:中船重工(武汉)凌久电子有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1