《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于井下廣播系統(tǒng)的CAN轉(zhuǎn)以太網(wǎng)網(wǎng)關(guān)設(shè)計(jì)
基于井下廣播系統(tǒng)的CAN轉(zhuǎn)以太網(wǎng)網(wǎng)關(guān)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2014年第2期
劉曉文,王 龍,王 存
(中國(guó)礦業(yè)大學(xué) 信息與電氣工程學(xué)院,江蘇 徐州221008)
摘要: 隨著信息化技術(shù)的快速發(fā)展,人們對(duì)煤礦安全的要求越來(lái)越高。當(dāng)發(fā)生危險(xiǎn)時(shí),及時(shí)對(duì)井下作業(yè)人員提供信息指導(dǎo),將財(cái)產(chǎn)損失降到最低,是當(dāng)前急需解決的問(wèn)題?;诿旱V井下廣播系統(tǒng),提出了以NXP公司的LPC2378為主控制器的硬件設(shè)計(jì),外圍增加CAN收發(fā)器、以太網(wǎng)收發(fā)器來(lái)實(shí)現(xiàn)現(xiàn)場(chǎng)總線與工業(yè)以太網(wǎng)的互連,發(fā)揮了現(xiàn)場(chǎng)總線和工業(yè)以太網(wǎng)各自的優(yōu)勢(shì),方便了管理人員對(duì)作業(yè)人員的指導(dǎo),提高了煤礦生產(chǎn)的安全性。
中圖分類號(hào): TN91
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2014)02-0016-03
Design of CAN-Ethernet gateway based on underground broadcasting system
Liu Xiaowen,Wang Long,Wang Cun
School of Information and Electrical Engineering,CUMT,Xuzhou 221008,China
Abstract: With the rapid development of information technology,people demand more and more on the coal mine safety. It is an urgent thing to provide information for the mine workers timely to escape and minimize the loss of property when a danger happens. Based on mine broadcasting system, a new design is proposed in this paper. The main hardware consists of NXP′s LPC2378 controller and peripheral CAN transceiver and Ethernet transceiver in order to make an interconnection of fieldbus and industrial Ethernet. The new design makes full use of fieldbus and industrial Ethernet respectively,and it is very convenient for mangers to guide the workers directly. It has great practical significance for raising the safety of the coal production.
Key words : fieldbus;industrial Ethernet;gateway

    廣播系統(tǒng)是為井下的語(yǔ)音通信而設(shè)計(jì)的,主要用于煤礦調(diào)度室對(duì)井下工作人員喊話、傳遞通知、播放音樂(lè)、緊急情況通報(bào)以及引導(dǎo)科學(xué)避險(xiǎn)等工作。在通信的過(guò)程中完全采用CAN總線或者是工業(yè)以太網(wǎng)[1-2]都是很困難的。因?yàn)镃AN總線本身的優(yōu)勢(shì)在于控制功能方面,若單獨(dú)采用CAN總線傳輸語(yǔ)音數(shù)據(jù),則會(huì)在數(shù)據(jù)傳輸?shù)男史矫娲蟠蛘劭邸6I(yè)以太網(wǎng)具有傳輸數(shù)據(jù)的優(yōu)勢(shì),但單獨(dú)使用又不便于語(yǔ)音數(shù)據(jù)的傳輸控制?;谝陨蠁?wèn)題,本文設(shè)計(jì)了一個(gè)較為方便實(shí)用的轉(zhuǎn)換器,可以使得煤礦企業(yè)方便地使用上位機(jī)通過(guò)工業(yè)以太網(wǎng)向井下設(shè)備傳送語(yǔ)音數(shù)據(jù),發(fā)揮現(xiàn)場(chǎng)總線和工業(yè)以太網(wǎng)各自的優(yōu)勢(shì),打造一個(gè)高效、安全的煤礦網(wǎng)絡(luò)。
