<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 如何用單片機(jī)實(shí)現(xiàn)來電顯示解碼

          如何用單片機(jī)實(shí)現(xiàn)來電顯示解碼

          ——
          作者: 時(shí)間:2006-05-19 來源: 收藏

          一、引言

          隨著城市供水規(guī)模擴(kuò)大,城市管網(wǎng)不斷增大,廈門自來水公司原有遙測(cè)系統(tǒng)難以適應(yīng)生產(chǎn)調(diào)度需求。要求有一套可靠、快速的調(diào)度遙測(cè)系統(tǒng),綜合國(guó)內(nèi)RTU(Remote Terminal Unit 遠(yuǎn)程測(cè)控終端)的發(fā)展?fàn)顩r及公司的具體情況,廈門自來水公司獨(dú)立研制開發(fā)了一套新的基于AVR及專用MODEM芯片的MTU(Master Terminal Unit中心調(diào)度機(jī))、RTU無線電遙測(cè)系統(tǒng)。

          分散地分布在全市的管網(wǎng)監(jiān)測(cè)點(diǎn)上的遠(yuǎn)端RTU(系統(tǒng)可帶256個(gè)RTU)采集數(shù)據(jù),進(jìn)行數(shù)據(jù)處理后通過無線電臺(tái)向中心調(diào)度端發(fā)送數(shù)據(jù),中心調(diào)度端接收到數(shù)據(jù)后進(jìn)行數(shù)據(jù)處理,數(shù)據(jù)存儲(chǔ),并送給模擬屏顯示。

          二、設(shè)計(jì)思想

          原有系統(tǒng)的使用中,主要存在以下幾個(gè)問題:1. 無線通信波特率低(300bps),誤碼率高,巡測(cè)速度慢,最多帶32個(gè)RTU終端;2. 當(dāng)某一遠(yuǎn)程RTU端的無線電臺(tái)一直處于長(zhǎng)時(shí)間誤發(fā)射狀態(tài)時(shí)(簡(jiǎn)稱“長(zhǎng)發(fā)” )一直占用系統(tǒng)頻點(diǎn),由于系統(tǒng)共用一組無線電頻點(diǎn),這將使系統(tǒng)其他所有電臺(tái)無法通信,整個(gè)系統(tǒng)癱瘓,處于故障的電臺(tái)亦無法發(fā)送有效數(shù)據(jù),因而無法確定故障點(diǎn),測(cè)壓點(diǎn)分布地域廣且分散,使得故障查找很困難,往往需要數(shù)天時(shí)間;3. RTU板集成度低,故障率較高,元器件難于采購(gòu)。

          考慮到系統(tǒng)的通用性和公司的實(shí)際情況,要求RTU系統(tǒng)能最大限度地利用原有的無線電臺(tái)、天線、電源、模擬屏、檢測(cè)儀表等,并能實(shí)現(xiàn)如下功能:8路10位模擬量輸入、8路開關(guān)量輸入及兩路脈沖量輸入,其中8路開關(guān)量輸入可擴(kuò)展為64路開關(guān)量輸入,可在RTU站存儲(chǔ)24小時(shí)歷史數(shù)據(jù)(15分鐘/次),具有掉電保護(hù)功能。

          我們通過軟硬件的有機(jī)配合,經(jīng)濟(jì)有效地解決了原有系統(tǒng)存在的問題及系統(tǒng)功能要求,做到MTU板和RTU板在硬件上的完全一致,并把通常獨(dú)立于RTU板的無線調(diào)制解調(diào)MODEM集成在RTU板之上,簡(jiǎn)化了系統(tǒng)的硬件結(jié)構(gòu)。本系統(tǒng)RTU板具有無線通信波特率1200bps,誤碼率低,最多帶256個(gè)RTU終端,有效解決了因無線電臺(tái)“長(zhǎng)發(fā)”引起系統(tǒng)癱瘓的問題,數(shù)據(jù)采集精度高,RTU板集成度高,通用性強(qiáng),軟件升級(jí)容易等優(yōu)點(diǎn)

          三、RTU的設(shè)計(jì)

          1、元器件的選擇

          CPU選擇ATMEL公司的AVR系列AT90S8535,該芯片是比較新型的,其內(nèi)部資源如下:8K字節(jié)Flash程序存儲(chǔ)器,512字節(jié)EEPROM數(shù)據(jù)存儲(chǔ)器,8通道10位精度A/D轉(zhuǎn)換器,一個(gè)標(biāo)準(zhǔn)串口,1個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)8位定時(shí)/計(jì)數(shù)器,1個(gè)實(shí)時(shí)時(shí)鐘,2個(gè)外部中斷,內(nèi)置看門狗電路等。RTU所需的功能和數(shù)據(jù)采集功能基本上可以在此單片機(jī)上實(shí)現(xiàn);與無線電臺(tái)的連接選用OKI公司的MSM7512B MODEM芯片進(jìn)行調(diào)制解調(diào),與計(jì)算機(jī)的通信選用MAX232芯片進(jìn)行,歷史數(shù)據(jù)存儲(chǔ)選用8K字節(jié)串行EEPROM存儲(chǔ)芯片AT24C64,電臺(tái)的供電由CPU控制,通過繼電器提供。

          2、數(shù)據(jù)通信

          (1)RS-232串口與PC機(jī)的通信

          由于單片機(jī)的唯一的串口應(yīng)用于無線電臺(tái)的通信,首先保證無線通信的精確。與PC機(jī)的通信通過MAX232芯片把單片機(jī)的TTL電平轉(zhuǎn)化為標(biāo)準(zhǔn)的RS-232電平,使用單片機(jī)的外部中斷INT0、INT1口和I/O口,應(yīng)用軟件模擬,實(shí)現(xiàn)兩個(gè)波特率為9600Bps半雙工三線制串口通信,其接收數(shù)據(jù)采用中斷方式。

          (2)無線電臺(tái)之間的無線通信

          我們把通常獨(dú)立于RTU板的無線調(diào)制解調(diào)MODEM集成在RTU板之上,如此簡(jiǎn)化了系統(tǒng)的硬件結(jié)構(gòu),降低了成本,并且提高了通信的可靠性,實(shí)現(xiàn)了RTU與MODEM的緊密結(jié)合。MODEM芯片選用OKI公司的MSM7512B調(diào)制解調(diào)芯片,MSM7512B是一塊比較成熟的芯片,通信波特率為1200Bps,工作方式為半雙工模式。在實(shí)踐中,我們發(fā)現(xiàn)當(dāng)電臺(tái)從接收狀態(tài)轉(zhuǎn)為發(fā)射狀態(tài)或從發(fā)射狀態(tài)轉(zhuǎn)為接收狀態(tài)的瞬間有一段不穩(wěn)定狀態(tài),此時(shí)的數(shù)據(jù)容易產(chǎn)生誤碼,根據(jù)實(shí)驗(yàn),得出一個(gè)比較合適的延時(shí)時(shí)間,我們?cè)诳刂茻o線電臺(tái)收發(fā)轉(zhuǎn)化后延遲適當(dāng)?shù)臅r(shí)間,使數(shù)據(jù)傳送的可靠性和準(zhǔn)確性得到了很大的提高。在數(shù)據(jù)傳送過程中,加入系統(tǒng)碼、RTU站碼,求和值低字節(jié)等校驗(yàn),保證了系統(tǒng)通信的可靠,正確。

          3、無線電臺(tái)處于長(zhǎng)時(shí)間誤發(fā)射狀態(tài)時(shí)(“長(zhǎng)發(fā)” )系統(tǒng)癱瘓的解決對(duì)策

          (1)在RTU板上設(shè)置電臺(tái)電源控制端口(無線電臺(tái)的電源由單片機(jī)通過繼電器控制),RTU板可控制電臺(tái)電源的通斷;設(shè)置軟件陷阱,RTU在15分鐘內(nèi)若無接收到來自電臺(tái)的任何信號(hào),則可能是電臺(tái)“長(zhǎng)發(fā)” 、電臺(tái)接收故障、其它電臺(tái)“長(zhǎng)發(fā)” 、RTU數(shù)據(jù)端口故障、中轉(zhuǎn)臺(tái)故障,此時(shí)切斷電臺(tái)電源,但15分鐘后再開通電臺(tái)電源,繼續(xù)上述檢測(cè)過程,這時(shí)若是由于中轉(zhuǎn)臺(tái)、其它電臺(tái)“長(zhǎng)發(fā)”等外部引起的故障而接收不到信號(hào)的情況,RTU板的工作得于恢復(fù)正常;設(shè)置看門狗復(fù)位系統(tǒng),程序引起的工作故障可以得到復(fù)位。

          (2)中心調(diào)度室判斷

          如果只接收不到某些點(diǎn)信號(hào),其它點(diǎn)一直正常,那么是這些點(diǎn)自己有故障;如果一直接收不到所有點(diǎn)信號(hào),那么是中轉(zhuǎn)臺(tái)、調(diào)度機(jī)故障或頻點(diǎn)受到連續(xù)干擾;如果15分鐘只接收不到某些點(diǎn)信號(hào),其它點(diǎn)正常,15分鐘接收不到所有點(diǎn)信號(hào),那么是某些點(diǎn)出現(xiàn)“長(zhǎng)發(fā)”現(xiàn)象,可以從可接收數(shù)據(jù)的15分鐘里判斷故障點(diǎn);如果接收到的數(shù)據(jù)時(shí)有時(shí)無,不是15分鐘間隔的規(guī)律,此時(shí)為系統(tǒng)頻點(diǎn)受到干擾或中轉(zhuǎn)臺(tái)、調(diào)度機(jī)的不規(guī)律故障。

          通過采取以上的各項(xiàng)措施,可以較快的查找故障點(diǎn)、杜絕由于電臺(tái)“長(zhǎng)發(fā)”引起的系統(tǒng)癱瘓,大大減少了維護(hù)工作量和維護(hù)成本。

          4、數(shù)據(jù)采集

          遠(yuǎn)程遙測(cè)RTU分布在全市的管網(wǎng)監(jiān)測(cè)點(diǎn)上,環(huán)境比較雜亂,其周圍環(huán)境存在著各種各樣的干擾,在輸入通道做濾波處理,通過硬件電路濾除較大的干擾,為提高采集數(shù)據(jù)的可靠性和精確度,軟件設(shè)計(jì)采用離散的采集方式,同時(shí)根據(jù)具體情況選用相應(yīng)的數(shù)據(jù)濾波技術(shù)。

          (1)離散的采集方式

          在設(shè)計(jì)模擬量輸入對(duì)現(xiàn)場(chǎng)的壓力等多個(gè)參數(shù)進(jìn)行數(shù)據(jù)采集程序時(shí),我們按照“離散采集同一參數(shù),連續(xù)采集不同參數(shù)”的原則進(jìn)行設(shè)計(jì)。因?yàn)槎虝r(shí)連續(xù)地采集同一參數(shù)容易使采集到的數(shù)據(jù)值都受到干擾的影響,數(shù)字濾波技術(shù)對(duì)此無能為力;而采用“離散采集同一參數(shù),連續(xù)采集不同參數(shù)”的方法使參數(shù)采集離散在時(shí)空中,降低了干擾的概率,并使干擾分布在不同的參數(shù)上,這樣采用多次采集和數(shù)字濾波即可除去干擾的影響。

          (2)數(shù)字濾波技術(shù)

          數(shù)字濾波是通過一定的算法程序?qū)Σ杉盘?hào)進(jìn)行平滑加工,在此我們對(duì)每一數(shù)據(jù)進(jìn)行四次采集,算法上采用去掉最高、最低值,其余數(shù)據(jù)取算術(shù)平均的辦法,消除或減少干擾,保證了系統(tǒng)數(shù)據(jù)的真實(shí)性。

          通過使用上述抗干擾措施,大大提高了系統(tǒng)抗干擾能力,保證了系統(tǒng)的可靠運(yùn)行。

          四、應(yīng)用與推廣

          系統(tǒng)自2000年5月正式投入運(yùn)行兩年多以來,工作穩(wěn)定,做到基本無故障運(yùn)行,為公司的合理調(diào)度,節(jié)約能耗,及時(shí)發(fā)現(xiàn)破管等工作做出了貢獻(xiàn),經(jīng)濟(jì)效益顯著。本系統(tǒng)通過廈門市科技局組織的鑒定技術(shù)水平為國(guó)內(nèi)領(lǐng)先。該系統(tǒng)通用性較強(qiáng),接口標(biāo)準(zhǔn),適用于市政、電力、環(huán)保、水利等行業(yè)的遠(yuǎn)程數(shù)據(jù)采集要求,有相當(dāng)?shù)耐茝V空間。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();