技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于LPC2294的CAN與以太網(wǎng)網(wǎng)關(guān)互聯(lián)的設(shè)計

基于LPC2294的CAN與以太網(wǎng)網(wǎng)關(guān)互聯(lián)的設(shè)計

時間:2013-08-07 15:45:28來源:傳動網(wǎng)

導(dǎo)語:?闡述了以ARM7系列LPC2294為核心的以太網(wǎng)與CAN總線網(wǎng)絡(luò)互聯(lián)的通信網(wǎng)關(guān)實現(xiàn)過程,概述了本網(wǎng)關(guān)中采用的以太網(wǎng)和CAN總線的報文格式及其自定義UDP數(shù)據(jù)報文的結(jié)構(gòu)。并提出了網(wǎng)關(guān)的軟、硬件實現(xiàn)方法。

控制器局域網(wǎng)(ControllerAreaNetwork,CAN)最先由德國BOSCH公司開發(fā),并成為一種國際標準(IS011898)。由于CAN總線具有靈活、可靠、實時、開放性好、糾錯能力強等優(yōu)點,成為目前最有前途的現(xiàn)場總線之一。但任何事物都具有兩面性,CAN總線也有不足之處,由于其收發(fā)器驅(qū)動能力有限,導(dǎo)致總線上可連接的最大節(jié)點數(shù)和最遠直接傳輸距離受到了限制,無法進行遠程控制,這給系統(tǒng)組網(wǎng)帶來了一定的制約條件。相較而言,以太網(wǎng)憑借著成本低、易于組網(wǎng)、擁有眾多應(yīng)用軟硬件的支持且根據(jù)網(wǎng)絡(luò)需求的實際情況,不斷地進行完善和改進,并逐步發(fā)展了標準以太網(wǎng)(10Mbit/s)、快速以太網(wǎng)(100Mbit/s)千兆以太網(wǎng)和萬兆以太網(wǎng)等,成為目前應(yīng)用最為廣泛的局域網(wǎng)絡(luò)技術(shù)。若將以太網(wǎng)與CAN總線互聯(lián),可降低成本,增加系統(tǒng)的最大CAN節(jié)點數(shù),擴大系統(tǒng)的組網(wǎng)范圍,還可實現(xiàn)不同傳輸速度的現(xiàn)場總線子網(wǎng)的相互通信,及其設(shè)備層到管理層的一體化。所以,文中提出一種以太網(wǎng)與CAN總線互聯(lián)的通信網(wǎng)關(guān)設(shè)計方案。

1硬件設(shè)計

圖1所示為本網(wǎng)關(guān)模塊設(shè)計與實現(xiàn)的整體方案框圖,網(wǎng)關(guān)模塊使用LPC2294作為主控制器,μC/OS—II操作系統(tǒng)為平臺,擴展了兩個網(wǎng)卡接口和CAN接口,并通過軟件設(shè)計完成CAN總線協(xié)議與以太網(wǎng)協(xié)議相互轉(zhuǎn)換,最終實現(xiàn)CAN網(wǎng)絡(luò)與以太網(wǎng)之間的雙冗余通信。

網(wǎng)關(guān)互聯(lián)的設(shè)計

硬件電路可劃分為5個部分:控制電路、存儲電路、輔助電路、以太網(wǎng)接口電路和CAN總線接口電路。下面主要對控制電路、以太網(wǎng)接口電路和CAN總線接口電路進行分析。

1.1系統(tǒng)控制器

系統(tǒng)選用ARM處理器LPC2294作為控制芯片,主要是LPC2294具有超強的功能、功耗低及豐富的片上資源,更重要的是集成了4個支持CAN2.0B協(xié)議的CAN控制器,并帶有先進的驗收濾波器,提供了系統(tǒng)的集成度和復(fù)雜度,還提供了系統(tǒng)的穩(wěn)定性。為滿足系統(tǒng)的程序和數(shù)據(jù)存儲需要,外擴了1MB的16位Flash芯片SST39VF160,用于存儲程序代碼。其中Flash的地址線A1~A20連接至LPC2294的A1~A20,數(shù)據(jù)線ED0~ED15通過一個雙電源供電的雙向收發(fā)器連接至LPC2294的DQ0~DQ15,CE#接至LPC2294的CS0,將其分配到Bank0單元,其地址范圍0x80000000~0x80001000。OE#、OW#分別連接至LC2294的OE#和WE#。同時外接了1MB的16位SRAM存儲器IS61LV25616AL,用于堆棧和數(shù)據(jù)的存儲。其中SRAM的地址線A1~A20連接至LPC2294的A0~A19,數(shù)據(jù)線IO0~IO15通過一個雙電源供電的雙向收發(fā)器連接至LPC2294的D0~D15,CE#接至LPC2294的CS1,將其分配到Bank1單元,該地址范圍0x81000030~0x81001000。LB#、UB分別與BLS0、BLS1相連,用于控制8位或16位讀寫數(shù)據(jù)。OE#、OW#分別連接至LC2294的OE#和WE#。

