嵌入式TCP/IP協(xié)議棧在單片機上的實現(xiàn)
1 系統(tǒng)硬件實現(xiàn)
整個系統(tǒng)以SST89E516RD單片機為核心,通過RTL8019AS以太網控制芯片實現(xiàn)遠程通信。串口完成網卡參數(shù)的修改、在線仿真,在系統(tǒng)中還使用X5045作為外部擴展的E2PROM,用來存儲IP地址、物理地址以及網卡的其他配置信息,同時X5045還具有電壓監(jiān)控、看門狗定時器、上電復位三種功能,使用X5045監(jiān)控系統(tǒng)的運行過程,當系統(tǒng)不穩(wěn)定時可以進行有效地復位。圖1為系統(tǒng)硬件結構圖。
2 系統(tǒng)軟件實現(xiàn)
系統(tǒng)軟件主要包括客戶端和服務器端軟件的設計,主要有以下幾部分內容:
(1)RTL8019AS的初始化和驅動程序的設計;
(2)數(shù)據(jù)幀的發(fā)送和接收子程序;
(3)TCP/IP協(xié)議棧程序的設計;
(4)客戶端和服務器端程序的設計;
(5)X5045看門狗和E2PROM程序的設計。
系統(tǒng)的主程序流程圖如圖2所示。
由圖2可知,系統(tǒng)首先完成對單片機定時器、串口、網卡芯片和以太網等部分的初始化,然后進入以太網處理部分的主程序,通過定時器中斷進行網口數(shù)據(jù)的超時出錯處理,并完成TCP定時器?;詈虯RP表生存時間的更新。
2.1 系統(tǒng)初始化
所謂初始化和驅動程序是指實模式下一組硬件芯片的驅動子程序,它們屏蔽了底層硬件處理細節(jié),同時向上層軟件提供與硬件無關的接口。主要包括定時器初始化,初始化PING表、ARP表,初始化TCP,RTL8019AS的初始化等。RTL8019AS的初始化主要包括網卡的復位和網卡寄存器的初始化。RTL8019AS的初始化主要包括網卡的復位和網卡寄存器的初始化。RTL8019AS內部寄存器有4頁,與NE2000兼容的有3頁,第4頁不用。頁選擇由CR寄存器的PSl,PS0位確定。在零頁寄存器中可以設置接收、發(fā)送狀態(tài)配置以及發(fā)送緩存區(qū)的起始頁與接收緩存區(qū)起止頁地址等;在1頁寄存器中可以設置以太網接口的MAC地址和組播地址。對網卡的初始化就是對相關寄存器初始化,這些寄存器包括CR,RCR,TC-R,PSTART,PSTOP,BNRY,TPSR,ISR,DCR,IMR,CURR,PAGO~PAG5,MAR0~MAR5等。初始化過程如下:
tcp/ip相關文章:tcp/ip是什么
評論