智能流量記錄儀的設(shè)計
張先煉,王國杰,樊恩東,王國淦
(貴州大學(xué)電氣工程學(xué)院,貴州貴陽550025)
摘要:流量信息的準(zhǔn)確顯示和記錄是保證生產(chǎn)過程安全、經(jīng)濟(jì)運(yùn)行的基礎(chǔ)。對智能流量記錄儀進(jìn)行研究設(shè)計,以STC89C52單片機(jī)為核心,再加以外設(shè)模塊,如電源模塊,LCD1602顯示模塊,SD卡存儲模塊,RS485通信模塊等。將流量變送器輸出的信號處理后顯示再保存,最后將記錄儀與外設(shè)進(jìn)行通信。所設(shè)計的智能流量記錄儀,試驗(yàn)調(diào)試好后可運(yùn)用到實(shí)際領(lǐng)域中。
關(guān)鍵詞:智能流量記錄儀STC89C52SD卡RS485
中圖分類號:TP216文獻(xiàn)標(biāo)識碼:A
作者簡介:張先煉(1993-),男,貴州遵義人,碩士研究生,貴州大學(xué)電氣工程學(xué)院檢測技術(shù)與自動化裝置專業(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ā)展,帶來了污水和廢液的排放,大氣污染等問題,為了控制它們,必須對其進(jìn)行處理,于是在污水排放口及煙氣排放點(diǎn)都成了流量測量對象[1],同時在科學(xué)實(shí)驗(yàn)領(lǐng)域,需要大量的流量控制系統(tǒng)進(jìn)行仿真與試驗(yàn),于是設(shè)計該流量記錄儀。近年來,儀器儀表發(fā)展主要以計算機(jī),微電子,網(wǎng)絡(luò)等技術(shù)為核心,流量儀表更加數(shù)字化及智能化,更適應(yīng)實(shí)際生產(chǎn)[2]。本文闡述了基于STC89C52的智能流量記錄儀設(shè)計,關(guān)鍵在于對輸出的脈沖信號進(jìn)行測量,以及對流量數(shù)據(jù)保存和通信。
1硬件電路設(shè)計
本系統(tǒng)總體設(shè)計如圖1。

圖1 系統(tǒng)硬件結(jié)構(gòu)圖
硬件電路主要由電源電路、顯示模塊、存儲模塊以及通信模塊等構(gòu)成,其具體設(shè)計如下。
1.1電源電路
本次設(shè)計的單片機(jī)及其他部分模塊所用電源為5 V。 交直流電源從電源插座上輸入,通過LM7805三段穩(wěn)壓器進(jìn)行穩(wěn)壓,又進(jìn)行濾波得到5 V的直流電給系統(tǒng)的其他模塊[3]。
1.2LCD1602顯示模塊的設(shè)計
本模塊采用LCD1602液晶,通過單片機(jī)發(fā)出的數(shù)據(jù)進(jìn)行相應(yīng)的顯示瞬時流量及累計流量[4]。
1.3RS485通信模塊的設(shè)計
為了讓數(shù)據(jù)與外界如PC進(jìn)行數(shù)據(jù)信息交換傳輸,本次采用RS485串行通信接口來進(jìn)行。RS485接口,是一種差分通信方式,通信線路是兩根A和B。為了提高抗干擾性能,需在MAX485的A和B引腳之間并接一個100Ω到1k電阻[5]。

圖2 PC機(jī)與單片機(jī)串行通信連接圖
1.4SD卡存儲模塊設(shè)計
本設(shè)計采用了SD卡進(jìn)行流量數(shù)據(jù)的存儲,并且結(jié)合了FAT文件系統(tǒng)的格式,與數(shù)據(jù)進(jìn)行操作。首先對SD卡進(jìn)行驅(qū)動,本次設(shè)計的SD卡在SPI模式下進(jìn)行驅(qū)動,主要包括:復(fù)位,初始化,扇區(qū)讀寫等操作[6]。圖3所示,SD卡工作在SPI模式下,只需要4根信號線,即CS,DIN,CLK,DOUT,并且SD卡工作電壓3.3 V。模塊電路主要進(jìn)行5 V到3.3 V電壓的轉(zhuǎn)換,以及與單片機(jī)進(jìn)行連接,對SD卡進(jìn)行驅(qū)動,向單片機(jī)裝入相關(guān)程序也就能對SD卡進(jìn)行簡單操作。

