TCP/IP協(xié)議單片機(jī)在網(wǎng)絡(luò)通信中的數(shù)據(jù)傳輸技術(shù)
·LINECTL(0112H)
LINECTL決定CS8900的基本配置和物理接口。在本系統(tǒng)中,設(shè)置初始值為00d3H,選擇物理接口為10BASE-T,并使能設(shè)備的發(fā)送和接收控制位。
·RXCTL(0104H)
RXCTL控制CS8900接收特定數(shù)據(jù)報(bào)。設(shè)置RXTCL的初始值為0d05H,接收網(wǎng)絡(luò)上的廣播或者目標(biāo)地址同本地物理地址相同的正確數(shù)據(jù)報(bào)。
·RXCFG(0102H)
RXCFG控制CS8900接收到特定數(shù)據(jù)報(bào)后會(huì)引發(fā)接收中斷。RXCFG可設(shè)置為0103H,這樣當(dāng)收到一個(gè)正確的數(shù)據(jù)報(bào)后,CS8900會(huì)產(chǎn)生一個(gè)接收中斷。
·BUSCT(0116H)
BUSCT可控制芯片的I/O接口的一些操作。設(shè)置初始值為8017H,打開(kāi)CS8900的中斷總控制位。
·ISQ(0120H)
ISQ是網(wǎng)卡芯片的中斷狀態(tài)寄存器,內(nèi)部映射接收中斷狀態(tài)寄存器和發(fā)送中斷狀態(tài)寄存器的內(nèi)容。
·PORT0(0000H)
發(fā)送和接收數(shù)據(jù)時(shí),CPU通過(guò)PORT0傳遞數(shù)據(jù)。
·TXCMD(0004H)
發(fā)送控制寄存器,如果寫(xiě)入數(shù)據(jù)00C0H,那么網(wǎng)卡芯片在全部數(shù)據(jù)寫(xiě)入后開(kāi)始發(fā)送數(shù)據(jù)。
·TXLENG(0006H)
發(fā)送數(shù)據(jù)長(zhǎng)度寄存器,發(fā)送數(shù)據(jù)時(shí),首先寫(xiě)入發(fā)送數(shù)據(jù)長(zhǎng)度,然后將數(shù)據(jù)通過(guò)PORT0寫(xiě)入芯片。
以上為幾個(gè)最主要的工作寄存器(為16位),CS8900支持8位模式,當(dāng)讀或?qū)?6位數(shù)據(jù)時(shí),低位字節(jié)對(duì)應(yīng)偶地址,高位字節(jié)對(duì)應(yīng)奇地址。例如,向TXCMD中寫(xiě)入00C0H,則可將00h寫(xiě)入305H,將C0H寫(xiě)入304H。
系統(tǒng)工作時(shí),應(yīng)首先對(duì)網(wǎng)卡芯片進(jìn)行初始化,即寫(xiě)寄存器LINECTL、RXCTL、RCCFG、BUSCT。發(fā)數(shù)據(jù)時(shí),寫(xiě)控制寄存器TXCMD,并將發(fā)送數(shù)據(jù)長(zhǎng)度寫(xiě)入TXLENG,然后將數(shù)據(jù)依次寫(xiě)入PORT0口,如將第一個(gè)字節(jié)寫(xiě)入300H,第二個(gè)字節(jié)寫(xiě)入301H,第三個(gè)字節(jié)寫(xiě)入300H,依此類推。網(wǎng)卡芯片將數(shù)據(jù)組織為鏈路層類型并添加填充位和CRC校驗(yàn)送到網(wǎng)絡(luò)同樣,單片機(jī)查詢ISO的數(shù)據(jù),當(dāng)有數(shù)據(jù)來(lái)到后,讀取接收到的數(shù)據(jù)幀。讀數(shù)據(jù)時(shí),單片機(jī)依次讀地址300H,301H,300H,301H…。
3.2 單片機(jī)工作流程
如圖人所示,單片機(jī)首先初始化網(wǎng)絡(luò)設(shè)備。網(wǎng)卡IP地址和物理地址存在X25045中,單片機(jī)復(fù)位后首先讀取這些數(shù)據(jù)以初始化網(wǎng)絡(luò)。
單片機(jī)主要完成數(shù)據(jù)的解包打包。當(dāng)有數(shù)據(jù)從RJ45過(guò)來(lái),單片機(jī)對(duì)數(shù)據(jù)報(bào)進(jìn)行分析,如果是ARP(物理地址解析)數(shù)據(jù)包,則程序轉(zhuǎn)入ARP處理程序(因?yàn)樵诰W(wǎng)絡(luò)上正是ARP協(xié)議將IP地址和物理地址相映射)。如果是IP數(shù)據(jù)包且傳輸層使用UDR協(xié)議,端口正確,則認(rèn)為數(shù)據(jù)報(bào)正確,數(shù)據(jù)解包后,將數(shù)據(jù)部分通過(guò)串口輸出。反之,如果單片機(jī)從串口收到數(shù)據(jù),則將數(shù)據(jù)按照UDP協(xié)議格式打包,送入CS8900,由CS8900將數(shù)據(jù)輸出到局域網(wǎng)中。
可以知道,單片機(jī)主要處理協(xié)議的網(wǎng)絡(luò)層和傳輸層,鏈路層部分由CS8900完成。因單片機(jī)將數(shù)據(jù)接收后完整不變地通過(guò)串口輸出,所以將應(yīng)用層交付用戶來(lái)處理,用戶可以根據(jù)需求對(duì)收到的數(shù)據(jù)進(jìn)行處理。
在單片機(jī)的程序處理中,包含了完整的APR地址解析協(xié)議。通過(guò)在單片機(jī)中正確設(shè)置網(wǎng)關(guān)、子網(wǎng)掩碼等參數(shù),實(shí)現(xiàn)了通過(guò)局域網(wǎng)單片機(jī)與外部因特網(wǎng)上的終端設(shè)備的數(shù)據(jù)通信。
4 應(yīng)用
這種嵌入式TCP/IP協(xié)議的單片機(jī)系統(tǒng)板,具有成本低、硬件少、占用面積少、傳輸速度快、使用方便等優(yōu)點(diǎn)。適用于現(xiàn)有的網(wǎng)絡(luò)傳輸系統(tǒng),有著廣泛的應(yīng)用前景,特別是數(shù)據(jù)采集、數(shù)據(jù)傳輸領(lǐng)域。目前,在屏幕板數(shù)據(jù)成像、遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)中被使用。
tcp/ip相關(guān)文章:tcp/ip是什么
通信相關(guān)文章:通信原理
評(píng)論