以太網(wǎng)控制芯片W5100的存儲裝置設(shè)計(jì)
1.2 串口的設(shè)計(jì)
在實(shí)際應(yīng)用中,很可能出現(xiàn)數(shù)據(jù)已經(jīng)存入但是RJ45口損壞而沒有辦法讀數(shù)的情況。為了防止因RJ45口的損壞而導(dǎo)致整個(gè)裝置不可用,可加入串口模塊直接利用串口進(jìn)行讀數(shù)。
2 系統(tǒng)工作原理
2.1 工作狀態(tài)圖
工作狀態(tài)圖如圖3所示。本文引用地址:http://m.butianyuan.cn/article/173139.htm
2.2 網(wǎng)絡(luò)協(xié)議的選擇
W5100本身集成了高度成熟的TCP/IP協(xié)議棧、以太網(wǎng)MAC層、PHY層等,支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE等協(xié)議。
TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。一個(gè)TCP連接必須要經(jīng)過3次“對話”才能建立起來。
UDP是一個(gè)無連接協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時(shí)就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。雖然UDP是無連接的協(xié)議,它不保證數(shù)據(jù)包一定能夠到達(dá)目的主機(jī),但是在本應(yīng)用中存儲器跟主機(jī)通常位于同一內(nèi)部局域網(wǎng)內(nèi),網(wǎng)絡(luò)環(huán)境良好,數(shù)據(jù)丟失的可能性很小。另外,UDP容易實(shí)現(xiàn),占用資源少,傳輸速度高,可以滿足整個(gè)裝置的應(yīng)用需要。
3 軟件設(shè)計(jì)
3.1 主程序設(shè)計(jì)
軟件實(shí)現(xiàn)的主程序流程如圖4所示。
3.2 寄存器的設(shè)置
通過設(shè)置W5100內(nèi)部的控制寄存器,完全可以像在局域網(wǎng)中配置IP地址一樣簡單地配置設(shè)計(jì)的系統(tǒng)。
常用寄存器主要包括:模式寄存器(MR)、網(wǎng)關(guān)地址寄存器(GWR)、子網(wǎng)掩碼寄存器(SUBR)、物理地址寄存器(SHAR)、源IP地址寄存器(SI-PR)、中斷寄存器(IR)、中斷屏蔽寄存器(IMR)、重試時(shí)間寄存器(RTR)、重試次數(shù)寄存器(RCR)、接收數(shù)據(jù)緩沖區(qū)大小寄存器(RMSR)、發(fā)送數(shù)據(jù)緩沖區(qū)大小寄存器(TMSR)等。套接字寄存器平均分為4部分,對4個(gè)獨(dú)立的網(wǎng)絡(luò)通道單獨(dú)設(shè)置;發(fā)送和接收數(shù)據(jù)緩沖區(qū)用來存放臨時(shí)數(shù)據(jù)。通過對這些寄存器的設(shè)置可以選擇工作模式及協(xié)議棧,設(shè)置裝置自己的網(wǎng)關(guān)、IP、子網(wǎng)掩碼、物理地址,還可以對端口進(jìn)行打開和關(guān)閉。
用戶自己定義MAC地址時(shí)必須注意,MAC地址的第一個(gè)字節(jié)必須為偶數(shù)。第一個(gè)字節(jié)為奇數(shù)的MAC地址為多播地址,如果把MAC地址的第一個(gè)字節(jié)定義為奇數(shù),可能會引起網(wǎng)絡(luò)通信錯(cuò)誤。
3.3 讀寫程序設(shè)計(jì)
讀時(shí)序如圖5所示,寫時(shí)序如圖6所示。
評論