1 煤礦井下廣播系統(tǒng)介紹
    煤礦井下廣播系統(tǒng)由井上、井下兩部分組成。井上部分位于調(diào)度室,由電腦、主站(負(fù)責(zé)語(yǔ)音編碼發(fā)送)、網(wǎng)關(guān)組成;井下部分由網(wǎng)關(guān)、基站(負(fù)責(zé)語(yǔ)音的解碼播放)組成,分布于井下的工作面、掘進(jìn)面、運(yùn)輸巷等。
    工作原理:主站將PC傳來(lái)的語(yǔ)音數(shù)據(jù)進(jìn)行編碼,然后將編碼后的數(shù)據(jù)經(jīng)CAN總線傳輸?shù)降谝粋€(gè)網(wǎng)關(guān),網(wǎng)關(guān)采用實(shí)時(shí)性較高的UDP協(xié)議作為傳輸層協(xié)議。網(wǎng)關(guān)接收到數(shù)據(jù)后立刻將CAN數(shù)據(jù)打包成以太網(wǎng)幀傳輸給第二個(gè)網(wǎng)關(guān)設(shè)備,該設(shè)備接收到以太網(wǎng)數(shù)據(jù)后根據(jù)協(xié)議轉(zhuǎn)換規(guī)則將其轉(zhuǎn)換成CAN總線數(shù)據(jù),并傳輸給掛接到CAN總線上的基站,基站再對(duì)CAN數(shù)據(jù)進(jìn)行解碼并通過(guò)喇叭播放出來(lái),這樣就完成了語(yǔ)音傳輸?shù)娜窟^(guò)程。本文主要針對(duì)此系統(tǒng)進(jìn)行網(wǎng)關(guān)設(shè)計(jì)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 硬件系統(tǒng)框圖

    系統(tǒng)硬件主要由主控器、CAN收發(fā)器、以太網(wǎng)收發(fā)器、RJ45以及電源組成。系統(tǒng)主控器采用NXP的LPC2378[3],該主控器集成1個(gè)以太網(wǎng)接口和2個(gè)CAN接口,所以只要直接外接CAN收發(fā)器和以太網(wǎng)收發(fā)器即可實(shí)現(xiàn)協(xié)議轉(zhuǎn)換功能,其結(jié)構(gòu)框圖如圖1所示。

2.2 以太網(wǎng)接口模塊
    系統(tǒng)要實(shí)現(xiàn)與以太網(wǎng)的互連,就必須配備以太網(wǎng)接口。以太網(wǎng)接口包括MAC控制器、物理層接口PHY、網(wǎng)絡(luò)變壓器和網(wǎng)卡插座RJ45四部分[4-5]。
    系統(tǒng)主控器件LPC2378內(nèi)部集成了MAC控制器,所以不需外接MAC控制器。此處選用的PHY為DM9161A芯片。DM9161A是10/100M以太網(wǎng)物理層接口PHY收發(fā)器,符合IEEE802.3協(xié)議,采用3.3 V供電,支持MII和RMII接口。
    網(wǎng)口插座采用RJ45插座HR911105A,它具有信號(hào)耦合、電氣隔離、阻抗匹配、抑制干擾等優(yōu)點(diǎn)。電路連接原理圖如圖2所示。

 

 

    DM9161A的RMII接口包括發(fā)送數(shù)據(jù)腳TXD[0]、TXD[1]、發(fā)送數(shù)據(jù)使能腳TXEN、接收數(shù)據(jù)腳RXD[0]、RXD[1]、接收錯(cuò)誤腳RXER、載波偵聽腳CRS、參考時(shí)鐘XT2,這些腳以及MII管理接口的管理數(shù)據(jù)時(shí)鐘腳MDC、管理數(shù)據(jù)I/O腳MDIO等均與LPC2378相連。FDX/COLLED#/OP0、SPEEDLED#/OP1、LINK/ACTLED#/OP2均屬于LED接口,分別與3個(gè)LED相連,表示了DM9161A連接的不同狀態(tài),F(xiàn)DX/COLLED#/OP0表示正在運(yùn)行的是全雙工模式,SPEEDLED#/OP1表示連接的速率為100 Mb/s,LINK/ACTLED#/OP2表示在100 Mb/s模式時(shí)連接良好。以太網(wǎng)PHY芯片的TX+、TX-、RX+、RX-、VDD_PHY和AGND信號(hào)與RJ45相連,即與其內(nèi)部網(wǎng)絡(luò)變壓器相連。
