【導(dǎo)讀】近年來,隨著傳感器技術(shù)的不斷發(fā)展,特別是單片機技術(shù)的廣泛應(yīng)用,采用單片機與PC機構(gòu)成的小型傳感器測控系統(tǒng)越來越多。本文采用霍爾傳感器作為前端進行數(shù)據(jù)采集,然后在單片機控制下進行A/D轉(zhuǎn)換,并將信號通過串口送給PC機進行繪圖處理。
系統(tǒng)介紹
系統(tǒng)可以分為3個部分。第一部分是信號源,由霍爾傳感器產(chǎn)生電壓信號,信號通過差分放大,濾波得到較清晰的信號;第二部分是信號經(jīng)過A/D轉(zhuǎn)換送入單片機進行處理,再通過串行通信送入PC機處理得到結(jié)果;第三部分是數(shù)據(jù)的顯示,這部分是通過VB的繪圖程序來完成,顯示結(jié)果以v-x關(guān)系圖來顯示。系統(tǒng)總流程如圖1所示。
圖1:系統(tǒng)總流程
硬件設(shè)計及實現(xiàn)
霍爾傳感器
霍爾傳感器是利用霍爾效應(yīng)實現(xiàn)磁電轉(zhuǎn)換的一種傳感器。它具有靈敏度高,應(yīng)用廣泛的特點。其工作原理如圖2所示:一塊半導(dǎo)體薄片,其長度為L,寬度為B,厚度為D,置于磁感應(yīng)強度為B的磁場中,在相對的兩邊通以控制電流I,且磁場方向與電流方向正交,則在半導(dǎo)體的兩邊將產(chǎn)生一個與控制電流和磁感應(yīng)強度乘積成正比的電勢U,該電勢即為霍爾電壓,用UH表示,即UH=KHIB,其中KH為霍爾元件的靈敏度,半導(dǎo)體薄片就是霍爾元件。
圖2:霍爾效應(yīng)工作原理
應(yīng)強度為O,在縫隙間沿z軸形成一個均勻梯度的磁場dB/dx=K(K為常數(shù))。B=0處作為位移x的參考原點,則x=O時,B=O,UH=O。當(dāng)它們中間的霍爾元件移動到x處時,UH大小由x處的B決定。由公式UH=KHIB可知:保持I不變,則dUH/dx=IKHdB/dx=KHI=K,積分后得UH=Kx,即霍爾電勢與位移成比例。磁場梯度越大,靈敏度越高,磁場變化越均勻,UH和x的線性越好。
本系統(tǒng)中的第一部分由圖3中的霍爾傳感器裝置提供,由霍爾元件(A44E)、差分放大器和濾波器組成。其輸出電壓與霍爾元件位移成比例,具有較高靈敏度,能夠產(chǎn)生出符合要求的電壓信號。
圖3:傳感器信號發(fā)生裝置
模/數(shù)轉(zhuǎn)換原理
該系統(tǒng)中的單片機是使用Atmel公司的AT89C51微控制器,與MCS一51單片機產(chǎn)品兼容,具有4 KB閃爍可編程可擦除只讀存儲器、1 000次擦寫周期、32個可編程I/O口線、2個16位定時器/計數(shù)器、5個中斷源、UART串行通道等特點。在設(shè)計中主要用它來控制傳感器信號發(fā)生裝置輸出的模擬信號轉(zhuǎn)換成數(shù)字信號,進行數(shù)據(jù)采集和顯示以及串行通信。
經(jīng)過與標(biāo)準(zhǔn)量比較處理后的模擬量轉(zhuǎn)化成以二進制數(shù)值表示的離散信號的轉(zhuǎn)換器,簡稱A/D轉(zhuǎn)換器.轉(zhuǎn)換器的輸入量一般為直流電流或電壓,輸出量為二進制數(shù)碼的數(shù)字量。該設(shè)計中使用ADC0809轉(zhuǎn)換器。過程如下:首先它可以將其看成由一個8位A/D轉(zhuǎn)換器和一個8通道模擬多路開關(guān)組合而成,INO~I(xiàn)N7分別對應(yīng)8路模擬量輸人,由引腳ADDA,ADDB和ADDC決定具體是哪一條模擬量來進行轉(zhuǎn)化。在引腳START和ALE上加1個正脈沖后,通道選擇碼立即鎖定并同時ADC轉(zhuǎn)換啟動。轉(zhuǎn)換開始后OE引腳加1個正脈沖,將輸出緩沖器的三態(tài)門打開,使轉(zhuǎn)換后的數(shù)字量能夠傳送至數(shù)據(jù)總線。
數(shù)據(jù)采集和顯示
放大處理后的電壓信號,雖然在幅值上達(dá)到了可以處理的范圍,但模/數(shù)電壓轉(zhuǎn)換的范圍是0~5 V,而傳感器輸出的電壓存在負(fù)值,為了使電壓匹配,信號電壓在接人模/數(shù)轉(zhuǎn)換器前可以加一級加法電路,將電壓信號全部轉(zhuǎn)換為正值。放大電路、濾波電路和加法電路均使用LM324實現(xiàn),硬件電路如圖4所示。
圖4:硬件電路圖
數(shù)據(jù)顯示電路分為數(shù)碼管顯示電路和PC機顯示 部分。數(shù)碼管顯示用于單片機上,單片機分別通過段顯 碼和位顯碼對數(shù)碼管上顯示的數(shù)據(jù)進行控制。段顯碼 控制顯示的數(shù)據(jù)內(nèi)容,位顯碼則控制數(shù)碼管亮或滅。段 顯碼是單片機通過可編程通用并行接口8155逐位傳到 8位移位寄存器74LSl64中去,再由它將串行傳輸數(shù)據(jù) 變?yōu)椴⑿袛?shù)據(jù)傳給數(shù)碼管顯示。而位顯碼是單片機 通過8155一次性送到數(shù)據(jù)鎖存器74L$244中鎖存,再 去驅(qū)動數(shù)碼管并控制其亮或滅。
串行通信
該設(shè)計中采用異步串行通信的方式。而AT89C51 單片機的串行口,當(dāng)工作于方式1,2和3時,UART(通用異步接收和發(fā)送)可以實現(xiàn)單片機系統(tǒng)與PC機之間的串行通信。PC機串行通信主要是通過串行口芯片8251實現(xiàn)的。8251有10個寄存器,端口地址從3F8H~3FEH(c0M1),可以通過對8251編程來指定通信協(xié)議即通信的波特率、數(shù)據(jù)位數(shù)、奇偶類型和停止位長度。另外由于Pc機串口的電平是RS 232電平,不與單片機串口的TTL電平兼容,因此需要在它們之間進行電平轉(zhuǎn)換。傳統(tǒng)的方法是使用MCl488將TTL電平轉(zhuǎn)換成RS 232電平,用MCl488實現(xiàn)反向轉(zhuǎn)換,由于MCl488需要±12 V電壓,使用中非常不便,故該設(shè)計采用MAXIM公司的產(chǎn)品片MAX232來實現(xiàn),由單+5 V的電壓供電,既可實現(xiàn)TTL到RS 232的電平轉(zhuǎn)換,也可實現(xiàn)RS 232到TTL電平的轉(zhuǎn)換,使用十分方便,具體的線路如圖5所示。
圖5:PC機與單片機通訊接口連接圖
軟件實現(xiàn)部分
單片機部分
AT89C51系列單片機的串行口可工作于4種不同的方式。在該程序中,單片機串行口工作設(shè)定為方式1,即數(shù)據(jù)經(jīng)TxD端發(fā)送,RxD端接收,波特率2 400 b/s,10位構(gòu)成一幀,l位起始位,8位數(shù)據(jù)位,1位停止位,初值0F3H,SMOD=1。
由于單片機多應(yīng)用于實時性較強的控制場合,為了盡量少占用CPU的時間,充分發(fā)揮CPU的功能。該系統(tǒng)在單片機程序設(shè)計中采用中斷方式與PC機進行通信。主程序只進行串行通信、數(shù)碼管實時顯示、模/數(shù)轉(zhuǎn)換結(jié)果的初始化和循環(huán)等待串行中斷工作,當(dāng)接收到PC機發(fā)來的信號時,就轉(zhuǎn)人中斷服務(wù)程序,進行A/D轉(zhuǎn)換,并向Pc機發(fā)送數(shù)據(jù)。中斷服務(wù)子程序流程圖如圖6所示。
圖6:單片機中斷服務(wù)子程序
從圖7中PC機界面顯示位移一電壓坐標(biāo)圖,表1記錄的數(shù)據(jù)以及圖8在示波器上顯示的霍爾線性電路理想電壓一位移曲線圖相比較,可以發(fā)現(xiàn)由于傳感器實驗臺受外界干擾等原因使得輸出信號輸出誤差在所難免,而且沒有電平轉(zhuǎn)換,使得VB繪圖中得到的數(shù)值存在負(fù)值;但是可以在圖中看到傳感器輸出的電壓值在正負(fù)之間有明顯的對稱性,與要求輸出的理想輸出信號波形相符合,證明本系統(tǒng)運行良好,設(shè)計的非常成功。
圖7:PC機界面顯示的位移-電壓圖
圖8:霍爾線性電路理想電壓-位移圖
結(jié) 語
對于目前廣泛應(yīng)用的WindOWs環(huán)境下實現(xiàn)PC機與單片機之間的通信問題具有重要的參考價值。