範文齋

位置:首頁 > 行業範文 > 設計

基於UIP協議棧的磁熵變測量數據的傳輸設計

設計1.21W

在此設計實現STM32採集軟磁材料金屬在不同溫度,變化磁場下的H,M以及Sm值,並通過基於UIP協議的網絡方式將數據傳輸到計算機上。硬件主要由磁熵變探測器、微控制器、以太網芯片、點陣屏、信號處理電路等組成。將UIP協議移植到STM32系列單片機上實現了上位機與STM32單片機的通信,並對測量數據通信進行分析。實驗結果與預期的結果相吻合。

基於UIP協議棧的磁熵變測量數據的傳輸設計

磁熵變是衡量磁製冷材料性能的重要指標,它是指改變磁場後磁熵的變化值[1?3]。磁測量的具體方法是測量來自儀器的關於磁場強度H和磁化強度M的兩個微分電壓和一個探頭所處的溫度值。現將磁場強度H和磁化強度M的電壓微分值傳到上位機,上位機通過算法對其進行積分計算。本設計採用的傳輸方式基於UIP協議棧,具有代碼少,佔用內存少,方便閱讀和移植,支持多個主動鏈接和被動連接併發等優點,並且其硬件處理層、協議棧層和應用層共用一個全局緩存區,極大地節省了空間和時間

1 系統總體設計

整個系統由探測源和磁化裝置,信號放大電路,單片機系統,顯示部分和上位機軟件組成。系統總構成如圖1所示。磁化裝置磁化探測源,探測源將信號發出,信號經過處理後由單片機系統採集,單片機一方面通過SPI通信將採集的電壓和當前金屬的'溫度以數字的方式顯示在LCD上,直觀地顯示磁感應強度的強弱,另一方面通過通過UIP協議棧與上位機進行通信。

圖1 系統構成

2 磁熵變的信號採集

2.1 磁熵變的測量原理與信號採集

本實驗測量的金屬選用釓。磁化金屬釓的儀器,內部繞有大量線圈,上電後,通過掃描電源在適當的時間控制電壓的變化,變化範圍爲0~5 V ,每隔約5 s電壓值上升100 mV,如圖2所示,這樣產生的磁場就會發生躍變。另一個裝置有兩個凹槽,一個裝有金屬釓,另一個不裝。線圈磁化金屬釓,釓就會在電壓上升的一瞬間磁感應強度增大,磁通量升高,產生感應電動勢,兩個圓孔凹槽的電壓經過信號處理電路,經放大後電壓瞬時值可達到2 mV左右,此時ADC就可以採集實驗數據。

圖2 磁化儀器電壓控制

2.2 基於UIP協議棧的數據的傳遞

UIP通過一系列的函數實現與底層硬件和高層應用程序的通信,對於整個系統來說它內部的協議組是透明的,從而增加了協議的通用性[4]。本文以太網芯片爲ENC28J60。該芯片支持全雙工和半雙工模式,帶有最高速度可達10 Mb/s的SPI接口,採用可編程8 KB雙端口SRAM緩衝器,支持單播、組播和廣播數據包,可以實現佔位小、成本低、更加精簡的網絡應用系統[5]。

2.3 以太網芯片與微控制器接口電路設計

ENC28J60與微控制器的硬件電路連接如圖3所示,其連接可以實現半雙工通信。微控制器使用的是ST公司的STM32C8T6,其運行速度快,性能高。本系統選擇選用STM32微處理器可以在-40~85 ℃的溫度範圍內工作,而且體積小,穩定性強[6]。ENC28J60與STM32連接,二者通過SPI通信。

圖3 以太網芯片與微控制器的接口電路

3 系統軟件設計

3.1 單片機系統總流程

系統上電後,首先進行系統初始化,包括I/O初始化、時鐘初始化、SPI初始化、UIP初始化以及開中斷、定時器,單片機採集電壓數據後進行濾波,然後通過移植的UIP協議將數據發送到上位機,流程如圖4所示。

3.2 上位機系統流程

系統上電後首先進行系統的初始化,然後開始接收數據包,分析接收到的數據包,與下位機一起進行校驗位計算,當錯誤出現時上位機就會有相應的提示,若有數據而且數據正確,則提取測量數據,用示波器實時顯示測量數據,並且實時存儲測量數據。部分代碼如下:

服務端:

IPAddress ip = new IPAddress(new byte[] { 127, 1, 1, 1 });

TcpListener server = new TcpListener(ip, 8005);

t(); //服務端啓動偵聽

TcpClient client = ptTcpClient();

//接受發起連接對象的同步方法

eLine("收到客戶端連接請求")

客戶端:

IPAddress ip=e("");

TcpClient client=new TcpClient();

ect(ip,8005);

//8005端口號,必須與服務端給定的端口號一致

連接後,客戶端要發送數據給服務端:

NetworkStream dataStream=tream();

string msg="服務端親啓!";

byte[] buffer=ytes(msg);

e(buffer,0,th);

服務端拆包:

NetworkStream dataStream=tream();

byte[] buffer=new byte[8192];

int dataSize=(buffer,0,8192);

e(tring(buffer,0,dataSize));

圖4 單片機系統流程

4 測試結果及分析

給儀器一個變化的電流,大約經過3 s磁場變化結束,把這3 s內的電壓做積分也就是求與時間軸交匯的面積就是對應的H值,如圖5所示,依次累加就對應着各自狀態下的H值。

該區域的面積S就是該時刻的金屬釓的H值,在此把它設爲S1,設下一個階梯到時面積爲S2,此時的H2=S2+S1,依次類推,Hn=S1+S2+…+Sn。這是金屬釓的H值,另一個沒有金屬釓凹槽測量出來的是M值,同樣,Mn=S1+S2+…+Sn。然後再通過水冷盒改變金屬釓的溫度就可以測出在不同溫度下金屬釓的磁熵,計算公式如下:

[ΔS=H2H1?M?THdH;ΔS=i=1n?M?THΔH]

圖6是通過以上的測量給出的H,M曲線,圖7爲磁熵變的曲線。

圖5 H值

圖6 不同溫度下H?M曲線

5 結 語

本文利用STM32的UIP協議棧採集並傳輸了金屬釓在變化磁場下的H,M以及磁熵變Sm的值。得出了金屬釓在變化的磁場中自身熵變的變化也會使得釓的溫度發生變化,與預期的結果相吻合。

標籤:UIP 傳輸 協議