基于單片機和TCP/IP協(xié)議的網(wǎng)絡(luò )通信設計
摘要:介紹了嵌入式TCP/IP協(xié)議單片機在網(wǎng)絡(luò )通信中的數據傳輸技術(shù)。將TCP/IP協(xié)議嵌入式單片機中,借助網(wǎng)卡芯片CS8900實(shí)現了單片機在局域網(wǎng)內和通過(guò)局域網(wǎng)在因特網(wǎng)上的數據傳輸。用戶(hù)終端以單片機系統板為媒介,通過(guò)網(wǎng)絡(luò )與遠程數據終端實(shí)現數據通信。
本文引用地址:http://dyxdggzs.com/article/246899.htm關(guān)鍵詞:TCP/IP協(xié)議 單片機 因特網(wǎng) 局域網(wǎng) 網(wǎng)卡芯片
在因特網(wǎng)上,TCP/IP協(xié)議每時(shí)每刻保證了數據的準確傳輸。在數據采集領(lǐng)域,如何利用TCP/IP協(xié)議在網(wǎng)絡(luò )中進(jìn)行數據傳輸成為一個(gè)炙手可熱的話(huà)題。在本系統中,筆者利用TCP/IP協(xié)議中的UDP(用戶(hù)數據報協(xié)議)、IP(網(wǎng)絡(luò )報文協(xié)議)、ARP(地址解析協(xié)議)及簡(jiǎn)單的應用層協(xié)議成功地實(shí)現了單片機的網(wǎng)絡(luò )互連,既提高了數據傳輸的速度,又保證了數據傳輸的正確性,同時(shí)也擴展了數據傳輸的有效半徑。
1 TCP/IP協(xié)議簡(jiǎn)介 TCP/IP協(xié)議是一套把因特網(wǎng)上的各種系統互連起來(lái)的協(xié)議組,保證因特網(wǎng)上數據的準確快速傳輸。參考開(kāi)放系統互連(OSI)模型,TCP/IP通常采用一種簡(jiǎn)化的四層模型,分別為:應用層、傳輸層、網(wǎng)絡(luò )層、鏈路層。 (1)應用層 網(wǎng)絡(luò )應用層要有一個(gè)定義清晰的會(huì )話(huà)過(guò)程,如通常所說(shuō)的Http、Ftp、Telnet等。在本系統中,單片機系統傳遞來(lái)自Ethernet和數據終端的數據,應用層只對大的數據報作打包拆報處理。 (2)傳輸層 傳輸層讓網(wǎng)絡(luò )程序通過(guò)明確定義的通道及某些特性獲取數據,如定義網(wǎng)絡(luò )連接的端口號等,實(shí)現該層協(xié)議的傳輸控制協(xié)議TCP和用戶(hù)數據協(xié)議UDP。在本系統中使用UDP數據報協(xié)議。 (3)網(wǎng)絡(luò )層 網(wǎng)絡(luò )層讓信息可以發(fā)送到相鄰的TCP/IP網(wǎng)絡(luò )上的任一主機上,IP協(xié)議就是該層中傳送數據的機制。同時(shí)建立網(wǎng)絡(luò )間的互連,應提供ARP地址解析協(xié)議,實(shí)現從IP地址到數據鏈路物理地址的映像。 (4)鏈路層 由控制同一物理網(wǎng)絡(luò )上的不同機器間數據傳送的底層協(xié)議組成,實(shí)現這一層協(xié)議的協(xié)議并屬于TCP/IP協(xié)議組。在本系統中這部分功能由單片機控制網(wǎng)卡芯片 CS8900實(shí)現。

