一种波特率自适应的Modbus中继器和波特率自适应系统及方法

文档序号:6335764阅读:918来源:国知局
专利名称:一种波特率自适应的Modbus中继器和波特率自适应系统及方法
技术领域
本发明涉及一种波特率自适应系统及方法和Modbus中继器,更具体地说,涉及一种波特率自适应的Modbus中继器实现。
背景技术
Modbus是由美国M0DIC0N公司最早提出的一种现场总线标准.现有的MODBUS中继器采用旋转编码器来手工设置MODBUS通信的波特率和编码格式,不能满足客户的远程控制需要,不能实现远程自动检测功能,且手工操作不方便。针对现有技术中存在的上述问题,提出了本发明。

发明内容
本发明的另外方面和优点部分将在后面的描述中阐述,还有部分可从描述中明显地看出,或者可以在本发明的实践中得到。本设计方案使用复杂可编程逻辑器件(Complex Programmable Logic Device, CPLD)和外部晶振来控制MODBUS通信的中继,能够自动检测MODBUS数据帧的波特率和编码格式,而且具有灵活性好,可扩展性好,稳定性高等特点。本发明的技术范围MODBUS通信。本发明的应用范围适用于MODBUS通信信号的中继和隔离。本设计方案为一种MODBUS中继器的CPLD实现方法。该方法增加了 MODBUS通信的隔离特性。本设计使用CPLD可编程器件检测MODBUS数据帧的波特率和编码格式,通过调整波特率发生器的参数和计数器来控制RS485收发器的使能信号。本发明公开了一种波特率自适应方法,包括步骤a)接收第一和第二数据;b)判断是否检测到所述第一和第二数据的同步码起始位的下降沿;c)如果未检测到所述下降沿,则返回步骤b ;如果检测到所述下降沿,则基于基准时钟,从起始位后的上升沿开始第一计数,到下一下降沿停止第一计数,并得到第一计数值;从停止第一计数的下降沿开始第二计数,到下一上升沿停止第二计数,并得到第二计数值;d)根据第一和第二计数值与第一阈值的关系得到波特率。本发明还公开了一种波特率自适应系统,包括第一数字滤波器,接收来自第一收发器的第一数据;第二数字滤波器,接收来自第二收发器的第二数据;分频器,根据外部晶振向第一计数器和第二计数器输出基准时钟;第一计数器,基于基准时钟,对第一数据和第二数据进行计数,并得到第一计数值和第二计数值;波特率检测单元,从第一数字滤波器和第二数字滤波器接收第一数据和第二数据,当检测到第一数据和第二数据的同步码起始位的下降沿时,从起始位后的上升沿开始控制第一计数器开始第一计数,到下一下降沿停止第一计数,并得到第一计数值;从停止第一计数的下降沿开始控制第一计数器开始第二计数,到下一上升沿为止,并得到第二计数值;根据第一计数值和第二计数值与第一阈值的关
4系得到波特率;第二计数器,基于基准时钟,对第一数据和第二数据进行第三计数,并得到第三计数值;波特率发生器,根据波特率检测单元检测的波特率和编码方式以及第一和第二数据,对输出控制单元和第二计数器进行控制;输出控制单元,根据第二计数器和波特率发生器的控制,输出第一使能信号和第二使能信号。本发明还提供一种波特率自适应的Modbus中继器,包括上述的波特率自适应系统。本发明使用CPLD技术,是因为CPLD的逻辑运算是通过硬件完成的,远比MCU的速度快,带来的通讯延时很小,具有很好的灵活性。根据本发明的采用CPLD远程检测MODBUS数据帧的波特率和编码格式,不需要在本地进行波特率和编码格式的手工设置。本发明能够实现波特率和编码格式的远程自动检测功能。省去旋转编码器的材料和装配成本。


