基於Zynq-7000面向小型微型自動化監測系統的BSP設計與實踐

2021-01-11 電子發燒友
基於Zynq-7000面向小型微型自動化監測系統的BSP設計與實踐

宋 凱,高 寒 發表於 2020-12-31 11:49:05

實現一種基於Zynq-7000全可編程片上系統(AP SoC)的板級支持包(BSP)設計方法及應用流程。該BSP設計主要面向工業自動化監測領域,提供了一種行之有效的嵌入式系統BSP實現流程,有利於提高工業自動化監測系統的開發效率。針對使用串行通信方式的工業監測設備,設計面向小型自動化監測系統的FPGA工程,並使用專門針對基於FPGA的片上系統而設計的PetaLinx工具構建嵌入式Linux系統。最後通過自行研製的基於Zynq XC7Z010系列型號晶片的硬體平臺驗證了BSP設計的正確性及穩定性。

0 引言

物聯網及嵌入式技術的發展推動了信息化與工業化的快速融合。作為一種新型產業模式,工業物聯網(Industrial Internet of Things,IIoT)在過去幾年的研究和實踐中受到很大關注[1-2]。IIoT的迅速發展使得自動化監測系統的設計與研發成為新的科技熱點。IIoT將傳感器網絡與自動化系統相結合,已被用於多個行業,以提高生產力和安全性[3-4]。自動化監測系統在IIoT感知層與應用層間起著重要作用,隨著涉及的業務需求日益複雜,它的實現也變得越來越具挑戰性。在工業應用場景中軟體體系結構設計對於自動化系統的高效運行非常重要。先進的軟體工程解決方案對自動化系統設計的效率影響很大[5]。Xilinx Zynq AP SoC通過集成處理器的軟體可編程性與FPGA的硬體可編程性,實現了優異的設計靈活性,可提供面向嵌入式領域可重配置的軟體工程解決方案,從而加速生產力。

BSP在嵌入式系統中扮演著關鍵角色,主要用來適配特定類型的硬體平臺。它通常包含了用來配置可定製電路的硬體比特流、引導加載作業系統的基礎支持代碼以及主板上所有設備的驅動程序。BSP開發目的在於屏蔽底層硬體,提供作業系統與硬體驅動,使作業系統能穩定運行於主板環境[6-7]。由於傳統BSP設計存在不可或不易修改、難以復用以及設計流程複雜等問題,本文面向工業監測領域中的自動化系統,採用Xilinx提供的Vivado集成開發套件及用於構建和部署嵌入式系統到Xilinx全可編程處理器平臺的PetaLinux工具,完成了基於Zynq-7000 AP SoC的BSP設計與實現。

1 BSP總體結構

BSP設計最終生成對應用層提供支撐的鏡像文件為BOOT.BIN和image.ub。BSP的總體架構如圖1所示。BOOT.BIN啟動鏡像主要負責系統硬體部分配置,用於上電後配置Zynq晶片的處理器系統(Processing System,PS)及可編程邏輯(Programmable Logic,PL),並為Linux作業系統準備運行環境。image.ub支持內核升級,功能可裁剪,由PeteLinux工具編譯打包生成。

第一階段引導加載器(First Stage Boot Loader,FSBL)在啟動存儲區之後運行,啟動存儲區在ARM核上電啟動時自動執行,負責加載FSBL至片上存儲器(On Chip Memory,OCM)或在線性Flash存儲介質上直接運行。對於運行在Zynq平臺的Linux系統而言,第二階段引導加載器(Second Stage Boot Loader,SSBL)即為通用引導加載器(Universal Boot Loader,U-Boot)。Xilinx提供了用於適配不同系列Zynq主板的U-Boot。基於Zynq-7000 AP SoC的BSP各個組成部分對應的功能說明如下:

(1)FSBL。FSBL負責初始化Zynq AP SoC PS端資源並使用硬體比特流文件配置PL端資源。

(2)硬體比特流。硬體比特流由Vivado集成開發工具構建的FPGA系統生成,包含FPGA編程信息,用於配置FPGA器件。

(3)SSBL。SSBL負責初始化內存和必要的外設資源,設置Linux內核的啟動參數以及加載Linux系統到內存中運行。

(4)Linux內核鏡像。Linux內核鏡像是Linux作業系統的核心,提供硬體抽象層、進程及內存管理、磁碟與文件系統控制等功能。

(5)根文件系統。根文件系統基於BusyBox源碼構建,負責管理Linux系統啟動及運行時所必需的目錄和關鍵性文件。