2.3 CAN接口模塊
    CAN接口模塊由CAN控制器和CAN收發(fā)器兩部分組成。由于主控器LPC2378本身集成了CAN控制器,這里CAN收發(fā)器采用廣州致遠(yuǎn)電子的CTM8251,該器件具有DC 2 500 V隔離功能、熱保護(hù)、對(duì)電磁干擾具有高抗干擾性等特點(diǎn)。采用了一體化的隔離收發(fā)器,簡(jiǎn)化了電路。CAN控制器與CAN收發(fā)器電路連接如圖3所示。

    CAN收發(fā)器CTM8251采用5 V供電,它的RXD、TXD管腳分別接主控制器內(nèi)部CAN控制器的RD、TD管腳,RXD用來(lái)接收CAN總線的數(shù)據(jù),TXD則用來(lái)發(fā)送CAN數(shù)據(jù)。該模塊預(yù)留有終端電阻的接口,當(dāng)需要接入終端電阻時(shí)使用該接口,可接入120 ?贅的終端電阻,其作用是匹配總線電阻,提高數(shù)據(jù)通信的抗干擾性及可靠性。
3 軟件設(shè)計(jì)
3.1 以太網(wǎng)通信模塊

    以太網(wǎng)主要功能是接收以太網(wǎng)數(shù)據(jù),并將經(jīng)過(guò)協(xié)議轉(zhuǎn)換好的以太網(wǎng)數(shù)據(jù)發(fā)送出去[6-7]。
3.1.1 以太網(wǎng)通信模塊的發(fā)送
    (1)建立發(fā)送描述符
    描述符中的指針設(shè)置為指向即將發(fā)送的一個(gè)數(shù)據(jù)幀或者幀片段。描述符命令區(qū)域中的Size應(yīng)設(shè)置為片段緩沖區(qū)中的字節(jié)數(shù),它使用減1編碼,其他控制信息可以在描述符的控制區(qū)域中指示(interrupt、Last、CRC、Pad位)。在對(duì)描述符執(zhí)行了寫操作之后,通過(guò)將TxProduceIndex寄存器加1來(lái)將描述符移交給硬件。
    (2)TxDMA管理器讀取Tx描述符數(shù)組
    在讀取描述符之后,發(fā)送DMA引擎從存儲(chǔ)器中讀取相關(guān)的幀數(shù)據(jù)并發(fā)送。在傳輸完成之后,TxDMA管理器將狀態(tài)信息寫回狀態(tài)區(qū)域的StatusInfo和StatusHashCRC中。TxConsumeIndex的值只有在狀態(tài)信息提交給存儲(chǔ)器之后才能更新。
    (3)更新ConsumeIndex
    每當(dāng)TxDMA管理器向存儲(chǔ)器提交一個(gè)狀態(tài)字時(shí),表明它完成了描述符的發(fā)送,并讓TxConsumeIndex加1,將描述符移交給設(shè)備驅(qū)動(dòng)軟件。軟件可在硬件移交完成之后重新使用描述符進(jìn)行新的發(fā)送操作。設(shè)備驅(qū)動(dòng)軟件通過(guò)讀取TxConsumeIndex寄存器的值來(lái)查看發(fā)送過(guò)程進(jìn)行的程度,從而能夠了解DMA管理器的進(jìn)程。
