《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 高速數(shù)字振動信號無線接收螺旋緩沖算法
高速數(shù)字振動信號無線接收螺旋緩沖算法
2018年電子技術(shù)應(yīng)用第4期
趙立杰1,魏昊晨1,2,,田志穎1,2
1.沈陽化工大學 信息工程學院,,遼寧 沈陽110142;2.西北工業(yè)大學 航海學院,,陜西 西安710072
摘要: nRF24L01+無線設(shè)備將數(shù)據(jù)以32 B作為一個數(shù)據(jù)包進行傳輸,,但在上位機接收之后經(jīng)常發(fā)生數(shù)據(jù)包粘連和不連續(xù),致使在下一次接收之后出現(xiàn)數(shù)據(jù)不完整,。以磨機采集信號和無線傳輸系統(tǒng)為例,,系統(tǒng)需要振動產(chǎn)生的數(shù)據(jù)信號連續(xù)不斷地被傳送進來,且要保證數(shù)據(jù)包的間隔一致,。為保證接收數(shù)據(jù)的完整性和實時性,,提出一種螺旋緩沖區(qū)域模型,該模型構(gòu)造出一個環(huán)狀隊列,,可以臨時性地存儲一定量的數(shù)據(jù),,這些數(shù)據(jù)在環(huán)形隊列中時,,就可以隨時對數(shù)據(jù)進行操控,。經(jīng)過球磨機筒體振動信號采集和傳輸裝置驗證,數(shù)據(jù)僅在不同步時刻發(fā)生丟失,,大大降低了接收數(shù)據(jù)的錯誤率,,為大數(shù)據(jù)量的接收提供了一種穩(wěn)定機制。
中圖分類號: TP274
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173250
中文引用格式: 趙立杰,,魏昊晨,,田志穎. 高速數(shù)字振動信號無線接收螺旋緩沖算法[J].電子技術(shù)應(yīng)用,2018,,44(4):65-68.
英文引用格式: Zhao Lijie,,Wei Haochen,Tian Zhiying. Helical buffering algorithm for wireless receiving of high speed digital vibration signal[J]. Application of Electronic Technique,,2018,,44(4):65-68.
Helical buffering algorithm for wireless receiving of high speed digital vibration signal
Zhao Lijie1,Wei Haochen1,,2,,Tian Zhiying1,2
1.Institute of Information Engineering,,Shenyang University of Chemical Technology,,Shenyang 110142,China; 2. Institute of Navigation,,Northwestern Polytechnical University,,Xi′an 710072,China
Abstract: The way about nRF24L01+ wireless module to transmit the data takes 32 B data as a data package, and each time it will transmit one data package. Overlapping and discontinuity always occur after receiving the data by the host computer, which will lead to the next data package damaged or missed. Taking the system of ball mill signal acquisition and wireless transmission as an example, the vibration signal should be received continuously, and make sure that the packets are spaced identically. In order to ensure the data′s integrity and instantaneity, a helical buffer zone model is proposed. The model constructs a ring queue, which can temporarily store a certain amount of data, so you can manipulate the data at any time when these data are in the circular queue. After verification, the data are only missed in asynchronous time, which is known by the buffer algorithm simulation in the model of software design. This algorithm greatly reduces the error rate of data receiving,and offers a stabilisation mechanism for a large amount of data receiving.
Key words : large data reception processing,;buffer design,;algorithm model design;information processing

