張儒
摘要:本文采用體積小、功能強(qiáng)大的CP2200作為以太網(wǎng)的通信接口控制芯片。介紹CP2200的功能,并以其為核心設(shè)計網(wǎng)絡(luò)通訊模塊。經(jīng)過測試驗證表明,該網(wǎng)絡(luò)通訊模塊,運行穩(wěn)定可靠,實時性較高,抗干擾能力強(qiáng)。本系統(tǒng)在儀器的測試和生產(chǎn)中得到廣泛使用,有著良好的應(yīng)用前景。
關(guān)鍵詞: CP2200;網(wǎng)絡(luò);單片機(jī);
中圖分類號:TP273 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2016)01(a)-0000-00
1 CP2200功能結(jié)構(gòu)
CP2200支持IEEE802.3MAC控制協(xié)議,不僅支持10 BASE-T的網(wǎng)絡(luò),而且完全兼容100/1000 BASE-T網(wǎng)絡(luò),可以工作在全雙工或半雙工模式,能進(jìn)行自動極性檢測和糾正,具有碰撞自動重發(fā)的功能,能夠自動填充和生成CRC,支持廣播和多播MAC尋址。CP2200有2個LED燈的控制信號線,可以驅(qū)動10mA電流。CP2200內(nèi)部不僅有2k字節(jié)的發(fā)送緩存區(qū)和4k字節(jié)的接收緩存取,同時有8k字節(jié)的內(nèi)部非易失性FLASH存儲器。片內(nèi)的FLASH存儲器,可以用于存儲用戶參數(shù)、Web服務(wù)器內(nèi)容或作為通用非易失性存儲器,最后的6個存儲單元工廠預(yù)編程的唯一48位MAC地址。CP2200工作的溫度在-40℃~+85℃之間。
CP2200芯片具有30 Mb/s速率的并行主機(jī)接口,且有8位復(fù)用或非復(fù)用方式,即Intel或Motorola總線方式。非復(fù)用方式時,并行接口的讀寫1字節(jié)數(shù)據(jù)時,通常需要260ns,復(fù)用方式則需要300ns。為了提高系統(tǒng)的運行速度,本系統(tǒng)采用非復(fù)用總線方式,且在該方式下采用連續(xù)讀寫操作,使得數(shù)據(jù)傳輸速率達(dá)到30Mbps。非復(fù)用Intel總線方式下,具體數(shù)據(jù)幀的讀寫分別如圖1和圖2所示。CP2200有28腳QFN和48腳TQFP兩種封裝。20腳QFN封裝僅支持復(fù)用方式,因此本系統(tǒng)選用48腳TQFP封裝。
讀操作流程如下
(1)/RD在TAS期間保持高電平。TAS是地址總線的建立時間,≥30ns。
(2)/RD在TRD期間保持低電平。TRD是讀有效的時間,≥160ns。
(3)在/RD的下降沿,把數(shù)據(jù)放到數(shù)據(jù)總線上。TVD1是數(shù)據(jù)總線的建立時間, ≤140ns。
(4)TVD2,是數(shù)據(jù)總線從/RD的上升沿到恢復(fù)到高阻態(tài)的時間,通常為60ns。
寫操作流程如下:
(1)/WR在TAS期間保持高電平。TAS是地址總線的建立時間,≥30ns。
(2)/WR在TWR期間保持低電平。TWR是讀有效的時間,≥120ns。
(3)TDS是數(shù)據(jù)總線的建立時間,≥40ns。
(4)TDH是數(shù)據(jù)總線的保持時間,≥20ns。
2 硬件設(shè)計
CP2200芯片外圍的硬件電路包括復(fù)位電路、晶振電路、I/O并行接口電路、網(wǎng)絡(luò)接口電路等。如圖3所示為電路原理圖。
復(fù)位管腳/RST通過1K電阻被拉高,并且接到單片機(jī)的P1.5管腳,由單片機(jī)進(jìn)行復(fù)位控制。CP2200的工作頻率為20Mhz,通過外部晶振接入。CP2200與單片機(jī)的并行接口電路按非復(fù)用總線方式連接,MUXEN和MOTEN都接地。地址總線A0~A7接單片機(jī)的P3.0~P3.7。數(shù)據(jù)總線D0~D7接處理器的P4.0~P4.7。讀寫信號/RD和/WR,片選信號/CS均接到單片機(jī),由單片機(jī)進(jìn)行控制。中斷信號/INT接到單片機(jī),向單片機(jī)發(fā)送中斷請求。網(wǎng)絡(luò)通訊信號與RJ-45之間通過網(wǎng)絡(luò)變壓器E2023NL進(jìn)行隔離。CP2200芯片的兩個管腳LINK和ACT控制兩個發(fā)光二極管,用于指示網(wǎng)絡(luò)控制器的工作狀態(tài)。 為減少干擾,系統(tǒng)穩(wěn)定地運行,需要所有的地共地,因此在每個電源和地之間串上一個0.1μF的電容,電源的工作電壓取+3.3V。
3 軟件設(shè)計
TCP/IP協(xié)議是基于連接的協(xié)議,在收發(fā)數(shù)據(jù)前,發(fā)送端和接收端要進(jìn)行3次握手,然后建立連接。數(shù)據(jù)從A端傳到B端,B端會回送確認(rèn)包給A端。因此TCP/IP協(xié)議是一種可靠性較高的數(shù)據(jù)通信方式。UDP協(xié)議是基于非連接的協(xié)議,發(fā)送端和接收端不需要建立連接,直接發(fā)送數(shù)據(jù)包。數(shù)據(jù)從A端傳到B端,B端不會回送確認(rèn)包給A端。因此UDP協(xié)議適的可靠性不高。本系統(tǒng)應(yīng)用于石油測井的現(xiàn)場作業(yè)中,可靠性和實時性要求比較高,因此采用了TCP/IP協(xié)議。
CP2200通過EMIF接口與單片機(jī)進(jìn)行數(shù)據(jù)交互,本系統(tǒng)中單片機(jī)的外部中斷0和定時器0用于TCP/IP協(xié)議棧。由于單片機(jī)的處理速度和內(nèi)部資源有限,不可能集成所有的TCP/IP協(xié)議,因此需要對TCP/IP協(xié)議進(jìn)行裁剪。結(jié)合本系統(tǒng)的實際需要,進(jìn)行裁剪。使用silicon公司推出的TCP/IP設(shè)置軟件TCP/IP ConfigurationWizard,可以配置TCP/IP協(xié)議棧的參數(shù),對協(xié)議棧進(jìn)行設(shè)置。
程序設(shè)計采用C/S的工作模式,軟件的工作流程如圖4所示。本系統(tǒng)為服務(wù)器,測井儀器為客戶端。本系統(tǒng)的單片機(jī)使用C語言編程,使用keil51編譯器。使用配置向?qū)CP/IP ConfigurationWizard生成程序的代碼框架。mn_server()啟動工作后,有中斷服務(wù)程序和回調(diào)函數(shù)兩種交互方式。本系統(tǒng)采用回調(diào)函數(shù)實現(xiàn)與主進(jìn)程進(jìn)行交互,使用回調(diào)函數(shù)callback_app_server_idle()采集儀器的數(shù)據(jù)。當(dāng)發(fā)送緩沖區(qū)非空時,mn_server()周期性的調(diào)用callback_app_server_idle()函數(shù)。
4 測試驗證
網(wǎng)絡(luò)連接設(shè)置用于設(shè)置與測試系統(tǒng)網(wǎng)絡(luò)連接的IP、端口等參數(shù),并顯示連接狀態(tài)。將上位機(jī)IP地址改為192.168.1.2,子網(wǎng)掩碼255.255.255.0,默認(rèn)網(wǎng)關(guān)192.168.1.1,本系統(tǒng)的IP地址在程序中設(shè)置為192.168.1.3。網(wǎng)絡(luò)連接設(shè)置窗口如圖5所示,某只測井儀器的測試界面如圖6所示。測試中,測試系統(tǒng)和儀器的通訊效果良好。
5 結(jié)束語
本系統(tǒng)使用CP2200配合裁剪過的TCP/IP協(xié)議棧,組建了速度快、成本低的網(wǎng)絡(luò)通訊模塊。CP2200具有多種集成功能,有效地減少了單片機(jī)的負(fù)載,內(nèi)部的各單元設(shè)置靈活簡易,給以太網(wǎng)控制器的設(shè)計帶來了許多的方便。經(jīng)測試驗證表明,該網(wǎng)絡(luò)通訊模塊運行穩(wěn)定可靠,實時性較高,抗干擾能力強(qiáng)。本文研制的儀器測試系統(tǒng),提高了數(shù)據(jù)處理效率,減小了硬件資源的占用量,而且滿足了高穩(wěn)定性、高實時性和高集成化的設(shè)計要求,為儀器測試帶來了方便。目前該系統(tǒng)已在儀器的測試和生產(chǎn)中得到廣泛使用,有著良好的應(yīng)用前景。
參考文獻(xiàn):
[1] 喻向陽.基于CP2200的數(shù)據(jù)采集接口. 化工自動化及儀表,2007.34(6)
[2] 李國.基于CP2200的嵌入式以太網(wǎng)接口設(shè)計.微計算機(jī)信息.2007.23
[3] Silabs公司.CP2200數(shù)據(jù)手冊.2007