CN107977326A - Dmx数据双缓冲方法、装置 - Google Patents
Dmx数据双缓冲方法、装置 Download PDFInfo
- Publication number
- CN107977326A CN107977326A CN201711118661.4A CN201711118661A CN107977326A CN 107977326 A CN107977326 A CN 107977326A CN 201711118661 A CN201711118661 A CN 201711118661A CN 107977326 A CN107977326 A CN 107977326A
- Authority
- CN
- China
- Prior art keywords
- buff
- data
- addresses
- dmx
- flag bit
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种DMX数据双缓冲方法,具体按照以下步骤实施:步骤1:获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;步骤2:当接收到包头,根据标志位获取下一个数据包存放的BUFF地址;当接收到下一个包头,根据标志位获取下一个数据包存放的BUFF地址;步骤3:重复执行,同时对获取得到的BUFF数据进行处理。本发明还公开了一种DMX数据双缓冲装置。本发明一种DMX数据双缓冲方法,采用两个BUFF地址对获取到的DMX数据进行缓冲,这样两个BUFF相互没有冲突,数据不会相互影响。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种DMX数据双缓冲方法、装置。
背景技术
DMX512固定波特率为250kbps,数据长度为512个数据,传输一个88us的低电平数据,作为一包数据的起始帧头,512字节的数据包之前还有一个字节,表示设备的代号或自定义用途,通常是0,该字节的数据可用自动写码命令之用,目前控台厂家设计的控制器发出来的数据有的是64、256个字节非标DMX512信号,所有通常我们接收到了包头(包数据的起始帧头)认为接收完一个数据包(不管是64、256、512个字节),紧接着我们会对接收到的数据进行处理,同时DMX的数据不断的发过来(1个字节的时间为44us速度非常快),很有可能还没有处理完刚刚接收的数据,后面来的数据就把上一半数据包的前面部分数据覆盖掉了,就会出现灯具不同步的现象,还有当几台灯的DMX地址间隔得比较远的时候,不同步的现象更加明显更加容易出现,比如:XY运动系统不一致、颜色系统打出来的颜色不一致等等。
发明内容
本发明的目的是提供一种DMX数据双缓冲方法、装置,解决了现有技术中存在的还没有处理完刚刚接收的数据,后面来的数据就把上一半数据包的前面部分数据覆盖掉的问题。
一种DMX数据双缓冲方法,具体按照以下步骤实施:
步骤1:获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;
步骤2:当接收到包头,根据标志位获取下一个数据包存放的BUFF地址;当接收到下一个包头,根据标志位获取下一个数据包存放的BUFF地址;
步骤3:重复执行,同时对获取得到的BUFF数据进行处理。
在其中一个实施例中,所述BUFF1和所述BUFF2为两个长度一样、地址不同的BUFF。
在其中一个实施例中,所述步骤2中根据标志位获取下一个数据存放的BUFF地址具体为:
当标志位为0时,获取下一个数据包存放的BUFF地址为BUFF2;
当标志位为1时,获取下一个数据包存放的BUFF地址为BUFF1。
在其中一个实施例中,所述步骤2中根据标志位获取下一个数据包存放的BUFF地址具体为:
当标志位为0时,获取下一个数据包存放的BUFF地址为BUFF1;
当标志位为1时,获取下一个数据包存放的BUFF地址为BUFF2。
在其中一个实施例中,所述对获取得到的BUFF数据进行处理后,将处理后的数据发送到各个副板。
一种DMX数据双缓冲装置,包括:
地址获取模块,用于获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;
BUFF设置模块,用于根据标志位设置接收BUFF;
数据处理模块,用于对获取得到的BUFF数据进行处理。
本发明的有益效果是:本发明一种DMX数据双缓冲方法,采用两个BUFF地址对获取到的DMX数据进行缓冲,这样两个BUFF相互没有冲突,数据不会相互影响。
附图说明
图1是本发明DMX数据双缓冲方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种DMX数据双缓冲方法,具体按照以下步骤实施:
步骤1:获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;
其中,所述BUFF1和所述BUFF2为两个长度一样、地址不同的BUFF。
步骤2:当接收到包头,根据标志位获取下一个数据包存放的BUFF地址;当接收到下一个包头,根据标志位获取下一个数据包存放的BUFF地址。
其中,根据标志位获取下一个数据包存放的BUFF地址具体为:
当标志位为0时,获取下一个数据包存放的BUFF地址为BUFF2;
当标志位为1时,获取下一个数据包存放的BUFF地址为BUFF1。
或者,
当标志位为0时,获取下一个数据包存放的BUFF地址为BUFF1;
当标志位为1时,获取下一个数据包存放的BUFF地址为BUFF2。
即,使用DMX数据双缓冲机制,一个数据包接完成,设置下一个数据包存放到另一个BUFF地址,两个BUFF相互没有冲突,数据不会互相影响。
步骤3:重复执行,同时对获取得到的BUFF数据进行处理。
上述对获取得到的BUFF数据进行处理后,将处理后的数据发送到各个副板,包括XY控制系统、颜色控制系统、图案控制系统、其他组件控制系统。
本发明的工作原理是:通常我们接收到了包头(包数据的起始帧头)认为接收完一个数据包,但同时也是下一个数据包的开始,DMX数据的接收是通过串口中断自动接收,接收到数据就会把缓冲区的数据更新,每个字节更新的时间是44us(0.000044S),速度非常的快,所以有时候还没来得及处理这一包数据,下一包的数据已经连续的发过来,这样就会把前面的数据给覆盖掉了,这时候一个BUFF里面就用两个数据包的数据:前面某几个是当前数据包的后面的大部分数据就是上一个数据的数据。采用DMX数据双缓冲机制避免了上述数据覆盖的问题,因为一个数据包接收完成,设置下一个数据包存放到另一个BUFF地址,两个BUFF相互没有冲突,数据不会互相影响。
具体地,在CPU的SRAM里面开辟两个长度一样、地址不同的BUFF,因为地址不一样所以数据相互没有冲突、不会互相影响。在CPU的SRAM里面申请一个标准位,数据接收完会根据这个标准位的标志去判断当前的BUFF,从而设置下一包数据存放的BUFF地址。处理BUFF的数据的时候也是根据这个标志来处理数据。
本发明一种DMX数据双缓冲方法,采用两个BUFF地址对获取到的DMX数据进行缓冲,这样两个BUFF相互没有冲突,数据不会相互影响。
本发明一种DMX数据双缓冲装置,包括:
地址获取模块,用于获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;
BUFF设置模块,用于根据标志位设置接收BUFF;
数据处理模块,用于对获取得到的BUFF数据进行处理。
Claims (6)
1.一种DMX数据双缓冲方法,其特征在于,具体按照以下步骤实施:
步骤1:获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;
步骤2:当接收到包头,根据标志位获取下一个数据包存放的BUFF地址;当接收到下一个包头,根据标志位获取下一个数据包存放的BUFF地址;
步骤3:重复执行,同时对获取得到的BUFF数据进行处理。
2.根据权利要求1所述的DMX数据双缓冲方法,其特征在于,所述BUFF1和所述BUFF2为两个长度一样、地址不同的BUFF。
3.根据权利要求1所述的DMX数据双缓冲方法,其特征在于,所述步骤2中根据标志位获取下一个数据存放的BUFF地址具体为:
当标志位为0时,获取下一个数据包存放的BUFF地址为BUFF2;
当标志位为1时,获取下一个数据包存放的BUFF地址为BUFF1。
4.根据权利要求1所述的DMX数据双缓冲方法,其特征在于,所述步骤2中根据标志位获取下一个数据包存放的BUFF地址具体为:
当标志位为0时,获取下一个数据包存放的BUFF地址为BUFF1;
当标志位为1时,获取下一个数据包存放的BUFF地址为BUFF2。
5.根据权利要求1所述的DMX数据双缓冲方法,其特征在于,所述对获取得到的BUFF数据进行处理后,将处理后的数据发送到各个副板。
6.一种DMX数据双缓冲装置,其特征在于,包括:
地址获取模块,用于获取存放DMX数据的地址BUFF,BUFF包括BUFF1和BUFF2;
BUFF设置模块,用于根据标志位设置接收BUFF;
数据处理模块,用于对获取得到的BUFF数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711118661.4A CN107977326A (zh) | 2017-11-13 | 2017-11-13 | Dmx数据双缓冲方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711118661.4A CN107977326A (zh) | 2017-11-13 | 2017-11-13 | Dmx数据双缓冲方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107977326A true CN107977326A (zh) | 2018-05-01 |
Family
ID=62013457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711118661.4A Pending CN107977326A (zh) | 2017-11-13 | 2017-11-13 | Dmx数据双缓冲方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977326A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107918589A (zh) * | 2017-11-15 | 2018-04-17 | 中国计量大学 | 一种基于fpga的dmx512信号高效缓存并发系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030095125A1 (en) * | 2001-11-19 | 2003-05-22 | Samsung Electronics Co., Ltd. | Image data output controller using double buffering |
US20070297433A1 (en) * | 2006-06-26 | 2007-12-27 | Mediatek Inc. | Method and apparatus for double buffering |
CN101610407A (zh) * | 2009-07-15 | 2009-12-23 | 北京化工大学 | 以太网数据与数字视频流转换的网关实现方法 |
CN102244901A (zh) * | 2011-07-15 | 2011-11-16 | 长沙理工大学 | 传感器网络中链式多跳的双缓冲并行快速传输方法 |
CN102521269A (zh) * | 2011-11-22 | 2012-06-27 | 清华大学 | 一种基于索引的计算机连续数据保护方法 |
CN103309767A (zh) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种客户端日志处理方法和装置 |
CN106909460A (zh) * | 2017-01-24 | 2017-06-30 | 广东德诚网络科技有限公司 | 数据缓冲方法、装置及存储介质 |
-
2017
- 2017-11-13 CN CN201711118661.4A patent/CN107977326A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030095125A1 (en) * | 2001-11-19 | 2003-05-22 | Samsung Electronics Co., Ltd. | Image data output controller using double buffering |
CN1420703A (zh) * | 2001-11-19 | 2003-05-28 | 三星电子株式会社 | 使用双缓冲的图象数据输出控制器 |
US20070297433A1 (en) * | 2006-06-26 | 2007-12-27 | Mediatek Inc. | Method and apparatus for double buffering |
CN101610407A (zh) * | 2009-07-15 | 2009-12-23 | 北京化工大学 | 以太网数据与数字视频流转换的网关实现方法 |
CN102244901A (zh) * | 2011-07-15 | 2011-11-16 | 长沙理工大学 | 传感器网络中链式多跳的双缓冲并行快速传输方法 |
CN102521269A (zh) * | 2011-11-22 | 2012-06-27 | 清华大学 | 一种基于索引的计算机连续数据保护方法 |
CN103309767A (zh) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种客户端日志处理方法和装置 |
CN106909460A (zh) * | 2017-01-24 | 2017-06-30 | 广东德诚网络科技有限公司 | 数据缓冲方法、装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107918589A (zh) * | 2017-11-15 | 2018-04-17 | 中国计量大学 | 一种基于fpga的dmx512信号高效缓存并发系统 |
CN107918589B (zh) * | 2017-11-15 | 2021-05-04 | 中国计量大学 | 一种基于fpga的dmx512信号高效缓存并发系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155014B (zh) | 工业互联网现场层宽带总线实时性实现方法 | |
EP3849145A3 (en) | High speed embedded protocol for distributed control system | |
EP2017996A3 (en) | Apparatus and method for redundant connectivity and multi-channel operation of wireless devices | |
ATE421234T1 (de) | Verfahren und vorrichtung zur paketdatenübertragung | |
CN104038316B (zh) | 空间相机高可靠高时效异步串行通讯方法 | |
CN202907302U (zh) | 一种led灯串的级联结构 | |
CN103795573B (zh) | 一种网络拓扑生成方法、装置及系统 | |
CN101534249A (zh) | 一种在捆绑链路上发送数据的方法及网络设备 | |
CN103716092A (zh) | 一种总线型网络中双向光纤通信的组网系统及通信方法 | |
CN102970105B (zh) | 一种led芯片级联信号的传输方法及传输系统 | |
CN105516288B (zh) | 采用单根Serdes扩展物理接口的装置、其控制方法及控制系统 | |
CN104243083B (zh) | 一种数据映射方法、装置及电子设备 | |
CN107977326A (zh) | Dmx数据双缓冲方法、装置 | |
CN101640616B (zh) | Mac地址的回收方法和设备 | |
CN106302246A (zh) | 一种调整IPv6隧道最大传输单元的方法和装置 | |
CN115442572A (zh) | 数据传输方法及装置 | |
US8995460B1 (en) | Embedded control data in communications systems | |
CN107196879A (zh) | Udp报文的处理方法、装置以及网络转发装置 | |
CN107070809A (zh) | 一种大规模传感器数据的实时转发方法 | |
CN103152134B (zh) | 基于rtp协议的接收端重排语音包的方法和系统 | |
CN106506118B (zh) | Usxgmii多通道ipg精确补偿的方法及系统 | |
CN202817898U (zh) | 一种基于EtherCAT工业以太网的配电终端 | |
CN104717109A (zh) | 广域网链路模拟测试方法及系统 | |
CN202551082U (zh) | 一种基于fpga的千兆以太网现场总线通信装置 | |
CN109462530A (zh) | 一种基于RS422总线和Slip协议的飞机数字音频传输方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180501 |
|
RJ01 | Rejection of invention patent application after publication |