0 引言

    球磨機通過旋轉(zhuǎn)帶動筒體內(nèi)部的研磨介質(zhì)粉碎物料,。研磨介質(zhì)和物料在筒體旋轉(zhuǎn)過程中會不斷地撞擊筒壁內(nèi)側(cè),,相應(yīng)地在筒體表面產(chǎn)生振動響應(yīng)。文獻[1]中表明球磨機筒體表面振動信號與筒體內(nèi)部物料粉碎程度存在一定數(shù)學關(guān)系,,因此就球磨機筒體表面的振動信號分析來間接推斷和預(yù)測出球磨機內(nèi)部的負荷狀態(tài),,所以在設(shè)計球磨機負荷前端振動信號采集裝置中,要保證采集筒體表面的振動信號數(shù)據(jù)是準確,、實時和連續(xù)的,。

    根據(jù)文獻[2],磨機負荷前端振動信號采集裝置在工作時會通過nRF24L01+無線設(shè)備源源不斷地向接收端發(fā)送數(shù)據(jù),,數(shù)據(jù)傳輸速度可達到nRF24L01+的最高速度2 Mbit/s,。在如此高速的情況下,則需要確保接收端準確接收數(shù)據(jù),。nRF24L01+最大可設(shè)定在一次傳輸任務(wù)中傳遞一個包含32 B的數(shù)據(jù)的數(shù)據(jù)包,,在傳遞下一個數(shù)據(jù)包時中間需要間隔至少10 ns的冷啟動時間,這些數(shù)據(jù)包內(nèi)的數(shù)據(jù)常常在經(jīng)過協(xié)議轉(zhuǎn)換器件時發(fā)生數(shù)據(jù)丟失和粘連,。在程序的接收中斷函數(shù)中如果直接以32 B為判定依據(jù)判定出接滿一個數(shù)據(jù)包,,則會出現(xiàn)第一個數(shù)據(jù)包的后幾位和第二個數(shù)據(jù)包的前幾位組成一個32 B的數(shù)據(jù)包的情況,使數(shù)據(jù)位發(fā)生錯亂,,致使信息丟失,。

    數(shù)據(jù)緩沖和數(shù)據(jù)速度均衡在很多領(lǐng)域都有重要的應(yīng)用,例如Linux文件系統(tǒng)內(nèi)核代碼中含有inode緩沖區(qū),、dentry緩沖區(qū),、塊緩沖機制,這些對于數(shù)據(jù)IO性能有重要的作用,;在速度均衡方面,,Socket系統(tǒng)需要處理遠程主機發(fā)送過來的大量數(shù)據(jù),每一個Socket都會配套一個緩沖區(qū),,該緩沖區(qū)用于解決應(yīng)用程序?qū)懭霐?shù)據(jù)時的阻塞現(xiàn)象,。文獻[3]、文獻[4]提出的緩沖區(qū)建立方法是單環(huán)結(jié)構(gòu)可選擇阻塞和非阻塞的緩沖模型,,易于負荷均衡,,在解決球磨機振動信號連續(xù)大劑量數(shù)據(jù)時有顯著的速度均衡作用,,可消滅相鄰數(shù)據(jù)包間的延時間隔,但無法解決數(shù)據(jù)包內(nèi)數(shù)據(jù)黏連問題,。文獻[5]提出的方法具備一般性,,可應(yīng)用于連續(xù)性數(shù)據(jù)的讀取,但在本文的硬件條件限制下,,存在數(shù)據(jù)傳輸格式錯位問題,,無法套用該模型。

    綜上,,此軟件算法在整體的實時數(shù)據(jù)傳遞系統(tǒng)上要求數(shù)據(jù)是連續(xù)不斷持續(xù)供應(yīng)的,,且不能出現(xiàn)數(shù)據(jù)位錯亂。因此本文提出一個在軟件上建立的模型來解決nRF24L01+無線設(shè)備硬件規(guī)則與本設(shè)計要求的矛盾,,以及協(xié)議轉(zhuǎn)換裝置出現(xiàn)的數(shù)據(jù)位錯亂和數(shù)據(jù)不連續(xù)問題,。

1 模型結(jié)構(gòu)

    為了清晰表達螺旋緩沖模型的機構(gòu)設(shè)定和功能,使用圖1所示螺旋緩沖模型的思維導圖來解釋模型的結(jié)構(gòu)和功能,。模型設(shè)定有兩大機制,,即時間機制和空間機制。

