高寒
(北京工業大學信息學部,北京100124)
智慧環保是數字環保概念的延伸和拓展[1]。近年來4G、云計算、高清、智能分析等新技術逐漸滲透環保行業的各個領域,環保監控與業務需求融合漸深[2]。利用物聯網、傳感器、全球定位系統、視頻監控和大數據等技術能夠助力智慧環保的推進,實現精確、精準的環境管理和決策[3]。
當今環保監測系統在發展中遇到很多問題,如,監測地區偏遠、設備種類多、維護難等問題使監測環境時常對監測系統的集約智能化程度要求較高[4];數據傳輸的實時性和準確性有待提高;屢禁不止的環保監測數據造假問題亟待解決;接入環保云和環保大數據平臺的功能欠缺[5];3S技術的應用需求[6]…這些問題決定了環保監測系統向高集成、智能化和強運算能力上發展。本文中,系統采用Zynq SoC作為硬件處理器的核心不僅可以解決產品性能與體積之間的矛盾,而且可以使信號處理更加高速化與功能化;LTE傳輸模塊改善系統實時性;網絡攝像頭可助力環保監控現場視頻監控應用的開發,集成GPS模塊獲得系統的位置信息方便應用GIS技術進行精確的平臺管理。
Xilinx推出的Zynq SoC芯片由PS和PL兩部分組成:PS(Processing System,處理系統)部分集成了兩 個 ARM Cortex A9處理器,PL(Programmable Logic,可編程邏輯)部分為Xilinx 7系列28nm工藝的FPGA[7]。在Zynq的片上設計中,PS和PL之間的數據交互通過 AXI(Advanced eXtensible Interface)接口實現,同時是軟硬件協同設計的關鍵[8]。
本文中應用的開發板是Digilent的一款接口豐富且低成本Zynq開發板ZYBO,在硬件工程中使用的資源包括:一顆Xilinx XC7Z010-CLG400芯片,兩片Micron的MT41J128M16JT-125共計512M bytes的DDR3內存,10/100/1000M自適應以太網,USB OTG,USB轉UART調試串口,micro SD卡和用以開發板擴展的Digilent Pmod接口連接器。在擴展板上實現的硬件功能包括為供電電源模塊、LTE模塊、2路UART轉RS232模塊、3路UART轉RS485模塊、北斗/GPS多模定位模塊、溫度傳感器模塊。硬件總體設計框圖如圖1所示。

圖1 智慧環保硬件系統框圖
Zynq SoC在設計思路上采用以ARM處理器為主,FPGA作為ARM的協處理器的方式[9]。本系統的設計為遵循這一設計思路,優先使用PS端的通用外設,當ARM資源不夠用時使用PL端資源作為IO擴展。ZYBO開發板將1個USB控制器、1個以太網控制器和1個UART控制器通用外設端口由Zynq的PS部分引出,可以直接被用戶配置使用。而面對多種類型環保監測設備的接入需求和智慧環保系統的集成度要求,只有這些外設接口數量是不夠的,需要擴展接口。通過調研市場上環保檢測設備的接口可知,多數的有線傳輸為RS232或RS485接口標準,即是在ZYBO原有PS端資源的基礎上使用PMOD接口連接器擴展多個UART控制器接口,再將TTL或CMOS電平通過轉換芯片轉成RS232和RS485電平。
UART接口在Zynq SoC上實現有兩種方法,一種是通過PS部分的外設資源,另一種是使用IP核。PS端有UART0和UART1兩個UART控制器,其中UART1已經作為ZYBO開發板的調試串口(USBUART),因此可將UART0接口通過PS端剩余的MIO引腳或PL端的EMIO引腳引出。這兩種PS端資源的引出方式體現了Zynq SoC PS+PL架構的靈活性。使用IP核的方法也是十分簡單易用的,即使用Xilinx官方提供的UART Lite IP核。UART Lite IP核是面向AXI4-Lite協議且具有UART通信功能的軟IP核,它具有全雙工、16位收發FIFO、波特率和校驗方式可配置的特點。本論文中同時使用了這兩種UART的實現方式。UART Lite IP核如圖2所示。
Zynq SoC的片上設計通過Vivado開發套件完成,首先添加Zynq-7000的IP核,導入ZYBO開發板的定義文件,并配置PL-PS共享中斷端口,這樣使PS端的資源與ZYBO開發板對應起來,同時允許PL端發起中斷請求。根據環保監控系統的需求,在Vivado中添加了8個UART Lite IP核用于擴展8個UART口;一個8輸入的Concat IP核和一個或門IP核用于UART控制器的中斷請求功能。在進行Block Design的布線和布線優化并驗證IP核連接的正確性后,進行管腳約束文件的編寫。工程中使用了PL端的UART和EMIO功能,將這些用到的管腳約束到ZYBO開發板的JB、JC、JD PMOD連接器上,約束完成后進行綜合、實現和生成比特流即可。
Vivado提供了工程實現后的資源查看功能,資源的利用情況,本文中PL部分實現后的硬件資源使用情況如表1所示。

