1 項目背景
1.1 研究背景
LCD顯示屏的應用越來越廣,數(shù)量越來越多。LCD顯示屏應用廣泛,無處不在。小到家庭各種電器設備,大到軍事設備。更常見是用于各種公共場合如體育館、廣場等商業(yè)用途。給我們傳遞一種更為直觀、生動的信息。從此我們的生活發(fā)生了巨大改變。巨大的應用巨大的市場帶來了巨大的商機。傳統(tǒng)的顯示器大多采用控制系統(tǒng)與顯示界面集成在一起的方案,不便于實時管理與有效維護,不便于及時更新;也不便于人親臨惡劣的工作環(huán)境下進行人為操控。LED顯示屏用戶迫切需要實現(xiàn)對LED顯示屏的遠程控制。
基于FPGA的LCD顯示的遠程更新是為了通過中央服務器可以實現(xiàn)有效地更新廣泛分布的LCD顯示屏,達到便于操縱,低成本,高效數(shù)據(jù)傳輸?shù)忍攸c。
1.2 基于FPGA的LCD顯示的遠程更新的優(yōu)越性
本項目通過TCP/IP協(xié)議與遠程控制進行通信,便且使用FTP協(xié)議來更新LCD顯示內容。使中央服務器與分布在其他區(qū)域的LCD顯示器組成網(wǎng)絡并IP編址,可以通過中央服務器進行高效、方便、可靠地管理和維護LCD顯示器。具有以下優(yōu)勢:
●采用可編程的FPGA進行設計,便于設計的更新與升級,節(jié)約成本。
●通過使用TCP/IP服務,使系統(tǒng)在傳輸數(shù)據(jù)和接受數(shù)據(jù)的過程中穩(wěn)定性和可靠性得到有效地保證。
●采用SOPC集成系統(tǒng)的設計,是整個系統(tǒng)的復雜性大為降低。
●LCD體積小、質量輕、功耗低,可以用大規(guī)模集成電路直接驅動,可以在明亮環(huán)境下顯示,不含射線傷害。
2 項目方案
2.1 實現(xiàn)功能
1、系統(tǒng)采用FPGA嵌入軟核Microblaze作為微控制器,用于發(fā)送需要傳輸?shù)臄?shù)據(jù)。
2、通過TCP/IP協(xié)議有效地實現(xiàn)與遠程LCD接收端進行通信。
3、在接收端,對收到的FTP數(shù)據(jù)進行存儲并實現(xiàn)對LCD屏顯示內容的更新。
2.2方案設計原理
該方案使用Atlys Spartan®-6 FPGA 開發(fā)套件硬件平臺,系統(tǒng)原理框圖如下:
本方案做的是有線數(shù)據(jù)接收,首先使用FPGA嵌入軟核Microblaze作為微控制器,然后通過TCP/IP協(xié)議與遠程控制進行通信,在接受端接收到發(fā)送過來的信號,并存入RAM存儲器中,同時對LCD顯示屏進行更新。
2.3硬件設計
通過上面對整個系統(tǒng)功能要求, 性能要求的分析, 我們可以確定系統(tǒng)的基本硬件結構, 其組成框圖如下所示:
從上面的系統(tǒng)硬件框圖中我們可以看到,整個系統(tǒng)由Microblaze組成的微控制器,PLB外設總線,LCD控制器,以太網(wǎng)、以及片上RAM等組成。Microblaze微控制器作為控制器,通過PLB總線與各部分控制器以及外圍聯(lián)接,負責整個系統(tǒng)的運行。片上SDRAM作為Microblaze微控制器執(zhí)行指令的存儲空間,在LCD更新過程中也需要保存接收到的FTP數(shù)據(jù)。整個系統(tǒng)最主要就是LCD控制IP核以及以太網(wǎng)通信部分。
LCD控制IP核主要由地址發(fā)生模塊、顯存讀取模塊、時序發(fā)生模塊、幀存控制模塊、行緩存等模塊組成。
·地址發(fā)生模塊
地址發(fā)生模塊為顯存讀取模塊提供了一張顯存地址表,地址表上涵蓋了LCD上每個像素點的訪問地址,地址發(fā)生模塊設計保證在LCD顯示掃描時鐘進行到某一像素點時,恰好向顯存讀取模塊提供該像素點的地址,顯存讀取模塊據(jù)此地址從顯存讀取相應的像素點信息。地址發(fā)生模塊動態(tài)地向顯存讀取模塊提供地址的行為與顯存讀取模塊的讀操作是同步進行的,同步時鐘為像素點時鐘D-CLK,觸發(fā)信號是來自時序發(fā)生模塊的數(shù)據(jù)使能信號Data-EN,復位信號為時序發(fā)生模塊的場同步消隱信號HB。
·顯存讀取模塊
顯示讀取子模塊通過16 bit并行數(shù)據(jù)總線訪問顯存SRAM,對FPGA“調色板”顏色處理子模塊提供4 bit并行數(shù)據(jù)接口。本模塊的輸入時鐘頻率是LCD像素點時鐘信號D-CLK的4倍,觸發(fā)信號為LCD數(shù)據(jù)使能信號Data-EN,每4 bit顯存內容描述一個像素點,可顯示16種顏色(顏色及色深可根據(jù)系統(tǒng)的要求,適時擴充)。顯存讀取狀態(tài)機循環(huán)1次可讀取4個像素點的信息,在時鐘信號的觸發(fā)下,依次將點像素信息輸送至“調色板”顏色處理子模塊。將以上操作分解為如下步驟:(1)消隱:每行或每場的非顯示階段,此階段送至LCD的圖像信息無效;(2)SO:取每包圖像信息的第1個像素點信息,并送至“調色板”顏色處理子模塊;(3)s1:取每包圖像信息的第2個像素點信息,并送至“調色板”顏色處理子模塊;(4)S2:取每包圖像信息的第3個像素點信息,并送至“調色板”顏色處理子模塊;(5)s3:取每包圖像信息的第4個像素點信息,并送至“調色板”顏色處理子模塊。[!--empirenews.page--]
·時序發(fā)生模塊
時序發(fā)生模塊主要產(chǎn)生數(shù)字TFT-LCD所需的像素點時鐘D-CLK、行同步信號H-SYNC、場同步信號V-SYNC、行同步信號H-SYNC、數(shù)據(jù)使能信號Data-EN信號。隨著FPGA的出現(xiàn),利用編程邏輯方法產(chǎn)生行場掃描時序是一個發(fā)展方向。這種方法具有電路簡單、功能強、修改方便、可靠性高等優(yōu)點,只需在代碼中修改一些時序參數(shù)就能產(chǎn)生任意時序的波形,可以支持各種接口時序要求的TFT. - LCD顯示器。
·幀存控制模塊
幀存控制模塊實現(xiàn)2個幀存SRAM的“乒乓”切換,當DSP向其中一個幀存寫顯示信息時,由FPGA構成的幀存控制模塊將另一個幀存的控制權交給LCD顯示控制器圖像處理模塊,反之亦然。
·軟件設計
TCP/IP是一種網(wǎng)絡通信協(xié)議,它規(guī)范了網(wǎng)絡上所有通信設備,尤其是一個主機與另一個主機之間的數(shù)據(jù)往來格式及傳送方式。TCP/IP是Internet的基礎協(xié)議,也是一種計算機數(shù)據(jù)打包和尋址的標準方法。在Intemet中幾乎可以無差錯地傳送數(shù)據(jù)。
LWIP是瑞士計算機科學院的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LWIP既可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下獨立運行。LWIP TCP/IP實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎上減少對RAM的占用,一般它只需要幾十kB的RAM和50 kB左右的ROM就可以運行,使得LWIP協(xié)議棧適合在嵌入式系統(tǒng)中使用。
LWIP的特性如下:
(1)支持多網(wǎng)絡接口下的IP轉發(fā);
(2)支持ICMP協(xié)議;
(3)包括實驗性擴展的的UDP(用戶數(shù)據(jù)報協(xié)議);
(4)包括阻塞控制,I T估算,以及快速恢復和轉發(fā)的TCP(傳輸控制協(xié)議);
(5)提供專門的內部回調接口(Raw API)用于提高應用程序性能;
(6)可選擇的Berkeley接121API(多線程情況下);
(7)在最新的版本中支持PPP;
(8)新版本中增加了的IP fragment的支持;
(9)支持DHCP協(xié)議,動態(tài)分配IP地址。
在Xilinx的Spartan 6 FPGA上實現(xiàn)的LWIP TCP/IP采用的是LWIP的版本V1.1.1,提出和采用以下幾種移植和運行方式:
(1 )TCP/IP協(xié)議的每一層是一個單獨進程,鏈路層是一個進程,IP層是一個進程,TCP層是一個進程。這樣的優(yōu)勢是網(wǎng)絡協(xié)議的每一層都非常清晰,代碼的調試和理解都非常容易;最大的缺點是數(shù)據(jù)跨層傳遞時會引起上下文切換。接收一個TCP信息段要引起3次上下文切換(從網(wǎng)卡驅動程序到鏈路層進程,從鏈路層進程到IP層進程,從IP層進程~]TCP進程)。對于操作系統(tǒng)來說,任務切換是要浪費時間的。過頻的上下文切換使得系統(tǒng)運行比較沉重,這是不可取的。
(2) TCP/IP協(xié)議棧在操作系統(tǒng)內核當中,應用程序通過操作系統(tǒng)的系統(tǒng)調用和協(xié)議棧來進行通訊,這樣TCP/IP的協(xié)議棧就限定于特定的操作系統(tǒng)內核了。此法理論上可以實現(xiàn),但代碼不具有通用性,不便于將來的維護和再移植,同樣也是不太可取的。
(3)TCP/IP協(xié)議棧都在一個進程當中,這樣TCP/IP協(xié)議棧就和操作系統(tǒng)內核分開了,而應用層程序既可以是單獨的進程也可以駐留在TCP/IP進程中。如果應用程序是單獨的進程,可以通過操作系統(tǒng)的郵箱、消息隊列等和TCP/IP進程進行通訊。此種方式移植層次清晰,移植代碼量適中,是比較好的思路,并且在此基礎上移植調試成功,證明此思路是切實可行的,但缺點是依賴于操作系統(tǒng)的任務通信機制,不能得到很高的性能。
(4)把應用層程序駐留TCP/IP進程中,則應用層程序就利用內部回調函數(shù)口(Raw API)和TCP/IP協(xié)議棧通訊。應用層程序既可以是獨立的任務,也可以在TCP/IP線程中利用內部回調函數(shù)n(Raw API)和TCP/IP協(xié)議棧通訊。此方式不依賴實時操作系統(tǒng),能在無操作系統(tǒng)的情況下運行。經(jīng)過對LWIP協(xié)議棧源碼的徹底消化,改寫其接口代碼,經(jīng)多次調試移植成功,測試性能得到了很大提升。
2.4 軟件設計流程圖
軟件設計分為發(fā)送部分和接受部分。
程序流程圖如下:
發(fā)送端流程圖 接收端流程圖