CN108958114B - 内置在mcu中用于实现工业总线通讯的硬件编解码方法 - Google Patents

内置在mcu中用于实现工业总线通讯的硬件编解码方法 Download PDF

Info

Publication number
CN108958114B
CN108958114B CN201810765299.8A CN201810765299A CN108958114B CN 108958114 B CN108958114 B CN 108958114B CN 201810765299 A CN201810765299 A CN 201810765299A CN 108958114 B CN108958114 B CN 108958114B
Authority
CN
China
Prior art keywords
data
pulse width
decoding
mcu
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810765299.8A
Other languages
English (en)
Other versions
CN108958114A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Modern Single Chip Microcomputer (hong Kong) Co Ltd
Sichuan Saike Security Technology Co Ltd
Original Assignee
Modern Single Chip Microcomputer (hong Kong) Co Ltd
Sichuan Saike Security Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Modern Single Chip Microcomputer (hong Kong) Co Ltd, Sichuan Saike Security Technology Co Ltd filed Critical Modern Single Chip Microcomputer (hong Kong) Co Ltd
Priority to CN201810765299.8A priority Critical patent/CN108958114B/zh
Publication of CN108958114A publication Critical patent/CN108958114A/zh
Application granted granted Critical
Publication of CN108958114B publication Critical patent/CN108958114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23146Programmable, reconfigurable via microprocessor or coding switches

Abstract

本发明公开了一种内置在MCU中用于实现工业总线通讯的硬件编解码方法,包括内置在MCU中的编解码模块,该编解码模块由解码模块和发码模块组成,其中,所述的解码模块用于测量多个事件之间的脉冲宽度并将其解析成数字信号后存放在MCU的解码数据寄存器中;所述的发码模块用于将数字信号调制成对应的脉冲宽度数据,并存放至MCU的发码数据寄存器中,再以高低电平的形式发送。本发明采用自行设计的解码模式和发码模式来实现工业总线脉冲信号的编解码工作,从根本解决了传统方式所存在的技术问题,既能确保总线通讯的时序性,降低开发难度和开发成本,而且编解码精度高,并且从整体上确保了系统的稳定性、一致性以及信号传输的距离,因此,本发明适于推广应用。

Description

