摘 要: 文章提出了以DS80C400為核心處理器將多路CAN網(wǎng)絡(luò)與多路以太網(wǎng)互連的嵌入式智能網(wǎng)橋?qū)崿F(xiàn)方案。給出了 DS80C400 MII與外部物理設(shè)備之間的連接,詳細(xì)闡述JAVAKIT在WINDOWS開發(fā)平臺下的配置方法,系統(tǒng)規(guī)劃了TINI OS下系統(tǒng)軟件的開發(fā)框架與程序編制方法。利用DS80C400微控制器開發(fā)嵌入式系統(tǒng),可以方便地開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng),大大提高開發(fā)效率。
關(guān)鍵詞:CAN ,以太網(wǎng), DS80C400 ,嵌入式智能網(wǎng)橋
0 引言
目前,各類智能網(wǎng)橋設(shè)計(jì)方案基本都是CPU+MAC+PHY+RTOS+TCP/IP STACK的方式,如:PC Gateway+專用網(wǎng)、32位MCU+RTOS、8位或16位單片機(jī)+網(wǎng)絡(luò)協(xié)議包,它們在實(shí)時(shí)性、可靠性、開發(fā)周期、實(shí)現(xiàn)難度、價(jià)格、開放性和通信效率等方面各有千秋。
PC Gateway+專用網(wǎng):該方案采用專用網(wǎng)絡(luò)(如RS232、RS485、CANBUS等)可以連接多種單片機(jī)系統(tǒng)。但存在如下缺點(diǎn):需要依賴PC機(jī)作為網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換,專用網(wǎng)絡(luò)布線極為不便;需要在PC機(jī)上安裝價(jià)格昂貴的專門的協(xié)議轉(zhuǎn)換軟件。
32位MCU+RTOS:采用32位的高性能嵌入式處理器,在RTOS(實(shí)時(shí)多任務(wù)操作系統(tǒng))平臺上進(jìn)行軟件開發(fā),該方案可以完成很多復(fù)雜的功能。但這種方案存在如下缺點(diǎn):高性能嵌入式處理器價(jià)格較貴,開發(fā)周期長;需要購買昂貴的RTOS軟件,對開發(fā)人員的開發(fā)能力要求較高。
8位或16位單片機(jī)+網(wǎng)絡(luò)協(xié)議包:該方案有如下優(yōu)點(diǎn):不依賴PC機(jī)或高性能嵌入式處理器,真正實(shí)現(xiàn)8位或16位單片機(jī)系統(tǒng)直接接入網(wǎng)絡(luò),整個(gè)系統(tǒng)完全自給自足;使用外圍器件少,系統(tǒng)成本低。但是這種方法在實(shí)現(xiàn)過程中也存在一些問題,如8位或16位單片機(jī)的資源相對較少,提供的功能有限。隨著科技的發(fā)展,一些高速度的單片機(jī)(如DS80C400)己能基本滿足通常的嵌入式產(chǎn)品對處理性能的要求,采用軟件來實(shí)現(xiàn)各種協(xié)議處理,便于將來在不改變硬件的情況下,只需改變內(nèi)置程序即可升級整個(gè)嵌入式系統(tǒng)的功能。本文提出以DS80C400為核心處理器的CAN總線網(wǎng)絡(luò)與以太網(wǎng)網(wǎng)互連的一種方案,實(shí)現(xiàn)了多路CAN總線網(wǎng)與以太網(wǎng)數(shù)據(jù)互聯(lián)。
1 總體設(shè)計(jì)
智能(CAN-ETHERNET)網(wǎng)橋作為以太網(wǎng)和現(xiàn)場總線網(wǎng)絡(luò)數(shù)據(jù)傳輸交換的樞紐,完成從CAN到以太網(wǎng)或是從以太網(wǎng)到CAN網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)發(fā)功能。同時(shí),智能網(wǎng)橋還是一個(gè)Web服務(wù)器,Web Server將參數(shù)顯示和監(jiān)控等功能均通過網(wǎng)頁的統(tǒng)一界面呈現(xiàn)給用戶??蛻魴C(jī)不需運(yùn)行專用的監(jiān)控軟件,只需運(yùn)行通用的瀏覽器來調(diào)用分散在各個(gè)受控設(shè)備中的嵌入式Web Server上的監(jiān)控參數(shù)顯示頁面,就能達(dá)到監(jiān)控設(shè)備的目的。
硬件結(jié)構(gòu)框圖如圖1所示:
2 DS80C400以太網(wǎng)控制模塊
DS80C400的是一款高集成度8051內(nèi)核處理器,內(nèi)部嵌入功能強(qiáng)大的ROM固件,提供了強(qiáng)大的網(wǎng)絡(luò)連接和網(wǎng)絡(luò)支持功能。DS80C400的超低功耗特性是其它微處理器所無法比擬的。DS80C400芯片上10/100兆MAC和IEEE802.3Mll以及ENDEC PHY的標(biāo)準(zhǔn)接口兼容。
DS80C400 MII模塊主要由緩沖區(qū)控制單元(BCU)、命令狀態(tài)寄存器(CSR)、MAC物理地址、MII 管理模塊、地址檢查模塊、接收/發(fā)送緩沖存儲、電源管理模塊等組成,其結(jié)構(gòu)圖如圖2所示。
緩沖區(qū)控制單元(BCU): 緩沖區(qū)控制單元(BCU)是DS80C400的以太網(wǎng)接口的中心控制單元。BCU通過一系列的SFR調(diào)節(jié)CPU,控制以太網(wǎng)模塊的讀/寫活動。
命令狀態(tài)寄存器(CSR):CSR寄存器本質(zhì)上是定義以太網(wǎng)控制器的操作特性。CSR寄存器包括下面幾項(xiàng):
MAC物理地址:發(fā)送,接受和流控制設(shè)置;地址檢查模塊使用的組播哈希表;地址檢查模塊需要的過濾模式和好/壞幀控制;VLAN標(biāo)簽標(biāo)識符;喚醒幀過濾器;串行的MII物理設(shè)備管理總線的寄存器界面。
MII 管理模塊:MII管理模塊允許主機(jī)從32個(gè)寄存器中的任意一個(gè)讀取狀態(tài)信息。MII管理模塊通過2線的串行接口和外部物理設(shè)備進(jìn)行通信。
MII I/O模塊:MII 1/0模塊支持所有的在DS80C400的MAC和外部物理設(shè)備之間的數(shù)據(jù)發(fā)送和接收,同時(shí)監(jiān)控由PHY提供的網(wǎng)絡(luò)狀態(tài)信號。
地址檢查模塊:以太網(wǎng)控制器的地址檢查模塊監(jiān)控所有到來包的目的地址,然后決定是地址是否能夠通過由CPU設(shè)置的過濾標(biāo)準(zhǔn)。決定幀是廣播還是組播的地址過濾的結(jié)果和位由BCU通過包的接收狀態(tài)報(bào)告給CPU。
接收/發(fā)送緩沖存儲:DS80C400以太網(wǎng)控制器使用8KB的內(nèi)部SRAM作為發(fā)送/接收包緩沖區(qū)。CPU可以使用MOVX指令對這個(gè)SRAM進(jìn)行讀/寫訪問。
電源管理模塊:DS80C400以太網(wǎng)控制器包含了一個(gè)電源管理模塊,它可以使以太網(wǎng)控制器通過CPU進(jìn)入休眠模式,這樣當(dāng)沒有以太網(wǎng)通信要處理時(shí)以便節(jié)約能源。
3 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)以DS80C400為核心處理器,采用PCA82C250為CAN總線收發(fā)器,用SJA1000作總線控制器,以太網(wǎng)交換電路主要是采用五口交換芯片RTL8305SB來實(shí)現(xiàn),用100BASE_FX光纖收發(fā)器完成以太網(wǎng)物理層數(shù)據(jù)傳輸。以下著重介紹DS80C400 MII模塊與外部物理設(shè)備之間的連接。
DS80C400 MII管理模塊通過2線串行接口與外部物理設(shè)備相連,MDC提供串行時(shí)鐘信號,MDIO則作為I/O口與外設(shè)進(jìn)行通信。MII I/O模塊支持DS80C400 MAC與外部物理設(shè)備之間的發(fā)送與接收數(shù)據(jù)傳輸,并且通過外設(shè)提供的信號監(jiān)控網(wǎng)絡(luò)的狀態(tài)。發(fā)送接口由TXCLK,TX_EN,TXD[3:0]組成,其中,TXCLK是由外設(shè)提供的發(fā)送時(shí)鐘,對于10MBPS操作,TXCLK應(yīng)當(dāng)運(yùn)行在2.5MHZ,而100MBPS,TXCLK應(yīng)至少運(yùn)行在25MHZ.TXD[3:0]四位數(shù)據(jù)總線發(fā)送幘到外設(shè)。接收接口由RXCLK、RX_DV、RX_ER、RXD[3:0]組成,其中,RXCLK是由外設(shè)提供的接收時(shí)鐘,其時(shí)鐘要求與發(fā)送接口類同。RXD[3:0]四位數(shù)據(jù)總線接收從外設(shè)發(fā)送來的幀。RX_DV=1表示接收有效,RX_ER指出接收錯(cuò)誤。MII也能通過外設(shè)提供的CRS、COL信號監(jiān)控網(wǎng)絡(luò)狀態(tài)。
DS80C400 MII與外部物理設(shè)備連接如圖3所示:
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)是整個(gè)設(shè)計(jì)中最為重要部分之一,利用DS80C400進(jìn)行嵌入式系統(tǒng)開發(fā)并不像標(biāo)準(zhǔn)8051單片機(jī)開發(fā)那樣簡單,在除了KEIL C軟件環(huán)境外,它還需要特定的軟件開發(fā)平臺,DS80C400內(nèi)部強(qiáng)大的ROM功能,使得系統(tǒng)軟件的開發(fā)周期短,系統(tǒng)功能強(qiáng)大。
4.1 DS80C400軟件開發(fā)平臺
DALLAS公司為DS80C400提供了兩種串行加載工具,MTK和JAVAKIT。其中MTK簡潔好用,但是目前MTK僅僅支持WINDOWS平臺。JAVAKIT是一款基于JAVA的圖形界面程序。JAVAKIT的運(yùn)行需要以下幾個(gè)附加軟件同時(shí)運(yùn)行:JAVA Development Environment;Java Communications API;TINI Software Development Kit.。AVAKIT 可以應(yīng)用于WINDOWS,LINUX以及MAC OSX平臺,但是JAVAKIT的配置雖然比較煩鎖。應(yīng)當(dāng)注意的是,目前網(wǎng)絡(luò)上流行的javacomm3.0并不支持WINDOWS,當(dāng)用WINDOWS作為開發(fā)平臺時(shí),要下載javacomm2.0才能正確配置JAVAKIT.
在PC機(jī)的命令行界面正確配置JAVAKIT需注意如下命令配置:
?。?)set path=%path%; X:\jdk\bin;
?。?)set classpath=X:\jdk\lib\comm.jar;
(3)set classpath=X:tini\bin\tini.jar;%classpath%
4.2 系統(tǒng)實(shí)現(xiàn)
DS80C400內(nèi)部ROM嵌入的TINI OS使各個(gè)任務(wù)相互獨(dú)立且具有不同的優(yōu)先級來保證緊急任務(wù)及時(shí)響應(yīng),從而有效地實(shí)現(xiàn)任務(wù)調(diào)度。內(nèi)部嵌入的工業(yè)標(biāo)準(zhǔn)SOCKET套接字方便了網(wǎng)絡(luò)系統(tǒng)的開發(fā)。
系統(tǒng)軟件框架如圖4所示:
?。?)任務(wù)劃分
本系統(tǒng)根據(jù)各個(gè)任務(wù)的重要性,把整個(gè)模塊分成以下幾個(gè)不同優(yōu)先級的應(yīng)用任務(wù),即系統(tǒng)監(jiān)控、CAN數(shù)據(jù)發(fā)送、以太網(wǎng)數(shù)據(jù)發(fā)送、協(xié)議轉(zhuǎn)換、LED顯示、系統(tǒng)配置。
?。?)任務(wù)實(shí)現(xiàn)
任務(wù)劃分以后,各任務(wù)便具有獨(dú)立的堆??臻g,彼此爭奪CPU的使用權(quán)。一旦獲得CPU使用權(quán),就會獨(dú)立運(yùn)行。完成特定的功能。
?。?)任務(wù)的同步與調(diào)度
DS80C400內(nèi)嵌的任務(wù)調(diào)度程序有其獨(dú)到之處,用戶可以直接利用系統(tǒng)的接口函數(shù)編寫應(yīng)用程序,不需要另行開發(fā)?;贒S80C400的CAN-ETHERNET智能網(wǎng)橋在實(shí)驗(yàn)調(diào)試過程中,運(yùn)行狀況良好,工作穩(wěn)定。
5 結(jié)束語
利用DS80C400微控制器作嵌入式系統(tǒng)開發(fā),可以方便地開發(fā)網(wǎng)絡(luò)應(yīng)用系統(tǒng),大大提高開發(fā)效率,這是其它8051單片機(jī)所不能比擬的。將DS80C400用于嵌入式系統(tǒng)開發(fā)有十分廣闊的前景,對推動嵌入式系統(tǒng)在國內(nèi)的應(yīng)用有十分重要的意義。
主要創(chuàng)新點(diǎn):
(1) 在基于8位8051內(nèi)核單片機(jī)上進(jìn)行嵌入式系統(tǒng)開發(fā)。
(2)利用強(qiáng)大的內(nèi)部ROM完成多路CAN-ETHERNET的數(shù)據(jù)轉(zhuǎn)發(fā)功能。
參考文獻(xiàn)
1. DS80C400網(wǎng)絡(luò)微控制器完整的數(shù)據(jù)資料 (PDF, 1.9M, English only)
2. DSTINIM400網(wǎng)絡(luò)微控制器評估板完整的數(shù)據(jù)資料(PDF, 776k, English only)
3.http://www.maxim-ic.com.cn/products/microcontrollers/pdfs/high_speed_micro_user_guide.pdf
4.http://www.maxim-ic.com.cn/products/microcontrollers/pdfs/network_microcontrller_suppement.pdf
5. http://www.maxim-ic.com.cn/products/tini/pdfs/tinispec.pdf
6. http://www.maxim-ic.com.cn/products/tini/pdfs/TINI_GUIDE.pdf
7.王凌、胡海江、張鳳登.分布式環(huán)境下CAN網(wǎng)橋的實(shí)現(xiàn)和性能分析.微計(jì)算機(jī)信息,2005,2.44-45