CN108958114B - 内置在mcu中用于实现工业总线通讯的硬件编解码方法 - Google Patents
内置在mcu中用于实现工业总线通讯的硬件编解码方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23146—Programmable, reconfigurable via microprocessor or coding switches
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种内置在MCU中用于实现工业总线通讯的硬件编解码方法,包括内置在MCU中的编解码模块,该编解码模块由解码模块和发码模块组成,其中,所述的解码模块用于测量多个事件之间的脉冲宽度并将其解析成数字信号后存放在MCU的解码数据寄存器中;所述的发码模块用于将数字信号调制成对应的脉冲宽度数据,并存放至MCU的发码数据寄存器中,再以高低电平的形式发送。本发明采用自行设计的解码模式和发码模式来实现工业总线脉冲信号的编解码工作,从根本解决了传统方式所存在的技术问题,既能确保总线通讯的时序性,降低开发难度和开发成本,而且编解码精度高,并且从整体上确保了系统的稳定性、一致性以及信号传输的距离,因此,本发明适于推广应用。
Description
技术领域
本发明涉及消防技术领域,具体涉及的是一种内置在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)发码模块将发送移位寄存器中的数据按位调制出数据位对应的脉冲宽度固定值。
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112017689B (zh) * | 2019-05-13 | 2024-08-02 | 厦门鼎安电子有限公司 | 一种基于单片机音频通信的实现方法 |
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)
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)
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 | 大唐微电子技术有限公司 | 一种数据解码电路及数据解码方法 |
-
2018
- 2018-07-12 CN CN201810765299.8A patent/CN108958114B/zh active Active
Patent Citations (4)
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)
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 | |
WO2021082726A1 (zh) | 数据接收和发送方法、装置、计算机设备及存储介质 | |
CN102833829B (zh) | 基于tdma系统的待机唤醒方法 | |
EP2340660A1 (en) | Apparatus for reduced mode transmission of dpcch signaling and method thereof | |
CN107748509B (zh) | 基于单片机收发控制的asi通信从机实施方法 | |
US5512893A (en) | Keypad scanner process and device and cordless telephone employing the mechanism | |
JP7367061B2 (ja) | ウェイクアップ信号監視指示 | |
CN107436851B (zh) | 串行外设接口四线隔离系统及其控制方法 | |
US20040174831A1 (en) | Hybrid-type data transmission apparatus and method suitable for high-performance wireless LAN | |
CN114499745A (zh) | 一种通信方法及相关设备 | |
WO2019104531A1 (zh) | 一种基于查询方式模拟串口通信的方法和装置 | |
CN204440629U (zh) | 一种低功耗总线数据采集器 | |
CN116981036B (zh) | 体域网中数据传输方法、装置、存储介质和电子设备 | |
WO2024045691A1 (zh) | 通信方法、设备和存储介质 | |
US20190095273A1 (en) | Parity bits location on i3c multilane bus | |
CN104251536A (zh) | 一种一对多的电流环通信方法及通讯装置 | |
CN111988417A (zh) | 物理网终端的通信控制方法 | |
CN111431631B (zh) | 一种双向通信方法、接收设备、发送设备及通讯系统 | |
CN213094183U (zh) | 串行编码电路 | |
US5812878A (en) | System for DMA transfer wherein controller waits before execution of next instruction until a counter counts down from a value loaded by said controller | |
CN113741217A (zh) | 微控制器的单线仿真装置和编码解码方法 | |
CN201623750U (zh) | 具有扩展功能的移动终端及实现移动终端扩展功能的系统 | |
CN112996206B (zh) | 一种频闪灯信息获取方法、装置和频闪灯及补光系统 | |
EP3893413B1 (en) | Data transmission method and communication device |
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 |