一種基于udp協(xié)議的故障錄波數(shù)據(jù)的傳輸方法
【專利摘要】本發(fā)明涉及一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,屬于變電站自動化數(shù)字錄波【技術(shù)領(lǐng)域】。本發(fā)明通過在發(fā)送端建立數(shù)據(jù)緩沖區(qū),將帶發(fā)送的數(shù)據(jù)分成等長的數(shù)據(jù)存入緩沖區(qū)中等待發(fā)送,發(fā)送端以UDP協(xié)議方式向接收端發(fā)送數(shù)據(jù),接收端定時查詢所接收的數(shù)據(jù),當(dāng)發(fā)生有漏幀或錯幀現(xiàn)象時,發(fā)送端啟動重發(fā)機制將丟失的數(shù)據(jù)包重新發(fā)送,整個傳輸過程,接收端采用多線程的數(shù)據(jù)處理方式,同時監(jiān)視接收端緩沖區(qū)的是否處于滿狀態(tài)以便清空處理,本發(fā)明保證在UDP高效傳輸過程中不丟包,提高了傳輸效率和傳輸穩(wěn)定性,從而提高了故障錄波器數(shù)據(jù)傳輸?shù)目煽啃浴?br>
【專利說明】一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,屬于變電站自動化數(shù)字錄波【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]隨著數(shù)字化61850技術(shù)在電力系統(tǒng)中的廣泛應(yīng)用,數(shù)字化錄波器能夠產(chǎn)生大量的comtrade格式的超大故障文件,目前越來越大的故障錄波文件和嵌入式回放設(shè)備有限的錄波緩沖空間形成了尖銳的矛盾,需采用一個響應(yīng)足夠快、傳送數(shù)據(jù)可靠的通訊模式來解決此問題。
[0003]UDP通信具有響應(yīng)快的網(wǎng)絡(luò)傳送特質(zhì),它發(fā)送數(shù)據(jù)以獨立的數(shù)據(jù)包形式直接向接收方發(fā)送數(shù)據(jù)而不關(guān)心對方計算機的狀態(tài),不考慮網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中的突發(fā)問題,因此UDP協(xié)議的傳輸速度和網(wǎng)絡(luò)的利用效率都要比TCP高,另一方面來說,由于UDP不保證各數(shù)據(jù)包的發(fā)送順序,也不進行正確性檢查,因此不能夠保證數(shù)據(jù)傳送的可靠性,可能出現(xiàn)數(shù)據(jù)的失序、丟失等現(xiàn)象。而在錄波器的故障回放功能設(shè)計中,通信可靠性是至關(guān)重要的,而傳統(tǒng)的對整個錄波文件進行傳送的方式已經(jīng)不能滿足現(xiàn)場和實驗室故障測試回放的需求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,以解決目前使用UDP協(xié)議傳輸故障錄波數(shù)據(jù)時可靠性差導(dǎo)致無法滿足現(xiàn)場和實驗室故障測試回放需求的問題。
[0005]本發(fā)明為解決上述技術(shù)問題而提供一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,該傳輸方法包括以下步驟:
[0006]I)發(fā)送端建立數(shù)據(jù)緩沖區(qū),將待發(fā)送的數(shù)據(jù)分成等長的鏈表式隊列存入沖緩沖區(qū)等待發(fā)送,發(fā)送端以UDP協(xié)議方式向接收端發(fā)送數(shù)據(jù);
[0007]2)接收端將接收的數(shù)據(jù)報文存入接收端緩沖區(qū),并定期檢測接收端緩沖區(qū)的狀態(tài),同時將檢測到狀態(tài)量通過發(fā)送狀態(tài)同步機制反饋給發(fā)送端;
[0008]3)發(fā)送端根據(jù)收到反饋信息,啟動報文發(fā)送,直至接收端緩沖區(qū)存滿時,發(fā)送端不再發(fā)送數(shù)據(jù)包;
[0009]4)接收端定時檢查數(shù)據(jù)緩沖區(qū)的連續(xù)性,如果檢測到數(shù)據(jù)不連續(xù),將丟失的數(shù)據(jù)序號發(fā)送給發(fā)送端,發(fā)送端收到后重傳相應(yīng)序號的數(shù)據(jù)。
[0010]所述發(fā)送端在發(fā)送數(shù)據(jù)時,在數(shù)據(jù)幀中添加序號,發(fā)送端按照序號順序進行發(fā)送。
[0011]所述接收端數(shù)據(jù)緩沖區(qū)向應(yīng)用層傳送的數(shù)據(jù)為連續(xù)的數(shù)據(jù)。
[0012]所述的發(fā)送端和接收端之間的通訊模式是PTP,一對一的,沒有第三方通訊介質(zhì)。
[0013]所述發(fā)送端緩沖區(qū)將數(shù)據(jù)發(fā)送出去后,在收到接收端的序號同步信息時,將確認(rèn)收到的報文刪除釋放。
[0014]所述步驟3)中發(fā)送端根據(jù)反饋信息停止發(fā)送數(shù)據(jù)包時,發(fā)送端定時發(fā)送狀態(tài)同步同文,UDP數(shù)據(jù)傳輸組件進入空閑狀態(tài),等待接收端緩沖區(qū)回到未滿狀態(tài)。
[0015]所述步驟4)中發(fā)送端延時設(shè)定的時間后接收接收端重傳數(shù)據(jù)序號信息,判斷是否有數(shù)據(jù)需要重傳,如果需要重傳,發(fā)送端則從發(fā)送緩沖區(qū)檢出需要重傳的數(shù)據(jù)并發(fā)送接收端,沒有則返回。
[0016]所述發(fā)送端和接收端都采用三線程處理方式,每個線程通過UDP套接字進行通信。
[0017]本發(fā)明的有益效果是:本發(fā)明通過在發(fā)送端建立數(shù)據(jù)緩沖區(qū),將帶發(fā)送的數(shù)據(jù)分成等長的數(shù)據(jù)存入緩沖區(qū)中等待發(fā)送,發(fā)送端以UDP協(xié)議方式向接收端發(fā)送數(shù)據(jù),接收端定時查詢所接收的數(shù)據(jù),當(dāng)發(fā)生有漏幀或錯幀現(xiàn)象時,發(fā)送端啟動重發(fā)機制將丟失的數(shù)據(jù)包重新發(fā)送,整個傳輸過程,接收端采用多線程的數(shù)據(jù)處理方式,同時監(jiān)視接收端緩沖區(qū)的是否處于滿狀態(tài)以便清空處理,本發(fā)明保證在UDP高效傳輸過程中不丟包,提高了傳輸效率和傳輸穩(wěn)定性,從而提高了故障錄波器數(shù)據(jù)傳輸?shù)目煽啃浴?br>
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明實施例中發(fā)送端重傳線程流程圖;
[0019]圖2是本發(fā)明實施例中發(fā)送端主發(fā)送數(shù)據(jù)定時器流程圖;
[0020]圖3是本發(fā)明實施例中發(fā)送端反饋線程流程圖;
[0021]圖4是本發(fā)明實施例中接收端重傳任務(wù)的流程圖;
[0022]圖5是本發(fā)明實施例中接收端接收數(shù)據(jù)的示意圖;
[0023]圖6是本發(fā)明實施例中接收端反饋信息的示意圖;
[0024]圖7本發(fā)明的傳輸過程整體工作流程圖。
【具體實施方式】
[0025]下面結(jié)合附圖對本發(fā)明的【具體實施方式】作進一步的說明。
[0026]本發(fā)明采用UDP的傳輸協(xié)議,通過在發(fā)送端建立數(shù)據(jù)緩沖區(qū),將帶發(fā)送的數(shù)據(jù)分成等長的數(shù)據(jù)存入緩沖區(qū)中等待發(fā)送,接收端定時查詢所接收的數(shù)據(jù),當(dāng)發(fā)生有漏幀或錯幀現(xiàn)象時,發(fā)送端啟動重發(fā)機制將丟失的數(shù)據(jù)包重新發(fā)送,具體流程如圖7所示,該方法具體包括以下步驟:
[0027]1.發(fā)送端建立數(shù)據(jù)緩沖區(qū),將待發(fā)送的數(shù)據(jù)分成等長的鏈表式隊列存入沖緩沖區(qū)等待發(fā)送,發(fā)送端在發(fā)送數(shù)據(jù)時,在數(shù)據(jù)幀中添加序號,發(fā)送端按照序號順序進行發(fā)送,發(fā)送端以UDP協(xié)議方式向接收端發(fā)送數(shù)據(jù);該步驟中一個UDP數(shù)據(jù)幀發(fā)送一個等長數(shù)據(jù),發(fā)送端和接收端之間的通訊模式是PTP,一對一的,沒有第三方通訊介質(zhì)。
[0028]2.接收端將接收的數(shù)據(jù)報文存入接收端緩沖區(qū),并定期檢測接收端緩沖區(qū)的狀態(tài),同時將檢測到狀態(tài)量通過發(fā)送狀態(tài)同步機制反饋給發(fā)送端,同時根據(jù)收到數(shù)據(jù)報文的序號向發(fā)送端發(fā)送序號同步信號。
[0029]3.發(fā)送端根據(jù)收到反饋信息,啟動報文發(fā)送,直至接收端緩沖區(qū)存滿時,發(fā)送端不再發(fā)送數(shù)據(jù)包;該步驟中發(fā)送端根據(jù)反饋信息停止發(fā)送數(shù)據(jù)包時,發(fā)送端定時發(fā)送狀態(tài)同步同文,UDP數(shù)據(jù)傳輸組件進入空閑狀態(tài),等待接收端緩沖區(qū)回到未滿狀態(tài),同時發(fā)送端緩沖區(qū)將數(shù)據(jù)發(fā)送出去后,在收到接收端的序號同步信息時,將確認(rèn)收到的報文刪除釋放。[0030]4.接收端定時檢查數(shù)據(jù)緩沖區(qū)的連續(xù)性,如果檢測到數(shù)據(jù)不連續(xù),將丟失的數(shù)據(jù)序號發(fā)送給發(fā)送端,發(fā)送端收到后重傳相應(yīng)序號的數(shù)據(jù),該步驟中發(fā)送端延時設(shè)定的時間后接收接收端重傳數(shù)據(jù)序號信息,判斷是否有數(shù)據(jù)需要重傳,如果需要重傳,發(fā)送端則從發(fā)送緩沖區(qū)檢出需要重傳的數(shù)據(jù)并發(fā)送接收端,沒有則返回。
[0031]本發(fā)明的一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法的實施例
[0032]本實施例針對UDP協(xié)議的傳輸故障錄波數(shù)據(jù),采用DSP+FPGA架構(gòu),并設(shè)置有光電以太網(wǎng)口以便接收數(shù)據(jù),利用PC機和嵌入式接收端進行故障錄波數(shù)據(jù)傳輸時,本實施例中的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法的過程如下:
[0033]系統(tǒng)初始化時創(chuàng)建UDP三個套接字,并在PC端創(chuàng)建2個線程和I個定時器,分別為重傳線程、反饋線程及主發(fā)送數(shù)據(jù)定時器,每個線程均使用一個套接字和嵌入式端通信,實現(xiàn)響應(yīng)目的。圖1所示為本發(fā)明PC端重傳線程流程圖,PC端延時Ims后接受來自嵌入式端的重傳數(shù)據(jù)序號信息,判斷是否有數(shù)據(jù)需要重傳,如果需要重傳則從發(fā)送緩沖區(qū)檢出需要重傳的數(shù)據(jù)并發(fā)送至嵌入式端,沒有則返回。
[0034]圖2所示為PC端主發(fā)送數(shù)據(jù)定時器流程圖,由于定時調(diào)用,沒有循環(huán),發(fā)送數(shù)據(jù)定時器用來判斷嵌入式端緩沖區(qū)的全局變量是否為真,如果是則通過回調(diào)函數(shù)獲取用戶數(shù)據(jù)發(fā)送到嵌入式端并存儲數(shù)據(jù)到緩沖區(qū),此數(shù)據(jù)在重傳時會用到。
[0035]圖3所示為PC端反饋線程工作說明,延時IOms后接受來自嵌入式端緩沖區(qū)滿信
息,存至全局變量。
[0036]嵌入式接收端在系統(tǒng)初始化時創(chuàng)建三個任務(wù)用于分別為數(shù)據(jù)主任務(wù)、重傳任務(wù)、狀態(tài)信息反饋任務(wù),在三個任務(wù)創(chuàng)建時,分別創(chuàng)建m)P套接字和Pc端通信。圖4所示為嵌入式端重傳任務(wù)流程圖,系統(tǒng)在延時Ims后判斷是否有來自PC端的重傳數(shù)據(jù),如果沒有則返回繼續(xù)定時檢查,如果有的話則存到數(shù)據(jù)緩沖區(qū),檢查數(shù)據(jù)緩沖區(qū)的連續(xù)性,從而獲取重傳序號信息,并將重傳序號信息至PC端。
[0037]圖5所示為嵌入式端接收任務(wù)示意圖,該線程用來接收來自PC端用戶數(shù)據(jù)并將數(shù)據(jù)存至緩沖區(qū)。
[0038]圖6所示為嵌入式端反饋任務(wù)示意圖,從圖中可看出,嵌入式端獲取數(shù)據(jù)緩沖區(qū)是否處于滿狀態(tài),并將狀態(tài)信息發(fā)送至PC端,每次檢測循環(huán)10ms。
【權(quán)利要求】
1.一種基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,該傳輸方法包括以下步驟: 1)發(fā)送端建立數(shù)據(jù)緩沖區(qū),將待發(fā)送的數(shù)據(jù)分成等長的鏈表式隊列存入沖緩沖區(qū)等待發(fā)送,發(fā)送端以UDP協(xié)議方式向接收端發(fā)送數(shù)據(jù); 2)接收端將接收的數(shù)據(jù)報文存入接收端緩沖區(qū),并定期檢測接收端緩沖區(qū)的狀態(tài),同時將檢測到狀態(tài)量通過發(fā)送狀態(tài)同步機制反饋給發(fā)送端; 3)發(fā)送端根據(jù)收到反饋信息,啟動報文發(fā)送,直至接收端緩沖區(qū)存滿時,發(fā)送端不再發(fā)送數(shù)據(jù)包; 4)接收端定時檢查數(shù)據(jù)緩沖區(qū)的連續(xù)性,如果檢測到數(shù)據(jù)不連續(xù),將丟失的數(shù)據(jù)序號發(fā)送給發(fā)送端,發(fā)送端收到后重傳相應(yīng)序號的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述發(fā)送端在發(fā)送數(shù)據(jù)時,在數(shù)據(jù)幀中添加序號,發(fā)送端按照序號順序進行發(fā)送。
3.根據(jù)權(quán)利要求2所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述接收端數(shù)據(jù)緩沖區(qū)向應(yīng)用層傳送的數(shù)據(jù)為連續(xù)的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述的發(fā)送端和接收端之間的通訊模式是PTP,一對一的,沒有第三方通訊介質(zhì)。
5.根據(jù)權(quán)利要求2所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述發(fā)送端緩沖區(qū)將數(shù)據(jù)發(fā)送出去后,在收到接收端的序號同步信息時,將確認(rèn)收到的報文刪除釋放。
6.根據(jù)權(quán)利要求2所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述步驟3)中發(fā)送端根據(jù)反饋信息停止發(fā)送數(shù)據(jù)包時,發(fā)送端定時發(fā)送狀態(tài)同步同文,UDP數(shù)據(jù)傳輸組件進入空閑狀態(tài),等待接收端緩沖區(qū)回到未滿狀態(tài)。
7.根據(jù)權(quán)利要求2所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述步驟4)中發(fā)送端延時設(shè)定的時間后接收接收端重傳數(shù)據(jù)序號信息,判斷是否有數(shù)據(jù)需要重傳,如果需要重傳,發(fā)送端則從發(fā)送緩沖區(qū)檢出需要重傳的數(shù)據(jù)并發(fā)送接收端,沒有則返回。
8.根據(jù)權(quán)利要求1所述的基于UDP協(xié)議的故障錄波數(shù)據(jù)的傳輸方法,其特征在于,所述發(fā)送端和接收端都采用三線程處理方式,每個線程通過UDP套接字進行通信。
【文檔編號】H04L29/06GK103685243SQ201310624623
【公開日】2014年3月26日 申請日期:2013年11月28日 優(yōu)先權(quán)日:2013年11月28日
【發(fā)明者】凌特利, 王利業(yè), 張瑩, 張春峰, 李萌, 傅彥斌, 李曉朋, 顧峰, 徐艷艷, 馬儀成 申請人:許繼電氣股份有限公司, 許昌許繼軟件技術(shù)有限公司