基于C8051F310和CS8900A的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)平臺設(shè)計(jì)
1. 3 硬件電路分析和設(shè)計(jì)
本實(shí)驗(yàn)平臺采用C805lF310作為控制器,而以太網(wǎng)控制芯片CS8900A也是主要的一個(gè)工作部件,用于完成對網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送和接收。網(wǎng)絡(luò)隔離變壓器E2023是和芯片CS8900A配套使用的,用于將外部線路與CS8900A隔開,防止干擾,并可實(shí)現(xiàn)帶電插拔功能。此外,CS8900A還有兩個(gè)接口,一個(gè)是用來和用戶模塊連接的RS232串行接口(用MAX232芯片進(jìn)行電平轉(zhuǎn)換),另一個(gè)是用來連接網(wǎng)絡(luò)的RJ45接口。
C805lF310通過數(shù)據(jù)線、地址線和控制線與CS8900A相連。它可通過等實(shí)現(xiàn)對CS8900A的工作方式的控制和讀寫操作。當(dāng)CS8900A有硬件復(fù)位或軟件復(fù)位時(shí),它將默認(rèn)成8位工作模式。本設(shè)計(jì)采用8位模式,這樣,C805lF310的P1口與CS8900A的低8位數(shù)據(jù)線相連。CS8900A與C8051F310之間的數(shù)據(jù)傳輸采用默認(rèn)的I/O模式,因此,讀寫管腳被置高,以關(guān)閉Memory方式。在此模式下,用3根地址線就可以實(shí)現(xiàn)對所有寄存器的訪問,只要將管腳SAl、SA2和SA3對應(yīng)接到C8051F310的地址線上即可。實(shí)際上,除了為保證缺省偏移地址(0X300H)須將SA8和SA9置高外。其余不用的地址線都接入低電平。本文引用地址:http://2s4d.com/article/173399.htm
2 實(shí)驗(yàn)平臺的軟件設(shè)計(jì)
本系統(tǒng)的軟件部分主要包括計(jì)算機(jī)程序、單片機(jī)程序及以太網(wǎng)芯片CS8900A的驅(qū)動(dòng)程序。
2.1 計(jì)算機(jī)程序
計(jì)算機(jī)程序主要指的是實(shí)驗(yàn)界面。這是人機(jī)交互的窗口。通過該界面,學(xué)生可以控制并查看發(fā)送和接收流程。這樣,可在發(fā)送數(shù)據(jù)時(shí),輸入要發(fā)送的內(nèi)容,選擇使用的協(xié)議,并控制發(fā)送流程,然后查看并分析各層數(shù)據(jù);而在接收數(shù)據(jù)時(shí),則可通過分析收到的數(shù)據(jù)包來分析使用的協(xié)議。
2.2 CS8900A的驅(qū)動(dòng)程序設(shè)計(jì)
在8位I/0模式下,CS8900A不支持中斷方式。因此,C805lF310采用查詢方式與CS8900A通信。在CS8900A開始工作之前,系統(tǒng)必須進(jìn)行一定的初始化,以確定它的工作模式。在主機(jī)與網(wǎng)絡(luò)交換數(shù)據(jù)的過程中。還需要不斷地對CS8900A的內(nèi)部寄存器進(jìn)行讀寫操作。通常在I/0模式下,MCU可以通過操作CS8900A的幾個(gè)主要的寄存器來實(shí)現(xiàn)對CS8900A中所有內(nèi)部寄存器進(jìn)行讀寫,這幾個(gè)主要的工作寄存器有:
◇LINECTL(0112H):可決定CS8900A的基本配置和物理接口。其初始值為00d3H,可選擇物理接口為10BASE-T,并使能設(shè)備的發(fā)送和接收控制位:
◇RXCTL (0104H):控制CS8900A接收特定的數(shù)據(jù)報(bào)。初始值為0d05H,可接收網(wǎng)絡(luò)上的廣播或者目標(biāo)地址同本地物理地址相同的正確數(shù)據(jù)
報(bào):
◇RXCFG(0102H):可控制CS8900A接收特定的數(shù)據(jù)報(bào)并引發(fā)中斷??稍O(shè)置為0103H:
◇BUSCT(0116H):控制芯片的I/0接口的一些操作。設(shè)置初始值為8017H,可打開CS8900A的中斷總控制位:
◇ISQ (0120H):ISQ是CS8900A的中斷狀態(tài)寄存器,可在內(nèi)部映射接收中斷狀態(tài)寄存器和發(fā)送中斷狀態(tài)寄存器的內(nèi)容:
◇PORTO(0000H):發(fā)送和接收數(shù)據(jù)時(shí),MCU通過PORT0傳遞數(shù)據(jù);
◇TXCMD(0004H):為發(fā)送控制寄存器,如果寫入數(shù)據(jù)00COH,那么CS8900A將在全部數(shù)據(jù)寫入后開始發(fā)送數(shù)據(jù);
◇TXLENG(0006H):發(fā)送數(shù)據(jù)長度寄存器,發(fā)送數(shù)據(jù)時(shí),首先寫入發(fā)送數(shù)據(jù)長度,然后將數(shù)據(jù)通過PORT0寫入芯片。
評論