2021-4-9 | 農(nóng)業(yè)灌溉論文
作者:頡新春 李文濤 陳文生 單位:內(nèi)蒙古科技大學(xué)信息工程學(xué)院 呼和浩特鐵路局呼和浩特電務(wù)段
水電控制器的基本功能水電控制器是安裝在機(jī)井旁具有IC卡讀寫(xiě)、用戶用水量統(tǒng)計(jì)、用電量統(tǒng)計(jì)、通過(guò)無(wú)線接口與遠(yuǎn)端中心計(jì)算機(jī)進(jìn)行數(shù)據(jù)通訊的功能。持有IC卡的用戶刷卡后,水電控制器判斷該用戶卡上的剩余金額是否為0,如果該用戶卡上的剩余金額不為零控制器發(fā)出開(kāi)啟水泵的命令。水泵運(yùn)行過(guò)程中水電控制器將記錄該用戶消耗的用水?dāng)?shù)據(jù)和用電數(shù)據(jù)并在液晶顯示屏顯示用水量、用電量及此次灌溉所發(fā)生的費(fèi)用。運(yùn)行過(guò)程中該用戶再次刷卡水電控制器將停止水泵的運(yùn)行,并將剩余金額寫(xiě)入IC卡。在運(yùn)行過(guò)程中如果接收到中心計(jì)算機(jī)的命令,控制器會(huì)將該一定時(shí)間內(nèi)(如一年)的水電消耗量和用戶數(shù)據(jù)返回到中心計(jì)算機(jī)。
虛擬總線模式下的通訊接口設(shè)計(jì)水電控制器的無(wú)線通訊接口電路必須保證在幾十公里范圍內(nèi)能夠與中心計(jì)算機(jī)所驅(qū)動(dòng)的通訊控制器進(jìn)行可靠的數(shù)據(jù)傳輸。采用無(wú)線數(shù)傳模塊可以滿足我國(guó)平原空曠條件下的數(shù)據(jù)傳輸要求。數(shù)傳模塊TDX-868A可用于針對(duì)專業(yè)級(jí)使用的工業(yè)自動(dòng)化監(jiān)測(cè)控制的數(shù)據(jù)傳輸領(lǐng)域,它采用了先進(jìn)的頻率合成技術(shù),CPU鎖相環(huán)控制,配合調(diào)制解調(diào)器,可提供語(yǔ)音信號(hào)或數(shù)據(jù)信號(hào)的透明傳輸,適應(yīng)各種點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)的無(wú)線數(shù)據(jù)通信方式,具有收發(fā)一體、安裝方便、使用簡(jiǎn)單、性價(jià)比高、穩(wěn)定可靠等特點(diǎn)。該模塊采用223~235MHz數(shù)據(jù)傳輸專用頻段,工作環(huán)境溫度-35℃~+65℃,可滿足我國(guó)大部分地區(qū)的氣候條件。其基本結(jié)構(gòu)如圖2所示。天線接收的射頻信號(hào)經(jīng)放大,混頻,檢波后,送入MODEM,由MODEM還原出發(fā)射端發(fā)出的數(shù)字信號(hào)。當(dāng)需要進(jìn)行發(fā)射時(shí),數(shù)字信號(hào)先進(jìn)入MODEM,由MODEM產(chǎn)生相應(yīng)的MSK信號(hào),去調(diào)制發(fā)射VCO并產(chǎn)生所需的射頻信號(hào),經(jīng)射頻功放由天線發(fā)射出去。該模塊采用雙壓控振蕩器(VCO)來(lái)分別產(chǎn)生用于接收和發(fā)射的射頻信號(hào),可實(shí)現(xiàn)接收和發(fā)射之間的快速轉(zhuǎn)換。TXD和RXD為TTL電平標(biāo)準(zhǔn)的串行通信接口信號(hào),用于與處理器連接。系統(tǒng)中的中心計(jì)算機(jī)必須通過(guò)下層的無(wú)線傳輸網(wǎng)絡(luò)讀取各個(gè)水電控制器的水電消耗數(shù)據(jù)。處于下層網(wǎng)絡(luò)中的水電控制器與通訊控制器在同一調(diào)制頻率下進(jìn)行數(shù)據(jù)收發(fā),每個(gè)水電控制器具有不同的地址。為了防止數(shù)據(jù)傳輸出現(xiàn)沖突現(xiàn)象,通訊控制器采用輪詢的方法與各個(gè)水電控制器實(shí)現(xiàn)數(shù)據(jù)傳輸。通訊控制器維護(hù)一個(gè)記錄了所有水電控制器地址及工作狀態(tài)的數(shù)據(jù)表格(輪詢表),輪詢表里各個(gè)水電控制器的地址按照升序排序,地址數(shù)量n由中心計(jì)算機(jī)管理機(jī)軟件設(shè)定。通訊控制器與水電控制器的數(shù)據(jù)傳輸采用半雙工方式,即通訊控制器發(fā)送時(shí)不能接收數(shù)據(jù)。水電控制器上電后處于接收狀態(tài),等待通訊控制器的命令。此時(shí)無(wú)線信道相當(dāng)于一種虛擬的總線結(jié)構(gòu),如圖3所示。通訊控制器作為主站掌握總線控制權(quán),主動(dòng)和網(wǎng)絡(luò)中處于從站狀態(tài)的其他水電控制器進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)交換完后通訊控制器存儲(chǔ)數(shù)據(jù),等待中心計(jì)算機(jī)的讀取。作為主站的通訊控制器與作為從站的水電控制器之間的數(shù)據(jù)交換方式按以下2種方式進(jìn)行:(1)SDA:有應(yīng)答發(fā)送數(shù)據(jù),通訊控制器把數(shù)據(jù)發(fā)送到一個(gè)水電控制器(從站),要求返回應(yīng)答。(2)RD:通訊控制器讀取某一從站的一組數(shù)據(jù),應(yīng)答幀中返回所需數(shù)據(jù)。這2種數(shù)據(jù)交換都由通訊控制器發(fā)起。節(jié)點(diǎn)上電后,通訊控制器持有控制權(quán),作為從站的水電控制器處于接收態(tài)。通訊控制器上電后按照從站地址由低向高依次輪詢各個(gè)從站并進(jìn)行數(shù)據(jù)傳輸。通訊控制器發(fā)出數(shù)據(jù)后,如果在一定時(shí)間內(nèi)(SLOTtime)沒(méi)有收到從站的應(yīng)答將會(huì)重發(fā)請(qǐng)求,重發(fā)后仍沒(méi)收到應(yīng)答主站會(huì)認(rèn)為數(shù)據(jù)傳輸失敗,此時(shí)通訊控制器在輪詢表里將該從站標(biāo)記為工作非正常狀態(tài),然后繼續(xù)尋址下一地址的從站,通訊控制器通過(guò)周期性的輪詢各個(gè)水電控制器完成了數(shù)據(jù)的傳輸。
無(wú)線網(wǎng)絡(luò)的數(shù)據(jù)傳輸協(xié)議無(wú)線網(wǎng)絡(luò)中的通訊控制器,主要任務(wù)包括2方面的內(nèi)容,即接收中心計(jì)算機(jī)下發(fā)的數(shù)據(jù)傳輸命令和周期性地輪詢作為從站的水電控制器??偟膩?lái)說(shuō),總線上傳輸?shù)臄?shù)據(jù)類型包括以下5種:(1)設(shè)定水電控制器允許(或禁止)使用命令、用水單價(jià)和用電單價(jià),幀格式如下。該命令以0x01和0x02作為起始和結(jié)束標(biāo)志,其間所有數(shù)據(jù)均以ASCII碼傳輸。這樣做的目的主要是保證一個(gè)傳輸幀中只有唯一的起始和結(jié)束標(biāo)志。DA為2字節(jié)的ASCII碼,分別為通訊控制器要訪問(wèn)的水電控制器的地址(16進(jìn)制)的高4位和低4位的ASCII碼。如尋址地址為0x24的水電控制器時(shí),DA的2字節(jié)為0x32和0x34。EN為1字節(jié)的ASCII碼,0x31表示允許水電控制器運(yùn)行(0x30表示禁止),禁止運(yùn)行時(shí)用戶刷卡將無(wú)效。DJ1和DJ2為用戶定義的各為5位ASCII碼的水、電價(jià)格,分別為百位、十位、個(gè)位、十分位和百分位。如0x30、0x31、0x32、0x35、0x34表示每噸水的價(jià)格為12.54元。CRC表示16位CRC校驗(yàn)碼,共占用4個(gè)字節(jié)。通訊控制器發(fā)出該命令后處于等待應(yīng)答狀態(tài),在一定時(shí)間內(nèi)如果沒(méi)有收到水電控制器返回的確認(rèn)幀,通訊控制器將會(huì)重發(fā)該命令,2次重發(fā)后都沒(méi)有收到確認(rèn)幀將向中心計(jì)算機(jī)返回尋址失敗信息。確認(rèn)幀的格式如下,其中FC為本命令類型碼0x31。
通訊控制器與中心計(jì)算機(jī)的接口設(shè)計(jì)通訊控制器采用南京沁恒公司生產(chǎn)的USB專用接口芯片CH375作為與上位機(jī)的通訊接口。CH375直接提供了數(shù)據(jù)塊的讀寫(xiě)接口,以512字節(jié)的物理扇區(qū)為基本讀寫(xiě)單位。開(kāi)發(fā)者就可以將USB存儲(chǔ)設(shè)備簡(jiǎn)化為一種外部數(shù)據(jù)存儲(chǔ)器,通過(guò)單片機(jī)可以自由讀寫(xiě)USB存儲(chǔ)設(shè)備中的數(shù)據(jù),也可以自由定義其數(shù)據(jù)結(jié)構(gòu)。上位機(jī)軟件的開(kāi)發(fā)直接可以調(diào)用沁恒公司提供的CH375專用API來(lái)進(jìn)行數(shù)據(jù)的傳輸。在半雙工模式下,單片機(jī)通過(guò)驅(qū)動(dòng)UART接口來(lái)完成虛擬總線下的數(shù)據(jù)傳輸。
通訊控制器的數(shù)據(jù)傳輸方法中心計(jì)算機(jī)與各個(gè)從站的數(shù)據(jù)傳輸也可以基于輪詢表來(lái)進(jìn)行。輪詢表里存放著各個(gè)水電控制器的地址。中心計(jì)算機(jī)上運(yùn)行的管理軟件按照輪詢表里記錄的水電控制器地址由小到大順序向通訊控制器發(fā)送命令。作為中心計(jì)算機(jī)與水電控制器之間通訊的中間環(huán)節(jié),通訊控制器主要承擔(dān)命令解析、命令發(fā)送與數(shù)據(jù)存儲(chǔ)的功能。中心計(jì)算機(jī)基于USB接口發(fā)出的各種通訊命令首先存儲(chǔ)在CH375的接收緩沖(FIFO)中并觸發(fā)中斷信號(hào)。單片機(jī)在中斷服務(wù)程序中對(duì)不同的通訊命令進(jìn)行解析,依據(jù)命令的要求把數(shù)據(jù)請(qǐng)求命令(RD)或數(shù)據(jù)發(fā)送命令(SDA)按照通訊協(xié)議要求把數(shù)據(jù)經(jīng)數(shù)傳模塊調(diào)制并發(fā)送出去,然后等待受訪水電控制器數(shù)據(jù)(或應(yīng)答信號(hào))的返回,若在一定時(shí)間內(nèi)沒(méi)有收到該站返回的數(shù)據(jù)通訊控制器將會(huì)重新發(fā)送命令。重發(fā)兩次后仍然沒(méi)有收到返回?cái)?shù)據(jù)通訊控制器會(huì)向中心計(jì)算機(jī)返回通訊錯(cuò)誤信息。通訊控制器收到應(yīng)答后會(huì)將水電控制器返回的數(shù)據(jù)放入CH375的接收緩沖(FIFO),等待中心計(jì)算機(jī)的讀取。在這種通訊方式下,通訊控制器可以完成所有水電控制器相關(guān)數(shù)據(jù)的傳輸。