?

核儀器遙傳系統數據校驗設計

2022-03-07 10:11曹彧周建斌
電子測試 2022年24期
關鍵詞:數據量字節上位

曹彧,周建斌

(成都理工大學核技術與自動化工程學院,四川成都,610059)

關鍵字:核測量;無線傳輸;程序設計;串行通信; SerialPort類;接收邏輯

0 引言

隨著電子信息技術的發展,計算機技術在傳統核測量領域得到了廣泛應用,其中作為探測放射性核素主要設備的伽瑪能譜儀,大量用于環境監測、地質勘探、核物理實驗測量等領域[1],為避免現場測量時,長時間接觸放射源對人體造成的危害,可使用無線傳輸模塊將現場測量設備和計算機終端進行隔離,實現非接觸式遠距離測量[2],以此降低研究人員受輻射的危害。

串行接口作為計算機常用的對外接口,因其簡單易用,在某些對通訊速度要求不高的測控場景中被廣泛應用。以串行通信為基礎的硬件設備與上位機進行數據傳輸時,上位機從串口緩沖區獲取數據的方式,經調研發現常用的有兩種,一種是等待指定時間后,從接收緩沖區讀取指定長度的數據,下文簡稱為“時間模式”[3-4];一種是按照接收緩沖區字節長度是否達到硬件設備上傳數據量來獲取數據,下文簡稱為“字節模式”[5]。

本文使用的無線傳輸模塊與計算機終端之間采用串行通信的方式進行數據交互,經實際測試發現,在使用無線模塊進行數據遙傳的過程中,因為通信質量不穩定,常規的以時間模式或字節模式這兩種常用方式來獲取數據的上位機接收邏輯,適用性差,易造成通信阻塞,進而導致測量傳輸系統無法正常運行,因此在前人的研究基礎上,本文使用SerialPort類,提出并檢驗了一種新的數據接收邏輯,在增加了掉線重連、超時檢測等功能后,測量傳輸系統的通信環境的適應能力及傳輸系統穩定性均得到了進一步的提升。

1 測量系統硬件構成

實際應用場景下的測量裝置模型如圖1所示,現場數據測量端由搭載探測器和無線數傳電臺模塊的無人機組成,執行能譜測量及數據回傳的任務。遠程數據接收端由無線數傳電臺及運行測量控制程序的計算機構成,執行參數命令下發和現場測量數據接收的任務。

圖1 實際應用場景下測量裝置模型

測試過程中對實際應用場景下的裝置進行了簡化,去掉了無人機系統,僅在地面進行核儀器遙傳測試,測試裝置組成如圖2所示,主要分為測量端與接收端兩大部分,其中測量端主要由探測器與無線電臺組成,接收端主要由計算機與無線電臺組成。負責遠距離無線傳輸的無線電臺模塊采用由成都億佰特公司研發的E90-DTU工業級無線數傳平臺進行點對點通信。該無線數傳平臺支持RS-232、RS-485兩種接口,可在距離較遠、易受干擾的環境實現點對點跳頻雙向連傳。

圖2 測量裝置結構組成

1.1 探測數據發送端設計

1.1.1 探測器與遙傳模塊通信

數據測量端基本結構模型如圖3所示,碘化鈉探測器主要包含NaI晶體、光電倍增管、前置放大器以及數字多道等模塊,主要負責進行放射性測量。探測器與無線電臺模塊之間依靠RS-485串行總線進行數據交互,該協議采用差分信號進行傳輸具有結構簡單且能有效抑制外界干擾的優點,數據交互過程包含測量數據上傳以及測量參數配置,測量數據上傳過程為探測器首先根據RS-485協議將數據上傳至無線電臺模塊,然后通過無線電臺將測量數據轉換成電磁波,以此進行遠距離無線傳輸。測量參數配置過程為無線電臺首先對接收到的電磁波信號進行解析,然后將解析數據通過RS485協議下發給探測器,以此實現探測器測量參數的配置。

圖3 數據測量端結構組成模型

1.1.2 探測器上傳數據包設計

如圖4所示,一個數據包由2個字節的幀頭“0x55 0xAA”,接著是2個字節的測量時間“Th”、“Tl”,分別代表測量時間數據大小十六進制的高八位和低八位,然后是按順序排列的2048個字節的能譜數據,結尾由2個字節地和校驗字段共計2054個字節組成。在探測器接收到上位機通過遙傳電臺下發的測量數據獲取指令后,立即通過遙傳電臺將測量數據包上傳,經遠程客戶端電臺發送至上位機。

圖4 數據包格式示意圖

1.2 探測數據接收端構成

1.2.1 遙傳模塊與計算機通信