圖2 UART Lite IP核

表1 Zynq SoC PL端資源使用情況
Zynq-7010的PL部分采用了ATRIX 7系列FPGA。根據表格顯示,在配置8個串口之后,PL端資源仍有很大利用空間。
本文中智慧環保系統數據上傳至云平臺(上位機)的方式為無線LTE。LTE較2G和3G網絡傳輸有更高的傳輸速率,適合發送/接收實時并發的數據[10]。LTE模塊硬件由無線數據終端模塊和SIM卡組成,無線數據收發終端型號為:ME909s-821模塊外觀為mini PCIe,接口為標準USB2.0,通過公對公USB線與ZYBO開發板的USB-OTG口相連。模塊接口連接如圖3所示。

圖3 LTE模塊
由圖3可知,除USB接口外,還使用了LTE收發終端用于復位的管腳PERST#。系統中LTE模塊復位使用兩個Zynq的GPIO資源,一個用于無線收發模塊的復位腳,一個用于LTE供電的使能腳。
智慧環保系統的環境感知功能主要包括網絡攝像功能、GPS定位功能和溫度傳感器功能。網絡攝像頭用于視頻監控環境監測點儀器的現場情況,通過應用層的開發可以達到實時監測、異常判斷、模式識別等作用,達到一定程度上防止人為對環保數據造假的目的[11]。在ZYBO開發板上,以太網PHY采用了10/100/1000M自適應的Realtek RTL8211E-VL芯片,該以太網接口作為視頻的傳輸接口。
GPS和北斗定位可應用于GIS技術建立精確的環境空間數據庫,結合大數據技術助力智慧環保的數據研究和數據共享[12]。本硬件系統的定位模塊采用集成了ARK 699芯片的VK1613A9M3模塊,它可以工作在 GPS,GALILEO,QZSS:L1 1575.42 MHz,C/A code BEIDOU:B1 1561.098 MHz的頻率上,滿足NMEA 0183 v2.3協議。該模塊采用3.3 V供電,定位時工作電流約100 mA,通信接口為UART,默認波特率為9 600。基于模塊的上述特性,在設計擴展板時使用ZYBO開發板PMOD口進行供電和通信,布局時盡量遠離易產生干擾的電子元件,模塊背面鋪完整的銅使模塊良好接地。模塊的RF_IN為射頻天線引腳,在POLAR SI軟件上計算得到走線寬度和走線與銅皮間距后走50歐姆阻抗線連接至IPEX貼片天線座上,通過IPEX-SMA轉接線連接到GPS專用天線上。
采用DS18B20溫度傳感器,用于監測整個硬件系統內的溫度,配置一個PL部分的EMIO腳連接至DS18B20的DQ數據管腳。
RS485轉UART功能采用3顆MAX13487e芯片實現。MAX13487e是+5 V供電、8引腳SO封裝、半雙工、具有±15 kV ESD保護的RS-485/RS-422兼容收發器,包含一路驅動器和一路接收器,低擺率驅動器能夠減小EMI和不恰當的電纜端接所引起的反射,實現高達500 kbps的無差錯數據傳輸。器件可工作于-40~+85°C工業級溫度范圍,支持熱插拔和自動選向控制功能。RS485連接通常為2線(A+和B-線)或3線(A+、B-和GND線)制,因此采用螺絲式PCB接線端子的外觀,接線順序為A+,B-,GND。電路原理如圖4所示。

