一种中继器及其数据传输的控制方法与流程

文档序号:12692734阅读:201来源:国知局
一种中继器及其数据传输的控制方法与流程

本发明涉及通信、消防等领域,特别是一种中继器及其数据传输的控制方法。



背景技术:

在消防监控系统内,电源电能是主要的监测指标之一。而在一幢楼内往往有成千上百的检测节点,这样我们想对每个节点数的数据进行集中监控,就需要一种支持分布式控制和实时控制的现场总线,将各个节点串起来,进行数据的采集和传输。CAN总线恰好符合这一需求。

CAN总线是一种多主方式的串行通信总线,具有优良的稳定性、实时性、远程通信能力以及超强的硬件CRC纠错等特性;CAN总线技术的应用不再仅限于汽车行业,而是扩展到了机械、纺织、控制等行业,并被公认为是最有前途的现场总线之一。然而由于受制于CAN收发器,CAN总线通信距离和网络中节点数被分别限制在10 km和110个之内。但是在稍大型的CAN总线系统中,这往往是不够的,这时就需要用CAN总线中继器对CAN总线网络进行扩展。

在CAN总线扩展时,需要利用CAN中继器。而现有的CAN中继器设计大多采用MCU加CAN控制器的双芯片或多芯片解决方案。在处理数据或信息传送过程中,实现具有不同波特率的CAN总线数据或信息传递中转时,其处理器的负荷较大,难以满足大型CAN总线网络的数据或信息的高效传输。



技术实现要素:

针对上述问题,本发明提供了一种中继器,解决了现有技术中一种或以上的技术问题,满足了CAN总线网络的数据或信息的高效传输。

本发明的技术方案是:一种中继器,包括

一第一CAN收发器,用于与其对应连接的CAN总线进行数据或信息的传递;

一第二CAN收发器,用于与其对应连接的CAN总线进行数据或信息的传递;

一第一拨码开关,用于配置一ID信息;

一第二拨码开关,用于配置一第一波特率、第二波特率以及一第一BOOT模式、一第二BOOT模式;

一微控制器,所述第一CAN收发器、第二CAN收发器、第一拨码开关、第二拨码开关均连接于所述微控制器;

所述微控制器用于从所述第一拨码开关读取ID信息;以及用于将该ID信息设置为该中继器的ID信息;以及用于从所述第二拨码开关读取所述第一波特率和第二波特率以及所述第一BOOT模式和第二BOOT模式;以及用于将所述第一波特率、第一BOOT模式配置给所述第一CAN收发器,将所述第二波特率、第二BOOT模式配置给所述第二CAN收发器;以及用于控制所述第一CAN收发器、第二CAN收发器数据或信息的接收和发送。

在本发明一实施例中,所述中继器还包括一时钟模块,连接于所述微控制器,所述时钟模块用于设定延时时间;所述微控制器还用于定义和存储一接收中断标志;以及用于根据所述第一波特率、第二波特率配置所述第一CAN收发器、第二CAN收发器的分频系数;

用于将该ID信息配置为第一CAN收发器和第二CAN收发器的数据帧标准ID信息。

所述第一拨码开关包括8位拨码,其配置的ID信息范围为0~255。

所述第二拨码开关包括8位拨码,其中,前两位拨码用于配置BOOT0和BOOT1的电平状态,以配置所述微控制器复位后程序的启动区域;第三位到第五位拨码用于配置第一波特率,第六位到第八位用于配置第二波特率。

在本发明一实施例中,所述中继器还包括

一SWD模块,连接于所述微控制器,所述SWD模块用于程序的更新下载调试;

一USB接口模块,连接于所述微控制器;

一RS485收发器,连接于所述微控制器;

一指示灯模块,连接于所述微控制器。

本发明还公开了一种中继器的数据传递控制方法。

实现上述目的的技术方案是:一种中继器的数据传递控制方法,包括以下步骤,

S1)手动设置所述第一拨码开关,配置一ID信息;手动设置所述第二拨码开关,配置一第一波特率、第二波特率以及以及芯片复位后程序的启动区域;

