肖玉芝
(1.青海師范大學 計算機學院,青海 西寧 810008;2.陜西師范大學 計算機科學學院,陜西 西安 710000)
電子自旋共振現象被發現于本世紀四十年代后期,經過幾十年的研究發展,它與核磁共振,鐵磁共振,光泵磁共振等形成了一個新的學科——磁共振波譜學。作為一項實用技術,它在化學、物理、生物和醫學等方面獲得了廣泛的應用,近年來,與計算機技術結合,為人類作出了巨大的貢獻。
文中涉及的是普通高校近代物理實驗-電子自旋共振實驗[1],在實驗中要求觀察電子自旋共振現象,觀察順磁離子對共振信號的影響,測量DPPH(自由基二苯基三硝基苯肼)中電子的g因子(hv=gJμBB),并利用電子自旋共振測量地球磁場的垂直和水平分量。其中準確的獲得這些實驗數據是非常重要的,文中提出利用PC機與嵌入式單片機通信傳輸數據,并且將采集到的數據繪制成可視化的共振譜線圖,通過讀取共振譜線的坐標值來獲得實驗所需要的數據,同時將實驗數據生成實驗報告。大大提高了實驗的精度和自動化。
智能電子自旋共振儀優越于傳統的電子自旋共振儀[2-3],它用單片機系統來判斷共振點,用亥姆霍茲線圈取代傳統的螺線管線圈來測量磁場強度B0,測量準確、便捷。
為了觀測到共振現象,需要使用一個高頻探頭,其振蕩線圈為被測物DPPH提供能級躍遷所需的能量(hυ),當產生共振時,振蕩器的能量被樣品吸收,振蕩幅度會發生變化,該變化經過檢波和低頻放大后輸出,即可在外接示波器或PC機上觀察到共振峰(亦稱為共振譜線)。儀器前端采用邊緣振蕩器來探測共振信號,信號經檢波放大后送波形變換模塊,產生CMOS電平的信號脈沖,然后送往微處理器的I/O口,由軟件來計算矩形脈沖的寬度,當峰信號出現等間距時,相鄰脈沖的寬度相等,此時即判定B0已調準并給出讀取數據的指示,同時將該數據放入內存。
實驗儀器中嵌入了AT89C52單片機(下位機),負責數據采集、處理和控制。PC監控機(上位機)進行現場可視化檢測,它們之間采取主從串行通信方式。PC機上的串行通信通過端口RS232的RTS信號進行二進制數據的收發轉換與傳輸。下位機中串行數據從TXD引腳按規定的波特率輸出,接收數據時監視RXD引腳,一旦出現“0”位,按規定的波特率將外圍設備送來的數據存儲[4]。但是,在8051單片機的內部有一個全雙工的異步串行I/O口,它的輸入和輸出使用5 V邏輯而不是RS-232電壓,所以連接時用MAX485專用芯片進行轉換。如圖1所示單片機與外設串口通信原理圖。