數據接收端基本結構模型如圖5所示,計算機與無線電臺模塊之間依靠RS-232串行總線進行數據交互,交互過程中包括測量數據接收以及測量參數下發,其中測量數據接收過程為無線電臺對接收到的電磁波信號進行解析并將解析結果通過RS232協議傳輸至計算機,最終由運行于此計算機上的測量控制軟件對測量數據進行處理。測量參數下發過程為測量控制軟件將測量參數通過RS232協議下發給無線電臺模塊,由無線電臺將測量數據轉換成電磁波進行遠距離無線傳輸。

圖5 數據接收端結構組成模型

1.2.2 上位機串口通信實現方法

上位機測控程序使用C#編程語言,在集成開發環境Visual Studio 2019進行Winform開發而來的窗體應用程序,該測控程序以SerialPort類為基礎搭建串口通信模塊,實現上位機進行串口通信數據收發的功能。該類定義了多種用于串口收發數據的方法,本文使用Read(byte[],int32,int32)方法從輸入緩沖區讀取指定長度的字節,并將那些字節寫入字節數組中指定的偏移量處,發送數據使用的是Write(byte[])將字節數組放入發送緩沖區通過串行端口進行發送。

2 應答模式下幾種傳輸架構對比分析

2.1 串口接收邏輯及實現

2.1.1 時間模式獲取探測數據

在時間模式下,上位機向遠程探測點發送讀取數據的命令,等待一定時間,然后從接收緩沖區讀取指定長度的數據。當從緩沖區讀取到的數據長度與應收數據長度相等,則認為收到正確應答,進行應答統計,否則認為丟包,進行丟包統計加。應答正確后對數據包進行解包校驗,若校驗通過則進行正確包統計,否則進行錯誤包統計。經數據處理完成后,再次發送讀取數據指令,重復此循環以獲取最新的探測數據。

等待時間值的大小,與探測器上傳數據量及不同環境下遙傳電臺的通信質量相關。此種時間模式的架構,優點是結構簡潔、容易實現,缺點是容易受外界影響,導致丟包、錯誤包的產生,例如通信質量的變化,導致在等待指定時間后,緩沖區數據量與應收數據量不等導致丟包的產生,緩沖區數據量與應收數據量相等但數據順序錯位,因此導致校驗失敗,該數據包將被判定為錯誤包。

2.1.2 字節模式獲取探測數據

為避免時間模式測量中,上位機向遠程探測設備發送讀取數據命令后,實際需要等待的時間長短會隨傳輸環境的變化而變化,進而導致丟包、錯誤包產生的問題,可采用字節模式架構實現一定程度上的問題規避。

字節模式即向探測設備發送讀取數據命令后,按接收緩沖區內的字節數量來獲取數據的模式,讀取使能的判斷,是由緩沖區數據量大小是否達到應收數據量決定的,當緩沖區數量與應收數據量相等,便認為正確接收應答進行應答統計,應答正確后,進行數據包解包校驗,并完成相關統計,最后經數據處理操作,再次發送讀取數據指令,重復此循環以獲取最新的探測數據。

與時間模式下的等待固定時間來觸發讀取使能的方法相比較,按照緩沖區字節量是否滿足條件來使能數據讀取的方式,具有較大彈性,適用性更廣。但缺陷也是顯而易見的,假設傳輸過程突發異常狀況,如遠程探測設備短暫掉線、遙傳電臺信號受到環境干擾等導致的傳輸數據缺失,則接收緩沖區中的數據量始終難以達到應收字節長度的要求,故而程序將陷入判斷緩沖區數據量是否滿足要求的循環,導致無法進行后續操作,以至于上位機軟件程序進入假死狀態。雖然此種模式具有此種缺陷,但是在數據傳輸穩定的測量條件下,仍然具有較大應用意義。

2.1.3 時間+字節模式獲取探測數據

測試分析了時間模式、字節模式下進行數據讀取的優勢和劣勢,綜合考慮,設計出了一種新的數據接收架構,時間-字節模式,該模式具有字節模式數據接收適用性廣的優點,又結合時間模式的特性對字節模式存在的缺陷進行修正。流程框架如下圖6所示。為避免因故障致使端口意外關閉,進而無法正確傳輸數據的情況發生,加入端口開啟檢測模塊,向遠程探測器發送讀取數據命令后,當遇到“端口未開啟”報錯,將關閉超時檢測計時器Timer1并立即啟動端口掃描計時器Timer0,掃描并記錄接入端口的識別信息,如果與原端口識別信息相同,則停止端口掃描模塊,重新下發讀取數據命令,若不相同,則繼續掃描。

圖6 “時間模式”數據接收邏輯示意圖