S2)启动中继器,所述微控制器从所述第一拨码开关读取所述ID信息,并将所述ID信息配置为所述中继器的ID信息;

S3)初始化设置所述第一CAN收发器、第二CAN收发器:包括以下步骤,

S31)所述微控制器从所述第二拨码开关读取所述第一波特率、第二波特率以及BOOT0和BOOT1的设置的电瓶状态,并将所述第一波特率配置给所述第一CAN收发器,将所述第二波特率配置给所述第二CAN收发器;

S4)所述微控制器控制所述第一CAN收发器、第二CAN收发器数据或信息的接收和发送。

在本发明一实施例中,所述步骤S2)中还包括以下步骤,

S21)初始化设置时钟模块、指示灯模块和GPIO模块,包括设置所述时钟模块的延时时间;

S22)定义所述微控制器的接收中断标志。

在本发明一实施例中,所述步骤S3)包括还包括以下步骤:

S32)所述微控制器根据所述第一波特率、第二波特率配置所述第一CAN收发器、第二CAN收发器的分频系数;

S33)所述微控制器将所述ID信息配置为第一CAN收发器和第二CAN收发器的数据帧标准ID信息。

在本发明一实施例中,所述步骤S4)还包括以下步骤;

S41)所述微控制器控制所述第一CAN收发器接收与之相连接的CAN总线的数据或信息;

S42)所述微控制器实时监听所述第一CAN收发器以及读取接收中断标志的值;

S43)判断接收中断标志的值是否为1,若为1,则进入步骤S44);若不为1,则进入步骤S45);

S44)若接收中断标志的值为1,表示此时所述第一CAN收发器接收中断,所述微控制器将所述第一CAN收发器接收到的数据或信息按照所述第二CAN收发器的通信协议打包,控制所述第二CAN收发器将该打包的数据或信息传递至与所述第二CAN收发器相连的CAN总线,同时,所述微控制器将所述接收中断标志的值赋为0;

S45)若接收中断标志的值为0,表示此时所述第一CAN收发器接收未中断,则所述微控制器触发时钟模块,所述时钟模块计时延时时间;

S46)当达到延时时间后,返回步骤S41)。

在本发明一实施例中,所述步骤S46)还包括以下步骤,

S461)所述时钟模块的计数器记录数据收发的循环次数;

S462)所述微控制器判定该循环次数是否达到所设上限;若没有达到,则返回步骤S41);若达到,则进入步骤S463)

S463)所述微控制器记录该数据收发循环上限,同时将所述计数器的值赋为0,并重新返回步骤S41)。

本发明的优点是:本发明的中继器及其数据传输的控制方法,微控制器采用STM32F105内部集成双bxCAN控制器,支持CAN协议V2.0A和V2.0B,波特率最高可达1Mb/s,具有3个发送邮箱和2个3级深度的FIFO,能够以最小的处理器的负荷来高效处理大量收到的报文,而且通过第一拨码开关和第二拨码开关的设置,能够根据实时传输距离,及时控制传输速率,以达到高效的数据或信息的传输,通过第一收发器和第二收发器的分频控制,达到数据或信息传输的分步进行,能够有效提高传输效率以及有效的保证数据或信息传输的准确性,通过计时模块,能够实现每次传输的计数,有利于数据的查询和统计。

附图说明

下面结合附图和实施例对本发明作进一步的描述。

图1为本发明实施例的中继器模块示意图。

图2为本发明实施例的中继器应用于监测系统的结构示意图。

图3为本发明实施例的第一拨码开关示意图。

图4为本发明实施例的第二拨码开关示意图。

图5为本发明实施例的中继器数据传输的控制方法步骤流程图。

其中。

1中继器; 2 CAN总线

11第一CAN收发器; 12第二CAN收发器;

13第一拨码开关; 14第二拨码开关;

15微控制器; 16时钟模块;

17 SWD模块; 18 USB接口模块;

19 RS485收发器; 10 指示灯模块。

具体实施方式

以下实施例的说明是参考附加的图式,用以例示本发明可用以实施的特定实施例。本发明所提到的方向用语,例如「上」、「下」、「前」、「后」、「左」、「右」、「顶」、「底」等,仅是参考附加图式的方向。因此,使用的方向用语是用以说明及理解本发明,而非用以限制本发明。

实施例:如图1所示,一种中继器,包括一第一CAN收发器11、一第二CAN收发器12、一第一拨码开关13、一第二拨码开关14、一微控制器15、一时钟模块16、一SWD模块17、一USB接口模块18、一RS485收发器19、一指示灯模块10、一GPIO模块以及一电源模块。上述模块均连接于微控制器15。

其中,在本实施例中,第一CAN收发器11和第二CAN收发器12使用内置控制器和TGA1040数据收发器。

第一CAN收发器11和第二CAN收发器12用于与其各自对应连接的CAN总线2进行数据或信息的传递。

本实施例中,如图2所示,第一CAN收发器11与下层级的CAN总线2进行数据或信息的传递,第二CAN收发器12与上层级的CAN总线2进行数据或信息的传递。

如图3、图4所示;本实施例中,第一拨码开关13、第二拨码开关14均有8位拨码。其中,第一拨码开关13用于配置一ID信息;其配置的ID信息范围为0~255。第二拨码开关14用于配置一第一波特率、第二波特率以及微控制器的BOOT模式。其中,第二拨码开关14包括8位拨码,其中,前两位拨码用于配置BOOT0和BOOT1的电平状态,以配置所述微控制器复位后程序的启动区域,第三位到第五位拨码用于配置第一波特率,第六位到第八位用于配置第二波特率。

本实施例中,微控制器15采用STM32f105RBT6,是一款基于STM32的CAN总线中继器。STM32F105内部集成双bxCAN控制器。支持CAN协议V2.0A和V2.0B,波特率最高可达1Mb/s,具有3个发送邮箱和2个3级深度的FIFO,能够以最小的CPU负荷来高效处理大量收到的报文。微控制器15是本中继器1的计算与处理中心,同时控制其他模块的工作,实现控制第一CAN收发器11的数据接收、接收数据接收解析、打包和以及控制第二CAN收发器12的数据发送。具体的,微控制器15用于初始化设置与之相连的各个模块,包括从第一拨码开关13读取ID信息;以及将该ID信息设置为该中继器1的ID信息;以及从第二拨码开关14读取第一波特率和第二波特率以及所述微控制器15的BOOT模式(即微控制器复位后程序的启动区域);以及将第一波特率配置给第一CAN收发器11,将第二波特率配置给第二CAN收发器12;以及控制第一CAN收发器11、第二CAN收发器12数据或信息的接收和发送;微控制器15还用于定义和存储一接收中断标志;以及用于根据所述第一波特率、第二波特率配置所述第一CAN收发器11、第二CAN收发器12的分频系数;将该ID信息配置为第一CAN收发器11和第二CAN收发器12的数据帧标准ID信息。

时钟模块16,连接于微控制器15,时钟模块16用于设定延时时间。当监测到收发中断值为0时,则延时一预设之间后,再重新控制第一CAN收发器11接收数据或信息。本实施例中,延时时间设定为10ms。而且10ms的延时时间既保证了数据或信息的及时传递,也能够有效的控制数据或信息不错乱,提高数据或信息的传递效率。

SWD模块17用于程序的更新下载调试。

USB接口模块18和RS485收发器19设有预留接口,可与微控制器15实现USB和485通信,与CAN总线2组合可实现CAN总线2转USB通信和CAN总线2转485通信,具体根据情况选择,使中继器1接入和通信实现柔性化。

指示灯模块10包括第一指示灯、第二指示灯、第三指示灯,第一指示灯用于指示第一CAN收发器11的工作状态,如第一指示灯闪烁时表示第一CAN收发器11正在接收数据或信息,当接收中断标志的值为1时,则第一指示灯取反;第二指示灯用于指示第二CAN收发器12的工作状态,如第二指示灯闪烁时表示第二CAN收发器12正在发送数据或信息,当接收中断标志的值为0时,则第二指示灯取反;;第三指示灯表示计数器次数判断时程序的运行状态,如当计时器的次数达到所预设的值时,本实施例中为预设值为1000,则第三指示灯取反。

为了充分的说明上述实施例,以下提供了一种上述中继器工作时数据传递控制方法。

如图5所示,一种中继器的数据传递控制方法,包括以下步骤。

S1)手动设置第一拨码开关13,配置一ID信息。手动设置第二拨码开关14,配置一第一波特率、第二波特率以及中继器的BOOT模式。在该步骤中,通过拨动8位拨码来设置,如拨动第二拨码器的前2位来设置微控制器的BOOT模式,拨动第二拨码器的第3到5位来设置第一CAN收发器11第一波特率,拨动第二拨码器的第6到8位来设置第二CAN收发器12第二波特率,波特率是按照传输距离来设置的。

S2)启动中继器1。首先初始化设置中继器1的部分模块和单元,如步骤S21)初始化设置时钟模块16、指示灯模块10和GPIO模块,包括设置时钟模块16的延时时间。

在步骤S22)中定义微控制器15的接收中断标志(receivestate)。如receivestate=1是,则说明第一CAN收发器11接收中断,receivestate=0是,则说明第一CAN收发器11接收中断中止。

微控制器15从所述第一拨码开关13读取所述ID信息,并将所述ID信息配置为所述中继器1的ID信息。中继器1将该ID信息作为与与之连接的CAN总线2进行通信地址。

S3)初始化设置第一CAN收发器11、第二CAN收发器12。初始化设置包括以下步骤。

S31)微控制器15从所述第二拨码开关14读取所述第一波特率、第二波特率以并将所述第一波特率配置给所述第一CAN收发器11,将所述第二波特率配置给所述第二CAN收发器12。

S32)微控制器15根据所述第一波特率、第二波特率配置所述第一CAN收发器11、第二CAN收发器12的分频系数。

S33)微控制器15将所述ID信息配置为第一CAN收发器11和第二CAN收发器12的数据帧标准ID信息。

初始化设置第一CAN收发器11、第二CAN收发器12是为了通过微控制器15分别分频分时控制第一CAN收发器11、第二CAN收发器12的收发,使收发步骤能够按序进行。

S4)微控制器15控制第一CAN收发器11、第二CAN收发器12数据或信息的接收和发送。

所述步骤S4)还包括以下步骤。

S41)微控制器15控制第一CAN收发器11接收与之相连接的CAN总线2的数据或信息。即在接收中断标志中止阶段,第一CAN收发器11接收数据或信息。

S42)微控制器15实时监听第一CAN收发器11以及读取接收中断标志的值。该步骤是实时监听的作用,以便能够及时的分频控制第一CAN收发器11中断接收和控制第二CAN收发器12发送打包的数据或信息,其具体判断步骤如下。

S43)判断接收中断标志的值是否为1,若为1,则进入步骤S44);若不为1,则进入步骤S45)。

S44)若接收中断标志的值为1,表示此时第一CAN收发器11接收中断,微控制器15将所述第一CAN收发器11接收到的数据或信息按照所述第二CAN收发器12的通信协议打包,控制第二CAN收发器12将该打包的数据或信息传递至与第二CAN收发器12相连的CAN总线2,同时,所述微控制器15将所述接收中断标志的值赋为0。

S45)若接收中断标志的值为0,表示此时第一CAN收发器11接收未中断,则所述微控制器15触发时钟模块16,所述时钟模块16计时延时时间;

S46)当达到延时时间后,返回步骤S41)。

所述步骤S46)还包括以下步骤。

S461)所述时钟模块16的计数器记录数据收发的循环次数;

S462)所述微控制器15判定该循环次数是否达到所设上限;若没有达到,则返回步骤S41);若达到,则进入步骤S463)

S463)所述微控制器15记录该数据收发循环上限,同时将所述计数器的值赋为0,并重新返回步骤S41)。

应当指出,对于经充分说明的本发明来说,还可具有多种变换及改型的实施方案,并不局限于上述实施方式的具体实施例。上述实施例仅仅作为本发明的说明,而不是对本发明的限制。总之,本发明的保护范围应包括那些对于本领域普通技术人员来说显而易见的变换或替代以及改型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1