基于ENC424J600的以太網(wǎng)與串行接口轉(zhuǎn)換技術
2.2 系統(tǒng)硬件結構
網(wǎng)絡轉(zhuǎn)串行通信接口的系統(tǒng)結構框圖如圖4所示。STM32F103RET6通過SPI1串行通信接口、一個GPIO引腳作為中斷引腳與網(wǎng)絡控制器相連,系統(tǒng)再引出SPI2、CAN總線通信接口的引腳。將UART1串行接口作為控制臺供調(diào)試使用。STM32F103RET6具有串口ISP下載功能,將BOOT0接高電平,BOOT1接低電平即可進入ISP下載模式。該系統(tǒng)可以通過跳線選擇ISP下載功能。本文引用地址:http://cafeforensic.com/article/160920.htm
3 系統(tǒng)軟件設計
軟件的設計主要是移植LwIP協(xié)議棧,添加各串行通信接口的初始化程序,編寫網(wǎng)絡控制器底層驅(qū)動,編寫上層應用程序。
3.1 網(wǎng)絡控制器底層驅(qū)動實現(xiàn)過程
網(wǎng)絡控制器底層驅(qū)動初始化程序放在low_level_init函數(shù)中,整個過程為:初始化SPI1接口,對網(wǎng)絡控制器進行系統(tǒng)復位;設置發(fā)送、接收緩沖區(qū)指針;初始化PHY層為100 Mbase全雙工模式,使能接收中斷。網(wǎng)絡控制器底層發(fā)送程序放在low_level_output函數(shù)中,整個過程為:將以太網(wǎng)包拷貝至SRAM buffer,設置發(fā)送起始地址;發(fā)送幀長,置高TXRTS位使能發(fā)送,直到TXRTS被硬件清零才能進行第二次發(fā)送。網(wǎng)絡控制器接收程序放在low_level_input函數(shù)中,當接收中斷發(fā)生時系統(tǒng)通過上層應用程序調(diào)用low_level_input函數(shù)。該函數(shù)主要內(nèi)容為:讀取PKTIF位以確定是否有以太網(wǎng)幀等待接收;設置接收指針地址,讀取該幀的前8個字節(jié),其中前兩個字節(jié)為下一幀接收地址,第3、4個字節(jié)為這一幀的長度,申請當前幀長的緩沖區(qū),將接收數(shù)據(jù)讀入緩沖區(qū),置高PKTDEC為下一幀接收做準備。
3.2 LwIP協(xié)議棧分析
LwIP協(xié)議??梢栽跓o操作系統(tǒng)的軟件平臺下移植,LwIP實現(xiàn)的重點是在保持TCP/IP協(xié)議主要功能的基礎上減少對RAM的占用,因此它也適合在中低端的嵌入式系統(tǒng)中應用。LwIP主要是完成IP層和TCP/UDP數(shù)據(jù)傳輸層的任務,它與底層網(wǎng)絡控制器的接口主要體現(xiàn)在etherneti f.c函數(shù)中。在以太網(wǎng)幀的接收過程中以太網(wǎng)數(shù)據(jù)包通過底層接收程序傳至IP層,IP層判斷是TCP數(shù)據(jù)包還是UDP數(shù)據(jù)包,送至相應數(shù)據(jù)傳輸層處理,數(shù)據(jù)傳輸層再將收到的數(shù)據(jù)傳至用戶應用程序。在以太網(wǎng)幀的發(fā)送過程中,用戶程序選擇是通過UDP還是TCP發(fā)送數(shù)據(jù)包,將數(shù)據(jù)包送至相應的傳輸層,再傳至IP層,IP層再將數(shù)據(jù)傳至底層,發(fā)送程序?qū)?shù)據(jù)發(fā)送出去。
3.3 系統(tǒng)軟件流程
系統(tǒng)軟件流程如圖5所示。
軟件主要完成初始化、等待接收以太網(wǎng)幀、通過串行接口將數(shù)據(jù)幀發(fā)送出去的任務。初始化包括創(chuàng)建netif網(wǎng)絡接口、SPI1接口、網(wǎng)絡控制器的PHY層、MAC層,使能接收中斷、初始化TCP服務器端。初始化完成后,等待上位機軟件TCP的客戶端與底層軟件的TCP服務器端建立連接。連接建立后整個系統(tǒng)就循環(huán)等待接收TCP客戶端發(fā)送的以太網(wǎng)數(shù)據(jù)幀,當有以太網(wǎng)數(shù)據(jù)幀到達時,產(chǎn)生接收中斷,接收到的數(shù)據(jù)幀從PHY層傳到MAC層,再傳到IP層,最終傳到TCP層進行數(shù)據(jù)接收處理。應用程序收到處理過的以太網(wǎng)數(shù)據(jù)幀,處理相應的數(shù)據(jù),根據(jù)數(shù)據(jù)傳遞的信息通過SPI2或CAN總線串行通信接口將信息發(fā)送出去,以實現(xiàn)相應的控制功能。
tcp/ip相關文章:tcp/ip是什么
浮球開關相關文章:浮球開關原理
評論