内置在MCU中用于实现工业总线通讯的硬件编解码方法
技术领域
本发明涉及消防技术领域,具体涉及的是一种内置在MCU中用于实现工业总线通讯的硬件编解码方法。
背景技术
目前,在工业总线中多数采用MBUS、CAN、RS485等总线进行通讯,在这些总线中,可以实现供电总线通讯只有MBUS或其他特定消防总线。
由于没有统一的标准,消防总线在消防行业中应用时存在着性能参差不齐的情况,例如供电性能或智能性。特别是为了实现工业总线上的解码,都是采用纯软件方式实现:例如通过MCU的外部中断+Timer配合记录事件的产生。由于不同MCU之间性能的差异,采用上述方式将会导致进入中断的延时时间不同,此时加上其他外部中断的产生,最终会造成中断存在不确定的延时性,进而影响了解码的精度。
再因为消防总线一般是以脉冲宽度进行编码,所以不确定的延时也会导致编码出现不确定的问题。由于消防总线通讯对时序性的要求非常高,因而采用纯软件的方式会对整个消防系统造成很强的干扰性,严重影响了系统的稳定性和一致性。
此外,在现有的工业总线编解码过程中,脉冲宽度值都是MCU软件以数组的方式进行存放,这需要MCU高频率不停的工作,由此而带来的后果是,既增加了整个系统的功耗,而且也影响到了信号的传输距离,并且在开发过程中,软件编写的难度较大,耗时也长。
因此,有必要对现有的工业总线,尤其消防总线的通讯方式进行改进,以便解决总线通讯时序性及功耗、传输距离、软件编程方面所存在的问题。
发明内容
针对上述现有技术的不足,本发明提供了一种内置在MCU中用于实现工业总线通讯的硬件编解码方法,其采用硬件内置在MCU中的方式,结合软件流程的设计,实现了工业总线的通讯。
为实现上述目的,本发明采用的技术方案如下:
内置在MCU中用于实现工业总线通讯的硬件编解码方法,包括内置在MCU中的编解码模块,该编解码模块由解码模块和发码模块组成,其中,所述的解码模块用于测量多个事件之间的脉冲宽度并将其解析成数字信号后存放在MCU的解码数据寄存器中;所述的发码模块用于将数字信号调制成对应的脉冲宽度数据,并存放至MCU的发码数据寄存器中,再以高低电平的形式发送;
所述的编解码方法则包括解码模式和发码模式,其中,
解码模式包括以下步骤:
(S1)设置解码触发机制,一旦触发,则执行步骤(S2);
(S2)解码模块连续测量出多个事件之间的脉冲宽度值;
(S3)解码模块将其中两个事件之间的脉冲宽度值与MCU预设的范围值进行比较,如果脉冲宽度值未超出预设的范围值,则执行步骤(S4);如果超出预设的范围值,则解码模块判定解码出现错误,重新测量该两个事件之间的脉冲宽度值,并继续进行比较,直至该脉冲宽度值在预设的范围值内后,执行步骤(S4);
(S4)解码模块将脉冲宽度值转换为由数字编码代表的0/1逻辑值,然后装入至MCU的移位计数器中;
(S5)循环步骤(S3)、(S4),然后存储已成帧字节于MCU的解码数据寄存器中;
(S6)MCU判断数字是否接收完成,是,则响应中断,否,则继续循环步骤(S1)~(S5);
发码模式包括以下步骤:
(Y1)发码模块判断是否有数据发送,是,则按位调制出与数据位对应的脉冲宽度固定值,执行步骤(Y2);否则继续等待;
(Y2)发码模块按位发送脉冲宽度固定值,发送长度自动减一;
(Y3)当一位发送完成后,继续按步骤(2)的方式发送,直至发码模块判断数据发送完成或中止发送后响应中断;
(Y4)重复执行步骤(Y1)~(Y3)。
进一步地,所述解码模式中的步骤(S2)包括以下步骤:
(S2a)解码模块自动捕捉一个数据边沿响应中断,置以数据timeA;
(S2b)测量下一个数据边沿捕捉响应中断,置以数据timeB;
(S2c)按照步骤(S2b)所述的方式进行循环,最终获得数据timeA、timeB、timeC……,执行步骤(S2d);
(S2d)采用后一位捕捉的边沿数据减去前一位边沿数据的方式,依次捕捉到多个事件之间的脉冲宽度值。
进一步地,所述的解码模块在将已成帧字节存储于MCU的解码数据寄存器后,可以直接读取解码数据寄存器中的数据。
具体地,所述发码模式步骤(Y1)中的按位调制出与数据位对应的脉冲宽度固定值的具体过程如下:
(Y1a)发码模块将接收中的已成帧数据直接存放至MCU的发码数据寄存器中,并加载到发送移位寄存器;
(Y1b)发码模块将发送移位寄存器中的数据按位调制出数据位对应的脉冲宽度固定值。
与现有技术相比,本发明具有以下有益效果:
(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,等等)之间的脉冲宽度值。具体的测量方式如下:
(S2a)自动捕捉一个数据边沿响应中断,置以数据timeA;
(S2b)测量下一个数据边沿捕捉响应中断,置以数据timeB;
(S2c)按照步骤(S2b)所述的方式进行循环,最终获得数据timeA、timeB、timeC……,执行步骤(S2d);
(S2d)采用后一位捕捉的边沿数据减去前一位边沿数据的方式(例如timeB-timeA、timeC-timeB),依次捕捉到多个事件之间的脉冲宽度值。
获得多个事件之间的脉冲宽度值后,解码模块将其中两个事件之间的脉冲宽度值与MCU预设的范围值进行比较,如果脉冲宽度值未超出预设的范围值,则解码模块将脉冲宽度值转换为由数字编码代表的0/1逻辑值,然后装入至MCU的移位计数器中。
如果脉冲宽度值超出预设的范围值(也就是大于最大值或小于最小值),则解码模块判定解码出现错误,重新测量该两个事件之间的脉冲宽度值,并继续进行比较,直至该脉冲宽度值在预设的范围值内后,将脉冲宽度值转换为由数字编码代表的0/1逻辑值,并装入至MCU的移位计数器中(本实施例采用8位计数器)。
反复转换脉冲宽度值,然后存储已成帧字节(8位)于MCU的解码数据寄存器中(每个字节会产生一次中断,解码模块可以直接读取解码数据寄存器中的数据,确认解码的完整性),直至当MCU判断数字已经接收完成时,响应中断。
发码模式
首先是设置一个发送模式,然后发码模块会判断是否有数据发送(解码参照协议进行数据发送),是,则按位调制出与数据位对应的脉冲宽度固定值;否则继续等待。按位调制出与数据位对应的脉冲宽度固定值的具体过程如下:
(Y1a)发码模块将接收中的已成帧数据直接存放至MCU的发码数据寄存器中,并加载到发送移位寄存器;
(Y1b)发码模块将发送移位寄存器中的数据按位调制出数据位对应的脉冲宽度固定值。
调制出脉冲宽度固定值后,发码模块按位将其发送,此时,发送长度会自动减一。当一位发送完成后,继续按位的方式发送(发送长度继续自动减一),直至发码模块判断数据发送完成或中止发送后响应中断。
通过以上流程,即可实现工业总线信号的编解码。
本发明依靠软硬件的有效结合,从根本上解决了传统方式所存在的技术问题,既能确保总线通讯的时序性,降低开发难度和开发成本,而且编解码精度高,并且从整体上确保了系统的稳定性、一致性以及信号传输的距离。因此,本发明适于推广应用,其将工业总线通讯的设计高度提升到了一个新的档次,相比现有技术来说,本发明具有突出的实质性特点和显著的进步。
上述实施例仅为本发明的优选实施方式之一,不应当用于限制本发明的保护范围,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内。