圖4 RS485模塊電路圖
RS232轉UART功能采用MAX3232芯片實現。MAX3232采用專有低壓差發送器輸出級,利用雙電荷泵能在3.0~5.5 V電壓供電情況下,確保120kbPS數據速率同時保持RS232輸出電平。器件需4個0.1 μF的外部小尺寸電荷泵電容,耗電0.3 mA。RS232連接器外觀為DB9公頭。電路原理如圖5所示。

圖5 RS232模塊電路圖
擴展板電源適配器的輸出參數為DC 12V 2A。擴展板采用兩顆TI的TPS5450 DC-DC轉換芯片,一顆是12 V轉5 V,用于給ZYBO開發板、MAX3232芯片和MAX13487e芯片供電;另外一個用于12 V轉3.8 V,用于給LTE模塊供電。智慧環保硬件系統是功能比較復雜的體系,當某一功能模塊發生異常時,可以通過將其供電芯片重新上電的方式達到對整個功能模塊的可靠復位。常見的供電芯片在設計時都預留了使能引腳,在設計中將3.8V供電芯片TPS5450的ENA腳上拉后與Zynq PL端的EMIO相連,通過GPIO輸出高低電平來控制整個LTE模塊重啟。
擴展板的外觀如圖6所示,尺寸與ZYBO開發板相同。

圖6 擴展板實物圖
嵌入式Linux是體積小巧、可裁剪、配置靈活、廣泛應用于嵌入式設備開發的操作系統[13],基于ARM架構的嵌入式Linux系統應用非常廣泛[14]。Zynq-7000 SoC與其他的Xilinx 7系列器件不同,在沒有外部JTAG的情況下,整個SoC的PS和PL端都必須由PS部分的CPU來完成整個芯片的初始化配置[15],因此嵌入式Linux在PS端移植和啟動。本文采用Xilinx Linux作為智慧環保的操作系統,它是針對Zynq AP SoC和MicroBlaze的嵌入式Linux免費發行版[16]。Xilinx官方提供了豐富的開發資源和文檔,通過Vivado套件、Xilinx SDK和Linux虛擬機3個開發環境對ARM Cortex A9處理器及外設接口進行開發。
在Vivado中搭建硬件工程、生成硬件比特流后,導出到Xilinx SDK進行上層開發。在SDK中創建并生成 FSBL(First Stage Boot Loader)工程和設備樹BSP工程,并應用SDK中的Create Zynq Boot Image工具生成BOOT.bin文件。在Ubuntu虛擬機上安裝arm-xilinx-linux交叉編譯環境后,下載DIGILENT官方Github賬戶提供的針對ZYBO開發板的u-boot文件和基于Linux 3.18.0版本的xlnx-linux內核文件,交叉編譯后生成u-boot.elf文件和uImage內核文件。使用虛擬機中的dtc工具生成devicetree.dtb設備樹文件,同時利用u-boot工具將Xilinx官方提供的ramdisk根文件系統加上u-boot頭部生成uramdisk.image.gz。
Xilinx Linux在配置默認的PS端資源基礎上還需要根據實際工程進行相應修改,配置修改包括操作系統源碼的修改、內核編譯項的增加和設備樹的修改。內核編譯前的make menuconfig階段的修改包括:在USB驅動配置的基礎上配置PPP撥號、MBIM等驅動項來支持LTE模塊功能;增加針對溫度傳感器DS18B20的1-wire總線驅動;添加Xilinx IP核的Linux驅動,uartlite IP核在嵌入式Linux中使用之前選中Xilinx uartlite serial port support這一項。
Xilinx SDK中生成的設備樹文件包括system.dts、Zynq-7000.dtsi、skeleton.dtsi和 pl.dtsi文件。在執行dtc命令之前需要對system.dts文件進行修改后才能正確驅動開發板各功能,如在增加RTL8211EVL芯片的compatible屬性用于驅動以太網,增加1-wire總線描述等。通過對操作系統進行配置的修改后,編譯生成相應文件拷到SD卡上即可電自動運行Linux系統。
智慧環保系統應用層的開發總體包括3個部分。首先是傳統環保數采儀的應用程序開發,即T212標準的實現。T212標準即《污染源在線自動監測(監控)傳輸標準》,是應用層的協議,該協議對數采儀與上位機交互(上傳、請求、反控等)的具體方法、傳輸格式等進行了詳盡的描述。在實現之前與上位機交互之前需要實現存儲、傳輸等功能,在Linux上移植輕量型數據庫SQLite3用于對數據的存儲功能,LTE實現TCP協議[17-18]傳輸前需要實現撥號功能等。然后是針對智慧環保的環境感知功能的程序實現,包括GPS/北斗定位信息和視頻信息的獲取與處理,涉及到定位坐標的獲取、視頻編解碼庫的移植和針對視頻監控應用的開發等。第三部分是針對智慧環保云平臺接口的應用程序開發,針對大數據、云平臺的需求,對整個平臺獲取的信息進行處理最終整合到云平臺。
應用程序經過編譯后,生成Linux操作系統的可執行文件,拷貝到SD卡運行。進行實驗時擴展板在ZYBO開發板下方用定位柱固定,如圖7所示。