3.1.2 以太網(wǎng)通信模塊的接收
    (1)建立接收描述符
    初始化接收描述符和狀態(tài)數(shù)組之后,必須在MAC1寄存器和控制寄存器中使能接收通道。在初始化過(guò)程中,將描述符中的每個(gè)指針設(shè)置為指向數(shù)據(jù)片段緩沖區(qū)。
    (2)RxDMA管理器讀取Rx描述符數(shù)組
    將命令寄存器中的RxEnable位置位,RxDMA管理器讀取由RxDescriptor和RxProduceIndex確定的存儲(chǔ)器地址中的描述符。被讀取的描述符大小由硬件擁有的描述符總數(shù)RxConsumeIndex-RxProduceIndex-1決定。
    (3)RxDMA管理器接收數(shù)據(jù)
    在接收了一個(gè)片段之后,RxDMA管理器將狀態(tài)信息寫回狀態(tài)數(shù)組的StatusInfo和StatusHashCRC字中。以太網(wǎng)模塊將描述符的片段緩沖區(qū)的字節(jié)數(shù)寫入狀態(tài)字的RxSize中。RxProduceIndex的值只在片段數(shù)據(jù)和片段狀態(tài)已提交給存儲(chǔ)器之后更新。RxDMA管理器繼續(xù)接收幀信息,直到描述符數(shù)組為滿狀態(tài)。如果描述符數(shù)組已滿,則以太網(wǎng)硬件將置位IntStatus寄存器的RxFinishedInt位,此時(shí)接收任何新數(shù)據(jù)都將產(chǎn)生溢出錯(cuò)誤和中斷。
    (4)更新ProduceIndex
    每當(dāng)RxDMA管理器提交一個(gè)數(shù)據(jù)片段和相關(guān)的狀態(tài)字給存儲(chǔ)器時(shí),表示它已完描述符的接收,并且讓RxProduceIndex加1,將描述符移交給設(shè)備驅(qū)動(dòng)軟件。當(dāng)處理完接收數(shù)據(jù)時(shí),軟件通過(guò)將描述符移交給硬件使得描述符能夠重新用于新的接收操作。設(shè)備驅(qū)動(dòng)軟件通過(guò)讀取RxProduceIndex寄存器來(lái)監(jiān)視接收處理的進(jìn)度。
3.2 CAN通信模塊
3.2.1 CAN模塊發(fā)送

    發(fā)送程序負(fù)責(zé)將以太網(wǎng)傳輸來(lái)的UDP 數(shù)據(jù)包按照CAN 協(xié)議轉(zhuǎn)換后的CAN報(bào)文傳輸?shù)紺AN 總線上[8]。LPC2378集成2路CAN控制器,每個(gè)CAN控制器都有3個(gè)發(fā)送緩沖器。發(fā)送數(shù)據(jù)時(shí)首先要查詢對(duì)應(yīng)狀態(tài)寄存器(CAN1SR或CAN2SR);其次需要加載4個(gè)寄存器,分別是發(fā)送幀信息寄存器、發(fā)送標(biāo)識(shí)符寄存器、發(fā)送數(shù)據(jù)寄存器A、發(fā)送數(shù)據(jù)寄存器B。發(fā)送幀信息寄存器主要用來(lái)表示發(fā)送的CAN幀的長(zhǎng)度;發(fā)送表示符寄存器用來(lái)表示發(fā)送的CAN幀的標(biāo)示符,發(fā)送數(shù)據(jù)寄存器A和B用來(lái)存放需要發(fā)送的CAN數(shù)據(jù)。每個(gè)寄存器可以存放4 B,所以每次發(fā)送的數(shù)據(jù)最多有8 B。最后在命令寄存器中選擇發(fā)送請(qǐng)求,并選擇相應(yīng)的發(fā)送寄存器發(fā)送數(shù)據(jù)。
3.2.2 CAN模塊接收
    CAN控制器采用中斷接收數(shù)據(jù)。首先對(duì)接收的CAN數(shù)據(jù)進(jìn)行過(guò)濾,若符合設(shè)定的過(guò)濾規(guī)則,則會(huì)觸發(fā)CAN中斷程序。從接收幀狀態(tài)寄存器可以讀取接收數(shù)據(jù)的長(zhǎng)度,在接收標(biāo)識(shí)符寄存器可以查詢到CAN總線數(shù)據(jù)的標(biāo)識(shí)符,接收的數(shù)據(jù)則存放在數(shù)據(jù)寄存器A和接收數(shù)據(jù)寄存器B中,這兩個(gè)寄存器每個(gè)能存放4 B,所以每次最多接收8 B的CAN總線數(shù)據(jù)。
