《杰發(fā)微課堂》今天開講第六課啦!W5500是一款集成全硬件TCP/IP協(xié)議棧的嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。本文將從杰發(fā)科技功能安全MCU芯片AC7840x為何適配W5500出發(fā),提供Demo測試、代碼適配流程等指導,方便用戶開發(fā)更加豐富的應用方案。
方案簡介
W5500集成了TCP/IP協(xié)議棧,10M/100M以太網(wǎng)數(shù)據(jù)鏈路層(MAC)及物理層(PHY),用戶使用單芯片就能夠在應用中拓展網(wǎng)絡連接。久經(jīng)市場考驗的WIZnet全硬件TCP/IP協(xié)議棧支持TCP,UDP,IPv4,ICMP,ARP,IGMP和PPPoE協(xié)議。用戶使用W5500時只需簡單的Socket編程就能實現(xiàn)以太網(wǎng)應用。與傳統(tǒng)軟件協(xié)議棧不同,W5500內(nèi)嵌的8個獨立硬件 Socket可進行8路獨立通信,相互之間通信效率互不影響,可通過W5500片上32K字節(jié)的收/發(fā)緩存靈活定義每個Socket的大小。
W5500提供高速標準4線SPI(外設串行接口),速率可達到80MHz,更容易與外設MCU整合,從而能更好地實現(xiàn)高速網(wǎng)絡通訊。為減少系統(tǒng)能耗,W5500還提供了網(wǎng)絡喚醒模式(WOL)和掉電模式供用戶選擇使用。
方案主要特性:
支持10M/100M以太網(wǎng)自適應適配;
使用SPI接口,支持mode 0和mode 3;
SPI速率理論可以達到80MHz,實際可以提供到33.3MHz穩(wěn)定傳輸;
支持8路Socket單獨通路,具有32K片上緩存。
AC7840x-W5500 Demo測試
1. 接線圖
2. 實物圖
3. W5500通過網(wǎng)線連接路由器,電腦也通過網(wǎng)線或Wifi連接到路由器(確保在同一網(wǎng)段)。
4. 參數(shù)配置
打開代碼,在main.c的Load_Net_Parameters配置自己的網(wǎng)絡參數(shù),網(wǎng)絡工具端網(wǎng)絡參數(shù)需為本地電腦參數(shù),以Demo為例:
Gateway_IP:網(wǎng)關IP //代碼默認 192.168.50.1
Sub_Mask:子網(wǎng)掩碼 //代碼默認 255.255.255.0
Phy_Addr:物理地址 //代碼默認 0cab00:01
IP_Addr:本機IP地址 //代碼默認 192.168.50.199
S0_Port:本機斷開0端口號 //代碼默認 5000
S0_DIP:目的IP //代碼默認 192.168.50.232
S0_DPort:目的端口 //代碼默認 6000
5. TCP客戶端測試
5.1 打開網(wǎng)絡測試工具,點擊創(chuàng)建服務器→設置本機端口→點擊確定→啟動服務器。
5.2 給開發(fā)板上電
5.3 可以看到W5500已經(jīng)連接上TCP服務器
5.4 進行數(shù)據(jù)收發(fā),發(fā)送數(shù)據(jù),開發(fā)板可以收到,并且log打印出來,開發(fā)板按下k4,會向TCP服務器發(fā)送數(shù)據(jù)。
6. TCP服務器測試
6.1 修改網(wǎng)絡參數(shù)后(參考步驟4),下載到開發(fā)板,并且給開發(fā)板上電。
6.2 打開網(wǎng)絡工具,創(chuàng)建TCP客戶端,點擊創(chuàng)建連接→選擇類型為TCP,設置目標IP和端口號,點擊創(chuàng)建。
6.3 點擊連接,可以看到開發(fā)板log連接成功。
7. UDP測試
7.1 打開網(wǎng)絡工具,創(chuàng)建UDP:點擊創(chuàng)建連接→選擇類型為UDP,設置目標IP和端口號→點擊創(chuàng)建。
7.2 給開發(fā)板上電
7.3 收發(fā)數(shù)據(jù)測試
代碼適配流程
1. GPIO配置
W5500的RST和INIT引腳,RST是重啟的作用,低電平有效,時間大于500us,INIT是中斷腳,低電平有效,當W5500有事件發(fā)生時,會將INIT腳拉低,提示AC7840x處理事件。
2. SPI配置
2.1 SPI主設備配置
2.2 SPI讀寫時序
W5500的幀分為3段:地址段、控制段、數(shù)據(jù)段。地址段為W5500寄存器或TX/RX內(nèi)存指定了16位的偏移地址??刂贫沃付说刂范卧O定的偏移區(qū)域的歸屬,讀/寫訪問模式以及SPI工作模式(可變長度模式/固定長度模式)。數(shù)據(jù)段可以設定為任意長度(N-字節(jié),1≤N)或者是固定的長度:1字節(jié),2字節(jié)或4字節(jié),如果SPI工作模式設置為可變數(shù)據(jù)長度模式(VDM),SPI的SCSn信號需要由外部主機通過SPI幀控制。在可變數(shù)據(jù)長度模式下,SCSn控制SPI幀的開始和停止:SCSn信號拉低(高電平到低電平),即代表W5500的SPI幀開始(地址段);SCSn信號拉高(低電平到高電平),即代表W5500的SPI幀結束(數(shù)據(jù)段的隨機N字節(jié)數(shù)據(jù)結尾)。
SPI數(shù)據(jù)幀
W5500的SPI數(shù)據(jù)幀包括了16位地址段的偏移地址,8位控制段和N字節(jié)數(shù)據(jù)段,如下圖所示。8位控制段可以通過修改區(qū)域選擇位(BSB[4:0]),讀/寫訪問模式位(RWB)以及SPI工作模式位(OM[1:0])來重新定義。區(qū)域選擇位選擇了歸屬于偏移地址的區(qū)域。W5500支持數(shù)據(jù)的連續(xù)讀/寫,其流程為數(shù)據(jù)從(2/4/N字節(jié)連續(xù)數(shù)據(jù)的)偏移地址的基址開始傳輸,偏移地址會(自增尋址)加1傳輸接下來的數(shù)據(jù)。
地址段
地址段為W5500的寄存器或TX/RX緩存區(qū)指定了16位的偏移地址,這16位偏移地址的值來自于從最高標志位到最低標志位的順序傳輸。SPI數(shù)據(jù)幀的數(shù)據(jù)段(2/4/N字節(jié))通過偏移地址自增(每傳輸1字節(jié)偏移地址加1)支持連續(xù)數(shù)據(jù)讀/寫。
控制段
控制段指定了地址段設定的偏移區(qū)域的歸屬,讀/寫訪問模式以及SPI工作模式。具體見W5500數(shù)據(jù)手冊。
向W5500指定寄存器地址發(fā)送一個字節(jié)數(shù)據(jù)
向W5500指定寄存器地址發(fā)送n字節(jié)數(shù)據(jù)
讀取W5500指定寄存器n字節(jié)數(shù)據(jù)
3. W5500 Socket配置
3.1 配置W5500 MAC地址、網(wǎng)關、IP等網(wǎng)絡參數(shù)
3.2 配置Socket的讀寫緩存大?。J為2K)
3.3 配置Socket收發(fā)超時時間和重傳次數(shù)
3.4 配置對端網(wǎng)絡IP、端口號等網(wǎng)絡參數(shù)
3.5 監(jiān)聽或者連接服務器
4. 中斷處理流程
4.1 W5500會拉低INIT IO,拋出中斷時間,AC7840x獲取中斷后,讀取SIR寄存器,獲取Socket事件號。
4.2 再根據(jù)事件號讀取對應Sn_IR,獲取事件(如connect/receive/timeout)。
4.3 處理具體事件
4.4 中斷事件處理
更多關于AC7840x適配W5500技術咨詢,請聯(lián)系。
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
16103瀏覽量
177073 -
嵌入式
+關注
關注
5059文章
18973瀏覽量
302029 -
以太網(wǎng)
+關注
關注
40文章
5343瀏覽量
170800 -
TCP
+關注
關注
8文章
1347瀏覽量
78933
原文標題:《杰發(fā)微課堂》開講丨AC7840x-W5500適配指導文檔
文章出處:【微信號:AtuoChips,微信公眾號:AtuoChips】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論