智能流量記錄儀的設計
張先煉,王國杰,樊恩東,王國淦
(貴州大學電氣工程學院,貴州貴陽550025)
摘要:流量信息的準確顯示和記錄是保證生產過程安全、經濟運行的基礎。對智能流量記錄儀進行研究設計,以STC89C52單片機為核心,再加以外設模塊,如電源模塊,LCD1602顯示模塊,SD卡存儲模塊,RS485通信模塊等。將流量變送器輸出的信號處理后顯示再保存,最后將記錄儀與外設進行通信。所設計的智能流量記錄儀,試驗調試好后可運用到實際領域中。
關鍵詞:智能流量記錄儀STC89C52SD卡RS485
中圖分類號:TP216文獻標識碼:A
作者簡介:張先煉(1993-),男,貴州遵義人,碩士研究生,貴州大學電氣工程學院檢測技術與自動化裝置專業(yè),主要研究方向:嵌入式系統(tǒng)與自動化裝置。
收稿日期:2014-11-03
Design of an intelligent flow recorder
ZHANG Xianlian,WANG Guojie,F(xiàn)AN Endong,WANG Guogan
Abstract:In many production fields, the display and record of flow occupies an important position, because accurate display and record of flow information is critical to assure the safe and economical operation of manufacturing process. In this article, an intelligent flow recorder was designed with STC89C52 microcontroller as the core of the system, together with some peripheral modules, such as power supply module, LCD1602 display module, SD card storage module, RS485 communication module, etc. The signal from the flow transmitter was processed and saved, then the recorder communicated with the peripheral modules. The intelligent flow recorder designed in this study can be applied to the actual field after debugging.
Keywords:intelligent flow recorder; STC89C52; secure digital card; RS485
0引言
隨著工業(yè)的快速發(fā)展,帶來了污水和廢液的排放,大氣污染等問題,為了控制它們,必須對其進行處理,于是在污水排放口及煙氣排放點都成了流量測量對象[1],同時在科學實驗領域,需要大量的流量控制系統(tǒng)進行仿真與試驗,于是設計該流量記錄儀。近年來,儀器儀表發(fā)展主要以計算機,微電子,網絡等技術為核心,流量儀表更加數(shù)字化及智能化,更適應實際生產[2]。本文闡述了基于STC89C52的智能流量記錄儀設計,關鍵在于對輸出的脈沖信號進行測量,以及對流量數(shù)據(jù)保存和通信。
1硬件電路設計
本系統(tǒng)總體設計如圖1。
圖1 系統(tǒng)硬件結構圖
硬件電路主要由電源電路、顯示模塊、存儲模塊以及通信模塊等構成,其具體設計如下。
1.1電源電路
本次設計的單片機及其他部分模塊所用電源為5 V。 交直流電源從電源插座上輸入,通過LM7805三段穩(wěn)壓器進行穩(wěn)壓,又進行濾波得到5 V的直流電給系統(tǒng)的其他模塊[3]。
1.2LCD1602顯示模塊的設計
本模塊采用LCD1602液晶,通過單片機發(fā)出的數(shù)據(jù)進行相應的顯示瞬時流量及累計流量[4]。
1.3RS485通信模塊的設計
為了讓數(shù)據(jù)與外界如PC進行數(shù)據(jù)信息交換傳輸,本次采用RS485串行通信接口來進行。RS485接口,是一種差分通信方式,通信線路是兩根A和B。為了提高抗干擾性能,需在MAX485的A和B引腳之間并接一個100Ω到1k電阻[5]。
圖2 PC機與單片機串行通信連接圖
1.4SD卡存儲模塊設計
本設計采用了SD卡進行流量數(shù)據(jù)的存儲,并且結合了FAT文件系統(tǒng)的格式,與數(shù)據(jù)進行操作。首先對SD卡進行驅動,本次設計的SD卡在SPI模式下進行驅動,主要包括:復位,初始化,扇區(qū)讀寫等操作[6]。圖3所示,SD卡工作在SPI模式下,只需要4根信號線,即CS,DIN,CLK,DOUT,并且SD卡工作電壓3.3 V。模塊電路主要進行5 V到3.3 V電壓的轉換,以及與單片機進行連接,對SD卡進行驅動,向單片機裝入相關程序也就能對SD卡進行簡單操作。
圖3 SD卡模塊電路圖
以上為本系統(tǒng)的硬件設計。該硬件設計是實現(xiàn)流量顯示記錄的基礎。
2系統(tǒng)軟件設計
2.1系統(tǒng)軟件流程總圖
圖4 系統(tǒng)軟件流程總圖
系統(tǒng)軟件流程總圖如圖4所示。
2.2中斷服務子程序
一個定時器,一個計數(shù)器,均工作在中斷的方式,如圖所示工作流程,測量脈沖頻率時,定時器T0工作在定時模式下,方式1,16位定時/計數(shù)器,定時器產生一次中斷時間t,機器周期T,那么需要計數(shù)的個數(shù)N=t/T,時鐘頻率11.0592 MHz,機器周期12*(1/11059200)=1.0851μs,若t為50 ms,N=50000/1.0851=46078, 每一次都要定時50ms,初值TH0=(65536-46078)/256,TL0=(65536-46078)/256;產生20次中斷即為50ms*20=1s時間,計數(shù)器T1工作于計數(shù)方式,初值為0,對脈沖信號計數(shù),1s中開始啟動T0,1s中到關閉T0,計數(shù)65536次后產生一次溢出中斷,并對溢出次數(shù)計數(shù)(計數(shù)值N),1 s內所計總脈沖65536*N+TH1*256+TL1。
2.3顯示子程序
首先初始化LCD,再檢查LCD是否為忙,不忙就往LCD依次寫入相應命令及數(shù)據(jù)。
2.4SD卡操作流程圖
圖7 SD卡初始化流程圖
對SD卡操作首先要對它初始化,初始化中設置SD工作在SPI模式,初始化流程圖如圖7。首先延時至少74clock,等待SD卡內部操作完成,再CS低電平選中SD卡,并發(fā)送CMD0,需要返回0×01,進入Idle狀態(tài),初始結束,之后CS拉高。
完成SD卡的初始化后即可進行讀寫操作。SD卡讀寫操作都是基于發(fā)送SD卡命令和響應完成的。單塊寫入時,命令為CMD24,當應答為0時說明可以寫入數(shù)據(jù),大小512字節(jié)。SD卡對每個發(fā)送給自己的數(shù)據(jù)塊都通過一個應答命令確認,它為1個字節(jié)長,當?shù)?位00101時,表明數(shù)據(jù)塊被正確寫入SD卡。在需要讀取SD卡中數(shù)據(jù)的時候,讀SD卡的命令字為CMD17,接收正確的第一個響應命令字節(jié)為0XFE,隨后是512個字節(jié)的用戶數(shù)據(jù)塊,最后為2個字節(jié)的CRC驗證碼[6-7]。以上就是寫讀SD卡程序流程。
2.5通信流程圖
圖8 PC機與終端機 通信流程圖
此次通信選用的晶振為11.0592 MHz,通信波特率9600 b/s,對于傳輸信息的幀,要求有1位起始位,8位數(shù)據(jù)位,一位標志位(0表示數(shù)據(jù),1表示地址)和1位停止位。PC機與終端機通信的程序流程圖如圖8。從通信協(xié)議及數(shù)據(jù)傳輸過程可知,單片機在初始化后要保持接收地址狀態(tài),當接收到本機地址后回送地址并設置本機為接收數(shù)據(jù),接收數(shù)據(jù)后做出相應反應,最后回到接收地址的狀態(tài)[5]。單片機串口通信程序流程圖如圖9。單片機在進行串行通信之前先要完成串口設置,使其通信波特率與PC主機波特率相同,并打開串口接收中斷。
圖9 單片機串行通信流程圖
3系統(tǒng)調試結果
3.1流量顯示
本次流量顯示包括瞬時流量及累積流量,通過瞬時流量與流量計輸出的脈沖頻率有一定的比例關系可得到瞬時流量,累積流量是瞬時流量的累計,在程序中f為瞬時流量,則累積流量為s+=f,進而求出瞬時流量和累計流量,假如輸入恒定的脈沖頻率,得到瞬時流量為0.64M3/S,則第一次累計流量為0.64M3,第二次為1.28M3,第三次1.92M3,以此類推,實物結果如圖10,圖11。
圖10 流量實物結果1 圖11 流量實物結果2
3.2流量信息保存
對于瞬時流量及累計流量要對它們進行數(shù)據(jù)保存,以方便以后查詢記錄等工作,本設計數(shù)據(jù)保存在SD卡中,把卡插在電腦上能打開文件并讀取數(shù)據(jù),如瞬時流量為 0.64M3/S,則通過程序的運行得到如圖所示的數(shù)據(jù)保存結果。
圖12 在SD卡中的保存流量數(shù)據(jù)的mydata.txt文件
圖13 打開文件mydata.txt的部分數(shù)據(jù)
3.3流量信息通訊
圖14 在PC機上顯示的流量信息
本次記錄儀與計算機通信采用RS485串口進行,設定波特率9600bps, PC機采用簡單的串口助手就能收到記錄儀發(fā)過來的流量數(shù)據(jù)信息,具體數(shù)據(jù)交換傳遞如圖14所示的串口助手所顯示。
4結束語
本文對智能流量記錄儀進行了設計,首先對流量變送器輸出的脈沖信號進行測量,也就是脈沖頻率,進而轉換為瞬時流量及累計流量顯示在LCD1602上。并且采用了SD卡模塊,它集合了FAT文件系統(tǒng),能向里面寫入數(shù)據(jù)并實時動態(tài)保存,達到了對數(shù)據(jù)進行記錄保存,此外,通過RS485模塊配上相關協(xié)議將數(shù)據(jù)與PC機進行通信。本設計可以運用到相關領域的流量檢測點,為其進行流量顯示和記錄保存,并可以在相關專業(yè)實驗裝置上進行相關流量的實驗。
參考文獻
[1]紀綱.流量測量儀表應用技巧[M]. 北京:化學工業(yè)出版社,2009
[2]陳非凡.儀表設計基礎[M]. 北京:清華大學出版社,2007
[3]康華光.電子技術基礎(模擬部分)[M]. 北京:高等教育出版社,2006
[4]王福瑞.單片微機測控系統(tǒng)設計大全[M]. 北京:北京航空航天大學出版社,1999
[5]潘新民.微型計算機控制技術[M].北京:電子工業(yè)出版社,2011
[6]馬林.數(shù)據(jù)重現(xiàn)文件系統(tǒng)原理精解數(shù)據(jù)恢復最佳實踐[M].北京:清華大學出版社,2009
[7]程德福.智能儀器[M]. 北京:機械工業(yè)出版社,2005
[8]譚浩強.C程序設計[M]. 北京:清華大學出版社,2005