2 硬件框圖
如圖1所示,系統提供RJ45接口連接Ethernet網(wǎng)絡(luò ),并且提供一個(gè)串口給用戶(hù)使用。系統板可以將從Ethernet上過(guò)來(lái)的IP數據報解包后送給串口,也可將從串口過(guò)來(lái)的數據封裝為IP包送到局域網(wǎng)中。外部RAM使用61C1024(128KB),從而為數據處理提供了很大的緩存;使用 E2PROM——X25045,既可以作為看門(mén)狗使用,也可以將IP地址、網(wǎng)卡物理地址和其他參數保存在里面。 CS8900芯片是Cirrus Logic公司生產(chǎn)的一種局域網(wǎng)處理芯片,它的封裝是100-pin TQFP,內部集成了在片RAM、10BASE-T收發(fā)濾波器,并且提供8位和16位兩種接口,本文只介紹它的8位模式。 NE103是一種脈沖變壓器,在CS8900的前端對網(wǎng)絡(luò )信號進(jìn)行脈沖波形變換。
3 工作原理 3.1 CS8900的工作原理 CS8900與單片機按照8位方式連接,網(wǎng)卡芯片復位后默認工作方式為I/O連接,基址是300H,下面對它的幾個(gè)主要工作寄存器進(jìn)行介紹(寄存器后括號內的數字為寄存器地址相對基址300H的偏移量)。
%26;#183;LINECTL(0112H) LINECTL決定CS8900的基本配置和物理接口。在本系統中,設置初始值為00d3H,選擇物理接口為10BASE-T,并使能設備的發(fā)送和接收控制位。
%26;#183;RXCTL(0104H) RXCTL控制CS8900接收特定數據報。設置RXTCL的初始值為0d05H,接收網(wǎng)絡(luò )上的廣播或者目標地址同本地物理地址相同的正確數據報。
%26;#183;RXCFG(0102H) RXCFG控制CS8900接收到特定數據報后會(huì )引發(fā)接收中斷。RXCFG可設置為0103H,這樣當收到一個(gè)正確的數據報后,CS8900會(huì )產(chǎn)生一個(gè)接收中斷。
%26;#183;BUSCT(0116H) BUSCT可控制芯片的I/O接口的一些操作。設置初始值為8017H,打開(kāi)CS8900的中斷總控制位。
%26;#183;ISQ(0120H) ISQ是網(wǎng)卡芯片的中斷狀態(tài)寄存器,內部映射接收中斷狀態(tài)寄存器和發(fā)送中斷狀態(tài)寄存器的內容。
%26;#183;PORT0(0000H) 發(fā)送和接收數據時(shí),CPU通過(guò)PORT0傳遞數據。
%26;#183;TXCMD(0004H) 發(fā)送控制寄存器,如果寫(xiě)入數據00C0H,那么網(wǎng)卡芯片在全部數據寫(xiě)入后開(kāi)始發(fā)送數據。
%26;#183;TXLENG(0006H) 發(fā)送數據長(cháng)度寄存器,發(fā)送數據時(shí),首先寫(xiě)入發(fā)送數據長(cháng)度,然后將數據通過(guò)PORT0寫(xiě)入芯片。 以上為幾個(gè)最主要的工作寄存器(為16位),CS8900支持8位模式,當讀或寫(xiě)16位數據時(shí),低位字節對應偶地址,高位字節對應奇地址。例如,向 TXCMD中寫(xiě)入00C0H,則可將00h寫(xiě)入305H,將C0H寫(xiě)入304H。 系統工作時(shí),應首先對網(wǎng)卡芯片進(jìn)行初始化,即寫(xiě)寄存器LINECTL、RXCTL、RCCFG、BUSCT。發(fā)數據時(shí),寫(xiě)控制寄存器TXCMD,并將發(fā)送數據長(cháng)度寫(xiě)入TXLENG,然后將數據依次寫(xiě)入PORT0口,如將第一個(gè)字節寫(xiě)入300H,第二個(gè)字節寫(xiě)入301H,第三個(gè)字節寫(xiě)入300H,依此類(lèi)推。網(wǎng)卡芯片將數據組織為鏈路層類(lèi)型并添加填充位和CRC校驗送到網(wǎng)絡(luò )同樣,單片機查詢(xún)ISO的數據,當有數據來(lái)到后,讀取接收到的數據幀。讀數據時(shí),單片機依次讀地址300H,301H,300H,301H…。
3.2 單片機工作流程 如圖人所示,單片機首先初始化網(wǎng)絡(luò )設備。網(wǎng)卡IP地址和物理地址存在X25045中,單片機復位后首先讀取這些數據以初始化網(wǎng)絡(luò )。

單片機主要完成數據的解包打包。當有數據從RJ45過(guò)來(lái),單片機對數據報進(jìn)行分析,如果是ARP(物理地址解析)數據包,則程序轉入ARP處理程序(因為在網(wǎng)絡(luò )上正是ARP協(xié)議將IP地址和物理地址相映射)。如果是IP數據包且傳輸層使用UDR協(xié)議,端口正確,則認為數據報正確,數據解包后,將數據部分通過(guò)串口輸出。反之,如果單片機從串口收到數據,則將數據按照UDP協(xié)議格式打包,送入CS8900,由CS8900將數據輸出到局域網(wǎng)中。 可以知道,單片機主要處理協(xié)議的網(wǎng)絡(luò )層和傳輸層,鏈路層部分由CS8900完成。因單片機將數據接收后完整不變地通過(guò)串口輸出,所以將應用層交付用戶(hù)來(lái)處理,用戶(hù)可以根據需求對收到的數據進(jìn)行處理。 在單片機的程序處理中,包含了完整的APR地址解析協(xié)議。通過(guò)在單片機中正確設置網(wǎng)關(guān)、子網(wǎng)掩碼等參數,實(shí)現了通過(guò)局域網(wǎng)單片機與外部因特網(wǎng)上的終端設備的數據通信。
4 應用 這種嵌入式TCP/IP協(xié)議的單片機系統板,具有成本低、硬件少、占用面積少、傳輸速度快、使用方便等優(yōu)點(diǎn)。適用于現有的網(wǎng)絡(luò )傳輸系統,有著(zhù)廣泛的應用前景,特別是數據采集、數據傳輸領(lǐng)域。目前,在屏幕板數據成像、遠程數據采集系統中被使用。
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
tcp/ip相關(guān)文章:tcp/ip是什么
通信相關(guān)文章:通信原理
評論