本發(fā)明屬于fpga芯片,具體地,涉及一種支持高速率spacewire總線ds解碼優(yōu)化方法及系統(tǒng)。
背景技術(shù):
1、隨著spacewire總線技術(shù)日益成熟,其已經(jīng)廣泛應(yīng)用到航天器電子系統(tǒng)中。此外,隨著宇航事業(yè)的高速發(fā)展,spacewire總線在航天器各功能模塊的通信上需求持續(xù)增長,目前航天器使用spacewire總線普遍為國外spacewire收發(fā)器,但是國內(nèi)依然沒有一款滿足200mbps專用且穩(wěn)定的自研收發(fā)芯片。各科研院所普遍使用的是現(xiàn)場可編程器件(fpga)加lvds收發(fā)芯片來實(shí)現(xiàn)spacewire通信功能,也有部分科研院所采用soc芯片集成spacewire總線功能。
2、但是目前航天器在spacewire總線技術(shù)應(yīng)用上無論使用哪種技術(shù)路線都有或多或少的限制。采用國外spacewire芯片價(jià)格昂貴,受供貨期、禁運(yùn)等風(fēng)險(xiǎn),不能形成規(guī)模;采用國內(nèi)soc芯片集成spacewire總線,造成資源浪費(fèi),相應(yīng)成本增加,并且技術(shù)應(yīng)用不靈活;國內(nèi)使用fpga實(shí)現(xiàn)spacewire總線功能,由于采用ds信號(hào)異或時(shí)鐘作為采樣時(shí)鐘,時(shí)鐘信號(hào)非常不穩(wěn)定;或者采用同步時(shí)鐘直接對(duì)ds信號(hào)進(jìn)行采樣,其容易收到信號(hào)抖動(dòng)及偏斜影響,在高速率下不能有效的進(jìn)行采樣;其性能普遍達(dá)不到200mbps及更高的總線速率,基本應(yīng)用在50mbps到100mbps的總線速率。
3、因此,本發(fā)明主要針對(duì)使用現(xiàn)場可編程器件(fpga)實(shí)現(xiàn)spacewire總線性能不如使用芯片的劣勢,本發(fā)明通過使用對(duì)總線信號(hào)三級(jí)同步采樣以及ds解碼優(yōu)化算法,實(shí)現(xiàn)總線通信速率200mbps~400mbps的優(yōu)異性能。
4、現(xiàn)有技術(shù)中,專利文獻(xiàn)《一種用于星載設(shè)備間通信的spacewire總線節(jié)點(diǎn)控制器ip核》(cn117938574a)公開了一種節(jié)點(diǎn)控制器ip核,實(shí)現(xiàn)節(jié)點(diǎn)控制器的各個(gè)模塊的組成包括phy模塊、數(shù)據(jù)接收器模塊、復(fù)合器模塊、接收處理模塊、發(fā)送處理模塊、amba2.0總線模塊、數(shù)據(jù)發(fā)送器模塊、鏈路接口控制模塊、寄存器配置管理模塊。但沒有解決ds解碼模塊由于線路信號(hào)存在的抖動(dòng)和偏斜造成的高速率下采樣錯(cuò)誤,無法實(shí)現(xiàn)高速率采樣,低速率下的ds編碼。
5、專利文獻(xiàn)《一種按單時(shí)間軸傳輸?shù)亩嗤ǖ纒pacewire總線監(jiān)測方法》(cn114625610a)公開了一種spacewire總線檢測方法,實(shí)現(xiàn)總線檢測系統(tǒng)的各個(gè)模塊的組成包括專用信號(hào)模擬源、spacewire監(jiān)測設(shè)備、上位計(jì)算機(jī)和pcie模塊。但沒有解決接收ds解碼模塊由于線路信號(hào)存在的抖動(dòng)和偏斜造成的高速率下采樣錯(cuò)誤,高速率下采樣,低速率下的ds解碼存在偏差。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種支持高速率spacewire總線ds解碼優(yōu)化方法及系統(tǒng)。
2、根據(jù)本發(fā)明提供的一種支持高速率spacewire總線ds解碼優(yōu)化系統(tǒng),包括:
3、同步采樣模塊、偏斜抖動(dòng)誤差補(bǔ)償模塊、異步緩存模塊和ds解碼模塊。
4、同步采樣模塊經(jīng)三次信號(hào)鎖存,將輸入ds信號(hào)同步到系統(tǒng)采樣時(shí)鐘,傳入偏斜抖動(dòng)誤差補(bǔ)償模塊;
5、偏斜抖動(dòng)誤差補(bǔ)償模塊進(jìn)行數(shù)據(jù)采樣補(bǔ)償,判斷數(shù)據(jù)有效標(biāo)志位后傳入ds解碼模塊和異步緩存模塊;
6、異步緩存模塊移位緩存,轉(zhuǎn)換存儲(chǔ)并標(biāo)志數(shù)據(jù)有效長度;
7、ds解碼模塊解碼,進(jìn)行串行化移位操作,輸出數(shù)據(jù)字、控制字。
8、優(yōu)選地,所述同步采樣模塊使用fpga內(nèi)部時(shí)鐘作為驅(qū)動(dòng)時(shí)鐘,根據(jù)輸入的ds信號(hào),第一級(jí)使用時(shí)鐘的上升沿進(jìn)行時(shí)鐘邊沿采樣鎖存信號(hào),記為a_d1及a_s1;
9、第二級(jí)使用時(shí)鐘的下降沿進(jìn)行上升沿的二級(jí)信號(hào)鎖存,記為a_d2及a_s2;
10、第三級(jí)再下一個(gè)時(shí)鐘下降沿對(duì)鎖存信號(hào)進(jìn)行再次鎖存,記為a_d0及a_s0;
11、將鎖存完的ds信號(hào)傳入偏斜抖動(dòng)誤差補(bǔ)償模塊。
12、優(yōu)選地,所述偏斜抖動(dòng)誤差補(bǔ)償模塊采用高頻同步采樣時(shí)鐘,對(duì)ds信號(hào)中的a_d0、a_s0、a_d1、a_s1再一次的鎖存,將下降沿的采樣同步到上升沿,分別記作b_d0、b_s0、b_d1、b_s1;
13、進(jìn)行ds信號(hào)抖動(dòng)及偏斜造成的采樣誤差判斷,并進(jìn)行采樣補(bǔ)償;
14、判斷數(shù)據(jù)有效,將生成的數(shù)據(jù)位及數(shù)據(jù)有效標(biāo)志位傳入ds解碼模塊。
15、優(yōu)選地,所述采樣誤差判斷包括:獲取b_d1和b_s1的數(shù)據(jù)誤差補(bǔ)償點(diǎn),記作c_xor1;
16、若b_d0異或b_s0異或c_xor1為1,則將b_d0數(shù)據(jù)記錄c_bit0,若b_d0異或b_s0異或c_xor1為0,則將b_d1數(shù)據(jù)記錄為c_bit0,b_d1數(shù)據(jù)記錄為c_bit1。
17、所述判斷數(shù)據(jù)有效包括:若b_d0異或b_s0異或c_xor1為1,或者b_d0異或b_s0異或b_d1異或b_s1為1,則記錄c_val0,判定c_bit0數(shù)據(jù)有效,若b_d0異或b_s0異或c_xor1為1并且b_d0異或b_s0異或b_d1異或b_s1為1,則記錄c_val1,判定c_bit1有效。
18、所述數(shù)據(jù)位為c_bit0和c_bit1。
19、所述數(shù)據(jù)有效標(biāo)志位為c_val0和c_val1。
20、優(yōu)選地,所述ds解碼模塊使用低頻時(shí)鐘作為邏輯驅(qū)動(dòng),對(duì)緩存中數(shù)據(jù)進(jìn)行解碼,檢測到數(shù)據(jù)有效標(biāo)志位為1后在一個(gè)系統(tǒng)時(shí)鐘后期內(nèi)對(duì)并行數(shù)據(jù)進(jìn)行串行化移位操作,并進(jìn)行ds解碼的操作,輸出低頻時(shí)鐘驅(qū)動(dòng)的數(shù)據(jù)字、控制字。
21、所述異步緩存模塊將高頻的時(shí)鐘域和低頻的時(shí)鐘域進(jìn)行異步通信,接收偏斜抖動(dòng)誤差補(bǔ)償模塊發(fā)送的數(shù)據(jù)位和數(shù)據(jù)有效標(biāo)志位,進(jìn)行移位緩存,執(zhí)行串行到并行的轉(zhuǎn)換存儲(chǔ),寫入獨(dú)立時(shí)鐘雙端口ram中,并標(biāo)志數(shù)據(jù)有效長度。
22、根據(jù)本發(fā)明提供的一種支持高速率spacewire總線ds解碼優(yōu)化方法,包括:
23、同步采樣步驟:將輸入的ds信號(hào)經(jīng)三次信號(hào)鎖存,同步到系統(tǒng)采樣時(shí)鐘,鎖存后的ds信號(hào)傳入偏斜抖動(dòng)誤差補(bǔ)償模塊。
24、偏斜抖動(dòng)誤差補(bǔ)償步驟:令偏斜抖動(dòng)誤差補(bǔ)償模塊進(jìn)行數(shù)據(jù)采樣補(bǔ)償,判斷數(shù)據(jù)有效標(biāo)志位后將數(shù)據(jù)位和數(shù)據(jù)有效位傳入ds解碼模塊和異步緩存模塊。
25、異步緩存步驟:令異步緩存模塊進(jìn)行移位緩存,轉(zhuǎn)換存儲(chǔ)并標(biāo)志數(shù)據(jù)有效長度。
26、ds解碼步驟:令ds解碼模塊進(jìn)行解碼,進(jìn)行串行化移位操作,輸出數(shù)據(jù)字、控制字。
27、優(yōu)選地,所述同步采樣步驟中使用fpga內(nèi)部時(shí)鐘作為驅(qū)動(dòng)時(shí)鐘,根據(jù)輸入的ds信號(hào),第一級(jí)使用時(shí)鐘的上升沿進(jìn)行時(shí)鐘邊沿采樣鎖存信號(hào),記為a_d1及a_s1;
28、第二級(jí)使用時(shí)鐘的下降沿進(jìn)行上升沿的二級(jí)信號(hào)鎖存,記為a_d2及a_s2;
29、第三級(jí)再下一個(gè)時(shí)鐘下降沿對(duì)鎖存信號(hào)進(jìn)行再次鎖存,記為a_d0及a_s0;
30、將鎖存完的ds信號(hào)傳入偏斜抖動(dòng)誤差補(bǔ)償模塊。
31、優(yōu)選地,所述偏斜抖動(dòng)誤差補(bǔ)償步驟中采用高頻同步采樣時(shí)鐘,對(duì)ds信號(hào)中的a_d0、a_s0、a_d1、a_s1再一次的鎖存,將下降沿的采樣同步到上升沿,分別記作b_d0、b_s0、b_d1、b_s1;
32、進(jìn)行ds信號(hào)抖動(dòng)及偏斜造成的采樣誤差判斷,并進(jìn)行采樣補(bǔ)償;
33、判斷數(shù)據(jù)有效,將生成的數(shù)據(jù)位及數(shù)據(jù)有效標(biāo)志位傳入ds解碼模塊。
34、優(yōu)選地,所述采樣誤差判斷包括:獲取b_d1和b_s1的數(shù)據(jù)誤差補(bǔ)償點(diǎn),記作c_xor1;
35、若b_d0異或b_s0異或c_xor1為1,則將b_d0數(shù)據(jù)記錄c_bit0,若b_d0異或b_s0異或c_xor1為0,則將b_d1數(shù)據(jù)記錄為c_bit0,b_d1數(shù)據(jù)記錄為c_bit1。
36、所述判斷數(shù)據(jù)有效包括:若b_d0異或b_s0異或c_xor1為1,或者b_d0異或b_s0異或b_d1異或b_s1為1,則記錄c_val0,判定c_bit0數(shù)據(jù)有效,若b_d0異或b_s0異或c_xor1為1并且b_d0異或b_s0異或b_d1異或b_s1為1,則記錄c_val1,判定c_bit1有效。
37、所述數(shù)據(jù)位為c_bit0和c_bit1。
38、所述數(shù)據(jù)有效標(biāo)志位為c_val0和c_val1。
39、優(yōu)選地,所述ds解碼步驟中使用低頻時(shí)鐘作為邏輯驅(qū)動(dòng),對(duì)緩存中數(shù)據(jù)進(jìn)行解碼,檢測到數(shù)據(jù)有效標(biāo)志位為1后在一個(gè)系統(tǒng)時(shí)鐘后期內(nèi)對(duì)并行數(shù)據(jù)進(jìn)行串行化移位操作,并進(jìn)行ds解碼的操作,輸出低頻時(shí)鐘驅(qū)動(dòng)的數(shù)據(jù)字、控制字。
40、所述異步緩存步驟中將高頻的時(shí)鐘域和低頻的時(shí)鐘域進(jìn)行異步通信,接收偏斜抖動(dòng)誤差補(bǔ)償模塊發(fā)送的數(shù)據(jù)位和數(shù)據(jù)有效標(biāo)志位,進(jìn)行移位緩存,執(zhí)行串行到并行的轉(zhuǎn)換存儲(chǔ),寫入獨(dú)立時(shí)鐘雙端口ram中,并標(biāo)志數(shù)據(jù)有效長度。
41、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
42、1、本發(fā)明總線高速率,通過針對(duì)不同功能模塊選擇不同的采樣時(shí)鐘,能夠?qū)崿F(xiàn)總線200mbps~400mbps的解碼功能。
43、2、本發(fā)明實(shí)現(xiàn)三級(jí)同步采樣,經(jīng)三次信號(hào)鎖存,將輸入ds信號(hào)同步到系統(tǒng)采樣時(shí)鐘,減少信號(hào)的競爭冒險(xiǎn)風(fēng)險(xiǎn)。
44、3、本發(fā)明對(duì)ds信號(hào)抖動(dòng)及偏斜造成的采樣誤差進(jìn)行判斷,并進(jìn)行采樣補(bǔ)償,同時(shí)采用優(yōu)化的ds解碼算法,解決spacewire總線200mbps及更高速率下因信號(hào)的抖動(dòng)和偏斜等問題造成的解碼錯(cuò)誤。