曹森,戚鳳華
(南京曉莊學(xué)院,江蘇南京 210017)
基于PC機(jī)和單片機(jī)主從式測(cè)控系統(tǒng)設(shè)計(jì)研究
曹森,戚鳳華
(南京曉莊學(xué)院,江蘇南京 210017)
在測(cè)控系統(tǒng)的設(shè)計(jì)上,很多系統(tǒng)的PC機(jī)只能控制一臺(tái)下位機(jī),從而導(dǎo)致了PC機(jī)資源的浪費(fèi).而利用PC機(jī)和單片機(jī)進(jìn)行主從式測(cè)控系統(tǒng)的設(shè)計(jì),則可以使這一問題得到解決.本文基于PC機(jī)和單片機(jī)進(jìn)行了主從式測(cè)控系統(tǒng)的設(shè)計(jì),并從系統(tǒng)結(jié)構(gòu)、硬件設(shè)計(jì)和軟件設(shè)計(jì)這三個(gè)方面對(duì)系統(tǒng)電路原理和實(shí)現(xiàn)方法進(jìn)行了分析,對(duì)系統(tǒng)的通信問題進(jìn)行了研究.
PC機(jī);單片機(jī);主從式測(cè)控系統(tǒng);設(shè)計(jì)
在計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)不斷發(fā)展的情況下,由PC機(jī)和單片機(jī)構(gòu)成的測(cè)控系統(tǒng)已經(jīng)得到了廣泛的應(yīng)用.一方面,該類系統(tǒng)擁有來自于PC機(jī)的高性能的軟件功能.另一方面,在數(shù)據(jù)采集和圖形處理方面,該類系統(tǒng)又擁有單片機(jī)的實(shí)時(shí)數(shù)據(jù)采集和處理的優(yōu)勢(shì).所以,在測(cè)控系統(tǒng)設(shè)計(jì)中進(jìn)行PC機(jī)和單片機(jī)的應(yīng)用,已經(jīng)成為了測(cè)控技術(shù)發(fā)展的一個(gè)方向.
從本質(zhì)上來講,基于PC機(jī)和單片機(jī)的主從式測(cè)試系統(tǒng)是建立在485總線型網(wǎng)絡(luò)的基礎(chǔ)之上.在系統(tǒng)中,PC機(jī)在利用串行口控件的同時(shí),也需要利用RC-232C來完成通信.而在進(jìn)行RS-232C和RS-485總線標(biāo)準(zhǔn)的轉(zhuǎn)換時(shí),則可以利用MAX232、MAX485芯片來實(shí)現(xiàn)[1].此外,在進(jìn)行RS-485總線與下位單片機(jī)的連接時(shí),同樣也需要MAX485芯片來完成.所以,從系統(tǒng)的結(jié)構(gòu)上來看,系統(tǒng)包含了上位PC機(jī)部分、RS232接口電路部分、帶光電隔離RS232/485轉(zhuǎn)換電路、RS-485總線型通信網(wǎng)絡(luò)部分和下位機(jī)單片機(jī)部分.首先,上位PC機(jī)作為系統(tǒng)的主控機(jī),需要被放置在中央控制室.而當(dāng)上位機(jī)需要向下位機(jī)發(fā)達(dá)指令或接收其反應(yīng)時(shí),則需要利用軟件的串口控件和硬件的R232C接口來實(shí)現(xiàn)通信.此外,系統(tǒng)上位機(jī)還要實(shí)現(xiàn)人機(jī)交互,從而使用戶更加方便的進(jìn)行系統(tǒng)的操作[2].其次,系統(tǒng)上位PC機(jī)采用的通信接口為RS-232C,系統(tǒng)下位單片機(jī)使用的是TTL邏輯電平.所以,想要實(shí)現(xiàn)系統(tǒng)間的通信,就需要利用MAX232芯片進(jìn)行接口標(biāo)準(zhǔn)的轉(zhuǎn)換.再者,系統(tǒng)的RS232/485轉(zhuǎn)換電路由芯片和光電耦合器組成,而系統(tǒng)的總線型通信網(wǎng)絡(luò)則為主從式微機(jī)網(wǎng)絡(luò).因?yàn)?,利用RS-485總線實(shí)現(xiàn)系統(tǒng)通信,可以使系統(tǒng)具有較強(qiáng)的抗干擾能力,并且能進(jìn)行遠(yuǎn)距離的通信.最后,系統(tǒng)的下位機(jī)是由8051單片機(jī)為核心,并進(jìn)行信號(hào)顯示、鍵盤和時(shí)鐘電路等外圍電路的配置.
在進(jìn)行系統(tǒng)的硬件設(shè)計(jì)時(shí),需要以系統(tǒng)的結(jié)構(gòu)為依據(jù),重點(diǎn)進(jìn)行重要環(huán)節(jié)的電路設(shè)計(jì).首先,在進(jìn)行RS232接口電路的設(shè)計(jì)時(shí),要進(jìn)行其主要功能的實(shí)現(xiàn),既PC機(jī)與外部連接設(shè)備的電平轉(zhuǎn)換.而由于擁有全雙工的串行通信口,8051單片機(jī)可以與PC機(jī)進(jìn)行串口通信.但是,由于PC機(jī)串口為RS232電平,單片機(jī)串口為TTL電平,所以還需要利用MAX232芯片進(jìn)行電平和邏輯關(guān)系的轉(zhuǎn)換,從而實(shí)現(xiàn)系統(tǒng)的通信.其次,在進(jìn)行RS232和RS485轉(zhuǎn)換電路的設(shè)計(jì)時(shí),則需要采用RS-485總線標(biāo)準(zhǔn)[3].而為了實(shí)現(xiàn)系統(tǒng)的通信,則要利用MAX485芯片將TTL電平轉(zhuǎn)換為485電平.但值得注意的是,為了使系統(tǒng)具有更強(qiáng)的抗干擾能力,還要在MAX232芯片和MAX485芯片間加入單向傳輸?shù)墓怆婑詈想娐罚瑥亩苊廨敵龆说母蓴_信號(hào)反饋到輸入端.再者,在進(jìn)行RS-485總線型網(wǎng)絡(luò)電路的設(shè)計(jì)時(shí),則要采用主從式結(jié)構(gòu).具體來說,就是使上位機(jī)進(jìn)行系統(tǒng)的通信控制,并不允許下位機(jī)主動(dòng)進(jìn)行指令或數(shù)據(jù)的發(fā)送.而這種電路設(shè)計(jì),可以使系統(tǒng)的每一個(gè)發(fā)送器驅(qū)動(dòng)進(jìn)行多個(gè)負(fù)載設(shè)備的連接的同時(shí),又可以避免系統(tǒng)遭到其他設(shè)備的干擾.此外,系統(tǒng)的下位單片機(jī)電路設(shè)計(jì)則要保證MAX485的DE端電位為“0”.因?yàn)椋到y(tǒng)的PC機(jī)與下位機(jī)之間的通信線路一般要長(zhǎng)達(dá)幾百米,所以二者之間的通信狀態(tài)并不統(tǒng)一,因此容易出現(xiàn)通信的困難.而保證8051單片機(jī)在復(fù)位時(shí)的I/O口輸出為高電平,則可以實(shí)現(xiàn)系統(tǒng)的通信.最后,在進(jìn)行系統(tǒng)供電電路的設(shè)計(jì)時(shí),要利用直流穩(wěn)壓電源來進(jìn)行供電[4].而該電源主要由電源變壓器、整流、濾波和穩(wěn)壓電路構(gòu)成,可以維持直流穩(wěn)定的電壓的輸出.
在進(jìn)行系統(tǒng)的軟件設(shè)計(jì)時(shí),可以利用串口控件MSComm來進(jìn)行PC機(jī)和單片機(jī)通信的實(shí)現(xiàn).因?yàn)?,該控件不僅能夠進(jìn)行串行通信的數(shù)據(jù)發(fā)送和接收的設(shè)置,還能設(shè)置串口狀態(tài)和串口信息格式.
3.1 上位機(jī)軟件設(shè)計(jì)
在進(jìn)行上位PC機(jī)軟件的設(shè)計(jì)時(shí),可以利用MSComm通信控件來進(jìn)行數(shù)據(jù)的接收和發(fā)送.而進(jìn)行該種控件的應(yīng)用,就可以使用戶不必進(jìn)行通信底層的操作,從而實(shí)現(xiàn)與下位機(jī)的直接通信.由于系統(tǒng)本身是主從式的測(cè)控系統(tǒng),所以可以采取主機(jī)查詢、從機(jī)中斷的通信方式進(jìn)行通信的實(shí)現(xiàn).在系統(tǒng)進(jìn)行通信的過程中,需要進(jìn)行地質(zhì)信息的識(shí)別和輸入,并且需要采用輪詢的方式進(jìn)行通信.具體來說,就是只有在PC機(jī)訪問從機(jī)時(shí),從機(jī)才能有所反應(yīng),而其余時(shí)間從機(jī)則要保持在等待串行中斷的狀態(tài)[5].此外,在數(shù)據(jù)傳輸?shù)倪^程中,PC機(jī)還要查詢各個(gè)單片機(jī)端口.而單片機(jī)則要保持監(jiān)聽狀態(tài),從而及時(shí)進(jìn)行指令的接收.
3.2 下位單片機(jī)軟件設(shè)計(jì)
在進(jìn)行單片機(jī)的軟件設(shè)計(jì)時(shí),要采用中斷方式進(jìn)行數(shù)據(jù)的接收和發(fā)送.具體來說,就是以定時(shí)器T1為波特率發(fā)生器,在波特率與PC機(jī)一致時(shí),單片機(jī)則可以利用串行口完成數(shù)據(jù)通信.而為了保證PC機(jī)始終只與一臺(tái)從機(jī)進(jìn)行通信,下位單片機(jī)只能在PC機(jī)發(fā)出與自身地址碼一致的地址時(shí),才能向PC機(jī)發(fā)送應(yīng)答信號(hào).此外,單片機(jī)程序應(yīng)由下位機(jī)主程序和中斷程序兩部分構(gòu)成.其中,下位機(jī)主程序不僅要進(jìn)行數(shù)據(jù)的初始化,還要完成數(shù)據(jù)的傳輸工作.而中斷程序則要輔助進(jìn)行數(shù)據(jù)的傳送,并實(shí)現(xiàn)下位機(jī)和主機(jī)的連接.
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
在進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)時(shí),要保證數(shù)據(jù)的存儲(chǔ)管理更有效率.而系統(tǒng)的數(shù)據(jù)庫(kù)只是進(jìn)行下位機(jī)發(fā)送數(shù)據(jù)的存儲(chǔ)的,所以數(shù)據(jù)量相對(duì)不是很大.因此,可以利用MicrosoftAccess格式的數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行數(shù)據(jù)的存儲(chǔ)和處理[6].而該數(shù)據(jù)庫(kù)不僅具有結(jié)構(gòu)簡(jiǎn)單和靈活等特點(diǎn),還便于用戶進(jìn)行數(shù)據(jù)庫(kù)的管理和使用.在進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用的時(shí)候,可以利用數(shù)據(jù)訪問對(duì)象、遠(yuǎn)程數(shù)據(jù)對(duì)象和ActiveX數(shù)據(jù)對(duì)象來進(jìn)行數(shù)據(jù)的訪問.而數(shù)據(jù)庫(kù)的訪問方法則為數(shù)據(jù)控件法,既利用AdoData控件進(jìn)行數(shù)據(jù)庫(kù)的操縱.
3.4 系統(tǒng)界面的設(shè)計(jì)
進(jìn)行系統(tǒng)界面的設(shè)計(jì),是為了更好的方便用戶進(jìn)行系統(tǒng)的使用.所以,在進(jìn)行系統(tǒng)界面設(shè)計(jì)時(shí),要盡量使用便于用戶掌握的編程語(yǔ)言,從而方便用戶的使用.而利用VisualBasic6.0開發(fā)軟件進(jìn)行系統(tǒng)界面的設(shè)計(jì),則可以進(jìn)行適用于Windows環(huán)境的應(yīng)用程序的編寫,從而在節(jié)省設(shè)計(jì)者的大量時(shí)間.從內(nèi)容上來看,系統(tǒng)的界面包含了密碼確認(rèn)界面、主操作界面、參數(shù)設(shè)置模塊、程序說明模塊、CRC運(yùn)算模塊和查詢模塊這六部分.其中,密碼確認(rèn)界面需要用戶進(jìn)行密碼的輸入,從而進(jìn)行用戶身份的確認(rèn).主操作界面則需要進(jìn)行接收顯示、文件傳輸、菜單和主要功能的按鈕的設(shè)置,從而方便用戶進(jìn)行系統(tǒng)功能的選擇.參數(shù)設(shè)置模塊的設(shè)計(jì)則可以進(jìn)行通信時(shí)的串口號(hào)、波特率和停止位數(shù)等參數(shù)的設(shè)置,從而使系統(tǒng)程序適用于各種工作情況.程序說明模塊則是用來進(jìn)行串行通信程序相關(guān)信息的顯示,從而便于用戶進(jìn)行軟件的了解[7].而由于系統(tǒng)通信的過程可能會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)誤,所以需要利用校驗(yàn)碼進(jìn)行數(shù)據(jù)的檢測(cè).而CRC運(yùn)算模塊則可以為用戶提供檢測(cè)數(shù)據(jù)的操作,從而使用戶進(jìn)行數(shù)據(jù)的確認(rèn).此外,界面設(shè)計(jì)部分還包含查詢模塊,既可以為用戶提供查詢數(shù)據(jù)來源、時(shí)間、傳輸情況等信息的操作界面.
總而言之,基于PC機(jī)和單片機(jī)的主從式測(cè)控系統(tǒng)不僅具有單片機(jī)集成度高、控制能力強(qiáng)和系統(tǒng)結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn),還具有PC機(jī)在處理數(shù)據(jù)、圖像處理和網(wǎng)絡(luò)通信等方面的優(yōu)點(diǎn).所以,設(shè)計(jì)者想要進(jìn)行主從式測(cè)控系統(tǒng)的設(shè)計(jì),就可以進(jìn)行PC機(jī)和單片機(jī)的利用,并利用MAX232芯片和MAX485芯片來進(jìn)行系統(tǒng)通信的實(shí)現(xiàn),從而更好的進(jìn)行系統(tǒng)的應(yīng)用.
〔1〕胡中功,黃波,江維.基于RS485總線的PC與單片機(jī)多機(jī)通信系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2012,01(01):30-35.
〔2〕王士爭(zhēng).主從通信模式下即插即用技術(shù)的研究和實(shí)現(xiàn)[D].南京郵電大學(xué),2012.
〔3〕史媛芳.PC機(jī)與C51單片機(jī)的串行通信研究[J].電腦知識(shí)與技術(shù),2014,36(10):810-817.
〔4〕焦向峰.基于單片機(jī)的齒輪角度測(cè)控系統(tǒng)設(shè)計(jì)[J].智富時(shí)代,2014,12(01):158-160.
〔5〕張聰.一個(gè)通用測(cè)控系統(tǒng)的設(shè)計(jì)與案例定制[D].北京郵電大學(xué),2012.
〔6〕周先輝,毛翠麗,王長(zhǎng)河.基于STC12C5A與PC串口通信的溫度測(cè)控系統(tǒng)開發(fā)[J].南陽(yáng)理工學(xué)院學(xué)報(bào),2012,04(04):52-55.
〔7〕何青,胡漢春,代剛.基于RS-485總線的PC機(jī)與單片機(jī)串行通訊仿真系統(tǒng)的設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2011,01(24):27-28.
TN741
A
1673-260X(2015)05-0025-02