基于A(yíng)RM和FPGA架構的三維圖形加速系統
系統硬件實(shí)現
本文選用S3C2410嵌入式處理器和Cyclone II系列FPGA實(shí)現圖形加速以及其他功能模塊,輔以L(fǎng)CD屏、串口等外圍電路實(shí)現整個(gè)圖形系統。
電源設計
本系統需要多個(gè)不同電壓值的直流電源供電,包括5V、3.3V、1.8V和1.2V。其中5V電源從外部直流電源直接引入,而其他電壓值則由5V電壓變換得到。
S3C2410的內核電壓為1.8V,外部I/O和存儲器電壓為3.3V。系統選用低壓差穩壓器AS1117實(shí)現這兩種電壓的轉換,固定輸出時(shí)只需三個(gè)引腳,如圖3所示?! ?CENTER sizset="4" sizcache="3">
本文使用TPS70345為FPGA提供1.2V內核電壓和3.3V IO電壓。
ARM與FPGA接口電路
生成三維圖形時(shí),嵌入式微處理器上運行的圖形應用程序生成三維圖形的渲染列表,并將渲染列表寫(xiě)入到FPGA的渲染列表緩沖區中,等待圖形加速模塊的處理。ARM與FPGA接口電路既要保證可以完成渲染列表的寫(xiě)操作,又要能夠對FPGA中總線(xiàn)接口模塊、圖形加速模塊、LCD控制器等的內部寄存器進(jìn)行讀寫(xiě)操作。接口電路如圖4所示?! ?CENTER sizset="5" sizcache="3">
系統軟件設計
系統軟件架構
本文使用FPGA實(shí)現整個(gè)三維圖形處理流水線(xiàn),由硬件完成三維圖形生成和處理。運行在操作系統上的圖形應用程序通過(guò)調用圖形API實(shí)現具體應用,而驅動(dòng)程序將圖形API的調用轉換成渲染列表,從而將具體的三維圖形處理任務(wù)交給硬件完成,如圖5所示?! ?CENTER sizset="6" sizcache="3">
考慮到嵌入式圖形系統除了進(jìn)行三維圖形處理之外,還應當能夠為用戶(hù)提供友好的用戶(hù)圖形操作界面,本文采用了Windows CE操作系統。
驅動(dòng)程序設計
設備驅動(dòng)程序在操作系統和硬件設備之間建立了一個(gè)橋梁,讓操作系統能夠識別設備并為應用程序提供設備服務(wù)。
本文中FPGA實(shí)現的圖形加速模塊作為一個(gè)設備掛接在系統中。系統在軟件上只需要將渲染列表寫(xiě)到該設備的地址空間,因此本文使用了簡(jiǎn)單的流式接口驅動(dòng),所有的流接口驅動(dòng)程序都使用相同的一組流接口函數。
渲染列表的傳遞是不需要反饋的,系統將渲染列表寫(xiě)入設備(GPU)后并不需要從設備中獲取數據,因此流接口函數GPU_Read()并不需要實(shí)現具體功能,只在GPU_Write()中將渲染列表寫(xiě)入到設備中。另外,系統在普通圖形界面和三維顯示兩種顯示模式下使用的是不同的LCD控制器。前者使用S3C2410中集成的LCD控制器,而后者使用的是FPGA模塊中實(shí)現的LCD控制器,兩種模式下通過(guò)LCD總線(xiàn)切換模塊進(jìn)行切換。
結語(yǔ)
本文設計了基于A(yíng)RM和FPGA的嵌入式圖形系統,使用FPGA在硬件上實(shí)現三維圖形處理,緩解嵌入式CPU在處理三維圖形時(shí)因計算量過(guò)大而導致系統效率降低的問(wèn)題。圖像顯示符合人眼對圖像連續性的要求。
評論