水表、電表和氣表的抄錄是城市生活的一個大問題。傳統上采用的人工上門抄表方法不僅效率低,而且經常出現漏抄、誤抄等現象。隨著信息技術和網絡的不斷發展,出現了自動抄表系統。 現代智能化系統一般采用兩種:電力載波集抄和總線通信方式。由于我國的電網在傳輸數據過程中,經常會受無線電信號、電磁信號、脈沖信號的干擾,導致傳輸數據錯碼、丟碼的情況。總線通信方式集抄系統較為復雜,而且要另外鋪設通訊電纜,特別對于舊城區改造項目,就存在更大問題。 但是,如果采用三表GPRS無線集抄系統,以上問題就迎刃而解。本文就介紹基于GPRS的一種設計方案。 自動抄表系統的一般結構 抄表系統中,儀表數據與控制信號傳輸的路徑稱為通信通道,它分為上行通道和下行通道。上行通道是傳輸控制器與管理中心計算機之間的通信線路,可以采用電話、無線、專線等各種通信介質。 下行通道是數據采集器與傳輸控制器之間的通信線路,主要有LonWork總線、CAN總線、RS-485總線等方式。自動抄表系統的構成如圖1所示,主要包括計量表、數據采集器、傳輸控制器(集中器)、管理中心計算機等。 圖1 一般自動抄表系統的結構 其中計量表、采集器、集中器稱為自動抄表系統的下位機,管理中心計算機則稱為上位機。上位機可以對下位機進行命令發送、參數設定等控制。 硬件設計 系統總體框圖 自動抄表系統的硬件主要分為采集器和集中器兩部分。采集器主要是用單片機把計量表中的數據采集過來,并存放在內存里,通過RS-485總線傳送給集中器;集中器是整個系統中最重要的,也是最復雜的環節,它的硬件設計框圖如圖2所示。 圖2 集中器設計框圖 集中器中的單片機選用了C8051F120,其時鐘可達到100M,有8448B的RAM和128K的Flash,兩個URAT中,一個用于GPRS通信,另一個用于與采集器的通信。在很多場合,該單片機幾乎不用擴展外圍芯片就能夠滿足系統要求。C8051F MCU具有與8051兼容的高速CIP-51內核,但與標準的8051結構相比,指令執行速度有很大提高,運行mC/OS-II操作系統是沒有問題的。FLASH的擴展選用SPI總線的AT45D041,它有512KB的FLASH,使用方便,且性價比也比較高; LCD采用中國臺灣矽創電子公司的中文圖形控制芯片ST7920,內含中英文字庫,使用起來非常方便。 GPRS模塊 GPRS模塊采用了西門子公司的MC35i,此模塊主要由GSM處理器、GSM射頻模塊、供電模塊、閃存、ZIF連接器、天線接口等六部分組成。它通過ZIF連接器上的串口與單片機實現電路接口,通過串口讀取或發送MC35i模塊中的數據和AT指令。 自動抄表系統的軟件設計下位機的軟件設計 下位機軟件設計的重點是GPRS通信的實現。由于GPRS是基于IP協議的,所以主控制器在與GPRS模塊通訊的時候要發送符合IP協議的數據包。如果要自己編寫TCP/IP協議,工作量會比較大,一個簡便的方法是移植操作系統。有些操作系統中包含TCP/IP協議(如Linux),但相對于單片機來說,顯得力不從心。有些操作系統不包括此協議(如mC/OS-II),就必須同時移植與其兼容的TCP/IP協議(如uiP協議),本系統采用后一種方法。 mC/OS-II介紹及移植 mC/OS-II是為嵌入式應用編寫的通用軟件,具有源碼公開、可移植、可裁剪、支持多任務和內核服務運行時間可確定等特點。所以,mC/OS-II支持從8位到32位的CPU,經過裁剪后代碼最小小于2KB,所需的最小數據RAM空間為4KB。 mC/OS-II的移植只需要修改與處理器相關的代碼就可以了。具體內容如下: (1)os_cpu.h中需要設置1個常量來標識堆棧增長方向, 即:#define OS_STK_GROWTH 0 //8051 堆棧從下向上增長; (2)os_cpu.h中需要聲明3個用于開關中斷和任務切換的宏, 即:#define OS_ENTER_CRITICAL() EA=0 //關中斷; #define OS_EXIT_CRITICAL() EA=1 //開中斷; #define OS_TASK_SW() OSCtxSw() //任務間的切換; (3)os_cpu.h中需要聲明10個數據類型; 即:typedef unsigned char BOOLEAN 等; (4)os_cpu_a.asm需要改寫4個匯編語言的函數,集中了所有與處理器相關的匯編語言代碼模塊; (5)os_cpu_c.c需要用c語言編寫6個簡單函數, 即1個初始化任務堆棧和5個任務創建鉤掛函數,其中5個任務創建鉤掛函數可根據實際情況加入; (6)修改主頭文件include.h,將上面的3個文件和其它自己的頭文件加入。 完成上述工作后,mC/OS-II就可以運行在單片機上了。 uip的移植 uIP的移植設計重點放在IP、ICMP和TCP協議的實現上,要將這三個模塊合為一個有機的整體,而將UDP和ARP協議實現作為可選模塊。uIP0.9的體系結構如圖3所示。 圖3 uIP協議栰接口 uIP0.9處于網絡通信的中間層,其上層協議在這里被稱之為應用程序,而下層硬件或固件被稱之為網絡設備驅動。uIP可以看作是一個代碼庫為系統提供確定的函數。圖3展示了uIP系統底層和應用程序之間的關系。 在基于8051的mC/OS-II中,移植uIP不需要對現有的TCP/IP源代碼做任何修改,但是必須為網絡設備如網卡芯片、串口等寫一個驅動程序。同時,現有系統的集成部分也要進行相應的處理,例如當有數據到達或周期性的定時器計數滿等情況下,主控制系統應該調用uIP函數。移植的具體步驟如下: (1)在目錄uip-0.9/下創建一個自己的目錄,例如uip0.9/C8051F/。 (2)把uip_arch.c文件從目錄uip-0.9/unix/中復制到目錄uip-0.9/ C8051F中。 (3)把uipopt.h文件目錄從uip-0.9/unix中復制到目錄uip-0.9/ C8051F中,并對其修改,以滿足系統需要。 (4)編寫串口驅動程序和主控函數。 (5)編譯源代碼。 上位機軟件 管理中心計算機抄表軟件以IIS作為Web Server,數據庫端使用SQL Server 數據庫,運行WIN98/2000/XP、NT的操作系統,易于使用。軟件所能管理的用戶數量沒有限制。它具有以下的功能與特點:安全可靠,抄表速度快,具有完善的系統日志,以及廣播對時、自動抄表和設備管理功能。并且用戶界面清晰美觀,操作簡單,具有完善的在線幫助功能。 結語 遠程無線自動抄表系統利用GPRS通信技術,實現了多表數據抄收的功能,解決了實時性、抄收成本及通信距離等問題。隨著GPRS通信技術的不斷成熟和自動抄表技術的不斷完善,這種遠程無線自動抄表技術也將會得到更好的發展和提高。 |