3.3 協(xié)議轉(zhuǎn)換程序設(shè)計(jì)
    網(wǎng)關(guān)的基本功能是實(shí)現(xiàn)以太網(wǎng)與CAN總線之間的通信,所以協(xié)議轉(zhuǎn)換部分是程序設(shè)計(jì)的關(guān)鍵所在[9],具體流程如圖4所示。當(dāng)CAN總線數(shù)據(jù)需要轉(zhuǎn)換成以太網(wǎng)數(shù)據(jù)時(shí),首先將CAN幀的數(shù)據(jù)長(zhǎng)度、CAN標(biāo)識(shí)符、純數(shù)據(jù)提取出來(lái)組成以太網(wǎng)的數(shù)據(jù)區(qū)域,并按照UDP幀格式,依次添加UDP報(bào)頭、IP報(bào)頭,隨后將打包好的IP數(shù)據(jù)傳送給以太網(wǎng)PHY器件,對(duì)其添加以太網(wǎng)幀頭并發(fā)送至以太網(wǎng)。當(dāng)有以太網(wǎng)數(shù)據(jù)需要轉(zhuǎn)換成CAN數(shù)據(jù)時(shí),只要將上述打包順序反過(guò)來(lái)就可以了,依次是:去除IP報(bào)頭,去除UDP報(bào)頭,將純數(shù)據(jù)交由CAN控制器發(fā)送至CAN總線上。

    本系統(tǒng)是基于煤礦井下的語(yǔ)音通信而設(shè)計(jì)的,選擇集成了2路CAN控制器和1路以太網(wǎng)控制器的LPC2378為主控制器,采用實(shí)時(shí)性較高的UDP協(xié)議,有效地解決了在語(yǔ)音通信的過(guò)程中單獨(dú)采用CAN總線數(shù)據(jù)傳輸效率低下、而單獨(dú)采用工業(yè)以太網(wǎng)不便于語(yǔ)音傳控制的問(wèn)題。
參考文獻(xiàn)
[1] 李正軍.現(xiàn)場(chǎng)總線與工業(yè)以太網(wǎng)及其應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:人民郵電出版社,2006.
[2] 夏繼強(qiáng),梁超眾,刑春香.工業(yè)通用網(wǎng)關(guān)設(shè)計(jì)及其關(guān)鍵技術(shù)研究[J].電子技術(shù)應(yīng)用,2010,36(2):118-121.
[3] LPC2378器件用戶手冊(cè)[Z].廣州周立功單片機(jī)發(fā)展有限公司,2008.
[4] 鄭建彬,楊亞莉.以太網(wǎng)和CAN現(xiàn)場(chǎng)總線間的嵌入式網(wǎng)關(guān)設(shè)計(jì)[J].信息技術(shù),2002(11):14-17.
[5] 袁學(xué)文.CAN總線與以太網(wǎng)互連系統(tǒng)設(shè)計(jì)[D].武漢:武漢大學(xué)圖書館,2004.
[6] 葉加青,李軍.CAN總線與Ethernet互連嵌入式研究與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2010(9):45-47,52.
[7] 王廣維,張浩然.基于ARM和W5100的嵌入式以太網(wǎng)通信接口設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2011,30(5):50-53.
[8] 王保中,涂亞慶,張麗娟.工業(yè)以太網(wǎng)與CAN現(xiàn)場(chǎng)總線比較和應(yīng)用方案分析[J].工業(yè)儀表與自動(dòng)化裝置,2006(5):10-12.
[9] 張濤,喬毅.一種現(xiàn)場(chǎng)總線與以太網(wǎng)互連中協(xié)議轉(zhuǎn)換的設(shè)計(jì)[J].儀器儀表用戶,2005(1):50-51.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。