1.2CAN接口電路設(shè)計

系統(tǒng)有兩個CAN接口,其中一個是主接口,另一個是冗余接口,均接入同一個CAN網(wǎng)絡(luò),其目的是增加系統(tǒng)的可靠性。CAN2.0B控制器由LPC2294直接集成,無需外加獨立的CAN控制器,且LPC2294中集成了4個CAN控制器,在此系統(tǒng)中選用第1個和第2個CAN接口。CAN收發(fā)器選用了CAT8250T,主要作用是將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,但與常用的CAN收發(fā)器TJA1050T不同的是該CAN收發(fā)器將CAN節(jié)點的收發(fā)與高速光耦、電源隔離集成在一個電路模塊中,且隔離電壓高達DC2500V,接口簡單、使用方便,并對CAN總線有過電壓保護作用。同時還要在CANH和CANL與地之間并聯(lián)一個120Ω的電阻,來匹配傳輸阻抗,吸收總線回波,確保有較低的電磁輻射和通信可靠性。

1.3以太網(wǎng)接口電路設(shè)計

系統(tǒng)由DM9000E以太網(wǎng)控制器,HR601860網(wǎng)卡變壓器,及RJ45接口,組成以太網(wǎng)接口電路。同樣選用了兩個網(wǎng)口電路,一個是主網(wǎng)口,另一個是冗余網(wǎng)口。其中,LPC2294使用16位總線方式對DM9000E進行控制,并使其工作在100MHz全雙工模式下。對兩個網(wǎng)口的選用,是通過LPC2294的CS3、A22引腳來控制主網(wǎng)口的片選信號,即這兩個引腳與74AC32的引腳1和2相連,而引腳3連接主網(wǎng)口的ANE引腳。同理將LPC2294的CS3、A23,經(jīng)74AC32與冗余網(wǎng)口的ANE引腳相連。再將DM9000E的CMD引腳與LPC2294的A2連接??蓪⒅骶W(wǎng)和冗余網(wǎng)卡芯片的數(shù)據(jù)端口地址與索引端口地址分別配置成0x8380000、0x83800004和0x83400000、0x83400004。DM9000E的物理層發(fā)送和接收端口TXO+、TXO-、RXI+、RXI-經(jīng)網(wǎng)絡(luò)變壓器芯片HR601680接到RJ45接口。對于DM9000E的其余引腳可根據(jù)Datasheet中的說明,按要求連接即可,如圖2所示。

網(wǎng)關(guān)互聯(lián)的設(shè)計

最終,對DM9000E芯片進行驅(qū)動。該芯片的驅(qū)動主要由3部分完成:voidInitNic()用以對芯片進行初始化,配置片內(nèi)寄存器等;voidSend_P-acket(struct_pkst*TxdData)為數(shù)據(jù)發(fā)送程序,uint8Rec_Packet(uint8num)為數(shù)據(jù)接收程序,上層協(xié)議通過調(diào)用這兩個函數(shù)來發(fā)送以太網(wǎng)數(shù)據(jù)幀。

2軟件設(shè)計

2.1報文結(jié)構(gòu)

CAN總線與以太網(wǎng)互聯(lián)的軟件設(shè)計主要包括從以太網(wǎng)中提取CAN數(shù)據(jù)和將CAN總線的數(shù)據(jù)轉(zhuǎn)換成以太網(wǎng)的數(shù)據(jù)。其中,CAN報文結(jié)構(gòu)可分為兩種不同的幀格式,而兩種幀格式的區(qū)別在于其標識符的長度不同:標準幀中有11位標識符,擴展幀中有29位標識符。本設(shè)計中采用的是擴展幀,且在本網(wǎng)關(guān)模塊收到CAN板卡的報文時,需按上述以太網(wǎng)數(shù)據(jù)傳輸報文格式對CAN數(shù)據(jù)進行封裝及打包并通過以太網(wǎng)發(fā)送。在此過程中不必對CAN報文的13Byte數(shù)據(jù)進行高低位轉(zhuǎn)換和移位處理,采用透明轉(zhuǎn)換方式。便可減少數(shù)據(jù)解析及處理的時間,并提高了數(shù)據(jù)在傳輸過程中的可靠性。

網(wǎng)關(guān)互聯(lián)的設(shè)計

 