(6)設備樹。設備樹文件用於描述部分硬體信息並在Linux系統加載設備驅動時傳遞配置參數。

2 FPGA工程設計

傳統工業監測設備中很多是符合RS232、RS422或RS485等串行數據通信標準的設備。對於自動化監測系統而言,如何面向這些監測設備提供可重配置的接口,成為一個需要解決的關鍵問題。許多傳統工業設備所提供的功能在出廠時便已在固件中完成燒錄定義,無法面向新的業務需求進行修改或擴展。然而,對於許多應用場景,固定功能的硬體會因為難以進行資源復用而導致成本提升。FPGA器件因為具有動態可重構的特性,被認為是數字可演化硬體系統一個很好的平臺[8]。Xilinx使用矽片堆疊技術設計出了高容量的FPGA,用於滿足低功耗、低延時及高帶寬的應用需求。

2.1 工程構建

在進行FPGA系統設計時往往需要重用已有的功能模塊,於是類似於軟體開發庫文件的IP核應運而生。IP核通常是預先設計好的電路功能模塊,主要被用於ASIC或FPGA系統。Xilinx提供了可連接到高級可擴展接口(Advanced eXtensible Interface,AXI)的通用異步收發器(Universal Asynchronous Receiver/Transmitter,UART)Lite。每一個AXI UART Lite IP核都可以實際對應一個串行通信接口,為工業監測設備接入自動化監測系統提供支持。AXI UART Lite IP核可以為異步串行數據傳輸提供控制器接口。它的設計目的在於和 AXI4-Lite協議實現連接。AXI UART Lite的主要性能和優勢[9]如下:
(1)基於AXI4-Lite 規格的AXI 接口;

(2)一個發送通道和一個接收通道(全雙工);

(3)16個字符的發送和接收先進先出隊列(First Input First Output,FIFO);

(4)單個字符的數據比特位(5~8)數量可配置;

(5)校驗位(奇偶或無)可配置;

(6)波特率可配置。

Xilinx提供了Zynq7處理器系統IP封裝,用於加速嵌入式系統的設計與配置。在Vivado集成開發環境中搭建基於Zynq-7000的小型自動化監測系統FPGA工程,工程結構如圖2所示。工程中添加了ZYNQ7處理器系統模塊、3個AXI UART Lite模塊以及AXI互聯模塊等IP核,AXI Interconnect IP負責將一個或多個AXI存儲器映射的主器件連接到一個或多個存儲器映射的從器件。在進行FPGA系統設計時還預留了部分GPIO接口資源,方便對系統功能進行擴展。

2.2 資源配置

2.2.1 PS端資源配置

根據實際應用需求配置Zynq XC7Z010處理器系統,並規劃XC7Z010的PS端MIO資源。MIO是I/O外設連接的基礎。XC7Z010晶片通過MIO最多可以引出54個三態通用輸入輸出(General Purpose Input Output,GPIO)引腳。這些GPIO引腳都是在程序上可控的,並且支持動態修改配置。它們可以單獨配置為輸入、輸出或中斷的功能。PS端部分資源規劃結果如表1所示。

2.2.2 PL端資源配置

Zynq中的PL主要用於擴展功能。通過使用多個特殊引腳和信號,可以將Zynq-7000內的PS和PL緊密或鬆散地耦合在一起[10]。XC7Z010主晶片包含用於連接外設和某些特殊功能引腳的IO接口資源。 特殊引腳最主要用於實現復位、狀態指示、系統配置、模式配置等功能,通過特定引腳和功能復用引腳來實現。XC7Z010的主要特殊引腳的配置說明如表2所示。

3 PetaLinux工程設計

使用PetaLinux工具構建基於Zynq AP SoC的嵌入式Linux作業系統。PetaLinux工具包括定製的BSP生成工具、Linux配置工具以及軟體開發工具。使用這些工具可以實現引導加載程序、Linux內核以及Linux應用程式的靈活配置,有利於開發者在Xilinx處理系統上定製、構建和調配嵌入式Linux解決方案。

3.1 系統頂層配置

基於Zynq工程模板創建PetaLinux工程,導入固件工程生成的硬體描述文件並進行系統頂層配置,系統頂層配置項包括Linux組件選擇、自動配置項設置、子系統硬體自動配置項設置、內核引導參數設置、U-Boot設置、鏡像文件打包配置等。其中子系統硬體自動配置項設置為必選項,允許自定義系統範圍的硬體設置,如:乙太網卡設置、Flash設置、串口設置、實時時鐘(Real-Time Clock,RTC)晶片設置、SD卡設置等。Petalinux工具將根據系統頂層配置解析硬體描述文件,以便更新設備樹所需的硬體信息。

