本發(fā)明屬于智能電網(wǎng)技術(shù)領(lǐng)域,尤其涉及基于FPGA的FT3幀的發(fā)送方法及裝置。
背景技術(shù):
FT3是IEC60044-7/8標準中規(guī)定的幀傳輸格式,它是由國際電工委員會(IEC)制定出的電子式電流/電壓互感器標準,F(xiàn)T3在數(shù)字化變電站中的應用非常廣泛,具體體現(xiàn)在電子式電流/電壓互感器與母線合并單元之間的交互,母線合并單元與間隔合并單元之間的交互,合并單元與測控裝置之間數(shù)據(jù)的交互,以及合并單元域之間的級聯(lián)。
IEC60044-7/8規(guī)約、《Q/GDW441-2010智能變電站繼電保護規(guī)范》以及《DL/T282-2012合并單元技術(shù)條件》規(guī)約中規(guī)定,F(xiàn)T3的鏈路層采用的編碼方式可以為串行曼徹斯特碼和異步串行碼(UART)兩種,前者為同步的編碼方式,采用的速率有2.5M、5M和10M,而后者是異步的編碼方式,采用的速率為2M、4M、6M、8M。然而在目前,有些合并單元和測控裝置的廠家要求的FT3幀的編碼方式雖然也采用的是曼徹斯特碼和UART碼,但其使用的幀格式及幀速率和標準中要求的并不一致,速率有781.25M、1M、1.6M、3.125M、20M等,導致與標準FT3幀不兼容。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了基于FPGA的FT3幀的發(fā)送方法及裝置,以解決現(xiàn)有技術(shù)中相機應用在運行過程中對移動終端的內(nèi)存占用過大的問題。
第一方面,提供了一種基于FPGA的FT3幀的發(fā)送方法,包括:
接口模塊接收外部輸出的配置數(shù)據(jù),所述配置數(shù)據(jù)包括配置字和預設格式的FT3幀,所述配置字包括所述預設格式的FT3幀的幀長度、FT3幀輸出模式、時鐘計數(shù)值和FT3幀觸發(fā)方式;
當數(shù)據(jù)判斷模塊判斷所述預設格式的FT3幀有效時,二級緩存模塊對所述預設格式的FT3幀進行二級緩存;
當所述數(shù)據(jù)判斷模塊判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是所述預設格式的FT3幀的幀長度的整數(shù)倍時,數(shù)據(jù)編碼模塊根據(jù)所述FT3幀輸出模式和所述時鐘計數(shù)值,將所述二級緩存模塊中存儲的數(shù)據(jù)編碼生成FT3碼流,并輸出至一級緩存模塊;
所述一級緩存模塊根據(jù)所述FT3幀觸發(fā)方式輸出所述FT3碼流。
第二方面,提供了一種基于FPGA的FT3幀的發(fā)送裝置,包括接口模塊、數(shù)據(jù)判斷模塊、二級緩存模塊、數(shù)據(jù)編碼模塊和一級緩存模塊,
所述接口模塊,用于接收外部輸出的配置數(shù)據(jù),所述配置數(shù)據(jù)包括配置字和預設格式的FT3幀,所述配置字包括所述預設格式的FT3幀的幀長度、FT3幀輸出模式、時鐘計數(shù)值和FT3幀觸發(fā)方式;
所述數(shù)據(jù)判斷模塊,用于判斷所述預設格式的FT3幀是否有效,還用于判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是否是所述預設格式的FT3幀的幀長度的整數(shù)倍;
所述二級緩存模塊,用于當所述數(shù)據(jù)判斷模塊判斷所述預設格式的FT3幀有效時,對所述預設格式的FT3幀進行二級緩存;
所述數(shù)據(jù)編碼模塊,用于當所述數(shù)據(jù)判斷模塊判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是所述預設格式的FT3幀的幀長度的整數(shù)倍時,根據(jù)所述FT3幀輸出模式和所述時鐘計數(shù)值,將所述二級緩存模塊中存儲的數(shù)據(jù)編碼生成FT3碼流,并輸出至所述一級緩存模塊;
所述一級緩存模塊,用于根據(jù)所述FT3幀觸發(fā)方式輸出所述FT3碼流。
本發(fā)明實施例能夠?qū)崿F(xiàn)自定義格式的FT3幀的發(fā)送,兼容各種標準的FT3幀格式,而且可以自定義任意想要的FT3幀格式,結(jié)構(gòu)簡單,開發(fā)周期短,使用方便,可擴展性強,可以輔助完成對各種FT3接口的合并單元等設備的測試,以及數(shù)字化變電站的設備測試,使得相關(guān)測試工作更加快捷和方便。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的基于FPGA的FT3幀的發(fā)送裝置的結(jié)構(gòu)框圖;
圖2是本發(fā)明實施例提供的基于FPGA的FT3幀的發(fā)送方法的實現(xiàn)流程圖;
圖3是本發(fā)明實施例提供的FT3幀同步傳輸?shù)臄?shù)據(jù)流示意圖;
圖4是本發(fā)明實施例提供的FT3幀異步傳輸?shù)臄?shù)據(jù)流示意圖。
具體實施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、技術(shù)之類的具體細節(jié),以便透徹理解本發(fā)明實施例。然而,本領(lǐng)域的技術(shù)人員應當清楚,在沒有這些具體細節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細說明,以免不必要的細節(jié)妨礙本發(fā)明的描述。
圖1示出了本發(fā)明實施例提供的基于現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)的FT3幀的發(fā)送裝置的結(jié)構(gòu)框圖,該裝置可具體應用于智能電網(wǎng)中作為鏈路層協(xié)議的設備。參照圖1,該結(jié)構(gòu)包括接口模塊11,二級緩存模塊12,數(shù)據(jù)編碼模塊13,一級緩存模塊14,數(shù)據(jù)判斷模塊15,在FT3幀的發(fā)送過程中,將配置數(shù)據(jù)輸入圖1所示裝置,經(jīng)過圖1所示裝置進行數(shù)據(jù)處理之后,形成FT3碼流輸出,上述FT3碼流的發(fā)送過程可以兼容各種標準的FT3幀格式,包括自定義的各種不同的幀長度、幀格式及幀速率的FT3幀。
在硬件配置上,接口模塊11使用8條數(shù)據(jù)線,1條時鐘線和1條應答線接收外部PC或者CPU輸出的配置數(shù)據(jù),接口模塊可以采用link port接口,還可以使用串行外設接口(Serial Peripheral Interface,SPI),通用串行總線(Universal Serial Bus,USB),控制器局域網(wǎng)絡(Controller Area Network,CAN)總線接口等完成對配置數(shù)據(jù)的接收。二級緩存模塊12由兩級同步流水線的先入先出隊列(First Input First Output,F(xiàn)IFO)組成,用于接收接口模塊11發(fā)送的數(shù)據(jù);一級緩存模塊14由一級同步流水線的FIFO組成,用于接收數(shù)據(jù)編碼模塊13編碼的數(shù)據(jù);除以上FIFO的組成方式之外,一級緩存模塊14和二級緩存模塊12也可以使用雙倍速率SDRAM(Double Data Rate SDRAM,DDR)、DDR2、DDR3和同步動態(tài)隨機存儲器(Synchronous Dynamic Random Access Memory,SDRAM)等方式組成。此外,在本發(fā)明實施例中,示例性地,F(xiàn)PGA可以采用Microsemi公司的第二代SmartFusion2FPGA產(chǎn)品,其能有效地將基于閃存的FPGA架構(gòu)、擁有166MHz的ARM Cortex-M3處理器、先進的安全處理加速器、DSP模塊、SRAM、eNVM和行業(yè)所需的高性能通信接口都集成在一塊單芯片上。
基于圖1所示的裝置結(jié)構(gòu),圖2示出了本發(fā)明實施例提供的基于FPGA的FT3幀的發(fā)送方法的實現(xiàn)流程,詳述如下:
在S201中,接口模塊接收外部輸出的配置數(shù)據(jù),所述配置數(shù)據(jù)包括配置字和預設格式的FT3幀,所述配置字包括所述預設格式的FT3幀的幀長度、FT3幀輸出模式、時鐘計數(shù)值和FT3幀觸發(fā)方式。
在本發(fā)明實施例中,配置數(shù)據(jù)由外部PC或者CPU根據(jù)定義好的通信協(xié)議輸出,配置數(shù)據(jù)默認由配置字加上預設格式(可以為標準的FT3幀格式或者自定義的FT3幀格式)的FT3幀組成,在實際應用過程中,可以根據(jù)需要增加協(xié)議的內(nèi)容,配置字包括預設格式的FT3幀的幀長度、FT3幀輸出模式、時鐘計數(shù)值和FT3幀觸發(fā)方式。
在S202中,當數(shù)據(jù)判斷模塊判斷所述預設格式的FT3幀有效時,二級緩存模塊對所述預設格式的FT3幀進行二級緩存。
在接口模塊接收到配置數(shù)據(jù)之后,先會將配置數(shù)據(jù)傳送給數(shù)據(jù)判斷模塊,由數(shù)據(jù)判斷模塊判斷該配置數(shù)據(jù)中預設格式的FT3幀是否有效,判斷其是否有效的具體方式可以為:數(shù)據(jù)判斷模塊判斷配置數(shù)據(jù)中預設格式的FT3幀是否使用了預設的FT3幀的幀頭,當數(shù)據(jù)判斷模塊判斷配置數(shù)據(jù)中預設格式的FT3幀使用了預設的FT3幀的幀頭(例如,F(xiàn)T3幀的幀頭可以為常用的十六進制幀頭“0564”)時,則認為該預設格式的FT3幀是有效的,此時允許接口模塊將該預設的FT3幀發(fā)送到二級緩存模塊,由二級緩存模塊對該預設格式的FT3幀進行二級緩存。
在S203中,當所述數(shù)據(jù)判斷模塊判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是所述預設格式的FT3幀的幀長度的整數(shù)倍時,數(shù)據(jù)編碼模塊根據(jù)所述FT3幀輸出模式和所述時鐘計數(shù)值,將所述二級緩存模塊中存儲的數(shù)據(jù)編碼生成FT3碼流,并輸出至一級緩存模塊。
在本發(fā)明實施中,S202執(zhí)行之后,S203執(zhí)行之前,還包括:
數(shù)據(jù)判斷模塊將配置字中的時鐘計數(shù)值和FT3幀輸出模式發(fā)送到數(shù)據(jù)編碼模塊,將FT3幀觸發(fā)方式發(fā)送到一級緩存模塊。
通過S201和S202的操作,可以將接口模塊接收到的預設格式的FT3幀都存儲在二級緩存模塊中,數(shù)據(jù)判斷模塊根據(jù)配置字中的預設格式的FT3幀的幀長度,判斷二級緩存模塊中存儲的數(shù)據(jù)的長度是否是所述預設格式的FT3幀的幀長度的整數(shù)倍。進一步地,當二級緩存模塊從接口模塊接收完數(shù)據(jù)后,會生成一個接收完成標志,那么當數(shù)據(jù)判斷模塊在二級緩存模塊中檢測到該接收完成標志之后,再將二級緩存模塊中存儲的數(shù)據(jù)與配置字中的預設格式的FT3幀的幀長度進行比對,當二級緩存模塊中存儲的數(shù)據(jù)的長度是所述預設格式的FT3幀的幀長度的整數(shù)倍時,二級緩存模塊被允許將其存儲的數(shù)據(jù)發(fā)送到數(shù)據(jù)編碼模塊中進行編碼。在上述判斷過程中,二級緩存模塊被允許發(fā)送數(shù)據(jù)到數(shù)據(jù)編碼模塊中的情況包括,二級緩存模塊中存儲的數(shù)據(jù)的長度與所述預設格式的FT3幀的幀長度相等,或者二級緩存模塊中存儲的數(shù)據(jù)的長度與所述預設格式的FT3幀的幀長度成整數(shù)倍關(guān)系,對于后者來說,說明二級緩存模塊中存儲的數(shù)據(jù)為要加量輸出的FT3幀。
作為本發(fā)明實施例的另一情況,當所述數(shù)據(jù)判斷模塊判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度不是所述預設格式的FT3幀的幀長度的整數(shù)倍時,同時復位所述二級緩存模塊和一級緩存模塊。
對于數(shù)據(jù)編碼模塊來說,由于此前接收到了數(shù)據(jù)判斷模塊發(fā)送的配置字中的時鐘計數(shù)值和FT3幀輸出模式,因此,數(shù)據(jù)編碼模塊可以根據(jù)FT3幀輸出模式來設置要加量的FT3碼流為同步模式或異步模式,并以此來對預設格式的FT3幀進行編碼。按照IEC60044-7/8規(guī)約、《Q/GDW441-2010智能變電站繼電保護規(guī)范》以及《DL/T282-2012合并單元技術(shù)條件》規(guī)約中FT3數(shù)據(jù)幀格式的規(guī)定,當FT3幀以同步方式傳輸?shù)臅r候,其數(shù)據(jù)流格式如圖3所示,該格式采用的是曼徹斯特編碼的方式,從低位轉(zhuǎn)為高位為二進制“1”,從高位轉(zhuǎn)移到低位為二進制“0”;而當FT3幀以異步方式傳輸流的時候,其數(shù)據(jù)流的格式如圖4所示,該格式采用工業(yè)標準的UART進行異步串行通信,每個字節(jié)由11位組成,1個啟動位為“0”,8個數(shù)據(jù)位,1個偶校驗位,1個停止位“1”。
在數(shù)據(jù)編碼模塊完成對FT3幀的編碼之后,將生成的FT3碼流輸出至一級緩存模塊。
在S204中,所述一級緩存模塊根據(jù)所述FT3幀觸發(fā)方式輸出所述FT3碼流。
對于一級緩存模塊來說,由于此前接收到了數(shù)據(jù)判斷模塊發(fā)送的配置字中的FT3幀觸發(fā)方式,因此,一級緩存模塊根據(jù)該FT3幀觸發(fā)方式,選擇是直接按照時鐘頻率輸出FT3碼流,或者通過外部觸發(fā)脈沖輸出所述FT3碼流。其中,一級緩存模塊輸出的FT3碼流的時鐘是通過配置字中的時針計數(shù)值生成的,時鐘的速率和FPGA的主頻時鐘和配置字中的時針計數(shù)值大小有關(guān),且一級緩存模塊按照從數(shù)據(jù)判斷模塊接收的時鐘計數(shù)值的最大值來產(chǎn)生要輸出的FT3碼流的時鐘。
應理解,上述實施例中各步驟的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內(nèi)在邏輯確定,而不應對本發(fā)明實施例的實施過程構(gòu)成任何限定。
對應于上文實施例所述的基于FPGA的FT3幀的發(fā)送方法,以下對本發(fā)明實施例提供的基于FPGA的FT3幀的發(fā)送裝置進行具體闡述:
該基于FPGA的FT3幀的發(fā)送裝置包括接口模塊、數(shù)據(jù)判斷模塊、二級緩存模塊、數(shù)據(jù)編碼模塊和一級緩存模塊,
所述接口模塊,用于接收外部輸出的配置數(shù)據(jù),所述配置數(shù)據(jù)包括配置字和預設格式的FT3幀,所述配置字包括所述預設格式的FT3幀的幀長度、FT3幀輸出模式、時鐘計數(shù)值和FT3幀觸發(fā)方式;
所述數(shù)據(jù)判斷模塊,用于判斷所述預設格式的FT3幀是否有效,還用于判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是否是所述預設格式的FT3幀的幀長度的整數(shù)倍;
所述二級緩存模塊,用于當所述數(shù)據(jù)判斷模塊判斷所述預設格式的FT3幀有效時,對所述預設格式的FT3幀進行二級緩存;
所述數(shù)據(jù)編碼模塊,用于當所述數(shù)據(jù)判斷模塊判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是所述預設格式的FT3幀的幀長度的整數(shù)倍時,根據(jù)所述FT3幀輸出模式和所述時鐘計數(shù)值,將所述二級緩存模塊中存儲的數(shù)據(jù)編碼生成FT3碼流,并輸出至所述一級緩存模塊;
所述一級緩存模塊,用于根據(jù)所述FT3幀觸發(fā)方式輸出所述FT3碼流。
可選地,所述數(shù)據(jù)判斷模塊具體用于:
判斷所述預設格式的FT3幀是否使用了預設的FT3幀的幀頭;
當所述數(shù)據(jù)判斷模塊判斷所述預設格式的FT3幀使用了預設的FT3幀的幀頭時,所述二級緩存模塊對所述預設格式的FT3幀進行二級緩存。
可選地,所述二級緩存模塊具體用于:
當從所述接口模塊接收完所述預設格式的FT3幀后,所述二級緩存模塊生成接收完成標志;
當所述數(shù)據(jù)判斷模塊在所述二級緩存模塊中檢測到所述接收完成標志之后,判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度是否是所述預設格式的FT3幀的幀長度的整數(shù)倍。
可選地,所述數(shù)據(jù)判斷模塊還用于:
當判斷所述二級緩存模塊中存儲的數(shù)據(jù)的長度不是所述預設格式的FT3幀的幀長度的整數(shù)倍時,同時復位所述二級緩存模塊和一級緩存模塊。
可選地,所述一級緩存模塊具體用于:
根據(jù)所述FT3幀觸發(fā)方式,按照時鐘頻率輸出所述FT3碼流,或者通過外部觸發(fā)脈沖輸出所述FT3碼流。
本發(fā)明實施例能夠?qū)崿F(xiàn)自定義格式的FT3幀的發(fā)送,兼容各種標準的FT3幀格式,而且可以自定義任意想要的FT3幀格式,結(jié)構(gòu)簡單,開發(fā)周期短,使用方便,可擴展性強,可以輔助完成對各種FT3接口的合并單元等設備的測試,以及數(shù)字化變電站的設備測試,使得相關(guān)測試工作更加快捷和方便。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即將所述裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請的保護范圍。上述系統(tǒng)中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應用和設計約束條件。專業(yè)技術(shù)人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
在本發(fā)明所提供的實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器(processor)執(zhí)行本發(fā)明實施例各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍,均應包含在本發(fā)明的保護范圍之內(nèi)。