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