3.2 Linux內核配置

Linux內核主要提供五大功能,分別為虛擬文件系統、網絡服務、內存管理、進程管理和設備管理。Xilinx 提供了免費的PetaLinux開發工具,使開發人員可以輕鬆在Zynq AP SoC上配置、構建和部署Linux系統及應用,提高軟硬體設計開發效率。Linux內核配置基於Linux 4.6.0內核進行,主要包括USB串口驅動配置、乙太網驅動配置、GSM和CDMA數據機的USB驅動配置、Xilinx-uartlite串口驅動配置、DS18B20溫度傳感器驅動配置、GPIO支持等。PetaLinux工程基於開源的協作軟體Yocto創建。Yocto致力於創建可定製的嵌入式產品和統一嵌入式Linux系統的開發標準,它提供了許多模板、工具和方法,使得開發者無需關心硬體體系,避免許多重複工作,從而提高開發效率和產品質量。Linux內核的更新以打補丁的方式實現,內核源碼的更新不影響已修改的系統配置項。

3.3 設備樹配置

Linux內核通過設備樹文件獲取板級硬體的細節信息從而加載設備驅動。設備樹可以對硬體進行規範化描述,支持多平臺內核鏡像,具備簡化的板卡埠,使用更少的平臺描述代碼以及更精簡的設備驅動代碼[11]。PetaLinux設備樹配置關聯文件主要有pcw.dtsi、plnx_aarch64-system.dts、system.dts、system-conf.dtsi、system-top.dts。這些文件統一由PetaLinux工程自動生成,開發者通過修改system-top.dts文件來滿足特定的系統需求。基於Zynq-7000的小型自動化監測系統具備網口調試、RTC時鐘支持、溫溼度監測、網絡數據傳輸等功能。需要在system-top.dts文件中進行相應節點信息的修改或添加新的硬體描述節點。例如在設備樹配置文件system-top.dts中添加RTC時鐘硬體描述信息及修改後的網卡晶片節點信息如下:

&i2c0 {

status = "okay";

rtc@51 {

compatible = "nxp,pcf8563";

reg = <0x51>;

};

};

&gem0 {

compatible = "cdns,zynq-gem", "cdns,gem";

status = "okay";

phy-mode = "rgmii-id";

xlnx,ptp-enet-clock = <0x69f6bcb>;

local-mac-address = [00 0a 35 00 1e 53];

};

4 BSP總體測試

在基於XC7Z010的硬體平臺中對BSP進行總體測試,設備上電後,處理器自動執行片內BootROM中的代碼,初始化CPU和一些外圍設備,以便讀取燒錄在NOR Flash中的BOOT.BIN引導鏡像,BOOT.BIN引導鏡像加載存儲在eMMC上image.ub到DDR3中運行。然後,文件系統中的mystartup.sh腳本啟動存儲在eMMC中的系統初始化腳本文件,執行系統初始化配置。PetaLinux系統部分啟動信息如圖3所示。

圖3(a)為PL部分擴展的AXI UART Lite模塊註冊加載信息,在Linux下作為標準串口分別對應設備文件描述符ttyUL1、ttyUL2及ttyUL3。圖3(b)為內存技術設備(Memory Technology Device,MTD)驅動加載信息,MTD是用於訪問存儲介質的Linux的子系統,此處表示NOR Flash存儲器,共創建了boot、bootenv、kernel以及spare 4個MTD子分區,其中spare分區為空閒分區,可用於燒錄設備唯一序列號。圖3(c)為GSM模塊USB接口連接檢測信息及網口晶片啟動狀態信息,其中GSM模塊對應Linux系統下的設備文件描述符ttyUSB0、ttyUSB1、ttyUSB2、ttyUSB3及ttyUSB4。

5 結論

