• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Python在SpaceWire模擬源系統(tǒng)上的應(yīng)用

      2021-06-17 06:53:34孟妍李琳文月
      電子制作 2021年1期
      關(guān)鍵詞:字符校驗(yàn)鏈路

      孟妍,李琳,文月

      (石家莊科技工程職業(yè)學(xué)院,河北石家莊,050000)

      0 引言

      SpaceWire是一種全雙工、點(diǎn)對點(diǎn)、串行、高速(2Mb/s~400Mb/s)的網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)。歐空局于2003年將它納入標(biāo)準(zhǔn)。該協(xié)議可以用來靈活組建網(wǎng)絡(luò)。由于總線在異常響應(yīng)、故障保護(hù)與恢復(fù)、確定時間以及錯誤檢測方面做了相應(yīng)增強(qiáng),因此相比于其它的總線具有可靠簡單的優(yōu)點(diǎn)。它使得設(shè)計(jì)集成星上系統(tǒng)變得簡單,可以進(jìn)行低誤碼率、高速傳輸載荷數(shù)據(jù)以及控制信息。隨著SpaceWire應(yīng)用領(lǐng)域的不斷擴(kuò)大和深入,各種基于SpaceWire基礎(chǔ)協(xié)議的設(shè)備不斷出現(xiàn),這些設(shè)備在國外航空領(lǐng)域已經(jīng)得到廣泛應(yīng)用。隨著我國航天航空事業(yè)的發(fā)展,基于SpaceWire總線方面的設(shè)備也在不斷研發(fā)和提升。在設(shè)備聯(lián)調(diào)過程中,調(diào)試總線協(xié)議這一塊一直是一件復(fù)雜困難的事情。迫切需要一套總線協(xié)議測試設(shè)備來協(xié)助調(diào)試定位問題。為了保證測試設(shè)備的正常工作,就需要一臺模擬源設(shè)備對測試設(shè)備輸送各種測試數(shù)據(jù),用來分析測試設(shè)備是否正常工作。本文旨在設(shè)計(jì)一套基于Python的模擬源設(shè)備來完成對測試設(shè)備的測試,從而保證總線互聯(lián)設(shè)備的正常工作。

      1 模擬源設(shè)備的目的

      本文設(shè)計(jì)的模擬源設(shè)備主要用到圖1中對該測試設(shè)備的測試上。

      被測設(shè)備A和被測設(shè)備B為基于SpaceWire總線標(biāo)準(zhǔn)的通信設(shè)備,被測設(shè)備A和被測設(shè)備B在開發(fā)聯(lián)調(diào)階段,總線之間的通信會出現(xiàn)各種bug。為了在出現(xiàn)總線異常時,可以分析原因幫助聯(lián)調(diào),需要一套測試設(shè)備來實(shí)時抓取總線協(xié)議進(jìn)行分析和定位。本系統(tǒng)對測試設(shè)備的需求如下:

      (1)測試設(shè)備可同時監(jiān)測2路SpaceWire鏈路,鏈路速率最高400Mbps。每路SpaceWire鏈路包含4對LVDS,每2對組合一條數(shù)據(jù)通道(一對是Data信號一對Strobe信號);

      (2)符合SpaceWire信號標(biāo)準(zhǔn)基礎(chǔ)部分(物理層、信號層、字符層);

      圖1 設(shè)備結(jié)構(gòu)圖

      (3)SpW監(jiān)測卡采用PCIe×8接口,通過對每個獨(dú)立字符加一個時間戳來實(shí)時監(jiān)測鏈路通信情況,時戳精度2ns;

      (4)可監(jiān)測鏈路上的各種數(shù)據(jù)和狀態(tài):DS解碼解析出傳輸時鐘、解析出字符(數(shù)據(jù)和控制字符等)、無連接錯誤、斷開錯誤、超時錯誤(超過850ns)、奇校驗(yàn)錯誤、信用(Credit)錯誤、Escape順序錯誤等;并將錯誤狀態(tài)附加在對應(yīng)的字符,方便上位機(jī)軟件讀取顯示。

      (5)基本操作:啟動接收、停止接收、重啟設(shè)備、打開/關(guān)閉SpW通道;

      (6)通過PCIe上傳所有信息到主機(jī);

      (7)實(shí)時統(tǒng)計(jì)信息(字符個數(shù)、包個數(shù)、控制字符個數(shù)、Null個數(shù)、奇偶校驗(yàn)錯誤、信用錯誤、Escape順序錯誤、超時錯誤等錯誤個數(shù))通過PCIe上傳到上位機(jī);可當(dāng)前清零;

      那么測試設(shè)備也需要調(diào)試,如何來保證測試設(shè)備的可靠性,在用測試設(shè)備分析發(fā)現(xiàn)問題的時候,可以保證是總線設(shè)備A和B之間總線通信發(fā)生了問題,而不是測試設(shè)備本身存在bug。這就需要一臺模擬源設(shè)備,可以人為設(shè)計(jì)基于SpaceWire協(xié)議的各種協(xié)議以及正常和錯誤狀態(tài),來充分驗(yàn)證測試設(shè)備的可靠性,從而保證測試設(shè)備的正常工作。

      2 模擬源系統(tǒng)方案

      ■2.1 系統(tǒng)要求

      模擬源設(shè)備需要滿足測試設(shè)備的要求,因此,模擬源設(shè)備要求如下:

      (1)符合SpaceWire信號標(biāo)準(zhǔn)基礎(chǔ)部分(物理層、信號層、字符層),速率最高400Mbps;

      (2)SpaceWire握手建立連接、流量控制;

      (3)能模擬硬件鏈路錯誤(超過850ns無字符錯誤即斷開錯誤、奇偶校驗(yàn)錯誤、信用(Credit)錯誤、Escape順序錯誤)等;

      (4)基本操作:啟動發(fā)送、停止發(fā)送、重啟設(shè)備、設(shè)置每條鏈路的線上速率等;

      (5)數(shù)據(jù)操作:可編輯SpaceWire專用字符格式(FCT、NULL等)、可編輯要發(fā)送數(shù)據(jù)的格式(隨機(jī)數(shù)、遞增、遞減、選擇文件等);

      (6)可滿負(fù)荷發(fā)送數(shù)據(jù);

      (7)每個端口的第一路和第二路的關(guān)系聯(lián)動:能按照FCT對應(yīng)8個字節(jié)發(fā)送(也可設(shè)置多或少的關(guān)系);

      (8)支持RMAP包協(xié)議;

      RMAP全稱為遠(yuǎn)程存儲器訪問協(xié)議。為了實(shí)現(xiàn)使用SpaceWire網(wǎng)絡(luò)遠(yuǎn)程配置終端設(shè)備(路由器、節(jié)點(diǎn)等)的寄存器、獲取數(shù)據(jù)信息和實(shí)現(xiàn)傳輸控制,同時還可以監(jiān)測設(shè)備的工作狀態(tài)。依照協(xié)議規(guī)范,RMAP定義了三種數(shù)據(jù)操作類型,分別為寫操作、讀操作和讀改寫操作。RMAP寫操作指發(fā)起寫操作的事物端可以將數(shù)據(jù)寫到目標(biāo)存儲區(qū),寫操作還可以細(xì)分為無寫前校驗(yàn)有應(yīng)答、寫前校驗(yàn)有應(yīng)答、寫前校驗(yàn)無應(yīng)答和無寫前校驗(yàn)無應(yīng)答四種類型。RMAP讀操作指網(wǎng)絡(luò)中其他可讀的節(jié)點(diǎn)可以被事物發(fā)起端讀到,或者可以以郵箱以及寄存器的存儲映射。RMAP讀改寫操作指事物發(fā)起端可以先將目標(biāo)存儲區(qū)的數(shù)據(jù)進(jìn)行讀出,然后進(jìn)行修改以后再寫回目標(biāo)存儲區(qū)。

      ■2.2 系統(tǒng)組成

      硬件系統(tǒng)采用Xilinx Kintex7開發(fā)板和FMC LVDS子板組成。邏輯架構(gòu)包括組幀部分、緩存部分和接口部分三部分。

      組幀部分:基于SpaceWire協(xié)議發(fā)送各種測試序列以及模擬各種錯誤,支持RMAP包的發(fā)送。具體如下:

      (1)握手:接口輸出置零,然后發(fā)10組FCT+NULL字符。

      (2)發(fā)送幀序列。發(fā)送數(shù)據(jù)格式為1FCT+8DATA+1FCT+8DATA……。僅發(fā)送1次。

      (3)產(chǎn)生無字符錯誤:發(fā)送幀序列1次,然后不發(fā)送任何字符,時間持續(xù)860ns,靜默19.2μs,然后重新握手(4組FCT+NULL字符)。

      (4)產(chǎn)生奇偶校驗(yàn)錯誤:發(fā)送幀序列,僅1次,然后發(fā)送第三幀與第一幀相同,在最后一個字符時改成錯誤的校驗(yàn),(沒有EOP結(jié)尾),再靜默19.2μs,然后重新握手(5組FCT+NULL字符)。

      (5)產(chǎn)生信用(Credit)錯誤:發(fā)送幀序列,僅1次,然后發(fā)送第三幀與第一幀相同,在最后8個data少發(fā)一個FCT,(沒有EOP結(jié)尾),再靜默19.2μs,然后重新握手(6組FCT+NULL字符)。

      (6)產(chǎn)生Escape錯誤-1:發(fā)送幀序列,然后發(fā)送timecode(時間為0、1、2……遞增數(shù)),當(dāng)時間碼為11時,產(chǎn)生該錯誤,(時間碼不繼續(xù)發(fā)送新值),再靜默19.2μs,然后重新握手(7組FCT+NULL字符)。

      (7)產(chǎn)生Escape錯誤-2:發(fā)送幀序列,然后發(fā)送5個NULL,在發(fā)送第6個NULL時,產(chǎn)生該錯誤,不繼續(xù)再發(fā)送正確NULL,靜默19.2μs,然后重新握手(8組FCT+NULL字符)。

      (8)產(chǎn)生EEP錯誤:發(fā)送幀序列,然后重新握手(9組FCT+NULL字符)。

      (9)RMAP數(shù)據(jù)包。包括寫操作,讀操作和讀改寫三部分?jǐn)?shù)據(jù),可以任意組織數(shù)據(jù)序列。

      (10)跳轉(zhuǎn)到1重新執(zhí)行。

      緩存部分:作為連接組幀和接口兩部分的緩存。

      接口部分:對數(shù)據(jù)添加校驗(yàn)以及實(shí)現(xiàn)Data-Strobe編碼。

      傳統(tǒng)設(shè)計(jì)方案為全部采用邏輯來實(shí)現(xiàn),為了滿足測試設(shè)備的各種測試要求,組幀部分是最復(fù)雜的也是需要頻繁修改的,然而修改邏輯是一件費(fèi)時費(fèi)力而且復(fù)雜的工作,因此,根據(jù)系統(tǒng)特點(diǎn),本文引入Python來對組幀部分?jǐn)?shù)據(jù)進(jìn)行預(yù)處理。將要發(fā)送的數(shù)據(jù)、FCT以及EOP等進(jìn)行解析,將解析完的整體數(shù)據(jù)序列放到FPGA ROM中。FPGA只需要地址從0累加讀取ROM數(shù)據(jù)依次進(jìn)行發(fā)送即可,如果需求有改動,只需要用Python將處理好序列重新放到FPGA ROM中,這樣邏輯代碼就不需要修改了,每次只需要用Python修改發(fā)送序列即可,系統(tǒng)方案如圖2所示。

      圖2 系統(tǒng)方案

      Python方案相對于傳統(tǒng)方案優(yōu)點(diǎn)如下:

      (1)降低開發(fā)難度。Verilog語言屬于硬件描述語言。編程實(shí)現(xiàn)的是硬件電路比普通的軟件編程要復(fù)雜的多。而Python是近些年火起來的一門語言。它具有簡單、易學(xué)、免費(fèi)開源等優(yōu)點(diǎn)。因此選用Python來解析數(shù)據(jù)可以大大降低難度。

      (2)易于維護(hù)。Verilog語言語法比較單一,開發(fā)的系統(tǒng)易讀性很差,不利于維護(hù)。而Python語言簡潔、易懂,而且有大量的開源庫可以使用。所以比較容易維護(hù)。

      (3)提高開發(fā)效率。Verilog語言開發(fā)系統(tǒng)相當(dāng)于電路設(shè)計(jì)比起軟件編程要復(fù)雜的多。使用Python開發(fā)可以將復(fù)雜的硬件電路設(shè)計(jì)轉(zhuǎn)到軟件編程,可以降低難度,提升效率。

      3 仿真結(jié)果

      我們將要發(fā)送的序列通過Python進(jìn)行預(yù)處理,將數(shù)據(jù)插入FCT,同時進(jìn)行bit拆分,添加校驗(yàn)位,輸出數(shù)據(jù)文件導(dǎo)入FPGA ROM中,進(jìn)行綜合編譯。為了驗(yàn)證模擬源設(shè)備,我們將模擬源代碼和標(biāo)準(zhǔn)接收代碼搭建了一個仿真平臺,仿真平臺通過modelsim進(jìn)行仿真,圖3為仿真結(jié)果,畫圈部分可以看出模擬源模擬的無字符錯誤、奇偶校驗(yàn)錯誤、escape錯誤和信用錯誤。

      4 總結(jié)

      本文首先介紹了SpaceWire總線協(xié)議和應(yīng)用,引出了模擬源系統(tǒng)。然后介紹了模擬源系統(tǒng)的組成結(jié)構(gòu),分析了相對于傳統(tǒng)設(shè)計(jì)思路引入Python對發(fā)送序列進(jìn)行預(yù)處理所帶來的優(yōu)勢。最后進(jìn)行了仿真分析,充分驗(yàn)證了可行性。

      圖3 仿真時序圖

      該系統(tǒng)還有不足之處,就是Python處理完的數(shù)據(jù)全部存到了ROM里面,因此能發(fā)多少數(shù)據(jù)受限于FPGA中memory的容量。如果要發(fā)送長的序列可能會導(dǎo)致memory資源不夠用。因此還可以對系統(tǒng)結(jié)構(gòu)進(jìn)行改進(jìn),硬件部分增加PCIe接口,要發(fā)送的序列可以通過PCIe發(fā)送到FPGA,然后再通過SpaceWire接口發(fā)送出去。這樣無論發(fā)送多長的序列都可以滿足。

      猜你喜歡
      字符校驗(yàn)鏈路
      家紡“全鏈路”升級
      尋找更強(qiáng)的字符映射管理器
      天空地一體化網(wǎng)絡(luò)多中繼鏈路自適應(yīng)調(diào)度技術(shù)
      移動通信(2021年5期)2021-10-25 11:41:48
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:50
      消失的殖民村莊和神秘字符
      爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
      大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗(yàn)研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗(yàn)方法
      鍋爐安全閥在線校驗(yàn)不確定度評定
      墨竹工卡县| 南雄市| 都兰县| 长白| 运城市| 石泉县| 个旧市| 白河县| 平塘县| 松江区| 南郑县| 虎林市| 苍山县| 红河县| 交口县| 陇西县| 峨边| 中方县| 斗六市| 乡宁县| 青铜峡市| 三台县| 聂拉木县| 上杭县| 栾城县| 岢岚县| 元阳县| 吉林市| 和平区| 滦南县| 永寿县| 克拉玛依市| 仪陇县| 德化县| 湟中县| 云南省| 南平市| 分宜县| 黄石市| 手游| 女性|