通过结合附图对本发明的优选实施例进行详细描述,本发明的上述和其他目的、 特性和优点将会变得更加清楚,其中相同的标号指定相同结构的单元,并且在其中图1示意性地示出了 Modbus中继器的应用环境;图2和图3示意性地示出了从同步帧中提取码流速率和编码方式的方法的示意图;图4示出了根据本发明实施例的波特率自适应方法的流程图;图5示意性地示出了根据本发明实施例的波特率自适应系统的实现框图;图6示出了根据本发明实施例的波特率发生器的工作原理流程图;以及图7示意性地示出了根据本发明实施例的波特率自适应系统(即,Modbus中继器)芯片实现的实物图。
具体实施例方式下面将参照示出本发明实施例的附图充分描述本发明。然而,本发明可以以许多不同的形式实现,而不应当认为限于这里所述的实施例。相反,提供这些实施例以便使本公开透彻且完整,并且将向本领域技术人员充分表达本发明的范围。在附图中,为了清楚起见放大了组件。应当理解,当称“元件” “连接到”或“耦接”到另一元件时,它可以是直接连接或耦接到另一元件或者可以存在中间元件。相反,当称元件“直接连接到”或“直接耦接到”另一元件时,不存在中间元件。相同的附图标记指示相同的元件。这里使用的术语“和/或” 包括一个或多个相关列出的项目的任何和所有组合。应当理解,尽管这里可以使用术语第一、第二、第三等描述各个元件、组件和/或部分,但这些元件、组件和/或部分不受这些术语限制。这些术语仅仅用于将元件、组件或部分相互区分开来。因此,下面讨论的第一元件、组件或部分在不背离本发明教学的前提下可以称为第二元件、组件或部分。这里使用的术语仅仅是为了描述特定实施例的目的,而并不意图限制本发明。这里使用的单数形式“一”、“一个”和“那(这个)”也意图包含复数形式,除非上下文中明确地指出不包含。应当理解,术语“包括”当用在本说明书中时指示所述特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。本发明的特征在于使用同步帧来实现波特率和编码格式的自动检测功能。1 本设计采用外部晶振OSC作为基准时钟输入。该基准时钟用于计数器输入,进一步控制波特率的自动检测。2 =MODBUS主设备初始发出同步帧,CPLD 102会检测出其起始位和波特率,从而确定波特率发生器的输出。3 波特率发生器通过另一计数器的输出控制RS485收发器101和103的使能信号。本设计能够增强现有产品(M0DBUS中继器)的特性和功能。该设计方案的检测时间短,效率高,具有很好的稳定性。可以采用VHDL或Verilog语言仿真。以及门级仿真。图1示意性地示出了 Modbus中继器的应用环境。如图1所示,来自RS485网络1和2的数据DO和Dl分别输入到RS485收发器101 和103。数据输入1和数据输入2是来自RS485收发器101和103的MODBUS通讯信号。 Modbus中继器102根据来自RS485收发器101和103的数据输入1和数据输入2生成使能信号1和使能信号2,并分别输出到RS485收发器101和103以对其进行控制。即,输入到 Modbus中继器102的数据输入1和数据输入2用于产生使能信号。同时,如图1所示,来自RS485收发器101的数据输入1和来自RS485收发器103 的数据输入2还分别输入到RS485收发器103和RS485收发器101用于提供实际的数据通路。图2和图3示意性地示出了从同步帧中提取码流速率和编码方式的方法的示意图。如图2所示,Tc是一个比特位的时间。Tl是高电平比特位的时间。以及T2是低电平比特位的时间。可以设置T1+T2 ^ 6比特,以提高波特率检测的准确性,在本例中,设置T1+T2 = 6比特。但本领域技术人员应该理解,T1+T2并不限于此处所示的6比特。在本文中,以五种编码方式的检测为例进行说明,而忽略了其它组合。但本领域技术人员应该理解,根据实际需要,也可以取Tl和T2的现有的组合方式。例如,如表1所示,可以取Tl和T2的以下五种可能的组合方式
权利要求
1.一种波特率自适应方法,包括步骤a)接收第一数据和第二数据;b)判断是否检测到所述第一数据和第二数据的同步码起始位的下降沿;c)如果未检测到所述下降沿,则返回步骤b;如果检测到所述下降沿,则基于基准时钟,从起始位后的上升沿开始第一计数,到下一下降沿停止第一计数,并得到第一计数值; 从停止第一计数的下降沿开始第二计数,到下一上升沿停止第二计数,并得到第二计数值;d)根据第一计数值和第二计数值与第一阈值的关系得到波特率。
2.如权利要求1所述的波特率自适应方法,进一步包括步骤根据第一计数值和第二计数值与第二阈值的关系得到编码方式。
3.如权利要求1或2所述的波特率自适应方法,其中,通过比较第一计数值和第二计数值之和与第一阈值的关系,根据已知波特率对应表得到波特率。
4.如权利要求3所述的波特率自适应方法,其中,通过比较第一计数值和第二计数值之差与第二阈值的关系,根据已知编码方式对应表得到编码方式。
5.如权利要求4所述的波特率自适应方法,进一步包括步骤f)判断是否检测到所述第一数据和第二数据的实际数据起始位的下降沿;如果未检测到下降沿,则返回步骤f ;如果检测到下降沿,则基于基准时钟,开始第三计数;同时,若下降沿来自第一数据,则输出第一使能信号;若下降沿来自第二数据,则输出第二使能信号。
6.如权利要求5所述的波特率自适应方法,进一步包括步骤g)当第三计数值达到第三阈值之后,禁止第一使能信号和第二使能信号。
7.如权利要求6所述的波特率自适应方法,其中,第一使能信号控制从第一网络接收第一数据的第一收发器;以及第二使能信号控制从第二网络接收第二数据的第二收发器。
8.如权利要求7所述的波特率自适应方法,其中,第一阈值是不同波特率与基本时钟信号的比值;第二阈值是不同具体编码方式所对应的预设值;以及第三阈值是与波特率检测单元所得出的波特率和编码方式对应的一个字符的时间和基本时钟的比值。
9.一种波特率自适应系统,包括第一数字滤波器,接收来自第一收发器的第一数据;第二数字滤波器,接收来自第二收发器的第二数据;分频器,根据外部晶振向第一计数器和第二计数器输出基准时钟;第一计数器,基于基准时钟,对第一数据和第二数据进行计数,并得到第一计数值和第二计数值;波特率检测单元,从第一数字滤波器和第二数字滤波器接收第一数据和第二数据,当检测到第一数据和第二数据的同步码起始位的下降沿时,从起始位后的上升沿开始控制第一计数器开始第一计数,到下一下降沿停止第一计数,并得到第一计数值;从停止第一计数的下降沿开始控制第一计数器开始第二计数,到下一上升沿为止,并得到第二计数值;根据第一计数值和第二计数值与第一阈值的关系得到波特率;第二计数器,基于基准时钟,对第一数据和第二数据进行第三计数,并得到第三计数值;波特率发生器,根据波特率检测单元检测的波特率和编码方式以及第一和第二数据,对输出控制单元和第二计数器进行控制;输出控制单元,根据第二计数器和波特率发生器的控制,输出第一使能信号或第二使能信号。
10.如权利要求9所述的波特率自适应系统,其中所述波特率检测单元根据第一计数值和第二计数值与第二阈值的关系得到编码方式。
11.如权利要求9或10所述的波特率自适应系统,其中,波特率检测单元通过比较第一计数值和第二计数值之和与第一阈值的关系,根据已知波特率对应表得到波特率。
12.如权利要求11所述的波特率自适应系统,其中,波特率检测单元通过比较第一计数值和第二计数值之差与第二阈值的关系,根据已知编码方式对应表得到编码方式。
13.如权利要求12所述的波特率自适应系统,其中,波特率发生器判断是否检测到所述第一数据和第二数据的实际数据起始位的下降沿;当检测到所述下降沿时,控制第二计数器开始所述第三计数;当判断启动第二计数器计数的下降沿来自第一数据时,所述输出控制单元输出第一使能信号;当判断启动第二计数器计数的下降沿来自第二数据时,所述输出控制单元输出第二使能信号。
14.如权利要求13所述的波特率自适应系统,其中,当检测到来自第二计数器的第三计数值达到第三阈值时,所述输出控制单元禁止第一使能信号和第二使能信号的输出
15.如权利要求14所述的波特率自适应系统,其中,第一使能信号控制从第一网络接收第一数据的第一收发器;以及第二使能信号控制从第二网络接收第二数据的第二收发ο
16.如权利要求15所述的波特率自适应系统,其中,第一阈值是不同波特率与基本时钟信号的比值;第二阈值是不同具体编码方式所对应的预设值;以及第三阈值是与波特率检测单元所得出的波特率和编码方式对应的一个字符的时间和基本时钟的比值。
17.一种波特率自适应的Modbus中继器,包括如权利要求9-16的任何一个所述的波特率自适应系统。
全文摘要
本申请公开了一种波特率自适应系统和方法,该方法包括a)接收第一和第二数据;b)判断是否检测到所述第一和第二数据的同步码起始位的下降沿;c)如果未检测到所述下降沿,则返回步骤b;如果检测到所述下降沿,则基于基准时钟,从起始位后的上升沿开始第一计数,到下一下降沿停止第一计数,并得到第一计数值;从停止第一计数的下降沿开始第二计数,到下一上升沿停止第二计数,并得到第二计数值;d)根据第一和第二计数值与第一阈值的关系得到波特率。根据本发明的采用CPLD远程检测MODBUS数据帧的波特率和编码格式,不需要在本地进行波特率和编码格式的手工设置。本发明能够实现波特率和编码格式的远程自动检测功能,省去旋转编码器的材料和装配成本。
文档编号G06F13/38GK102467477SQ201010541710
公开日2012年5月23日 申请日期2010年11月12日 优先权日2010年11月12日
发明者陈磊 申请人:施耐德电器工业公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1