圖3 SD卡模塊電路圖
以上為本系統(tǒng)的硬件設(shè)計。該硬件設(shè)計是實(shí)現(xiàn)流量顯示記錄的基礎(chǔ)。
2系統(tǒng)軟件設(shè)計
2.1系統(tǒng)軟件流程總圖

圖4 系統(tǒng)軟件流程總圖
系統(tǒng)軟件流程總圖如圖4所示。
2.2中斷服務(wù)子程序
一個定時器,一個計數(shù)器,均工作在中斷的方式,如圖所示工作流程,測量脈沖頻率時,定時器T0工作在定時模式下,方式1,16位定時/計數(shù)器,定時器產(chǎn)生一次中斷時間t,機(jī)器周期T,那么需要計數(shù)的個數(shù)N=t/T,時鐘頻率11.0592 MHz,機(jī)器周期12*(1/11059200)=1.0851μs,若t為50 ms,N=50000/1.0851=46078, 每一次都要定時50ms,初值TH0=(65536-46078)/256,TL0=(65536-46078)/256;產(chǎn)生20次中斷即為50ms*20=1s時間,計數(shù)器T1工作于計數(shù)方式,初值為0,對脈沖信號計數(shù),1s中開始啟動T0,1s中到關(guān)閉T0,計數(shù)65536次后產(chǎn)生一次溢出中斷,并對溢出次數(shù)計數(shù)(計數(shù)值N),1 s內(nèi)所計總脈沖65536*N+TH1*256+TL1。

2.3顯示子程序
首先初始化LCD,再檢查LCD是否為忙,不忙就往LCD依次寫入相應(yīng)命令及數(shù)據(jù)。
2.4SD卡操作流程圖

圖7 SD卡初始化流程圖
對SD卡操作首先要對它初始化,初始化中設(shè)置SD工作在SPI模式,初始化流程圖如圖7。首先延時至少74clock,等待SD卡內(nèi)部操作完成,再CS低電平選中SD卡,并發(fā)送CMD0,需要返回0×01,進(jìn)入Idle狀態(tài),初始結(jié)束,之后CS拉高。
完成SD卡的初始化后即可進(jìn)行讀寫操作。SD卡讀寫操作都是基于發(fā)送SD卡命令和響應(yīng)完成的。單塊寫入時,命令為CMD24,當(dāng)應(yīng)答為0時說明可以寫入數(shù)據(jù),大小512字節(jié)。SD卡對每個發(fā)送給自己的數(shù)據(jù)塊都通過一個應(yīng)答命令確認(rèn),它為1個字節(jié)長,當(dāng)?shù)?位00101時,表明數(shù)據(jù)塊被正確寫入SD卡。在需要讀取SD卡中數(shù)據(jù)的時候,讀SD卡的命令字為CMD17,接收正確的第一個響應(yīng)命令字節(jié)為0XFE,隨后是512個字節(jié)的用戶數(shù)據(jù)塊,最后為2個字節(jié)的CRC驗(yàn)證碼[6-7]。以上就是寫讀SD卡程序流程。
2.5通信流程圖

圖8 PC機(jī)與終端機(jī) 通信流程圖
此次通信選用的晶振為11.0592 MHz,通信波特率9600 b/s,對于傳輸信息的幀,要求有1位起始位,8位數(shù)據(jù)位,一位標(biāo)志位(0表示數(shù)據(jù),1表示地址)和1位停止位。PC機(jī)與終端機(jī)通信的程序流程圖如圖8。從通信協(xié)議及數(shù)據(jù)傳輸過程可知,單片機(jī)在初始化后要保持接收地址狀態(tài),當(dāng)接收到本機(jī)地址后回送地址并設(shè)置本機(jī)為接收數(shù)據(jù),接收數(shù)據(jù)后做出相應(yīng)反應(yīng),最后回到接收地址的狀態(tài)[5]。單片機(jī)串口通信程序流程圖如圖9。單片機(jī)在進(jìn)行串行通信之前先要完成串口設(shè)置,使其通信波特率與PC主機(jī)波特率相同,并打開串口接收中斷。