圖1 單片機與外設串口通信原理圖Fig.1 Communication principle between SCM and peripherals serial interface
2.2.1 通信協議
本系統串行通信采用異步通信方式。協議如下:
1)一幀數據由1位起始位、8位數據位、無奇偶校驗位、1位停止位共10位組成。
2)波特率設為2 400 bps。單片機串行口按方式1工作,波特率由定時器T1控制。
PC機串口波特率通過VB通訊控件的Settings屬性設置,為保證數據傳送的準確性,兩者的波特率必須一致。
2.2.2 下位機通信及程序設計
單片機可以采用中斷方式或查詢RI(接受中斷標志位)或TI(發送中斷標志位)方式進行數據通信[5]。本系統采用查詢方式,在定時器T2中斷子程序中查詢 RI,一旦檢測到RI=1則轉入接受數據子程序,在子程序中單片機讀取從上位機發送的通信指令、讀取記錄個數等數據,經校驗正確后,即從ATC256存儲器中將歷史記錄數據上傳給PC機。
Uchar comReceive(void)
{while(RI==0) //表示未接收,需等待
RI=0;//接收完后清除換下一數據
Return(SBUF)
2.2.3 上位機通信及程序設計
上位機利用Visual Basic8.0編程。用VB8.0開發串行通信程序有2種方法,一種是利用Windows的API函數;另一種是采用VB8.0的通信控件MSComm。利用API函數編寫串行通信程序較為復雜,需要掌握大量的通信知識,其優點是可實現的功能更豐富、應用面更廣泛,適合于編寫較為復雜的低層次通信程序。而VB8.0的MSComm通信控件提供了標準的事件處理函數、事件、方法,并通過控件屬性對串口參數進行設置,比較容易地解決了串口通信問題[6]。
本系統采用事件驅動方式進行串口通信設計。
該實驗接收從單片機發來的電流值等數據,并賦予數組。部分代碼如下:
Private Sub MSComm1_OnComm()'通信
…
Select Case MSComm1.CommEvent
Case comEvReceive
inbyte=MSComm1.Input
For i=LBound(inbyte) To UBound(inbyte)
If Len(Hex(inbyte(i))) =2 Then
Data_text=Data_text&Hex(inbyte(i))
Text1.Text=Text1.Text&Hex(inbyte(i)) & “ ” ’+Chr(32)
至此,該實驗系統中數據的采集工作就完成了,下一步將把采集的數據可視化監控,利用上位機完成實驗中磁場,g因子等各種計算。
從單片機采集到的數據傳送到PC機的存儲數組中,然后將每組數據繪制成共振譜線,并且通過讀取共振譜線的坐標值來獲得實驗數據。在VB中實時曲線的繪制一般借助于Timer控件來完成[7],使用Timer控件,定期將智能電子自旋共振儀中監測到的數據送往pic_main,而曲線的繪制一般畫成折線圖,采用PictureBox1的Line方法繪制。用Line方法可以在窗體或圖片框上繪制一條直線或繪制一個矩形。
Line方法的一般格式:
[對象名.]Line (x1,y1)- (x2,y2) [,顏色]
其中,(x1,y1)為始點坐標;(x2,y2)為終點坐標;顏色可以使用RGB函數,規定畫線或畫矩形的顏色。部分代碼如下:
Private Sub draw_line()
…
For i=1 To UBound(ValueArray)-1
next_x=XX* (i)
next_y =pic_main.ScaleHeight -ValueArray (i)/pic_max_y*pic_main.ScaleHeight
pic_main.Line (cur_x, cur_y)-(next_x, next_y)
cur_x=next_x
cur_y=next_y
Next
…
End Sub
本系統實驗結束后,電子自旋共振實驗報告由系統自動生成一張WORD文檔。避免了傳統的手工輸入時產生的誤差。實驗報告的信息內容:姓名、標題、表格、圖表、日期、實驗計算及測量結果等。
Documents集合包含所有打開的文檔。要新建一篇文檔,可使用Add方法將一個Document對象添至Documents集合[8]。
新建文檔的方法之一是使用Add方法。Add方法將返回Document對象,該對象引用新文檔。
Private Sub bcjg_Click()
Dim wrdapp As Word.Application
Set wrdapp=New Word.Application
With wrdapp'Show Word
…
End Sub
接下來,向空文檔中添加文本,這將使用Paragraphs集合對象來完成此項工作。以下代碼向文檔某處添加一個段落并設置本段落格式:
Private Sub bcjg_Click()
Dim wrdapp As Word.Application
Set wrdapp=New Word.Application
With wrdapp'Show Word
.Visible=True
.Documents.Add
.ActiveDocument.Paragraphs (wrdapp.ActiveDocument.Paragraphs.count).Alignment=wdAlignParagraphCenter
.ActiveDocument.Paragraphs (wrdapp.ActiveDocument.Paragraphs.count).Range.Font.Bold=True
…
.ActiveDocument.Content.Text= “電子自旋共振實驗報告”&vbTab&“”&vbCr
End With
End Sub
電子自旋共振實驗系統中生成的WORD文檔除了基本信息外還包含一些表格信息,表格信息部分代碼如下:
Private Sub bcjg_Click()
Dim R As Word.Range
Dim mt As Word.Table ‘生成表格
Set R=wrdapp.ActiveDocument.Range(0, 0)
Setmt= wrdapp.ActiveDocument.Tables.Add(wrdapp.ActiveDocument.Paragraphs(27).Range, 6, 4)
…
End Sub
由于智能電子自旋共振儀器嵌入了單片機系統,許多數據的采集由計算機自動完成,大大提高了實驗效率,實驗誤差極小。通過嵌入式單片機與PC機間的通信實現數據的傳輸,在PC機上直觀的刻畫出實驗的共振譜線圖,如圖2(共振譜線)所示,圖中第1個波峰值和第3個波峰值相同,此時取坐標C0和C1的值,計算g因子和磁場等數值。同時自動生成實驗文檔進行保存或打印,如圖3(實驗報告)所示。

圖2 共振譜線Fig.2 Resonance spectrum line

圖3 實驗報告Fig.3 Experiment report
利用Visual Basic的事件驅動方式可以很方便地開發智能電子自旋共振儀的數據采集與監控系統,此系統利用PC機強大的監控和管理功能,通過監控機與嵌入式單片機進行通信,實時獲取實驗數據。同時通過鼠標讀取共振譜線圖的坐標值來獲得實驗中磁場計算、g因子計算等各種計算所需的數據,避免了手工添加時的誤差。并且生成了圖文并茂的實驗報告,同時該系統模型也可以被應用到磁場共振波譜學的其他領域。
[1]戴道宜,戴樂山.近代物理實驗[M].2版.北京:高等教育出版社,2004.
[2]陳學煌,馬俊,牟化建.電子自旋共振儀中嵌入單片機測控系統的設計[J].傳感器與微系統,2005(12):70-76.CHEN Xue-huang,MA Jun,MOU Hua-jian.Design of single chip processor measurement and control system embedded in esr apparatus[J].Transducer and Microsystem Technologies,2005(12):61-63.
[3]張華.現代有機波譜分析[M].北京:化學工業出版社,2005.
[4]喻萍.單片機原理與接口技術[M].2版.北京:化學工業出版社,2006.
[5]孫煥銘,等.51單片機C程序應用實例詳解[M].北京:北京航空航天大學出版社,2011.
[6]Willys.VISUAL BASIC2010入門經典[M].6版.吳偉敏,等,譯.北京:電子工業出版社,2008.
[7]李蘭,李瑋.VISUAL BASIC.NET圖形圖像編程與實例詳解[M].2版.北京:電子工業出版社,2006.
[8]Willis T,Newsome B.VISUAL BASIC 2008入門經典 [M].5版.徐燕華,譯.北京:清華大學出版社,2009.