
摘 要: 在此設計實現STM32采集軟磁材料金屬在不同溫度,變化磁場下的H,M以及Sm值,并通過基于UIP協議的網絡方式將數據傳輸到計算機上。硬件主要由磁熵變探測器、微控制器、以太網芯片、點陣屏、信號處理電路等組成。將UIP協議移植到STM32系列單片機上實現了上位機與STM32單片機的通信,并對測量數據進行分析。實驗結果與預期的結果相吻合。
關鍵詞: 磁熵變; UIP協議棧; 單片機系統; 數據分析
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2015)24?0059?03
Design of data transmission of magnetic entropy change based on UIP protocol stack
BIAN Mingdi, FU Chengwei
(School of physics, Jilin University, Changchun 130012, China)
Abstract: The values of H, M and Sm of the soft magnetic materials are acquired by STM32 in changing magnetic fields at different temperature, and transmitted to the computer in the network mode based on UIP protocol. The hardware consists of magnetic entropy change detector, microcontroller, Ethernet chip, lattice screen and signal processing circuit. The communication between the upper computer and STM32 microcontroller is realized by transplanting UIP protocol to SCM in STM32 series to analyze the measured data. The experimental reault agrees with the expected one.
Keywords: magnetic entropy change; UIP protocol stack; MCU system; data analysis
磁熵變是衡量磁制冷材料性能的重要指標,它是指改變磁場后磁熵的變化值[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);
server.Start(); //服務端啟動偵聽
TcpClient client = server.AcceptTcpClient();
//接受發起連接對象的同步方法
Console.WriteLine(\"收到客戶端連接請求\")
客戶端:
IPAddress ip=IPAddress.Parse(\"127.1.1.1\");
TcpClient client=new TcpClient();
client.Connect(ip,8005);
//8005端口號,必須與服務端給定的端口號一致
連接后,客戶端要發送數據給服務端:
NetworkStream dataStream=client.GetStream();
string msg=\"服務端親啟!\";
byte[] buffer=Encoding.default.getBytes(msg);
stream.write(buffer,0,buffer.length);
服務端拆包:
NetworkStream dataStream=client.GetStream();
byte[] buffer=new byte[8192];
int dataSize=dataStream.Read(buffer,0,8192);
Console.write(Encoding.default.GetString(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的值。得出了金屬釓在變化的磁場中自身熵變的變化也會使得釓的溫度發生變化,與預期的結果相吻合。
圖7 磁熵變曲線
參考文獻
[1] 杜曉波.磁熵變測量實驗裝置[J].物理實驗,2012,32(12):13?14.
[2] 馬濤,龍毅,鮑博,等.低場下退磁效應對磁制冷材料磁熵變的影響[J].稀有金屬,2010,34(1):103?109.
[3] 張鐵邦,陳云貴,唐永柏,等.室溫磁致冷材料現狀及發展趨勢[J].功能材料,2007,38(8):1221?1224.
[4] 姚曉樂,王宇坤.Web開發技術[M].北京:人民郵電出版社,2000.
[5] 張中央,陶乃彬.基于ENC28J60的嵌入式系統以太網接口設計[J].河南科技大學學報:自然科學版,2007,28(3):49?53.
[6] 王永宏,徐煒,郝立平.STM32系列ARM Cortex?M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.