左岐 趙玉杰 王碩 杜春寶 北方工業大學
能源危機、環境污染等問題正危及人類的生產與生活。以氫氣作為能源,因其來源廣、安全環保、具有高能量、密度小易存儲等諸多優點,成為最有希望解決這一系列問題的方案之一。制氫過程存在一定的危險,為了使制氫過程更加安全,借助遠程監測,能實現對制氫設備狀態及時掌握。利用網絡技術實現遠程監測,降低制氫生產成本提高勞動效率,增強制氫企業的競爭實力。
本設計以電解水制氫項目為研究背景,實現了嵌入式web服務器的設計。系統以STM32F103ZE單片機為控制核心,利用ENC28J6以太網控制器接接入局域網。移植μC/OSII操作系統和UIP協議棧,利用協議棧提供的函數在STM32上建立服務器。
建立服務器后可以通過PC上的瀏覽器對所設計的嵌入式WEB進行訪問,獲得采集的實時模擬量數據網頁,實現對電解水制氫過程中各個參數傳感器信號采集和遠程監測。
2.2.1 系統總體硬件設計
采用基于Cortex-M3內核的STM32F103ZE芯片作為嵌入式WEB服務器的核心處理器,采用STM32外接常用的嵌入式以太網控制器ENC28J60并通過RJ45接入因特網。
硬件部分主要包括信號采集模塊、數據存儲模塊、通訊模塊、電源模塊、以太網接口模塊以及STM32單片機模塊。其總體硬件結構圖如圖1所示。

圖1 硬件整體結構圖
2.2.2 嵌入式WEB服務器硬件設計
本設計使用的師STM32F103ZET6型號的MCU,該單片機沒有集成以太網控制器,所以采用STM32外接常用的嵌入式以太網控制器ENC28J60接入網絡。ENC28J60芯片兼容IEEE802.3的以太網控制器,集成MAC控制器和10BASE-TPHY控制器,自帶緩沖區、DMA,使用SPI接口與MCU進行通信。MCU使用SPI接口對ENC28J60芯片的寄存器寫入控制參數和接收數據,實現以太網功能。
2.3.1 系統總體軟件設計
軟件設計方面主要采用C語言完成系統程序的編寫,本設計完成了ENC28J60網卡驅動程序編寫,移植了uC/OS-Ⅱ操作系統和UIP協議棧,最后完成HTTP服務程序的編寫,構成嵌入式web服務器。程序能夠對傳感器傳出信號完成數據采集、處理、存儲與網頁發送功能。根據前端知識完成了登錄系統界面網頁及電解水制氫主界面網頁的設計。采集數據超過規定值時系統會發出報警信息,提示設備異常并在電解水制氫的主界面網頁上顯示。
2.3.2 UC/OS-Ⅱ操作系統移植
UC/OS-Ⅱ是一個微型實時操作系統,包括了一個操作系統最基本的一些特性,如任務調度、任務通訊、內存管理、中斷管理、定時管理等。簡單明了的代碼,而且代碼完全開放。UC/OS-Ⅱ移植后運行UC/OS系統的設備上,程序執行時會初始化系統任務管理所需要的各種鏈表等數據結構,接著根據應用程序需求創建任務,由調度器管理各個任務,中斷可由操作系統使能和除能,若使能中斷則可以在其他任務運行時跳轉到中斷服務程序。
2.3.3 UIP協議棧移植
uIP協議棧去掉了完整的TCP/IP中不常用的功能,簡化了通訊流程,但保留了網絡通信必須使用的協議,設計重點放在了IP/TCP/ICMP/UDP/ARP這些網絡層和傳輸層協議上,保證了其代碼的通用性和結構的穩定性。
向STM32移植UIP協議棧首先實現tapdev_init()、tapdev_read()及tapdev_send()這三個函數,tapdev_init()用于初始化網卡;tapdev_read()函數用于從網卡讀取一包數據;tapdev_send()函數用于向網卡發送一包數據;這三個函數實現了最底層的網卡操作。 其次需要STM32提供一個定時器做時鐘,提供10ms計時,通過colockarch.c里面的clock_time()函數返回給uip使用。最后配置uipconf.h里面的宏定義選項。
通過以上三步的修改,我們基本上就完成了uip的移植。在使用uip的時候,一般通過如下順序:1.實現接口函數(回調函數)UIP_APPCALL;2.調用tapdev_init()函數,初始化網卡,配置MAC地址;3.調用uip_init()函數,初始化uip協議棧;4.通過uip_ipaddr()、uip_sethostaddr()、uip_setdraddr()和 uip_setnetmask()等函數實現IP地址、網關以及掩碼 的設置;5.設置監聽端口;
6.uip通過uip_polling函數輪訓處理uip事件。
本設計在實驗室條件下進行了測試,通過測試本設計初步實現對電解水工程工藝的多路數據采集、處理和存儲,并通過WEB服務器將數據發布到網上,通過電腦瀏覽器輸入http://192.168.1.16,進入電解水制氫登錄界面,輸入正確的用戶名和密碼提交可到電解水制氫監測系統數據顯示界面,該界面可以顯示各個參數的采集數據,當采集數據超過規定值時,該網頁會顯示具體報警信息。
該測控系統實現了數據采集、實時顯示、報警及遠程監測等工程要求。但僅僅只在實驗室進行了模擬測試,還未進行現場的測試。下一步工作將與現場設備進行連接、測試。