摘 要:工業現場有大量的模擬信號或脈沖頻率信號需要測量顯示,市場上現有的數顯表功能單一,校正困難,抗干擾差,難以顯示真實工程量值。介紹一種用于工業現場信號測量的數顯表,該表以AT89S51單片機為核心,采用的模擬信號測量技術和脈沖信號測量技術,可以精確測量模擬信號或頻率信號,通過給單片機設定不同的參數,對所測量的模擬信號或脈沖信號進行換算,從而顯示現場的工程量值。該數顯表一表多用,可廣泛應用于液位、流量、溫度、壓力、速度等的測量顯示。
關鍵詞:現場信號;數顯表;單片機;脈沖
中圖分類號:TP368.1 文獻標識碼:B 文章編號:1004373X(2008)1603603
Research and Design of Digital Display Instrument Based on AT89S51
HUANG Jianbing,NING Duo
(Electrical & Information Engineering College,Shaanxi University of Science & Technology,Xi′an,710021,China)
Abstract:A new data display instrument which is applied to measure and display signals in industry field is proposed to settle the shortcomings of traditional instruments such as function singleness,modification difficulty and low antidisturbance.The instrument can set different parameters according to microcomputer AT89S51,which can transform or calculate the measured analog signals and pulse signals so as to display the real signal value.It can be widely applied to the measurement and display of fluid position,flux,temperature,pressure and velocity.
Keywords:real signal;data display instrument single chip microcomputer;pulse
1 引 言
對于工業現場的儀表信號,不外乎模擬信號和脈沖信號(智能儀表采用通訊方式)。對模擬信號的測量,現在市場上有三位半或四位半數顯表,但這些數顯表大多沒有參數校正功能,只能通過電位器調整,信號顯示不夠精確;對于脈沖信號的測量,現在市場上的數顯表明顯不足是功能單一:轉速表只能顯示轉速、計數表只能計數、計長表只能計長等。市場缺乏一種即能夠測量模擬信號又能夠測量脈沖信號而且精確顯示的數顯表,從而解決現場信號的測量顯示問題。
以AT89S51作為主處理器的單片機系統可以精確測量模擬信號和脈沖信號,并且可以通過軟件的方法,對采集的數據進行濾波,16進制→工程值轉換。數顯表就是利用51單片機系統的這一優點而在其基礎上研制的,下面就所數顯表采用的模擬信號測量技術,脈沖信號測量技術以及它的硬件和軟件加以介紹。
2 模擬信號的測量
在工程實際中,溫度、壓力、液位、流量等模擬量信號經過變送器,轉換為4~20 mA,0~20 mA,1~5 V,0~10 V等標準信號,送到儀表測量顯示。電信號經過硬件濾波后接到A/D轉換器上進行模擬量到數字量的轉換。A/D轉換后的信號是二進制數字量,數字量的精度與A/D的轉換位數相關,如8位的A/D轉換完的數值范圍即為0~255,16位的A/D轉換完的數值范圍即為0~65 535。之后再由軟件對A/D轉換后的數據進行濾波和預處理,再經工程量程轉換計算,轉換為實際的工程量值進行顯示。
2.1 數字濾波
所謂數字濾波就是用數學方法通過數學運算對輸入信號(包括數據)進行處理的一種濾波方法。即通過一定的計算方法,減少噪聲干擾在有用信號中的比重,使得送往單片機的信號盡可能是所要求的信號。由于這種方法是靠程序編制來實現的,因此,數字濾波的實質是軟件濾波。軟件濾波方法很多,這里使用了遞推平均濾波法。
遞推平均濾波法(又稱滑動平均濾波法),是把連續取N個采樣值看成一個隊列,隊列的長度固定為N。每次采樣到一個新數據放入隊尾,并扔掉原來隊首的一個數據(先進先出原則),把隊列中的N個數據進行算術平均運算,就可獲得新的濾波結果。y(n)=1N∑N-1i=0y(n-i)式中,y(n)為第N次采樣的N項遞推平均值;y(n-i)為依次向前遞推i項的采樣值。
2.2 數據的預處理
對A/D轉換后的數據經濾波處理,還需要經過工程量的轉化,變成顯示需要的數據。數顯表所使用的數據預處理主要是16進制→工程單位變換。16進制→工程單位變換主要是線性變換。線性變換按照工程上下限和測量的16進制數的上下限由系統自動實現。線性變換如圖1所示。
圖1 線性變換示意圖其表達式為:y = y1+ y2 -y1.x2 -x1 (x-x1 )式中,x1 為信號下限(電壓值);x2 為信號上限(電壓值);y1 為測量下限;y2 為測量上限;x為單片機測量的16進制數;y為轉換后的工程值。
3 脈沖信號的測量
現場儀表傳送過來的脈沖信號,其脈沖頻率包含有所測的信息,要將這些信息顯示出來,就要測量這些脈沖的頻率,加以不同參數的修正,計算顯示希望顯示的內容。
對脈沖頻率信號的測量,有T法、M法和MT法,這里采用MT法。對于脈沖信號經整形電路74LS14處理以后,可得到整齊的方波信號。MT法測量的原理就是即數脈沖信號個數M1,又測量M1 個脈沖的時間。如圖2所示。
圖2 MT法測量原理計算表達式為:Fs=M1*Fp/M2 式中,Fp為定時脈沖頻率;Fs為待測脈沖頻率。
4 系統硬件電路結構及工作原理。
系統采用MCS51系列的單片機AT89S51做微處理器,A/D轉換器采用具有I.2C總線接口的16位精度(其中最高位是符號位)的ADS1110,其I.2C總線地址為#90H。以E.2PROMAT24C16作為存儲器,其管腳A0,A1,A2接地, I.2C總線地址為#A0H,具有5位數碼管顯示,4個參數設定用的按鍵,外形最大尺寸48 mm×95 mm×130 mm,具有體積小、重量輕、安裝調試方便,安全可靠等優點。其電路結構如圖3所示。
圖3 硬件電路原理圖對現場模擬信號,由于ADS1110只能接受的0~2.048 V電壓信號,信號要經過運算放大電路調理,再由ADS1110作A/D轉換。單片機通過I.2C總線讀取轉換結果,雖然AT89S51單片機沒有I.2C總線接口,但可以使用普通接口,通過軟件模擬的辦法實現51單片機和I.2C總線器件的連接。采集的數據經數字濾波、16進制→工程值轉換后,送LED顯示器顯示,段選信號由單片機的P0口輸出,經驅動器2003驅動顯示器的段選信號,位選信號由單片機的P2.0~P2.4口輸出,經驅動器2003驅動顯示器的位選信號,按鍵信號的公共端接在單片機的P2.5口,由軟件判斷按鍵是否按下以及是哪個按下。按鍵設定的各種參數存儲在具有掉電保護功能的AT24C16中,單片機通過I.2C總線對其進行讀寫。
由外界輸入表頭的脈沖信號經過光電隔離器隔離,集成電路74LS14信號處理后,輸入單片機AT89S51的中斷0口,經單片機測量計算后,送數碼管顯示。
5 軟件結構及流程
在硬件電路確定的情況下,數顯表的功能通過軟件實現。表頭的軟件設計是在程序初始化后,根據P鍵是否按下來判斷是設置參數還是只直接測量。因為參數在設置好后不能隨意更改,在設置參數時加上口令,口令通過方可修改參數,參數設置都通過上升、下降兩鍵來完成,連續按住上升或下降,數字設置越來越快,設置方便。每一個參數都有相應代碼,該表現共有8個參數可設,其中CD01數顯表功能代碼,用以選擇測量模擬信號還是脈沖信號,為“1”表示模擬信號,為“2”表示脈沖信號,為“3”表示脈沖信號長度計量;CD02為16進制數最小值,如果是模擬量則表示A/D轉換后
的最小值,如果是脈沖信號則表示所測量信號的最低頻率,如圖1中的X1所示;CD03為16進制數最大值,如圖1中的X2所示;CD04表示需要顯示的工程量的最小值,如圖1中的Y1所示;CD05表示需要顯示的工程量的最大值如圖1中的Y2所示;CD06為小數點顯示位置,需要在第幾位顯示則設定為幾就可以;CD07為死區范圍設定,此值一般為0,如果現場信號干擾較大,可適當增加,但這會影響到數顯表對小信號的測量;CD08表示長度計量時每個脈沖所代表的長度。數顯表根據需要選用這些參數,例如:溫度測量,變送器信號為4~20 mA,溫度值為0~1 000 ℃,數顯表需要設定的參數如下:
CD01:設定為1,表示測量模擬信號;
CD02:設定為6 553,表示4 mA信號A/D結果;
CD03:設定為32768,表示20 mA信號A/D結果;
CD04:設定為0,表示最低溫度;
CD05:設定為1 000,表示最高溫度;
CD06:設定為4,表示小數點在第四位顯示;
CD07:設定為0,根據現場情況設定。
根據這幾個參數,根據輸入的模擬信號,數顯表顯示0.0~1 000.0 ℃的溫度值。再例如線速度測量,編碼器脈沖頻率信號范圍為0~12.5 kHz,對因線速度為0~500 M/min,參數設定如下:
CD01:設定為2,表示測量脈沖信號;
CD02:設定為00;
CD03:設定為12 500;
CD04:設定為0,表示最低速度;
CD05:設定為500,表示最高速度;
CD06:設定為3,表示小數點在第四位顯示。
表頭其他顯示功能根據需要設定參數,表頭自身可以計算顯示,這里不再詳述。表頭軟件流程如圖4所示。
6 結 語
該數顯表的硬件使用的是成熟電路,現已有少量投入工業現場使用,其工作性能穩定。在功能上,通過軟件設計和參數設置,不但能測量顯示溫度、壓力、流量、液位等,還可以測量顯示頻率、轉速、線速度、計數、計長等,真正實現了一表多用,從而解決了現場模擬信號和脈沖信號的測量顯示問題。
圖4 軟件流程圖
參 考 文 獻
[1]黃建兵.串行A/D轉換器ADS1110及其在AT89C51單片機中的應用[J].國外電子元器件,2008(2):6064.
[2]黃建兵.XQⅢ型車速/轉速顯表的研制[J].西北輕工業學院學報,2000(3):810.
[3]徐淑華.單片微型機原理及應用[M].黑龍江:哈爾濱工業大學出版社,1994.
[4]何立民.單片機高級教程[M].北京:北京航空航天大學出版社,2000.
[5]劉翠玲.集散控制系統[M].北京:北京大學出版社,2007.
[6]吳瑋,胡必春.I.2C總線驅動在嵌入式系統中的兩種實現[J].現代電子技術,2007,30(12):5658.
[7]田俊英.基于51單片機的溫室測試系統的設計與實現[J].現代電子技術,2007,30(10):1517.
[8]劉紅玲.實用微機接口技術[M].北京:中國電力出版社,2003.
[9]ADS1110:16 B AnalogtoDigital Converter with Onboard Reference.Texas Instruments USA\\.http://www.21icsearch.com/so.asp.
[10]石宗義.I.2C總線時序分析及其模擬[J].太原理工大學學報,2004(1):5356.
[11]郝迎吉,王洪波.智能多路信號源的設計與實現\\.國外電子元器件,2007(5):35.
作者簡介 黃建兵 男,1973年出生,陜西岐山人,在讀碩士研究生,講師。研究方向為電力電子與電力傳動。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文