端口正常開啟情況下,向遠程探測器發送讀取數據命令后,同時開啟超時檢測計時器Timer1進行嘀嗒計時,數據接收模塊檢測接收緩沖區數據是否達到應收數據量要求,當遇到異常傳輸情況導致的數據傳輸缺失,致使緩沖區的數據量始終無法達到應收數據量的水平,在超時檢測模塊的輔助下,程序將不會陷入假死狀態,而是在超時之后,將此失敗應答統計為丟包,并向遠程探測器重新發起數據請求命令。當接收緩沖區中的數據量滿足要求時,則啟動數據讀使能,相應統計值進行累加,關閉超時檢測模塊使能,并將緩沖區中的數據讀出,按照協議進行解包校驗,統計接收信息,待后續數據處理完成后,再次發送讀取數據命令,重復此循環以獲取最新的探測數據。

2.2 數據傳輸測試對比

在需要應答信號的測量控制系統中,依據上述三種串行通訊數據傳輸邏輯,使用C#編程語言,以SerialPort類為基礎,編寫三種相應的串口通信測試程序,界面如下圖7、8、9所示,在相同的測量環境下,使用同一個遙傳測試平臺,傳輸距離設置為100米,中間以門、墻作簡單隔擋,進行連續測量,測試分析三種數據接收模式的穩定性。

圖7 “字節模式”數據接收邏輯示意圖

圖8 “時間+字節模式”數據接收邏輯示意圖

圖9 “時間模式”上位機界面

圖10 “字節模式”上位機程序

2.2.1 測量傳輸統計

如表1所示數據包接收統計,分別針對三種數據接收模式的上位機測量程序,在同一測量條件下,連續測量1小時,統計其數據接收信息,其中“應收包數目”表示上位機向遠程探測器發送數據獲取命令,對應的正常情況下數據包接收數目,“實收包數目”表示在一定應答時間限制內的,接收到與探測器上傳數據等量的數據包接收數目,“丟失包數目”表示在一定時間內未收到與探測器上傳數據等量數據包的次數?!板e誤包數目”表示接收到與探測器上傳數據等量的數據后,校驗通過的數目。字節模式下,因為其固有的邏輯缺陷,在單次接收數據出錯后,程序將陷入假死狀態,導致測量系統無法正常通信,因此字節模式下接收數據數目如表所示,理論上接收數據包數目應與“時間+字節”模式相等。

圖11 “時間+字節模式”上位機程序

表1 測量包信息統計

2.2.2 丟失包與錯誤包統計分析

由于字節模式進行100次應答之后,測量傳輸失敗,因此丟包統計分析只在“時間模式”和“時間+字節模式”之間討論。如圖12所示,在“時間+字節模式”下的每傳輸50包數據發生的數據包丟失率水平低于“時間模式”下的數據包丟失率水平。

圖12 丟包率統計堆積柱狀圖對比

由于字節模式進行100次應答之后,測量傳輸失敗,因此錯誤包統計分析只在“時間模式”和“時間+字節模式”之間討論。如圖13所示,“時間+字節模式”下每傳輸50包數據產生的錯誤率低于“時間模式”下的錯誤率。

圖13 錯誤率統計堆積柱狀圖對比

3 結束語

本測試系統的數據傳輸校驗采用簡單加和的方法對數據包進行校驗,但加和校驗得出的校驗結果可靠性較低,例如數據段內因字節順序改變導致的錯誤,加和校驗并不能進行有效區分。由于CRC循環冗余校驗獲得的校驗碼與數據包數據段的每一位數據構成一種特定的關系,達到以較少的冗余位獲得可靠的校驗結果的目的,因此后續可用CRC校驗進行改進。

本文從實際測量實驗中遇到的問題出發,在常用的串行通信上位機數據接收邏輯的基礎上,提出了“時間+字節”的接收模型,并通過C# Winform開發了基于此接收模型的上位機測量控制程序。經相關測試驗證后,結果表明:1)當無線傳輸通信質量出現嚴重下降時,即測量數據傳輸過程中出現字節丟失的情況,使用改進型上位機測控程序所組成的核儀器遙傳測量系統,測量傳輸能夠穩定進行。2)當遇到測量傳輸設備因故障導致掉線的異常情況,此種異常采用人為斷開連接線的方式進行模擬。經測試使用“時間+字節”模式的上位機程序,測量傳輸系統能夠穩定運行,由于具有掉線重連的功能,提高了系統數據傳輸可靠性。

猜你喜歡
數據量字節上位
No.8 字節跳動將推出獨立出口電商APP
基于大數據量的初至層析成像算法優化
高刷新率不容易顯示器需求與接口標準帶寬
寬帶信號采集與大數據量傳輸系統設計與研究
No.10 “字節跳動手機”要來了?
特斯拉 風云之老阿姨上位
簡談MC7字節碼
“三扶”齊上位 決戰必打贏
基于ZigBee和VC上位機的教室智能監測管理系統
以新思路促推現代農業上位
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合