基于FPGA的LCD顯示遠程更新
·幀存控制模塊
本文引用地址:http://www.104case.com/article/265115.htm幀存控制模塊實現2個幀存SRAM的“乒乓”切換,當DSP向其中一個幀存寫顯示信息時,由FPGA構成的幀存控制模塊將另一個幀存的控制權交給LCD顯示控制器圖像處理模塊,反之亦然。
·軟件設計
TCP/IP是一種網絡通信協議,它規范了網絡上所有通信設備,尤其是一個主機與另一個主機之間的數據往來格式及傳送方式。TCP/IP是Internet的基礎協議,也是一種計算機數據打包和尋址的標準方法。在Intemet中幾乎可以無差錯地傳送數據。
LWIP是瑞士計算機科學院的Adam Dunkels等開發的一套用于嵌入式系統的開放源代碼TCP/IP協議棧。LWIP既可以移植到操作系統上,也可以在無操作系統的情況下獨立運行。LWIP TCP/IP實現的重點是在保持TCP協議主要功能的基礎上減少對RAM的占用,一般它只需要幾十kB的RAM和50 kB左右的ROM就可以運行,使得LWIP協議棧適合在嵌入式系統中使用。
LWIP的特性如下:
(1)支持多網絡接口下的IP轉發;
(2)支持ICMP協議;
(3)包括實驗性擴展的的UDP(用戶數據報協議);
(4)包括阻塞控制,I T估算,以及快速恢復和轉發的TCP(傳輸控制協議);
(5)提供專門的內部回調接口(Raw API)用于提高應用程序性能;
(6)可選擇的Berkeley接121API(多線程情況下);
(7)在最新的版本中支持PPP;
(8)新版本中增加了的IP fragment的支持;
(9)支持DHCP協議,動態分配IP地址。
在Xilinx的Spartan 6 FPGA上實現的LWIP TCP/IP采用的是LWIP的版本V1.1.1,提出和采用以下幾種移植和運行方式:
(1 )TCP/IP協議的每一層是一個單獨進程,鏈路層是一個進程,IP層是一個進程,TCP層是一個進程。這樣的優勢是網絡協議的每一層都非常清晰,代碼的調試和理解都非常容易;最大的缺點是數據跨層傳遞時會引起上下文切換。接收一個TCP信息段要引起3次上下文切換(從網卡驅動程序到鏈路層進程,從鏈路層進程到IP層進程,從IP層進程~]TCP進程)。對于操作系統來說,任務切換是要浪費時間的。過頻的上下文切換使得系統運行比較沉重,這是不可取的。
(2) TCP/IP協議棧在操作系統內核當中,應用程序通過操作系統的系統調用和協議棧來進行通訊,這樣TCP/IP的協議棧就限定于特定的操作系統內核了。此法理論上可以實現,但代碼不具有通用性,不便于將來的維護和再移植,同樣也是不太可取的。
(3)TCP/IP協議棧都在一個進程當中,這樣TCP/IP協議棧就和操作系統內核分開了,而應用層程序既可以是單獨的進程也可以駐留在TCP/IP進程中。如果應用程序是單獨的進程,可以通過操作系統的郵箱、消息隊列等和TCP/IP進程進行通訊。此種方式移植層次清晰,移植代碼量適中,是比較好的思路,并且在此基礎上移植調試成功,證明此思路是切實可行的,但缺點是依賴于操作系統的任務通信機制,不能得到很高的性能。
(4)把應用層程序駐留TCP/IP進程中,則應用層程序就利用內部回調函數口(Raw API)和TCP/IP協議棧通訊。應用層程序既可以是獨立的任務,也可以在TCP/IP線程中利用內部回調函數n(Raw API)和TCP/IP協議棧通訊。此方式不依賴實時操作系統,能在無操作系統的情況下運行。經過對LWIP協議棧源碼的徹底消化,改寫其接口代碼,經多次調試移植成功,測試性能得到了很大提升。
2.4 軟件設計流程圖
軟件設計分為發送部分和接受部分。
程序流程圖如下:

發送端流程圖 接收端流程圖
LCD顯示屏相關文章:lcd顯示屏原理
tcp/ip相關文章:tcp/ip是什么
lcd相關文章:lcd原理
評論