qrs5-t1.gif

    時間機制有兩個功能,,糾正由于硬件設(shè)備自帶的緩沖功能造成的數(shù)據(jù)包內(nèi)的字節(jié)錯亂問題,。問題經(jīng)常出現(xiàn)在許多協(xié)議轉(zhuǎn)換芯片上,例如由沁恒公司生產(chǎn)的CH340串口轉(zhuǎn)USB協(xié)議的芯片中,,常常由于芯片內(nèi)部的緩沖區(qū)導致數(shù)據(jù)包錯亂,。不幸的是,本文使用的無線設(shè)備同樣具備該問題,,這個現(xiàn)象將在下一節(jié)中詳細演示,。時間機制另一個工作就是給定數(shù)據(jù)傳輸?shù)墓潭ü?jié)律,保證數(shù)據(jù)包的完整性,,使數(shù)據(jù)包不會再次錯亂。

    空間機制為文獻[3]~[5]中環(huán)形緩沖區(qū)的功能,,有一定的空間存儲數(shù)據(jù),、負載均衡作用。圖2所示為負載均衡器簡要功能示意圖,,D1,、D2、D3,、D4數(shù)據(jù)包之間的間隔差異明顯,,負載均衡器會消除這種差異,同時結(jié)合控速機制這些數(shù)據(jù)會均勻輸出,。另外,,在空間機制中還存在隱性的功能,,將設(shè)定管道為“透明的”,有指針可以隨時提取管道內(nèi)的數(shù)據(jù),,這將有助于一些做命令識別的通信數(shù)據(jù),。

qrs5-t2.gif

2 時間機制

2.1 功能概述

    時間機制是數(shù)據(jù)包接收的時間測量工具,數(shù)據(jù)包與數(shù)據(jù)包之間接收的間隔為10 μs,,以此來判定分時使能數(shù)據(jù)接收功能,。在設(shè)定相應(yīng)的計時時間后,超過計時數(shù)時則使能接收功能,,接收一組數(shù)據(jù)包完畢后清除超時標記位,,數(shù)據(jù)指針歸0,數(shù)據(jù)推入到緩沖區(qū)后被清除,,等到下一次超時計時使能開啟再接收下一個數(shù)據(jù)包,。在超時標志位被清除之后,此時無法接收任何數(shù)據(jù),。該機制能有效地解決由于包和包之間時間間隔問題導致的數(shù)據(jù)位錯亂問題,。要實現(xiàn)超時機制,務(wù)必要求處理器具備以下功能:

    (1)具備定時器并且定時器具有中斷功能,;

    (2)具備可讀電平狀態(tài)的IO口或外部中斷,。

2.2 原理介紹

    時間機制本質(zhì)上是對有時間間隔的數(shù)據(jù)包進行同步讀取,保證數(shù)據(jù)是一個包一個包接收的,,而不是一個包的后半部分和下一個包的前半部分組成32 B的數(shù)據(jù)包,,圖3所示為數(shù)據(jù)包被拆開的一種可能性,錯位后組成的數(shù)據(jù)包包含了1 μs的時間延時分量,,不但影響速度,,還會因為數(shù)據(jù)斷載導致包丟失。

qrs5-t3.gif

    時間機制限定了以上在時間上自由讀取,,與無線發(fā)送數(shù)據(jù)包函數(shù)配合,,設(shè)定布爾標志位,判定可讀和不可讀兩種狀態(tài),。圖4所示為超時機制和發(fā)送函數(shù)配合的同步原理,,超時機制進行計時,如果超時則將布爾變量設(shè)定為“真”,,并停止計時,,此時,整個發(fā)送系統(tǒng)進入到可讀狀態(tài),,32 B數(shù)據(jù)發(fā)送完畢之后,,發(fā)送函數(shù)會將布爾標志位置為“假”,此時,,整個發(fā)送系統(tǒng)進入到不可讀狀態(tài),,計時系統(tǒng)開始計時等待下一個周期的數(shù)據(jù)包,,重復(fù)上述操作。

qrs5-t4.gif

    引入時間機制,,若發(fā)生數(shù)據(jù)錯位,,如圖5所示,在第二個包發(fā)送完畢后由發(fā)送函數(shù)拉低標志位開始計時,,恢復(fù)同步時序,。