Claims (4)

1.内置在MCU中用于实现工业总线通讯的硬件编解码方法,其特征在于,包括内置在MCU中的编解码模块,该编解码模块由解码模块和发码模块组成,其中,所述的解码模块用于测量多个事件之间的脉冲宽度并将其解析成数字信号后存放在MCU的解码数据寄存器中;所述的发码模块用于将数字信号调制成对应的脉冲宽度数据,并存放至MCU的发码数据寄存器中,再以高低电平的形式发送;
所述的编解码方法则包括解码模式和发码模式,其中,
解码模式包括以下步骤:
(S1)设置解码触发机制,一旦触发,则执行步骤(S2);
(S2)解码模块连续测量出多个事件之间的脉冲宽度值;
(S3)解码模块将其中两个事件之间的脉冲宽度值与MCU预设的范围值进行比较,如果脉冲宽度值未超出预设的范围值,则执行步骤(S4);如果超出预设的范围值,则解码模块判定解码出现错误,重新测量该两个事件之间的脉冲宽度值,并继续进行比较,直至该脉冲宽度值在预设的范围值内后,执行步骤(S4);
(S4)解码模块将脉冲宽度值转换为由数字编码代表的0/1逻辑值,然后装入至MCU的移位计数器中;
(S5)循环步骤(S3)、(S4),然后存储已成帧字节于MCU的解码数据寄存器中;
(S6)MCU判断数字是否接收完成,是,则响应中断,否,则继续循环步骤(S1)~(S5);
发码模式包括以下步骤:
(Y1)发码模块判断是否有数据发送,是,则按位调制出与数据位对应的脉冲宽度固定值,执行步骤(Y2);否则继续等待;
(Y2)发码模块按位发送脉冲宽度固定值,发送长度自动减一;
(Y3)当一位发送完成后,继续按步骤(2)的方式发送,直至发码模块判断数据发送完成或中止发送后响应中断;
(Y4)重复执行步骤(Y1)~(Y3)。
2.根据权利要求1所述的内置在MCU中用于实现工业总线通讯的硬件编解码方法,其特征在于,所述解码模式中的步骤(S2)包括以下步骤:
(S2a)解码模块自动捕捉一个数据边沿响应中断,置以数据timeA;
(S2b)测量下一个数据边沿捕捉响应中断,置以数据timeB;
(S2c)按照步骤(S2b)所述的方式进行循环,最终获得数据timeA、timeB、timeC……,执行步骤(S2d);
(S2d)采用后一位捕捉的边沿数据减去前一位边沿数据的方式,依次捕捉到多个事件之间的脉冲宽度值。
3.根据权利要求1或2所述的内置在MCU中用于实现工业总线通讯的硬件编解码方法,其特征在于,所述的解码模块在将已成帧字节存储于MCU的解码数据寄存器后,可以直接读取解码数据寄存器中的数据。
4.根据权利要求1或2所述的内置在MCU中用于实现工业总线通讯的硬件编解码方法,其特征在于,所述发码模式步骤(Y1)中的按位调制出与数据位对应的脉冲宽度固定值的具体过程如下:
(Y1a)发码模块将接收中的已成帧数据直接存放至MCU的发码数据寄存器中,并加载到发送移位寄存器;
(Y1b)发码模块将发送移位寄存器中的数据按位调制出数据位对应的脉冲宽度固定值。
CN201810765299.8A 2018-07-12 2018-07-12 内置在mcu中用于实现工业总线通讯的硬件编解码方法 Active CN108958114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810765299.8A CN108958114B (zh) 2018-07-12 2018-07-12 内置在mcu中用于实现工业总线通讯的硬件编解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810765299.8A CN108958114B (zh) 2018-07-12 2018-07-12 内置在mcu中用于实现工业总线通讯的硬件编解码方法