圖9 單片機(jī)串行通信流程圖
3系統(tǒng)調(diào)試結(jié)果
3.1流量顯示
本次流量顯示包括瞬時流量及累積流量,通過瞬時流量與流量計輸出的脈沖頻率有一定的比例關(guān)系可得到瞬時流量,累積流量是瞬時流量的累計,在程序中f為瞬時流量,則累積流量為s+=f,進(jìn)而求出瞬時流量和累計流量,假如輸入恒定的脈沖頻率,得到瞬時流量為0.64M3/S,則第一次累計流量為0.64M3,第二次為1.28M3,第三次1.92M3,以此類推,實(shí)物結(jié)果如圖10,圖11。

圖10 流量實(shí)物結(jié)果1 圖11 流量實(shí)物結(jié)果2
3.2流量信息保存
對于瞬時流量及累計流量要對它們進(jìn)行數(shù)據(jù)保存,以方便以后查詢記錄等工作,本設(shè)計數(shù)據(jù)保存在SD卡中,把卡插在電腦上能打開文件并讀取數(shù)據(jù),如瞬時流量為 0.64M3/S,則通過程序的運(yùn)行得到如圖所示的數(shù)據(jù)保存結(jié)果。

圖12 在SD卡中的保存流量數(shù)據(jù)的mydata.txt文件

圖13 打開文件mydata.txt的部分?jǐn)?shù)據(jù)
3.3流量信息通訊

圖14 在PC機(jī)上顯示的流量信息
本次記錄儀與計算機(jī)通信采用RS485串口進(jìn)行,設(shè)定波特率9600bps, PC機(jī)采用簡單的串口助手就能收到記錄儀發(fā)過來的流量數(shù)據(jù)信息,具體數(shù)據(jù)交換傳遞如圖14所示的串口助手所顯示。
4結(jié)束語
本文對智能流量記錄儀進(jìn)行了設(shè)計,首先對流量變送器輸出的脈沖信號進(jìn)行測量,也就是脈沖頻率,進(jìn)而轉(zhuǎn)換為瞬時流量及累計流量顯示在LCD1602上。并且采用了SD卡模塊,它集合了FAT文件系統(tǒng),能向里面寫入數(shù)據(jù)并實(shí)時動態(tài)保存,達(dá)到了對數(shù)據(jù)進(jìn)行記錄保存,此外,通過RS485模塊配上相關(guān)協(xié)議將數(shù)據(jù)與PC機(jī)進(jìn)行通信。本設(shè)計可以運(yùn)用到相關(guān)領(lǐng)域的流量檢測點(diǎn),為其進(jìn)行流量顯示和記錄保存,并可以在相關(guān)專業(yè)實(shí)驗(yàn)裝置上進(jìn)行相關(guān)流量的實(shí)驗(yàn)。
參考文獻(xiàn)
[1]紀(jì)綱.流量測量儀表應(yīng)用技巧[M]. 北京:化學(xué)工業(yè)出版社,2009
[2]陳非凡.儀表設(shè)計基礎(chǔ)[M]. 北京:清華大學(xué)出版社,2007
[3]康華光.電子技術(shù)基礎(chǔ)(模擬部分)[M]. 北京:高等教育出版社,2006
[4]王福瑞.單片微機(jī)測控系統(tǒng)設(shè)計大全[M]. 北京:北京航空航天大學(xué)出版社,1999
[5]潘新民.微型計算機(jī)控制技術(shù)[M].北京:電子工業(yè)出版社,2011
[6]馬林.數(shù)據(jù)重現(xiàn)文件系統(tǒng)原理精解數(shù)據(jù)恢復(fù)最佳實(shí)踐[M].北京:清華大學(xué)出版社,2009
[7]程德福.智能儀器[M]. 北京:機(jī)械工業(yè)出版社,2005
[8]譚浩強(qiáng).C程序設(shè)計[M]. 北京:清華大學(xué)出版社,2005