摘 要: 在此設(shè)計實現(xiàn)STM32采集軟磁材料金屬在不同溫度,變化磁場下的H,M以及Sm值,并通過基于UIP協(xié)議的網(wǎng)絡(luò)方式將數(shù)據(jù)傳輸?shù)接嬎銠C(jī)上。硬件主要由磁熵變探測器、微控制器、以太網(wǎng)芯片、點(diǎn)陣屏、信號處理電路等組成。將UIP協(xié)議移植到STM32系列單片機(jī)上實現(xiàn)了上位機(jī)與STM32單片機(jī)的通信,并對測量數(shù)據(jù)進(jìn)行分析。實驗結(jié)果與預(yù)期的結(jié)果相吻合。
關(guān)鍵詞: 磁熵變; UIP協(xié)議棧; 單片機(jī)系統(tǒng); 數(shù)據(jù)分析
中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: 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
磁熵變是衡量磁制冷材料性能的重要指標(biāo),它是指改變磁場后磁熵的變化值[1?3]。磁測量的具體方法是測量來自儀器的關(guān)于磁場強(qiáng)度H和磁化強(qiáng)度M的兩個微分電壓和一個探頭所處的溫度值?,F(xiàn)將磁場強(qiáng)度H和磁化強(qiáng)度M的電壓微分值傳到上位機(jī),上位機(jī)通過算法對其進(jìn)行積分計算。本設(shè)計采用的傳輸方式基于UIP協(xié)議棧,具有代碼少,占用內(nèi)存少,方便閱讀和移植,支持多個主動鏈接和被動連接并發(fā)等優(yōu)點(diǎn),并且其硬件處理層、協(xié)議棧層和應(yīng)用層共用一個全局緩存區(qū),極大地節(jié)省了空間和時間。
1 系統(tǒng)總體設(shè)計
整個系統(tǒng)由探測源和磁化裝置,信號放大電路,單片機(jī)系統(tǒng),顯示部分和上位機(jī)軟件組成。系統(tǒng)總構(gòu)成如圖1所示。磁化裝置磁化探測源,探測源將信號發(fā)出,信號經(jīng)過處理后由單片機(jī)系統(tǒng)采集,單片機(jī)一方面通過SPI通信將采集的電壓和當(dāng)前金屬的溫度以數(shù)字的方式顯示在LCD上,直觀地顯示磁感應(yīng)強(qiáng)度的強(qiáng)弱,另一方面通過通過UIP協(xié)議棧與上位機(jī)進(jìn)行通信。
圖1 系統(tǒng)構(gòu)成
2 磁熵變的信號采集
2.1 磁熵變的測量原理與信號采集
本實驗測量的金屬選用釓。磁化金屬釓的儀器,內(nèi)部繞有大量線圈,上電后,通過掃描電源在適當(dāng)?shù)臅r間控制電壓的變化,變化范圍為0~5 V ,每隔約5 s電壓值上升100 mV,如圖2所示,這樣產(chǎn)生的磁場就會發(fā)生躍變。另一個裝置有兩個凹槽,一個裝有金屬釓,另一個不裝。線圈磁化金屬釓,釓就會在電壓上升的一瞬間磁感應(yīng)強(qiáng)度增大,磁通量升高,產(chǎn)生感應(yīng)電動勢,兩個圓孔凹槽的電壓經(jīng)過信號處理電路,經(jīng)放大后電壓瞬時值可達(dá)到2 mV左右,此時ADC就可以采集實驗數(shù)據(jù)。
圖2 磁化儀器電壓控制
2.2 基于UIP協(xié)議棧的數(shù)據(jù)的傳遞
UIP通過一系列的函數(shù)實現(xiàn)與底層硬件和高層應(yīng)用程序的通信,對于整個系統(tǒng)來說它內(nèi)部的協(xié)議組是透明的,從而增加了協(xié)議的通用性[4]。本文以太網(wǎng)芯片為ENC28J60。該芯片支持全雙工和半雙工模式,帶有最高速度可達(dá)10 Mb/s的SPI接口,采用可編程8 KB雙端口SRAM緩沖器,支持單播、組播和廣播數(shù)據(jù)包,可以實現(xiàn)占位小、成本低、更加精簡的網(wǎng)絡(luò)應(yīng)用系統(tǒng)[5]。
2.3 以太網(wǎng)芯片與微控制器接口電路設(shè)計
ENC28J60與微控制器的硬件電路連接如圖3所示,其連接可以實現(xiàn)半雙工通信。微控制器使用的是ST公司的STM32C8T6,其運(yùn)行速度快,性能高。本系統(tǒng)選擇選用STM32微處理器可以在-40~85 ℃的溫度范圍內(nèi)工作,而且體積小,穩(wěn)定性強(qiáng)[6]。ENC28J60與STM32連接,二者通過SPI通信。
圖3 以太網(wǎng)芯片與微控制器的接口電路
3 系統(tǒng)軟件設(shè)計
3.1 單片機(jī)系統(tǒng)總流程
系統(tǒng)上電后,首先進(jìn)行系統(tǒng)初始化,包括I/O初始化、時鐘初始化、SPI初始化、UIP初始化以及開中斷、定時器,單片機(jī)采集電壓數(shù)據(jù)后進(jìn)行濾波,然后通過移植的UIP協(xié)議將數(shù)據(jù)發(fā)送到上位機(jī),流程如圖4所示。
3.2 上位機(jī)系統(tǒng)流程
系統(tǒng)上電后首先進(jìn)行系統(tǒng)的初始化,然后開始接收數(shù)據(jù)包,分析接收到的數(shù)據(jù)包,與下位機(jī)一起進(jìn)行校驗位計算,當(dāng)錯誤出現(xiàn)時上位機(jī)就會有相應(yīng)的提示,若有數(shù)據(jù)而且數(shù)據(jù)正確,則提取測量數(shù)據(jù),用示波器實時顯示測量數(shù)據(jù),并且實時存儲測量數(shù)據(jù)。部分代碼如下:
服務(wù)端:
IPAddress ip = new IPAddress(new byte[] { 127, 1, 1, 1 });
TcpListener server = new TcpListener(ip, 8005);
server.Start(); //服務(wù)端啟動偵聽
TcpClient client = server.AcceptTcpClient();
//接受發(fā)起連接對象的同步方法
Console.WriteLine(\"收到客戶端連接請求\")
客戶端:
IPAddress ip=IPAddress.Parse(\"127.1.1.1\");
TcpClient client=new TcpClient();
client.Connect(ip,8005);
//8005端口號,必須與服務(wù)端給定的端口號一致
連接后,客戶端要發(fā)送數(shù)據(jù)給服務(wù)端:
NetworkStream dataStream=client.GetStream();
string msg=\"服務(wù)端親啟!\";
byte[] buffer=Encoding.default.getBytes(msg);
stream.write(buffer,0,buffer.length);
服務(wù)端拆包:
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 單片機(jī)系統(tǒng)流程
4 測試結(jié)果及分析
給儀器一個變化的電流,大約經(jīng)過3 s磁場變化結(jié)束,把這3 s內(nèi)的電壓做積分也就是求與時間軸交匯的面積就是對應(yīng)的H值,如圖5所示,依次累加就對應(yīng)著各自狀態(tài)下的H值。
該區(qū)域的面積S就是該時刻的金屬釓的H值,在此把它設(shè)為S1,設(shè)下一個階梯到時面積為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 結(jié) 語
本文利用STM32的UIP協(xié)議棧采集并傳輸了金屬釓在變化磁場下的H,M以及磁熵變Sm的值。得出了金屬釓在變化的磁場中自身熵變的變化也會使得釓的溫度發(fā)生變化,與預(yù)期的結(jié)果相吻合。
圖7 磁熵變曲線
參考文獻(xiàn)
[1] 杜曉波.磁熵變測量實驗裝置[J].物理實驗,2012,32(12):13?14.
[2] 馬濤,龍毅,鮑博,等.低場下退磁效應(yīng)對磁制冷材料磁熵變的影響[J].稀有金屬,2010,34(1):103?109.
[3] 張鐵邦,陳云貴,唐永柏,等.室溫磁致冷材料現(xiàn)狀及發(fā)展趨勢[J].功能材料,2007,38(8):1221?1224.
[4] 姚曉樂,王宇坤.Web開發(fā)技術(shù)[M].北京:人民郵電出版社,2000.
[5] 張中央,陶乃彬.基于ENC28J60的嵌入式系統(tǒng)以太網(wǎng)接口設(shè)計[J].河南科技大學(xué)學(xué)報:自然科學(xué)版,2007,28(3):49?53.
[6] 王永宏,徐煒,郝立平.STM32系列ARM Cortex?M3微控制器原理與實踐[M].北京:北京航空航天大學(xué)出版社,2008.