Publications (2)

Publication Number Publication Date
CN108958114A CN108958114A (zh) 2018-12-07
CN108958114B true CN108958114B (zh) 2020-03-24

Family

ID=64483208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810765299.8A Active CN108958114B (zh) 2018-07-12 2018-07-12 内置在mcu中用于实现工业总线通讯的硬件编解码方法

Country Status (1)

Country Link
CN (1) CN108958114B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286846B (zh) * 2019-07-25 2023-05-12 珠海格力电器股份有限公司 一种处理中断事件的方法和设备
CN111083028A (zh) * 2019-11-08 2020-04-28 中国科学院福建物质结构研究所 单总线通信方法及系统
CN111405286B (zh) * 2020-03-30 2023-11-03 沈阳航空产业技术研究院有限公司 一种自适应编解码双线信息传输方法和装置
CN115333672A (zh) * 2022-07-18 2022-11-11 国仪石油技术(无锡)有限公司 一种基于mcu的1553总线解码方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912900A (zh) * 2006-07-31 2007-02-14 华为技术有限公司 一种解码器及射频卡
CN102708665A (zh) * 2012-06-04 2012-10-03 深圳市励创微电子有限公司 一种宽频编码信号检测电路及其无线遥控信号解码电路
CN202694547U (zh) * 2012-06-04 2013-01-23 深圳市励创微电子有限公司 一种宽频编码信号检测电路及其无线遥控信号解码电路
CN105871381A (zh) * 2016-05-27 2016-08-17 四川赛科安全技术有限公司 一种可供电的工业总线终端实现电路及其解码方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246683A1 (en) * 2009-03-27 2010-09-30 Jennifer Lois Harmon Webb Error Resilience in Video Decoding
US8605912B2 (en) * 2010-04-23 2013-12-10 Conexant Systems, Inc. Biphase mark code decoder and method of operation
CN102467816B (zh) * 2010-11-18 2015-12-16 深圳艾科创新微电子有限公司 一种红外线遥控信号解码方法及装置
CN103166649B (zh) * 2011-12-19 2016-06-15 国际商业机器公司 用于解码循环码的方法、装置和解码器
US8564365B2 (en) * 2012-01-20 2013-10-22 Qualcomm Incorporated Wide input bit-rate, power efficient PWM decoder
CN103595420B (zh) * 2012-08-13 2018-02-13 上海华虹集成电路有限责任公司 解码读卡器发送的type a信号的解码器
CN102945599B (zh) * 2012-11-17 2014-03-26 福州大学 自适应多制式红外解码方法、模块及用该模块的控制电路
CN103729998A (zh) * 2013-12-09 2014-04-16 乐视致新电子科技(天津)有限公司 一种解码方法及装置
CN105760800B (zh) * 2016-02-05 2018-05-25 大唐微电子技术有限公司 一种数据解码电路及数据解码方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912900A (zh) * 2006-07-31 2007-02-14 华为技术有限公司 一种解码器及射频卡
CN102708665A (zh) * 2012-06-04 2012-10-03 深圳市励创微电子有限公司 一种宽频编码信号检测电路及其无线遥控信号解码电路
CN202694547U (zh) * 2012-06-04 2013-01-23 深圳市励创微电子有限公司 一种宽频编码信号检测电路及其无线遥控信号解码电路
CN105871381A (zh) * 2016-05-27 2016-08-17 四川赛科安全技术有限公司 一种可供电的工业总线终端实现电路及其解码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
二总线火灾报警和控制系统编码与通讯的一种方法;金余恒;《核电子学与探测技术》;19950320;第15卷(第2期);第79-82页 *