如圖3所示,該網(wǎng)關(guān)中規(guī)定的以太網(wǎng)幀格式包括5部分,按照封裝的先后順序分別為:封裝的數(shù)據(jù)(如本系統(tǒng)中的CAN數(shù)據(jù)幀等)、自定義UDP首部、標準UDP/TCP首部、IP首部、以太網(wǎng)首部和最終校驗。本系統(tǒng)中主要采用的是UDP協(xié)議,目的是為了自定義控制字來區(qū)別不同類型的報文,包括有:CAN數(shù)據(jù)報文、時統(tǒng)報文、工作狀態(tài)請求報文、心跳報文及設(shè)備故障診斷信息報文。其中時統(tǒng)報文是在開機時或每30分鐘系統(tǒng)發(fā)送的對時請求。工作狀態(tài)報文是在各設(shè)備開機或復(fù)位并正常工作后自動發(fā)送的,還有收到詢問報文或狀態(tài)改變后發(fā)送,主要發(fā)送時戳和設(shè)備ID信息。心跳報文是在各設(shè)備開機或復(fù)位并正常工作后,每5s周期發(fā)送,作用是通知其所在的網(wǎng)絡(luò),是否工作狀態(tài)正常。設(shè)備故障診斷信息報文是當(dāng)接收到故障診斷請求報文或網(wǎng)關(guān)根據(jù)CAN板卡數(shù)據(jù)接收情況,自行檢測到網(wǎng)關(guān)箱內(nèi)該板卡故障情況的變化,一般網(wǎng)關(guān)在30分鐘內(nèi)未收到參數(shù)設(shè)置報文中指定的CAN板卡對應(yīng)節(jié)點的數(shù)據(jù)和遠程幀等,可認定此節(jié)點故障,并發(fā)送故障信息報文。這增添了系統(tǒng)的一些管理信息,根據(jù)不同的報文類型完成系統(tǒng)不同的通信功能。自定義UDP封裝格式如圖4所示。

網(wǎng)關(guān)互聯(lián)的設(shè)計

在自定義UDP封裝格式中,字節(jié)0~3為固定的幀頭信息,用以識別本網(wǎng)關(guān)模塊的數(shù)據(jù)報信息,無論是CAN報文、時統(tǒng)報文或工作狀態(tài)請求報文均使用該格式,若不符合該幀頭的數(shù)據(jù)報網(wǎng)關(guān)模塊不進行處理。需注意的是,第20bit開始才是真正的數(shù)據(jù),每個信息單元均有各自的序號、標識和長度等信息。其中信元的序號表示該信元在UDP數(shù)據(jù)報中的位置;標識代表信息單元內(nèi)報文的類型。

2.2程序設(shè)計

網(wǎng)關(guān)模塊的主要功能是以太網(wǎng)數(shù)據(jù)包與CAN數(shù)據(jù)幀之間的格式相互轉(zhuǎn)換,進而完成以太網(wǎng)和CAN網(wǎng)絡(luò)間通訊。本模塊使用嵌入式μC/OS—II作為操作系統(tǒng),通過裁剪、移植使其能順利運行于LPC2294控制器。另外,在系統(tǒng)中移植了TCP/IP協(xié)議的核心功能函數(shù),并編寫了6個任務(wù)函數(shù),使其分工合作實現(xiàn)了模塊的各項功能,并通過μC/OS—II系統(tǒng)的任務(wù)調(diào)度管理機制來進行系統(tǒng)資源的分配。

系統(tǒng)首先建立設(shè)備初始化任務(wù)Task0,將該任務(wù)函數(shù)主要完成上電自檢,兩路CAN故障自檢,網(wǎng)口斷線檢測,本機IP、兩路CAN波特率及兩路網(wǎng)口等網(wǎng)關(guān)參數(shù)的初始化。在完成以上工作后,創(chuàng)建5個子任務(wù),按優(yōu)先級由高到低依次為TaskB、TaskC、TaskF、TaskD、TaskE的5個子任務(wù)的具體功能如下:

TaskB:主要功能為接收UDP報文并解析,下發(fā)至CAN;若接收到時統(tǒng)報文,按照協(xié)議解析,并將時戳信息寫入時鐘芯片。

TaskC:主要功能為接收TCP報文,按照協(xié)議解析并下發(fā)到CAN。

TaskD:完成接收CAN1口或CAN2口的數(shù)據(jù),根據(jù)規(guī)定的傳輸方式將數(shù)據(jù)封裝成報文格式,并發(fā)送至以太網(wǎng)。

TaskE:完成接收CAN1口或CAN2口的數(shù)據(jù),并按照TCP傳輸方式,將數(shù)據(jù)封裝并發(fā)送到以太網(wǎng)。