本文實現一種面向自動化監測系統的BSP設計方法,並完成了面向小型微型自動化監測系統的BSP設計與實踐。用於評測BSP功能及性能的硬體平臺選用Xilinx Zynq XC7Z010晶片作為硬體系統主控制器,BSP部分針對自動化監測系統應具備的基本功能在嵌入式Linux系統中添加了相應的設備驅動,可充分滿足工業監測領域的業務需求。實際測試結果表明,該BSP具有開發便捷、通用性強、便於進行功能擴展和Linux內核升級、運行穩定等特點,驗證了基於Zynq-7000的自動化監測系統BSP設計的可行性與正確性,對於工業自動化系統的BSP設計與實現有一定的參考價值和實際指導意義。由於自動化監測系統的功能日益複雜,該BSP設計仍需在實踐中不斷進行完善。
編輯:hfy

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於高光譜技術的水質監測和自動化設計
    北極星環境監測網訊:摘要:此次研究旨在利用高光譜技術進行水質監測,並進行自動化設計。目前傳統水質監測方法有受時節影響大、操作繁瑣、破壞水體等缺陷。高光譜技術搭載自動化則可以滿足實時監測、無人監測的要求,且無汙染、效率高。
  • 高職高專專業介紹:電力系統自動化技術
    全國高職高專院校招生專業介紹   專業名稱:電力系統自動化技術  專業代碼:580204  專業培養目標:培養掌握電力系統電氣部分基礎知識和基本技能,具有從事電力系統的電氣設計  專業核心能力:電力系統的設計與實驗分析,電力系統的運行、控制與維護。
  • 基於STM32的光功率實時監測系統設計
    在各種光纖線路的監控維護系統中,光功率監測是最簡單、成熟,應用廣泛的方法,通過對通信光纖中分出的3%~5%的光功率進行實時監測,就能實時地掌握光纖通信線路的狀況,為光纖通信線路的維護管理提供依據。傳統的光功率監測系統首先是光進入PIN光電二極體後,產生了電流信號,且此信號與輸入光功率呈線性關係,最後經程控放大電路和I/V變換放大到所需電壓。
  • 為基於CompactRIO的大型橋梁結構安全監測系統研究
    國內首次將CompactRIO分布式採集系統成功應用到大跨徑特大型橋梁的結構監測中去,通過先進的自動化測試技術,對大橋的靜/動態響應、動態交通荷載、環境荷載等信號進行實時、精確同步的測量和分析,為實時監測結構損傷及內力狀態,有效的掌控運營期橋梁的結構使用狀態及其發展演化趨勢,並為制定相應的大橋管理對策提供技術支持建立橋梁全壽命期的數位化、信息化「檔案」提供了科學依據。
  • 基於PXI平臺的光電通信轉換器自動化測試系統設計
    摘要:光電通信轉換器自動化測試系統按照光纖模塊產品對外接口規範設計測試系統,採用基於PXI平臺的模塊化產品和分立式測試儀器相結合的方式進行設計,提供了對光纖模塊產品的接口通信功能和性能指標的測試功能,可以完成不同產品的自動化測試。
  • 我校第十屆「翱翔杯」研究生電子設計大賽圓滿結束
    本次競賽是為了備戰陝西省第六屆研究生電子設計競賽暨全國第十四屆研究生電子設計競賽西北賽區選拔賽而開展的,由電子信息學院組織承辦。具有參賽人數多,參賽學院、參賽專業分布範圍較廣的特點,有效地促進了研究生教育中不同學科、不同專業的學術交流和學科交叉,強化了研究生實踐動手能力和創新思維能力。
  • 基於nRF51822的心電監測系統設計
    編者按:本文介紹了一種基於nRF51822的心電監測系統,該心電監測系統採用基於低功耗藍牙4.0的nRF51822作為核心處理晶片,採用AD823傳感器及其外圍電路組成心電採集模塊,採集使用者的心電信息,同時針對人體心電信息存在的噪聲幹擾、信號微弱等問題,本文提出了基於小波變換閾值去噪法
  • 基於物聯網架構的箱式變電站智能監測系統
    國網上海市電力公司青浦供電公司、上海尤比酷電氣有限公司的研究人員沈曉峰、徐愛蓉、曹基南、張衛紅、胡大良,在2020年第9期《電氣技術》雜誌上撰文,針對10kV箱式變電站運檢管理需求,基於物聯網架構設計並研發了一套箱式變電站智能監測系統。
  • 基於臺達自動化產品的蒸餾水機控制系統
    摘  要:本文主要介紹臺達自動化產品在蒸餾水機上的系統集成,體現了臺達自動化產品在電氣控制系統上整合應用的高性價比與技術方案優勢,說明臺達自動化產品是裝備製造業的上佳之選。本文介紹的蒸餾水機是專用蒸餾水生產裝備,該蒸餾水電氣控制系統完全採用臺達自動化產品整合,為客戶實現工藝控制和技術要求。 2 蒸餾水機控制系統及工藝 2.1 控制工藝 蒸餾水機控制系統主要實現控制被控原料罐內部溫度、壓力以及電導率等物理量滿足不同產品規格要求。
  • 「好文推薦」基於雲技術的輸送帶縱向撕裂遠程監測系統設計
    針對現有輸送帶縱向撕裂監測系統存在監測點少、擴展性差、仍需人員值守等缺陷,設計了一種適用於多點監測和基於雲技術的輸送帶縱向撕裂遠程監測系統,該系統由一字線雷射器、嵌入式處理終端、面陣CMOS攝像頭、雲伺服器、PC機監測軟體和手機監測軟體組成。
  • Zynq-7000系列特徵概述
    Zynq-7000系列特徵概述 技術編輯archive1 發表於 2017-11-18 05:11:01 相比較經典的FPGA,Zynq-7000系列最大的特點是將處理系統
  • 基於毫米波雷達的汽車盲區監測系統設計方案
    基於毫米波雷達的汽車盲區監測系統設計方案 智車行家 發表於 2020-12-04 09:36:18 本文提出一套基於毫米波雷達的汽車盲區監測系統設計方案。
  • ...太陽能微型逆變器開發套件提供了面向高性能太陽能發電系統的...
    該套件實現了一款基於 TI C2000 Piccolo™ TMS320F28035 微控制器 (MCU) 的完整併網太陽能微型逆變器。太陽能微型逆變器是太陽能發電行業中的一個新興的區段。太陽能微型逆變器系統沒有採取將一部設備中的所有太陽能電池板全部連接至一個集中式逆變器的做法,而是把較小的(或「微型」)逆變器安放在每個個別太陽能電池板的輸出端。
  • 柔性電子用微型超級電容器驅動的集成系統研究獲進展
    近日,中國科學院大連化學物理研究所催化基礎國家重點實驗室二維材料化學與能源應用研究組研究員吳忠帥團隊,與澳大利亞迪肯大學研究員類偉巍團隊合作,撰寫了面向柔性電子應用的微型超級電容器驅動一體化的集成系統(Micro-supercapacitors Powered Integrated System
  • 大江東微型水質自動監測站試運行
    外十工段的微型水質自動監測站    近日,大江東第一批微型水質自動監測站進入試運行階段。新創橋、臨鴻東路橋、外六工段閘、外十工段閘等8個重點斷面的河道來了一位特殊的「保護者」。  臨鴻東路橋下的河面上,一顆直徑約40釐米的金屬小球浮在水面,隨波蕩漾。岸邊一個約10平方的小空間內,一臺臺高精度的儀器正在運作。取水樣、測水質、傳數據,一套完整的系統,將河道監控帶入了新的時代。
  • 海嘯監測預警系統以實現自動化
    初步具備全球海底地震及海嘯自動化監測預警能力海嘯預警可在地震後15分鐘內發出2012年12月31日,國家海洋環境預報中心新一代海嘯預警系統平臺投入業務化試運行,標誌著國家海洋局初步具備全球海底地震及其引發海嘯的自動化監測預警能力。
  • 小型全自動氣象監測系統哪家好
    小型全自動氣象監測系統哪家好機架:傳感器為不鏽鋼尺寸:0.6cm×3.2cm重量:30g,110g,340g(電纜長度不同)雨量:機構:翻鬥式,不鏽鋼軸,黃銅軸承。解析度:0.2mm,0.01″測量範圍:10㎝/hr或者5″/小時,每個間隔蕞大4000次傾翻校準精度:±1%在20mm/小時或者1″/小時校準:一年一次校準,用戶在野外或者返回工廠八要素氣象站。
  • 大連化物所綜述——柔性電子用微型超級電容器驅動集成系統
    近日,中國科學院大連化學物理研究所催化基礎國家重點實驗室二維材料化學與能源應用研究組研究員吳忠帥團隊,與澳大利亞迪肯大學研究員類偉巍團隊合作,撰寫了面向柔性電子應用的微型超級電容器驅動一體化的集成系統(Micro-supercapacitors Powered Integrated
  • GSM/GPRS通信在配電自動化系統中的應用
    本文利用GSM/GPRS通信的突出優點,將其分別應用於配電自動化系統,提出了兩套配電參數遠程實時監控系統的實現方案。通過實踐檢驗,可作為配電自動化中一個重要的組成部分。系統結構圖1將GSM與GPRS兩套方案都表示出來。監控中心由一個乙太網組成。
  • 基於ABC三相電的電網監測系統監控終端的設計
    摘要:為了有效解決遠程實時監測電網線路的ABC三相電溫度和周邊環境情況,實現電網的智能預警,減少人力和物力資源的投入及人工監控的弊端,設計了電網監測系統。