易文博 陳國平 管春
摘? 要: 為解決傳統(tǒng)液晶顯示實時性較差、設(shè)備性能較低等問題,設(shè)計一種基于FreeRTOS與Zynq?7000平臺的實時液晶顯示系統(tǒng)。該系統(tǒng)采用基于AXI4?Stream總線體制的流化數(shù)據(jù)傳輸模型和基于可重用IP的系統(tǒng)設(shè)計方法,并綜合使用實時操作系統(tǒng)FreeRTOS和μC/GUI用戶圖形界面進行多任務(wù)管理以及人機界面設(shè)計,實現(xiàn)數(shù)據(jù)實時處理、存儲與顯示等功能。實驗結(jié)果表明,該系統(tǒng)每秒傳輸幀數(shù)高達約90幀,任務(wù)切換時間小于2 μs,整體功耗小于4 W,相比傳統(tǒng)液晶顯示性能提高2~3倍,滿足高性能、低功耗與實時性要求。該系統(tǒng)還可通過集成視頻圖像硬件加速器等功能模塊,進一步體現(xiàn)實時液晶顯示系統(tǒng)的可擴展性與應(yīng)用價值。
關(guān)鍵詞: ZYNQ?7000; 液晶顯示系統(tǒng); 系統(tǒng)設(shè)計; FreeRTOS; μC/GUI; 系統(tǒng)測試
中圖分類號: TN248?34; TP274? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)22?0015?04
Abstract: A real?time LCD (liquid crystal display) system based on FreeRTOS and ZYNQ?7000 platform is designed to solve the problems of poor real?time performance and low equipment performance of traditional LCD. In the system, the streaming data transmission model based on AXI4?Stream bus system and the system design method based on reusable IP are adopted, and the real?time operating system FreeRTOS and μC/GUI user graphical interface are comprehensively used to carry out the multi?task management and human?machine interface design, so as to realize the functions of real?time data processing, storage and display. The experimental results show that the system can transmit up to 90 frames per second, the task switching time is less than 2 μs, the overall power consumption is less than 4 W, and the performance of the system is improved by about 2 to 3 times by combining with the traditional LCD, which meets the requirements of high performance, low power consumption and real?time performance. The system can further reflect the scalability and application value of the real?time LCD system by integrating the video image hardware accelerator and other functional modules.
Keywords: ZYNQ?7000; LCD system; system design; FreeRTOS; μC/GUI; system testing
0? 引? 言
隨著信息技術(shù)的發(fā)展,顯示技術(shù)已經(jīng)成為信息化產(chǎn)業(yè)的重要組成部分,其中,液晶顯示廣泛應(yīng)用于儀器儀表、通信產(chǎn)品與醫(yī)療設(shè)備等領(lǐng)域[1]。
傳統(tǒng)液晶顯示系統(tǒng)主要分為兩類:一類是基于ARM架構(gòu)處理器,完成以軟件設(shè)計為核心的人機交互系統(tǒng)與界面設(shè)計[2?4];另一類是基于FPGA硬件可編程平臺,完成以硬件設(shè)計為核心的高性能顯示通路或算法硬件加速器[5]。ARM處理器受限于系統(tǒng)級芯片(System on Chip,SoC)所固化的液晶顯示(Liquid Crystal Display,LCD)控制器,可擴展性較低,而高性能處理器往往價格昂貴;FPGA硬件可編程平臺雖具備一定靈活性,但缺乏中央處理器(Central Processing Unit,CPU)這樣的核心硬件來處理需要大量面向過程的應(yīng)用場景,難以統(tǒng)一調(diào)度復(fù)雜軟硬件系統(tǒng)協(xié)同工作。
針對傳統(tǒng)液晶顯示系統(tǒng)可擴展性差、實時性差和性能較低的問題,本文研究了一種基于Zynq?7000全可編程片上系統(tǒng)(All Programmable System on Chip,APSoC)的實時液晶顯示系統(tǒng)。在充分討論系統(tǒng)軟硬件總體架構(gòu)與數(shù)據(jù)流傳輸基礎(chǔ)上,重點分析并實現(xiàn)了一種符合工業(yè)標準的開源嵌入式實時操作系統(tǒng)(Free Real Time Operating System,F(xiàn)reeRTOS)作為整體系統(tǒng)軟硬件管理框架和LCD液晶顯示子系統(tǒng)設(shè)計,并結(jié)合Cortex?A9硬核、AXI4?Stream總線體制IP與μC/GUI用戶圖形接口,在兼顧系統(tǒng)低功耗、低成本和高可靠性等要求下,實現(xiàn)上層應(yīng)用軟件的可擴展性和完備的人機交互界面設(shè)計。最后分析本系統(tǒng)在多任務(wù)下的刷屏測試、字符測試和位圖測試結(jié)果,相比于傳統(tǒng)設(shè)計,各項性能指標均大幅提升,能更好地滿足實時液晶顯示系統(tǒng)的應(yīng)用需求。
1? 系統(tǒng)總體設(shè)計
Zynq?7000 APSoC片上集成Cortex?A9硬核處理系統(tǒng)(Processing System,PS)和28 nm工藝的可編程邏輯塊(Programmable Logic,PL)。其優(yōu)點在于豐富的邏輯單元與I/O資源為本系統(tǒng)帶來極大靈活性。同時,PL能夠?qū)崿F(xiàn)基于高吞吐量、低延遲的AXI4嵌入式片上互聯(lián)總線系統(tǒng),通過DDR3 SDRAM解決顯示系統(tǒng)高速數(shù)據(jù)流與外部存儲系統(tǒng)交互的問題[6]。
第四代高級標準可擴展接口協(xié)議(Advanced eXtensible Interface 4,AXI4)將不同功能與特性接口整合到更具通用性接口中,簡化了知識產(chǎn)權(quán)(Intellectual Property,IP)整合與系統(tǒng)集成。系統(tǒng)硬件基于IP核模塊化搭建,采用第四代高級微控制器總線結(jié)構(gòu)(Advanced Microcontroller Bus Architecture 4.0,AMBA 4.0),用以支持系統(tǒng)高性能、高頻率特性。
針對數(shù)據(jù)實時顯示的特定功能及特性,系統(tǒng)設(shè)計并集成了輕量級LCD控制器IP模塊;針對本文系統(tǒng)高帶寬、低延遲和大數(shù)據(jù)量傳輸需求,在采用AXI4互聯(lián)基礎(chǔ)上,結(jié)合其流化接口AXI4?Stream和簡化接口AXI4?Lite,用于模塊間液晶顯示數(shù)據(jù)流的片內(nèi)傳輸和輕量高效的IP配置與控制。
一個完備的液晶顯示系統(tǒng)除了需要實時界面顯示功能,還需要高速存取本地數(shù)據(jù),同時可通過屏幕觸摸和按鍵控制進行功能切換和顯示調(diào)節(jié)等功能。這些宏觀并行任務(wù)可通過諸如函數(shù)循環(huán)和系統(tǒng)中斷的方法來輪詢所有任務(wù),實現(xiàn)同步和相互通信,但是該類方法存在靈活性較差和可靠性較低的問題。
因此,本系統(tǒng)采用操作系統(tǒng)(Operating System,OS),其優(yōu)勢是項目的源代碼更容易劃分為獨立的模塊,利用操作系統(tǒng)管理硬件資源,并且操作系統(tǒng)為各類并行任務(wù)提供軟件接口,減少系統(tǒng)開發(fā)時間以及提高可維護性。作為一個符合工業(yè)標準的實時操作系統(tǒng),一方面,其具備能夠不使用緩沖機制的情況下對數(shù)據(jù)進行管理,盡可能降低系統(tǒng)延遲,提高系統(tǒng)在有效時間內(nèi)做出快速響應(yīng)的能力[7];另一方面,其基于優(yōu)先級切換任務(wù)機制,相同優(yōu)先級的任務(wù)又具有分時操作系統(tǒng)按時間片輪轉(zhuǎn)運行的特點,能夠有效地增加資源利用率。
為了有效地解決顯示、控制與非易失性存儲的問題,本系統(tǒng)在具有可移植性的用戶圖形界面(Graphical User Interface,GUI)和文件系統(tǒng)(File System,F(xiàn)S)基礎(chǔ)上進一步設(shè)計和完善軟件架構(gòu)。整體軟硬件系統(tǒng)設(shè)計如圖1所示。
在無操作系統(tǒng)情況下,會導(dǎo)致應(yīng)用層軟件管理效率較低,同時功能模塊較為復(fù)雜時,存在系統(tǒng)實時響應(yīng)速度降低的問題。因此,在應(yīng)用層軟件實現(xiàn)基本功能基礎(chǔ)上,軟件系統(tǒng)架構(gòu)需通過實時操作系統(tǒng)(Real Time Operating System,RTOS)的多任務(wù)管理特性和硬件資源合理分配等優(yōu)勢,進一步提升整體系統(tǒng)穩(wěn)定性、可靠性與可維護性。
2? 液晶顯示子系統(tǒng)設(shè)計
嵌入式本地顯示應(yīng)用大多采用2~7寸液晶屏,分辨率低于720 P的液晶屏,并且一般采用并口傳輸數(shù)據(jù)。并口液晶模塊具有成本低、繪圖快、實時性強的特點,適合用于本地實時數(shù)據(jù)采集顯示、用戶交互速度快和高速繪圖等應(yīng)用場景。如圖2所示為液晶顯示LCD控制器的設(shè)計框架。
視頻直接存儲器訪問(Video Direct Memory Access, VDMA)模塊通過AXI主接口獲取片外DDR3 SDRAM內(nèi)存中存儲的像素數(shù)據(jù),并將數(shù)據(jù)以流的形式傳遞給像素數(shù)據(jù)轉(zhuǎn)換模塊。像素數(shù)據(jù)轉(zhuǎn)換模塊用于調(diào)整并行像素數(shù)據(jù)RGB的位寬,以適應(yīng)不同LCD像素深度(Bits Per Pixel, BPP)需求。
通過軟件配置Xilinx公司視頻時序控制器(Video Timing Controller V6.1)IP,在不改動硬件設(shè)計下動態(tài)調(diào)整行場同步信號,以適應(yīng)不同分辨率下的LCD屏幕。采用Digilent公司的AXI動態(tài)時鐘(AXI Dynamic Clock Core V1.0)生成器驅(qū)動LCD屏幕的像素時鐘,通過軟件配置產(chǎn)生不同刷新率屏幕下的時鐘速率以及同步FPGA與LCD屏幕之間數(shù)據(jù)傳輸。視頻輸出模塊是連接AXI4?Stream接口視頻前端處理模塊和視頻輸出模塊的橋梁,采用Xilinx公司流視頻輸出(AXI4?Stream to Video Out V4.0)IP核,通過獲取視頻像素數(shù)據(jù)以及前端模塊的行場同步信號,在像素時鐘同步下,形成最終的視頻流格式輸出。
3? 系統(tǒng)軟件設(shè)計
FreeRTOS是一款實時性高、內(nèi)核占用空間小的開源嵌入式實時操作系統(tǒng),同時具有高度靈活性、最優(yōu)的模塊化設(shè)計、高可讀性以及可維護性,能在嵌入式設(shè)備中廣泛使用[8]。使用FreeRTOS管理處理器的時間和資源,使得復(fù)雜嵌入式系統(tǒng)軟件開發(fā)和維護變得高效,同時能夠提高系統(tǒng)穩(wěn)定性和可靠性。
本系統(tǒng)通過FreeRTOS提供的任務(wù)管理、內(nèi)存管理和同步與通信等基本功能,結(jié)合μC/GUI豐富的控件管理,實現(xiàn)本文系統(tǒng)界面設(shè)計、數(shù)據(jù)波形刷新和硬件外設(shè)控制等功能[9]。同時,采用占用資源相對較小而功能強大的通用開源FatFS文件系統(tǒng)模塊,將采集到的數(shù)據(jù)記錄到非易失性存儲SD卡中[10]。
3.1? 液晶驅(qū)動設(shè)計
整體LCD軟件控制流程如圖3所示。
軟件根據(jù)屏時鐘規(guī)格需求范圍與典型頻率,來配置硬件AXI Dynamic Clock IP核,產(chǎn)生液晶屏像素時鐘。通過PS端軟件讀/寫視頻時序控制器IP核寄存器來配置其行場同步信號,用于匹配不同分辨率下的LCD圖像大小。軟件啟動VDMA數(shù)據(jù)傳輸后,數(shù)據(jù)在液晶顯示子系統(tǒng)中轉(zhuǎn)換成不同像素深度下的LCD屏幕格式,驅(qū)動軟件從多幀緩存的首地址起以數(shù)據(jù)流的方式從DDR3顯存中讀出/寫入像素數(shù)據(jù),完成1幀數(shù)據(jù)的獲取,最后交給應(yīng)用軟件做進一步處理,完成1幀數(shù)據(jù)的顯示。
3.2? 實時系統(tǒng)任務(wù)劃分
液晶顯示系統(tǒng)按照功能需求,可大體劃分為:數(shù)據(jù)傳輸與處理類任務(wù)、人機交互下的控制類任務(wù)、文件與數(shù)據(jù)存儲類任務(wù)和界面刷新與顯示類任務(wù)。為保證數(shù)據(jù)處理的實時性,信號處理任務(wù)處于最高優(yōu)先級。界面任務(wù)包括文本、圖片等動態(tài)與靜態(tài)功能,因為μC/GUI極其占用系統(tǒng)資源,并且任務(wù)時間長,因此設(shè)置為最低優(yōu)先級??紤]到人機交互響應(yīng)速度的問題,將按鍵和觸摸任務(wù)放置文件系統(tǒng)任務(wù)優(yōu)先級前。通過以上功能定義,本文系統(tǒng)選用多任務(wù)實現(xiàn),依據(jù)任務(wù)時間關(guān)鍵性、計算量和執(zhí)行周期性劃分為四個任務(wù),按照系統(tǒng)任務(wù)優(yōu)先級由高到低依次為:數(shù)據(jù)處理任務(wù)、按鍵觸摸任務(wù)、文件系統(tǒng)任務(wù)和界面任務(wù)。
3.3? 系統(tǒng)任務(wù)間通信
采用事件標志組和任務(wù)通知進行任務(wù)間通信與同步,各個任務(wù)之間的關(guān)系如圖4所示。
調(diào)用μC/GUI按鈕控件設(shè)計虛擬按鍵,通過窗口回調(diào)函數(shù)觸發(fā)界面任務(wù)中的觸摸消息處理,開啟待處理數(shù)據(jù)獲取并啟動VDMA數(shù)據(jù)傳輸。當數(shù)據(jù)獲取與傳輸完成后,VDMA模塊發(fā)送中斷時間標志組,退出中斷后切換到最高優(yōu)先級信號處理任務(wù),完成相應(yīng)數(shù)據(jù)SDRAM存儲。
當最低優(yōu)先級界面任務(wù)完成上一次動態(tài)、靜態(tài)界面顯示后,發(fā)送標志事件給信號處理任務(wù),信號處理任務(wù)獲取標志位,進行相應(yīng)數(shù)據(jù)運算與處理,隨后將計算結(jié)果返回界面數(shù)值顯示或其他方式中,并進行界面的刷新。當用戶按下按鍵時,按鍵檢測任務(wù)檢測并存儲鍵值至FIFO緩沖區(qū),界面任務(wù)讀/取緩沖區(qū)并處理按鍵消息,發(fā)送任務(wù)通知啟動文件系統(tǒng)任務(wù)。用戶根據(jù)功能需求通過文件系統(tǒng)將DDR3內(nèi)存中或信號處理完后的數(shù)據(jù)存入SD卡等非易失性存儲中,從而完成了任務(wù)間的通信機制。
4? 系統(tǒng)測試與結(jié)果分析
刷屏測試、字符測試與位圖測試是液晶顯示系統(tǒng)的主要測試手段,測試運行時間是衡量軟硬件系統(tǒng)對于不同顯示需求的主要性能指標。為驗證分析本文系統(tǒng)LCD控制器設(shè)計及其FreeRTOS在該系統(tǒng)中的應(yīng)用性能,測試平臺選用Zynq?7010 XC7Z010CLG400?1器件,顯示屏選用720P、24位色的無控制器并口電容屏。
本文系統(tǒng)通過定義整屏像素刷新的測試方法,分別在無操作系統(tǒng)下采用順序循環(huán)方式執(zhí)行函數(shù)任務(wù),在FreeRTOS實時系統(tǒng)下采用搶占式的任務(wù)調(diào)度方式執(zhí)行任務(wù),并統(tǒng)計所有測試操作完成的時間。
測試結(jié)果如表1所示。隨著任務(wù)數(shù)量增加,兩類測試消耗的時間幾乎呈線性增長,F(xiàn)reeRTOS任務(wù)調(diào)度所造成的微秒級延時可忽略不計。由此可見,該系統(tǒng)可滿足實時操作系統(tǒng)的性能需求,同時使用FreeRTOS對液晶顯示系統(tǒng)帶來的整體收益更大。
5? 結(jié)? 語
本文以ZYNQ?7000全可編程SoC器件為核心平臺,設(shè)計一種基于FreeRTOS操作系統(tǒng)的實時本地液晶顯示系統(tǒng)。該設(shè)計集成了可配置、可移植的液晶顯示子系統(tǒng),通過FreeRTOS合理劃分系統(tǒng)任務(wù),并綜合應(yīng)用μC/GUI用戶圖形界面和FatFS文件系統(tǒng),完成實時液晶顯示等功能。通過板卡實現(xiàn), Zynq?7010 器件功耗為1.928 W,整體液晶顯示系統(tǒng)功耗小于4 W,硬件邏輯資源占用率小于50%。本系統(tǒng)在顯示性能與實時性上較目前主流嵌入式液晶顯示系統(tǒng)有較大提升,同時系統(tǒng)在較少改動或無需改動硬件設(shè)計情況下[11],僅利用ARM處理器資源即可掛載其他中間件、協(xié)議棧和加速器,具備良好的可擴展性和設(shè)計靈活性。
基于Zynq?7000器件新型架構(gòu),可進一步應(yīng)用PS側(cè)加載LwIP協(xié)議棧,PL側(cè)實現(xiàn)算法加速器,即可實現(xiàn)數(shù)據(jù)網(wǎng)絡(luò)傳輸、處理與本地實時顯示相結(jié)合。因此,本文的設(shè)計方案在對本地顯示需求,或其他電子系統(tǒng)設(shè)計領(lǐng)域里,有一定的應(yīng)用參考價值。
參考文獻
[1] 李繼軍,聶曉夢,甄威,等.顯示技術(shù)比較及新進展[J].液晶與顯示,2018,33(1):74?84.
[2] 劉高明,榮葵,朱輝,等.應(yīng)用于嵌入式RTOS的圖形顯示系統(tǒng)設(shè)計[J].計算機工程與應(yīng)用,2016,52(9):190?195.
[3] 湯莉莉,黃偉.NiosⅡ嵌入式處理器在LCD顯示系統(tǒng)設(shè)計中的應(yīng)用[J].現(xiàn)代電子技術(shù),2013,36(19):151?153.
[4] 程知敬,張晉文,劉鳳.一種嵌入式信號處理軟件構(gòu)件測試框架[J].現(xiàn)代雷達,2019,41(6):82?85.
[5] 陳東成,胡敬營,呂衛(wèi)國,等.基于IP核的多接口LCD控制器的設(shè)計及實現(xiàn)[J].液晶與顯示,2017,32(2):117?123.
[6] GERARDO Soria?García, GERARDO Altamirano?Gómez, SUSANA Ortega?Cisneros, et al. Fpga implementation of a geometric voting scheme for the extraction of geometric entities from images [J]. Advances in applied Clifford algebras, 2017, 27(1): 685?705.
[7] SPANG H A. The structure and comparison of three real?time operating systems for process control [J]. Automatica, 1972, 8(1): 49?64.
[8] TEODOR S, EUGEN L, RADU A. Real time operating system options in connected embedded equipment for distributed data acquisition [J]. Carpathian journal of electronic and computer engineering, 2018(11): 35?38.
[9] 劉勇,王學(xué)俊,孔新偉,等.基于UCGUI的觸摸屏顯示設(shè)計[J].液晶與顯示,2014,29(5):739?744.
[10] 高兆強,王紹舉,徐偉,等.FATFS在嵌入式操作系統(tǒng)FreeRTOS中的移植與應(yīng)用[J].現(xiàn)代電子技術(shù),2017,40(6):65?67.
[11] WU Yi, HUANG Yu, WANG Yao, et al. Design of embedded web module based on SOPC [J]. Physics procedia, 2012, 25: 2197?2202.