qrs5-t5.gif

3 空間機制

3.1 功能概述

    任何系統(tǒng)中都有自己的一套數(shù)據(jù)管理方法,數(shù)據(jù)管理影響著整個系統(tǒng)的性能,。在第1節(jié)中介紹了時間機制,,解決了數(shù)據(jù)包黏連和錯位的問題,但在接收過程中數(shù)據(jù)包和數(shù)據(jù)包之間存在1 μs的延遲,,在對球磨機負荷振動信號的采集過程中,,不允許以32 B為分割,要求數(shù)據(jù)是無間斷連續(xù)的,。在螺旋緩沖中的數(shù)據(jù)還可以不斷對緩沖區(qū)域內(nèi)的數(shù)據(jù)進行判定,,所以就可以應(yīng)用于一般通信模型的響應(yīng)命令模式。

3.2 螺旋緩沖區(qū)模型

    螺旋緩沖區(qū)的構(gòu)想源于數(shù)據(jù)結(jié)構(gòu)中先進先出的線性隊列,。通常在C語言中定義一個線形隊列使用一維數(shù)組的方式,,數(shù)組索引即是隊列中的序號。螺旋緩沖區(qū)也為一個先進先出的隊列,,但在定義方式上采取二維數(shù)組的方式,,例如data[x][y],索引代表在y層螺旋上的第x個元素,,如圖6所示,。螺旋緩沖區(qū)具有以下特性:

    (1)可以有N層;

    (2)每一層環(huán)形數(shù)據(jù)滿了之后可以進位到下一層,,也可以在自己的一層形成首位相接的回環(huán),;

    (3)定義4個指針,分別為寫指針,、讀指針,、層指針和位置指針,可以實現(xiàn)任意位置的數(shù)據(jù)讀寫,;

    (4)出口釋放速度可定義,實現(xiàn)非勻速數(shù)據(jù)進入,,數(shù)據(jù)勻速輸出,。

qrs5-t6.gif

3.3 速度討論

    在磨機振動信號采集過程中,nRF24L01+會以32 B為一個數(shù)據(jù)包向螺旋緩沖區(qū)內(nèi)推入,,每個字節(jié)數(shù)據(jù)的時序圖如圖7所示,。

qrs5-t7.gif

    在該設(shè)備中,,每當CLK信號的上升沿到來,無線設(shè)備寫1 bit數(shù)據(jù),,寫滿8 bit的數(shù)據(jù)產(chǎn)生一個字節(jié),。上升沿來臨需要40 ns的時間,傳遞一個字節(jié)則需要640 ns的時間,,字節(jié)和字節(jié)之間還需要10 μs的延遲,。為了使輸出速度平均,需要在螺旋緩沖區(qū)的出口處設(shè)立控速機制,,實現(xiàn)勻速輸出,。

3.4 作為環(huán)形緩沖

    圖8所示為環(huán)形緩沖區(qū)模型圖,環(huán)形緩沖區(qū)域為螺旋緩沖區(qū)其中的某一層次的俯視圖,。

qrs5-t8.gif

    “N”處為環(huán)形緩沖區(qū)中最后一個元素,,這個元素可以和“1”處封閉起來作為環(huán)形緩沖區(qū),也可以斷開后與上一層環(huán)和下一層環(huán)連接上,。在球磨機振動信號采集中,,需要大型的緩沖區(qū)域,則需要每一層的圓環(huán)首尾相接,。當磨機振動信號裝置處于命令模式時,,需要對圓環(huán)進行銜接,形成閉合的圓環(huán),,啟用讀寫指針,,完成對命令的實時響應(yīng)。

    文獻[2]中給出單個高性能環(huán)形緩沖區(qū)模型,,在模型中有一個不可忽視的弊端,,即沒有應(yīng)急命令區(qū)域。在整個系統(tǒng)設(shè)計過程中,,應(yīng)急操作尤為重要,,而單個圓環(huán)需要對圓環(huán)內(nèi)部數(shù)據(jù)進行處理完畢后,才能響應(yīng)應(yīng)急命令,。而在本文中給出的螺旋緩沖,,可以啟用兩層圓環(huán),其中一個作為應(yīng)急命令處理,,一旦有數(shù)據(jù)優(yōu)先對其進行處理,。