圖7 實驗開發環境圖
文中詳細介紹了基于ZYBO開發板的智慧環保環境監測系統硬件和操作系統層的實現,以Zynq SoC作為處理核心進行了LTE傳輸、定位和視頻功能的集成,從硬件上解決了智慧環保監測平臺存在的一些諸如數據采集實時性、定位、現場視頻監控的問題。目前智慧環保平臺能夠實現T212協議、定位和網絡監控視頻的獲取。隨著進一步的應用開發,Zynq SoC平臺豐富的硬件資源和PS+PL的創新架構在系統集成度、實時數據處理能力和硬件設計靈活度方面的優勢逐步展現。
參考文獻:
[1]劉旭東.“智慧環保”物聯網建設總體框架研究[J].淮北職業技術學院學報,2014,13(1):122-123.
[2]佚名.視頻監控應用助力環境治理向智慧環保邁進[J].中國安防,2014(5X):21.
[3]丁浩,管致錦,沈兵.環保物聯網中遠程設備實時控制問題研究[J].計算機測量與控制,2014,22(6):1786-1789.
[4]蔣豐.視頻監控在智慧環保中的應用與發展[J].中國安防,2014(10):22-24.
[5]唐國純.環保云的體系結構及關鍵技術研究[J].軟件,2014(1):101-103.
[6]馮廣明.3S技術在智慧環保領域中的應用[J].河南科技,2013(5):170-171.
[7]Crockett L H.The Zynq book :embedded process?ing with the ARM Cortex-A9 on the Xilinx Zynq-7000 all programmable SoC[M].Strathclyde Aca?demic Media,2014.
[8]Xilinx Inc.Zynq-7000 All Programmable SoC TechnicalReferenceManual,v1.11 [EB/OL].(2016-09-27)[2017-01-31].https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf.
[9]楊曉安,羅杰,包文博.基于Xilinx Zynq的物距測量系統設計與實現[J].現代電子技術,2014,37,422(15):123-126.
[10]朱武.LTE系統的切換及高速鐵路環境下的改進研究[D].西安:西安電子科技大學,2013.
[11]王英杰.智慧環保之污染源視頻監控[J].中國公共安全:學術版,2014(21):172-175.
[12]張巍,馮濤,朱銳.智慧環保物聯網監控應用與系統集成研究[J].環境與發展,2012,27(5):194-197.
[13]葉棽,謝捷如.基于SoC和嵌入式Linux的數據采集系統設計[J].計算機技術與發展,2015(8):203-207.
[14]馬小陸,劉曉東.基于ARM的嵌入式Linux開發與應用[M].西安:西安電子科技大學出版社,2016.
[15]陸佳華,潘祖龍,彭競宇.嵌入式系統軟硬件協同設計實戰指南[M].北京:機械工業出版社,2014.
[16]陸啟帥,陸彥婷,王地.Xilinx Zynq SoC與嵌入式Linux設計實戰指南[M].北京:清華大學出版社,2014.
[17]杜岳濤.TCP/IP技術下的嵌入式測控終端設計及應用[J].自動化與儀器儀表,2016(6):55-56.
[18]韓明琦,黨幼云,王湘濤,等.航空發電機交流畸變的測量與實現[J].西安工程大學學報,2016,30(4):458-463.