TaskF:主要功能為定時發(fā)送特殊報文,如:心跳報文、時統(tǒng)報文、工作狀態(tài)請求報文及設(shè)備故障診斷信息報文等,完成網(wǎng)關(guān)模塊的工作狀態(tài)檢測及參數(shù)配置等功能。

5個子任務(wù)創(chuàng)建完成后,TaskB和TaskC進入阻塞狀態(tài),等待各自的信號量RecUdpQFlag和RecTcpQ一Flag,由于這兩個任務(wù)的優(yōu)先級較高,說明網(wǎng)關(guān)模塊優(yōu)先轉(zhuǎn)換以太網(wǎng)向CAN總線方向的數(shù)據(jù)。因此,當(dāng)以太網(wǎng)中有數(shù)據(jù)到來時根據(jù)報文的類型可得到相應(yīng)的信號量,TaskB或TaskC立即進入就緒狀態(tài)等待執(zhí)行,若當(dāng)前執(zhí)行的任務(wù)優(yōu)先級低于這兩個任務(wù),TaskB和TaskC可進行搶占執(zhí)行。當(dāng)網(wǎng)關(guān)模塊未收到以太網(wǎng)數(shù)據(jù)或處理完成后,任務(wù)函數(shù)TaskF檢測模塊的定時器,判斷是否需要發(fā)送工作狀態(tài)報文和心跳報文等特殊報文。執(zhí)行完成后,判斷CAN節(jié)點是否有數(shù)據(jù),并選擇用UDP或TCP方式發(fā)送到以太網(wǎng),即選擇執(zhí)行TaskD或TaskE,完成CAN向以太網(wǎng)方向的數(shù)據(jù)傳輸過程,在此期間允許TaskB和TaskC進行搶占執(zhí)行。系統(tǒng)通過調(diào)度這5個任務(wù)函數(shù)完成以太網(wǎng)數(shù)據(jù)包與CAN數(shù)據(jù)幀間的格式轉(zhuǎn)換與傳輸,該程序流程如圖5所示。

網(wǎng)關(guān)互聯(lián)的設(shè)計

3測試

將該上位機IP地址設(shè)置為192.1.1.11,打開網(wǎng)關(guān)參數(shù)設(shè)置界面對一些參數(shù)進行設(shè)置,如:網(wǎng)關(guān)參數(shù)回復(fù)IP地址、網(wǎng)關(guān)參數(shù)回復(fù)端口、網(wǎng)關(guān)模塊IP地址、網(wǎng)關(guān)接收端口號和CAN數(shù)據(jù)目標IP地址等參數(shù)。隨后將CAN總線數(shù)據(jù)報文測試軟件ZLGCANTest打開,設(shè)置CAN總線的波特率為250khit·s-1,將CAN報文發(fā)出后用ZLGCAN—Test、Tcp&Udp測試工具及EtherPeekNX軟件來查看網(wǎng)絡(luò)的通信情況。圖6便是由ZLGCANTest軟件所得到的,從圖中可知,CAN發(fā)送數(shù)據(jù)的幀類型是擴展幀,幀格式是數(shù)據(jù)幀,幀ID為0x00000000,每個CAN協(xié)議中發(fā)送8bit的數(shù)據(jù)。而圖7是通過Tcp&Udp測試工具得到的數(shù)據(jù),并已在圖中標出,此報文頭由Etherner協(xié)議報文頭、IP協(xié)議報頭、UDP協(xié)議報頭和自定義UDP報頭組成,并從自定義UDP報頭中的報文標識可判別出CAN報文,而后面的數(shù)據(jù)正是圖6中CAN報文中的13bit數(shù)據(jù),即對CAN報文采用透明轉(zhuǎn)換方式,將CAN網(wǎng)絡(luò)數(shù)據(jù)成功發(fā)送到以太網(wǎng)。同樣方法可測試到以太網(wǎng)中數(shù)據(jù)也成功發(fā)送至CAN。網(wǎng)絡(luò)中其他類型的報文也同樣如此。

網(wǎng)關(guān)互聯(lián)

4結(jié)束語

文中闡述了以ARM7系列LPC2294為核心的以太網(wǎng)與CAN總線網(wǎng)絡(luò)互聯(lián)的通信網(wǎng)關(guān)實現(xiàn)過程,概述了本網(wǎng)關(guān)中采用的以太網(wǎng)和CAN總線的報文格式及其自定義UDP數(shù)據(jù)報文的結(jié)構(gòu)。并提出了網(wǎng)關(guān)的軟、硬件實現(xiàn)方法。通過實驗該網(wǎng)關(guān)模塊實現(xiàn)了以太網(wǎng)與CAN總線間的數(shù)據(jù)傳遞,且具有穩(wěn)定性和較高的可靠性。

 

標簽:

點贊

分享到:

上一篇:ABB變頻器維修方法

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號