Also Published As

Publication number Publication date
CN108958114A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN108958114B (zh) 内置在mcu中用于实现工业总线通讯的硬件编解码方法
US9264986B2 (en) System and method for reducing power consumption in a wireless communication system
US20200142854A1 (en) Multilane heterogeneous serial bus
CN102833829B (zh) 基于tdma系统的待机唤醒方法
JP4318566B2 (ja) 高速の無線通信に適するハイブリット型データ伝送装置及びその方法
US5512893A (en) Keypad scanner process and device and cordless telephone employing the mechanism
CN107436851B (zh) 串行外设接口四线隔离系统及其控制方法
CN114499745A (zh) 一种通信方法及相关设备
US10402365B2 (en) Data lane validation procedure for multilane protocols
US10733121B2 (en) Latency optimized I3C virtual GPIO with configurable operating mode and device skip
WO2019104531A1 (zh) 一种基于查询方式模拟串口通信的方法和装置
CN204440629U (zh) 一种低功耗总线数据采集器
US5790833A (en) Integrated circuit, having microprocessor and telephony peripheral circuitry, having capability of being placed in partial emulation mode
WO2024045691A1 (zh) 通信方法、设备和存储介质
CN111988417A (zh) 物理网终端的通信控制方法
JP7367061B2 (ja) ウェイクアップ信号監視指示
CN215494580U (zh) 一种微控制器的单线仿真装置
CN111431631B (zh) 一种双向通信方法、接收设备、发送设备及通讯系统
CN213094183U (zh) 串行编码电路
CN113741217A (zh) 微控制器的单线仿真装置和编码解码方法
EP3893413B1 (en) Data transmission method and communication device
CN114625580A (zh) 一种基于arm swd调试协议的单线调试系统及方法
CN116561041B (zh) 一种单总线通信系统及方法
CN106559861A (zh) 蓝牙设备数据传输方法及装置
WO2022199556A1 (zh) 一种数据发送方法、信号处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant