内置在MCU中用于实现工业总线通讯的硬件编解码方法与流程

文档序号:16205194发布日期:2018-12-08 07:00阅读:419来源:国知局
内置在MCU中用于实现工业总线通讯的硬件编解码方法与流程

本发明涉及消防技术领域,具体涉及的是一种内置在mcu中用于实现工业总线通讯的硬件编解码方法。

背景技术

目前,在工业总线中多数采用mbus、can、rs485等总线进行通讯,在这些总线中,可以实现供电总线通讯只有mbus或其他特定消防总线。

由于没有统一的标准,消防总线在消防行业中应用时存在着性能参差不齐的情况,例如供电性能或智能性。特别是为了实现工业总线上的解码,都是采用纯软件方式实现:例如通过mcu的外部中断+timer配合记录事件的产生。由于不同mcu之间性能的差异,采用上述方式将会导致进入中断的延时时间不同,此时加上其他外部中断的产生,最终会造成中断存在不确定的延时性,进而影响了解码的精度。

再因为消防总线一般是以脉冲宽度进行编码,所以不确定的延时也会导致编码出现不确定的问题。由于消防总线通讯对时序性的要求非常高,因而采用纯软件的方式会对整个消防系统造成很强的干扰性,严重影响了系统的稳定性和一致性。

此外,在现有的工业总线编解码过程中,脉冲宽度值都是mcu软件以数组的方式进行存放,这需要mcu高频率不停的工作,由此而带来的后果是,既增加了整个系统的功耗,而且也影响到了信号的传输距离,并且在开发过程中,软件编写的难度较大,耗时也长。

因此,有必要对现有的工业总线,尤其消防总线的通讯方式进行改进,以便解决总线通讯时序性及功耗、传输距离、软件编程方面所存在的问题。



技术实现要素:

针对上述现有技术的不足,本发明提供了一种内置在mcu中用于实现工业总线通讯的硬件编解码方法,其采用硬件内置在mcu中的方式,结合软件流程的设计,实现了工业总线的通讯。

为实现上述目的,本发明采用的技术方案如下:

内置在mcu中用于实现工业总线通讯的硬件编解码方法,包括内置在mcu中的编解码模块,该编解码模块由解码模块和发码模块组成,其中,所述的解码模块用于测量多个事件之间的脉冲宽度并将其解析成数字信号后存放在mcu的解码数据寄存器中;所述的发码模块用于将数字信号调制成对应的脉冲宽度数据,并存放至mcu的发码数据寄存器中,再以高低电平的形式发送;

所述的编解码方法则包括解码模式和发码模式,其中,

解码模式包括以下步骤:

(1)设置解码触发机制,一旦触发,则执行步骤(2);

(2)解码模块连续测量出多个事件之间的脉冲宽度值;

(3)解码模块将其中两个事件之间的脉冲宽度值与mcu预设的范围值进行比较,如果脉冲宽度值未超出预设的范围值,则执行步骤(4);如果超出预设的范围值,则解码模块判定解码出现错误,重新测量该两个事件之间的脉冲宽度值,并继续进行比较,直至该脉冲宽度值在预设的范围值内后,执行步骤(4);

(4)解码模块将脉充宽度值转换为由数字编码代表的0/1逻辑值,然后装入至mcu的移位计数器中;

(5)循环步骤(3)、(4),然后存储已成帧字节于mcu的解码数据寄存器中;

(6)mcu判断数字是否接收完成,是,则响应中断,否,则继续循环步骤(1)~(5);

发码模式包括以下步骤:

(1)发码模块判断是否有数据发送,是,则按位调制出与数据位对应的脉充宽度固定值,执行步骤(2);否则继续等待;

(2)发码模块按位发送脉充宽度固定值,发送长度自动减一;

(3)当一位发送完成后,继续按步骤(2)的方式发送,直至发码模块判断数据发送完成或中止发送后响应中断;

(4)重复执行步骤(1)~(3)。

具体地说,所述解码模式中的步骤(2)包括以下步骤:

(2a)解码模块自动捕捉一个数据边沿响应中断,置以数据timea;

(2b)测量下一个数据边沿捕捉响应中断,置以数据timeb;

(2c)按照步骤(2b)所述的方式进行循环,最终获得数据timea、timeb、timec……,执行步骤(2d);

(2d)采用后一位捕捉的边沿数据减去前一位边沿数据的方式,依次捕捉到多个事件之间的脉冲宽度值。

进一步地,所述的解码模块在将已成帧字节存储于mcu的解码数据寄存器后,可以直接读取解码数据寄存器中的数据。

再进一步地,所述发码模式步骤(1)中的按位调制出与数据位对应的脉冲宽度固定值的具体过程如下:

(a)发码模块将接收中的已成帧数据直接存放至mcu的发码数据寄存器中,并加载到发送移位寄存器;

(b)发码模块将发送移位寄存器中的数据按位调制出数据位对应的脉冲宽度固定值。

与现有技术相比,本发明具有以下有益效果:

(1)本发明在mcu中内置了专用的编解码模块,可以自动捕捉事件的脉冲信号宽度,然后将其直接转换为数字逻辑值后自动装入至mcu的移位计数器中,如此一来,一方面可以克服不同mcu由于性能差异而存在中断的延时时间不同的问题;另一方面,即使有其他外部中断的产生,解码响应中断的延时性也不会受到任何影响。

(2)本发明所采用的解码模块,在结合mcu的预设值范围后,可以自动对解码是否有误进行判断,同时,解码模块在将数据存放至mcu的解码数据寄存器中后,还可以直接读取解码数据寄存器中的数据,从而判断解码的完整性,如此也进一步确保了解码的精度。

(3)本发明在发码时,以前述解码的数据为基准,先将数据按位调制出与数据位对应的脉冲宽度固定值(采用依次自动捕捉每个数据边沿响应中断,并以后一位边沿数据减去前一位边沿数据的方式获得多个事件之间的脉冲宽度值),然后再按位的方式发送,发送时长度自动减一,如此既确保了编码的准确性,又能满足总线通讯对时序性的要求,增强了总线抗干扰的能力,很好地确保了系统整体的稳定性和一致性。

(4)本发明由于在mcu中内置了编解码模块,该编解码模块为固定功能产品,总线解码的脉冲宽度值无需在mcu中以数组形式进行存放,因而本发明在实际应用时,既能避免因为不同mcu而导致的软件编写难度大的问题,节约了flash空间,同时还能有效地降低mcu的功耗(无需让mcu时刻保持高频工作),并且mcu也无需在通讯上消耗过多的资源,从而不仅从整体上节约了开发的时间,降低了开发成本,而且也确保了系统的稳定性,使其信号传输的距离得到了很好的保障。

附图说明

图1为本发明中编解码模块内置在mcu的示意图。

图2为本发明的流程示意图。

具体实施方式

下面结合附图说明和实施例对本发明作进一步说明,本发明的方式包括但不仅限于以下实施例。

如图1所示,本发明提供了一种编解码模块,其可内置于mcu中,依靠与mcu的硬件配合,结合软件流程的设计,实现了工业总线的通讯。本发明的编解码模块在使用时能自动判断脉冲信号的宽度并将其解析成数字信号存放在mcu中,然后在发送时再按位调制出与数据位对应的脉冲宽度固定值,最后以高低电平的形式进行发送。

为了实现上述功能,本发明的工作流程分为解码模式和发码模式(如图2所示),分别如下:

解码模式

首先,设置一个解码触发机制,一旦触发,则解码模块会连续测量出多个事件(例如事件a、事件b、事件c,等等)之间的脉冲宽度值。具体的测量方式如下:

(1)自动捕捉一个数据边沿响应中断,置以数据timea;

(2)测量下一个数据边沿捕捉响应中断,置以数据timeb;

(3)按照步骤(2)所述的方式进行循环,最终获得数据timea、timeb、timec……,执行步骤(4);

(4)采用后一位捕捉的边沿数据减去前一位边沿数据的方式(例如timeb-timea、timec-timeb),依次捕捉到多个事件之间的脉冲宽度值。

获得多个事件之间的脉冲宽度值后,解码模块将其中两个事件之间的脉冲宽度值与mcu预设的范围值进行比较,如果脉冲宽度值未超出预设的范围值,则解码模块将脉冲宽度值转换为由数字编码代表的0/1逻辑值,然后装入至mcu的移位计数器中。

如果脉冲宽度值超出预设的范围值(也就是大于最大值或小于最小值),则解码模块判定解码出现错误,重新测量该两个事件之间的脉冲宽度值,并继续进行比较,直至该脉冲宽度值在预设的范围值内后,将脉冲宽度值转换为由数字编码代表的0/1逻辑值,并装入至mcu的移位计数器中(本实施例采用8位计数器)。

反复转换脉冲宽度值,然后存储已成帧字节(8位)于mcu的解码数据寄存器中(每个字节会产生一次中断,解码模块可以直接读取解码数据寄存器中的数据,确认解码的完整性),直至当mcu判断数字已经接收完成时,响应中断。

发码模式

首先是设置一个发送模式,然后发码模块会判断是否有数据发送(解码参照协议进行数据发送),是,则按位调制出与数据位对应的脉冲宽度固定值;否则继续等待。按位调制出与数据位对应的脉冲宽度固定值的具体过程如下:

(1)发码模块将接收中的已成帧数据直接存放至mcu的发码数据寄存器中,并加载到发送移位寄存器;

(2)发码模块将发送移位寄存器中的数据按位调制出数据位对应的脉冲宽度固定值。

调制出脉冲宽度固定值后,发码模块按位将其发送,此时,发送长度会自动减一。当一位发送完成后,继续按位的方式发送(发送长度继续自动减一),直至发码模块判断数据发送完成或中止发送后响应中断。

通过以上流程,即可实现工业总线信号的编解码。

本发明依靠软硬件的有效结合,从根本上解决了传统方式所存在的技术问题,既能确保总线通讯的时序性,降低开发难度和开发成本,而且编解码精度高,并且从整体上确保了系统的稳定性、一致性以及信号传输的距离。因此,本发明适于推广应用,其将工业总线通讯的设计高度提升到了一个新的档次,相比现有技术来说,本发明具有突出的实质性特点和显著的进步。

上述实施例仅为本发明的优选实施方式之一,不应当用于限制本发明的保护范围,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内。

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