4 算法實現(xiàn)

    基于文獻[1],利用已采集好的離散磨機振動信號作為數(shù)據(jù)樣本,,對該系統(tǒng)中的數(shù)據(jù)模型實行可控速數(shù)據(jù)IO壓棧處理,。利用TMS320VC5509A型號的DSP驅(qū)動nRF24L01+無線設(shè)備作為發(fā)送機,利用TMS320C6748型號的DSP驅(qū)動nRF24L01+無線設(shè)備作為接收機,,接收的數(shù)據(jù)存儲在計算機上,,進行一次性接收,。

    由于數(shù)據(jù)十分龐大,故本文截取了8 000點的離散數(shù)據(jù),,為了讓數(shù)據(jù)分散度更清晰,,在繪制圖像時對該數(shù)據(jù)進行倍乘處理,圖9所示為采樣的時域離散圖,,從圖中可以看到,,每一數(shù)據(jù)點以“*”和外圍“○”表示,“*”表示接收的數(shù)據(jù),,“○”表示發(fā)送的數(shù)據(jù),。本文將數(shù)據(jù)呈現(xiàn)在一張圖上,可以看清楚明顯的差異,。

qrs5-t9.gif

    為了更清晰地表現(xiàn)數(shù)據(jù)樣本,,本文將坐標范圍縮小至0~200,如圖10所示,,研究開始的錯誤狀態(tài),。可以觀察到在一開始獨立的“○”和“*”分開了,。

qrs5-t10.gif

    從圖10中可以看到,,在一開始出現(xiàn)了不吻合狀態(tài),這也是一開始本文提到的問題,,當同步機制生效后,,數(shù)據(jù)開始連續(xù)吻合了。在約126點和195點的位置,,也發(fā)生了數(shù)據(jù)錯誤現(xiàn)象,,原因暫時不明,后續(xù)將進行研究,。

5 結(jié)論

    針對球磨機數(shù)字振動信號的字節(jié)流搭建了時間機制和螺旋緩沖區(qū)域機制,,確保了數(shù)據(jù)包中數(shù)據(jù)組合的正確性和數(shù)據(jù)包間的數(shù)據(jù)連續(xù)性,為后續(xù)實時振動信號分析做好了鋪墊,。

    本文提出的螺旋緩沖算法亦可以移植到其他協(xié)議傳輸上,,例如TCP、USB,、SCI,、I2C等,只需要更換底層通信代碼,,上層對于數(shù)據(jù)的處理只需進行少許的更改,。

參考文獻

[1] 譚仁鵬.球磨機振動信號采集與無線傳輸裝置的設(shè)計與開發(fā)[D].沈陽:東北大學,2009.

[2] 趙立杰,,陳斌,,魏昊晨,等.一種非接觸式的球磨機旋轉(zhuǎn)筒體振動信號采集系統(tǒng):中國,,CN 105136276 A[P].2017-11-10.

[3] 姚章俊,,陳蜀宇,盧堯.一種高性能環(huán)形緩沖區(qū)的研究與實現(xiàn)[J].計算機工程,,2012,,38(8):228-231.

[4] 楊澤林,李先發(fā).基于雙指針環(huán)形緩沖區(qū)的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,,2016(11):67-69.

[5] 黃毅峰.支持阻塞與非阻塞模型且線程安全的環(huán)形緩沖的設(shè)計與實現(xiàn)——環(huán)形緩沖,、攻克高級緩沖技術(shù)的關(guān)鍵[J].電腦編程技巧與維護,2003(11):51-54.



作者信息:

趙立杰1,,魏昊晨1,,2,田志穎1,,2

(1.沈陽化工大學 信息工程學院,,遼寧 沈陽110142;2.西北工業(yè)大學 航海學院,,陜西 西安710072)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。