徐先峰,魏 文,李常磊,段晨東
(長安大學(xué)電子與控制工程學(xué)院,西安710064)
工業(yè)現(xiàn)場(chǎng)往往需要對(duì)溫度、壓力、流量、液位以及濕度等物理量進(jìn)行監(jiān)測(cè),而相關(guān)傳感器或變送器的輸出信號(hào)往往為4 mA ~20 mA、0~5 V、1 V ~5 V、0~10 V等幾種,給工業(yè)現(xiàn)場(chǎng)實(shí)時(shí)顯示帶來諸多不便。目前,市場(chǎng)上出現(xiàn)的參數(shù)顯示儀器儀表一般只支持一種或者兩種變送輸出信號(hào),且功能相對(duì)單一,參數(shù)標(biāo)定也較為困難,尤其在同時(shí)存在多種變送輸出信號(hào)的場(chǎng)合,須采用多個(gè)或者多種參數(shù)顯示儀才能實(shí)現(xiàn)對(duì)各類物理量的監(jiān)測(cè),因而,設(shè)計(jì)一種新型的工業(yè)現(xiàn)場(chǎng)顯示儀顯得極為重要[1]。為解決上述問題,提出了一種基于STC系列單片機(jī)的智能工業(yè)現(xiàn)場(chǎng)顯示儀設(shè)計(jì)方法,以單片機(jī)為核心,結(jié)合A/D轉(zhuǎn)換技術(shù)、LED數(shù)碼管動(dòng)態(tài)顯示、RS232串口通訊與紅外遙控技術(shù),實(shí)現(xiàn)對(duì)變送輸出信號(hào)的電流電壓轉(zhuǎn)換與采集、越限報(bào)警以及遠(yuǎn)程操控等功能,顯示儀可與電流或電壓信號(hào)輸出的變送器和傳感器配合使用[2]。
智能顯示儀的系統(tǒng)結(jié)構(gòu)如圖1所示,主要由核心控制器、LED數(shù)碼管、信號(hào)轉(zhuǎn)換與采集模塊、紅外遙控模塊、系統(tǒng)電源模塊以及串口通訊等部分組成。采用高性能的STC系列單片機(jī)為控制核心,實(shí)現(xiàn)變送輸出信號(hào)轉(zhuǎn)換、參數(shù)顯示、報(bào)警處理、儀表狀態(tài)指示、儀表設(shè)置、參數(shù)標(biāo)定和參數(shù)補(bǔ)償?shù)裙δ?為方便與各類變送器、傳感器配合使用,顯示儀同時(shí)設(shè)有4 mA~20 mA電流接口與多范圍電壓接口;數(shù)碼管采用大尺寸數(shù)碼管,便于遠(yuǎn)距離、多角度參數(shù)觀察;顯示儀的輸出功能采用RS232通訊接口實(shí)現(xiàn),顯示儀的模式設(shè)置、參數(shù)標(biāo)定等功能通過紅外遙控器實(shí)現(xiàn)。
圖1 顯示儀系統(tǒng)結(jié)構(gòu)框圖
智能顯示儀的核心控制器選用STC12C5A60S2單片機(jī),該微控制器是宏晶公司最新推出的一款高性能增強(qiáng)型8051單片機(jī),指令系統(tǒng)與傳統(tǒng)8051單片機(jī)完全兼容,運(yùn)行速度卻是傳統(tǒng)8051單片機(jī)的8倍~12倍,片上集成1 280 byte RAM,具有8路高速10 bit A/D轉(zhuǎn)換,內(nèi)部包含1 kbyte的EEPROM。STC12C5A60S2豐富的硬件資源以及高速運(yùn)算性能,使得系統(tǒng)硬件電路簡單、可靠性高[3-4]。微控制器及其外圍電路如圖2所示,單片機(jī)主要實(shí)現(xiàn)A/D轉(zhuǎn)換結(jié)果讀取、參數(shù)顯示、報(bào)警處理、儀表狀態(tài)指示、儀表設(shè)置、參數(shù)標(biāo)定和參數(shù)補(bǔ)償?shù)裙δ?STC12C5A60S2單片機(jī)的通用I/O口具有強(qiáng)推挽/強(qiáng)上拉功能,每個(gè)I/O口驅(qū)動(dòng)能力可達(dá)20 mA,顯示儀中用于狀態(tài)指示的LED燈由單片機(jī)通用I/O口直接驅(qū)動(dòng);單片機(jī)采用11.059 2 MHz石英晶振來產(chǎn)生系統(tǒng)時(shí)鐘,使得系統(tǒng)定時(shí)更加準(zhǔn)確,同時(shí)也保證了RS232串行通訊的可靠與穩(wěn)定[5]。
圖2 微控制器及其外圍電路圖
圖3 電源模塊電路圖
智能顯示儀由220 V單相交流電直接供電。由于電流/電壓轉(zhuǎn)換器RCV420的供電電壓為±12 V,單片機(jī)及其他芯片供電電壓+5 V,所以需設(shè)計(jì)相應(yīng)的降壓電路,如圖3所示[5]。AC 220 V經(jīng)降壓變壓器得到AC 15 V,再由二極管1N5408組成的整流橋進(jìn)行整流,最后通過濾波電容C1、C4,防自激電容C2、C3以及固定式三端穩(wěn)壓器LM7812得到+12 V電壓;-12 V電壓由極性反轉(zhuǎn)電源轉(zhuǎn)換器HT7660實(shí)現(xiàn),只需外接10 μF的小體積電容,HT7660的輸入電壓為+12 V;+5 V電壓由固定式三端穩(wěn)壓器LM7805得到,其輸入電壓為+12 V。LM78xx系列三端穩(wěn)壓器最大輸出電流達(dá)1.5 A,自帶過載保護(hù)與短路保護(hù),使得電源電路簡單且安全可靠。
如圖4所示,電流/電壓轉(zhuǎn)換由精密電流環(huán)接收器芯片RCV420完成,將4 mA~20 mA電流信號(hào)轉(zhuǎn)換成為0~5 V的電壓信號(hào);RCV420采用±12 V雙電源供電,電源去耦電容采用1 μF鉭電容,為避免其他電路引入的增益與共模抑制誤差,去耦電容需盡量靠近RCV420電源管腳;RCV420的CT端、Rcv Com端和Ref Com端單點(diǎn)接地,使其接地電阻為最小,以免形成地線回路而引起轉(zhuǎn)換誤差。數(shù)模轉(zhuǎn)換芯片選用MAX1272,其為儀表專用12 bit ADC轉(zhuǎn)換器,采用+5 V單電源供電,輸入范圍可編程設(shè)置,最大測(cè)量范圍達(dá)±10 V。
圖4 輸入信號(hào)轉(zhuǎn)換與采集電路
圖5 LED數(shù)碼管驅(qū)動(dòng)電路圖
數(shù)值顯示采用5 inch共陽極LED數(shù)碼管完成,數(shù)碼管具有發(fā)光強(qiáng)、能耗低、可視性高和成本低等優(yōu)點(diǎn),而常用的LCD顯示器亮度低,同時(shí)遠(yuǎn)距離、大角度觀察效果較差。5 inch數(shù)碼管所需驅(qū)動(dòng)電流較大,不能由單片機(jī)直接驅(qū)動(dòng),需另外設(shè)計(jì)數(shù)碼管驅(qū)動(dòng)電路,由 MAX7219、ULN2803、74HC540 以及 TD62783 完成LED數(shù)碼管的驅(qū)動(dòng),如圖5所示。MAX7219是Maxim生產(chǎn)的串行輸入/輸出共陰極數(shù)碼管顯示驅(qū)動(dòng)芯片,其可驅(qū)動(dòng)8個(gè)7段(包括小數(shù)點(diǎn)為8段)LED數(shù)碼管,兼容SPI接口,MAX7219工作時(shí),在其內(nèi)部硬件動(dòng)態(tài)掃面顯示控制電路的作用下,實(shí)現(xiàn)8 bit LED數(shù)碼管的動(dòng)態(tài)顯示;ULN2803是摩托羅拉公司生產(chǎn)的具有高電壓、大電流的8路達(dá)林頓驅(qū)動(dòng)器,各路驅(qū)動(dòng)電流可達(dá)500 mA,滿足5 inch數(shù)碼管對(duì)驅(qū)動(dòng)電流的要求;MAX7219本身用于驅(qū)動(dòng)共陰極數(shù)碼管,DIG0~DIG7經(jīng)反相器74HC540后作為8位數(shù)碼管的位選控制信號(hào);數(shù)碼管的位選線驅(qū)動(dòng)由8通道高電壓驅(qū)動(dòng)器TD62783完成,其單端驅(qū)動(dòng)電流可達(dá)500 mA,輸入電壓達(dá)50 V。
串口電路主要實(shí)現(xiàn)向連接于顯示儀的其他終端傳送數(shù)據(jù)以及接收上位機(jī)的控制命令。STC系列單片內(nèi)部有1個(gè)可編程的全雙工串行口,能同時(shí)發(fā)送與接收數(shù)據(jù),單片機(jī)內(nèi)部串行數(shù)據(jù)的發(fā)送與接收都是通過訪問特殊功能寄存器SBUF來實(shí)現(xiàn),可方便地實(shí)現(xiàn)與上位機(jī)或者其他帶串口終端實(shí)現(xiàn)通訊。STC單片機(jī)采用TTL電平傳送數(shù)據(jù),需要進(jìn)行電平轉(zhuǎn)換才能實(shí)現(xiàn)RS232通信,顯示儀中使用Maxim公司的MAX232電平轉(zhuǎn)換芯片實(shí)現(xiàn)RS232接口電平轉(zhuǎn)換,其電路如圖6所示[4]。MAX232外圍連接五個(gè)0.1 μF去耦電容,主要作用是為本電路蓄能、濾除MAX232產(chǎn)生的高頻噪聲以及防止電源攜帶的噪聲對(duì)電路產(chǎn)生干擾。
圖6 串口通訊電路
系統(tǒng)的軟件設(shè)計(jì)主要包括A/D轉(zhuǎn)換結(jié)果讀取、RS232通訊設(shè)計(jì)、紅外遙控操作、顯示儀參數(shù)保存和儀表標(biāo)定等部分。被測(cè)物理量的大小主要通過MAX1272轉(zhuǎn)換實(shí)現(xiàn),配置A/D量程與讀取其轉(zhuǎn)換數(shù)據(jù)是軟件設(shè)計(jì)的重點(diǎn)。MAX1272兼容SPI串行接口,單片機(jī)通過I/O口模擬SPI總線時(shí)序?qū)崿F(xiàn)與MAX1272的數(shù)據(jù)傳輸;MAX1272的工作模式采用單個(gè)寄存器進(jìn)行配置,設(shè)置控制字節(jié)的BIT6、BIT5可完成0~5 V、-5 V~+5 V、0~+10 V和-10 V~+10 V四種量程的選擇。MAX1272的輸出數(shù)據(jù)為12位,輸出時(shí)高位在前,每次讀取轉(zhuǎn)換數(shù)據(jù)時(shí)需先發(fā)送控制字節(jié),下一時(shí)鐘SCLK的下降沿開始輸出有效的轉(zhuǎn)換數(shù)據(jù)。
圖7 上位機(jī)控制字節(jié)格式
智能顯示儀通過串口連接至上位機(jī),對(duì)顯示儀進(jìn)行配置,同時(shí)也可通過串口傳輸顯示數(shù)據(jù)至其他終端。上位機(jī)的控制信號(hào)為單個(gè)字節(jié),上位機(jī)每發(fā)送一個(gè)字節(jié)即可完成對(duì)顯示儀的參數(shù)配置,控制字節(jié)格式如圖7,其中BP1、BP0位用于選擇A/D轉(zhuǎn)換器量程,D2為串口輸出標(biāo)志位,0表示關(guān)閉串口輸出功能[6];串口輸出顯示數(shù)據(jù)時(shí),傳輸格式為“=*******”,‘*’代表一個(gè)十進(jìn)制數(shù),范圍為0~9,高位在前,輸出數(shù)據(jù)為顯示儀顯示數(shù)值,每一數(shù)據(jù)序列輸出均以‘=’作為開始標(biāo)志,接收‘=’后7個(gè)十進(jìn)制數(shù)作為有效數(shù)據(jù)。STC12C5A60S2單片機(jī)串行口均通過SBUF寄存器接收與發(fā)送數(shù)據(jù),每發(fā)送或接收數(shù)據(jù)完成都產(chǎn)生串行中斷,查詢TI、RI標(biāo)志位判斷是否接收或發(fā)送數(shù)據(jù),軟件實(shí)現(xiàn)流程圖如圖8所示。
圖8 串口通訊流程圖
由于現(xiàn)場(chǎng)變送信號(hào)或傳感器信號(hào)的非線性以及環(huán)境變化的影響,A/D轉(zhuǎn)換結(jié)果必須通過校正才能得到被測(cè)物理量的精確值,而這種校正關(guān)系一般很難通過固定的代數(shù)式表示,智能顯示儀采用了線性插值法完成自動(dòng)標(biāo)定。取被測(cè)物理量高、低兩個(gè)標(biāo)定樣本,采用標(biāo)準(zhǔn)法得到被測(cè)物理量的精確值y0、y1,同時(shí)記錄原顯示值、,x0、x1分別表示高、低樣本的A/D轉(zhuǎn)換結(jié)果,數(shù)學(xué)建模如下[7]。
對(duì)于任意新測(cè)值y',通過k1/k2、y0、y'03個(gè)常參數(shù)可得標(biāo)定后的物理量數(shù)值y。將k1/k2、y0、y'03 個(gè)常參數(shù)寫入單片機(jī)內(nèi)部EEPROM中,既能實(shí)現(xiàn)掉電保護(hù),同時(shí)也能隨時(shí)重新標(biāo)定。
智能顯示儀上電后,8位LED數(shù)碼管順序閃爍顯示‘0’~‘9’,說明顯示儀LED數(shù)碼管顯示功能正常;利用PC機(jī)作為上位機(jī),通過串口對(duì)顯示儀發(fā)送控制命令,顯示儀閃爍顯示“---PC---”,指示上位機(jī)鏈接成功,并接收到有效控制命令,通過串口可設(shè)置A/D轉(zhuǎn)換量程,打開或關(guān)閉報(bào)警、狀態(tài)指示、上限、下限和串口輸出等功能,同時(shí)上位機(jī)可對(duì)顯示儀進(jìn)行復(fù)位操作[8-9]。
選擇工業(yè)現(xiàn)場(chǎng)的溫度對(duì)顯示儀進(jìn)行標(biāo)定與測(cè)試,標(biāo)定完成后,溫度每變化2℃記錄1次,結(jié)果如表1所示,智能顯示儀顯示溫度與使用標(biāo)準(zhǔn)溫度計(jì)測(cè)量的溫度值誤差均在±0.3℃范圍內(nèi),線性度較好。
表1 現(xiàn)場(chǎng)溫度測(cè)試結(jié)果
智能顯示儀以增強(qiáng)型單片機(jī)STC12C5A60S2為核心,外擴(kuò)電源模塊、數(shù)碼管顯示模塊、RS232通訊模塊以及紅外遙控模塊,采用AC 220 V供電,適用于電流或電壓輸出的各類變送器與傳感器,實(shí)現(xiàn)了對(duì)工業(yè)現(xiàn)場(chǎng)的溫度、濕度、壓力、液位、流量等物理量的顯示、限值報(bào)警控制以及串口輸出;顯示采用大尺寸高亮度LED數(shù)碼管,適合于大空間、遠(yuǎn)距離觀察場(chǎng)合的參數(shù)顯示?;赟TC系列單片機(jī)的智能工業(yè)現(xiàn)場(chǎng)顯示儀設(shè)計(jì)方法,不僅設(shè)計(jì)成本低廉,顯示儀穩(wěn)定性可靠性高,同時(shí)對(duì)其他智能顯示儀表也有很強(qiáng)的實(shí)用參考價(jià)值[10]。
[1]孫啟富,孫運(yùn)強(qiáng),姚愛琴.基于STM32的通用智能儀表設(shè)計(jì)與應(yīng)用[J].儀表技術(shù)與傳感器,2010(10):24-36.
[2]唐洪富,張興波.基于STC系列單片機(jī)的智能溫度控制器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013(5):86-88.
[3]代杰,段晨東,李磊.彩色液晶顯示模塊在智能儀表中的應(yīng)用[J].工業(yè)儀表與自動(dòng)化裝置,2012(2):27-30.
[4]吳宏岐,郭夢(mèng)宇.基于STC單片機(jī)的仿生六足機(jī)器人設(shè)計(jì)[J].電子器件,2013,36(1):128-131.
[5]韓慶瑤,洪草根,朱曉光.基于AVR單片機(jī)的多舵機(jī)控制系統(tǒng)設(shè)計(jì)及仿真[J].計(jì)算機(jī)測(cè)量與控制,2011,19(2):332-334.
[6]李文濤,楊小新.基于 STC89C52的智能溫度變送器的設(shè)計(jì)[J].儀表技術(shù)與傳感器,2012(12):67-70.
[7]杜克銘,姚燕,李景涌.基于STC89C52的多路溫度傳感器標(biāo)定系統(tǒng)[J].電子技術(shù)應(yīng)用,2009(4):152-155.
[8]張建軍,李頎,丁明東.基于單片機(jī)與BP網(wǎng)絡(luò)的高精度壓力變送器的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(2):397-400.
[9]李耀軍,劉瑞華.基于單片機(jī)的電子飛行儀表設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(S2):508-511.
[10]牛昱光,崔正文.多現(xiàn)場(chǎng)總線接口智能儀表設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2011(8):131-134.