基于LPC2294的CAN與以太網(wǎng)網(wǎng)關(guān)互聯(lián)的設(shè)計
摘要 為滿足以太網(wǎng)與CAN總線網(wǎng)絡(luò)的互聯(lián),設(shè)計了一種以LPC2294為控制芯片,嵌入式μC/OS—II為操作系統(tǒng)的網(wǎng)關(guān)模塊,實現(xiàn)了以太網(wǎng)協(xié)議與CAN總線協(xié)議的相互轉(zhuǎn)換。給出了網(wǎng)關(guān)模塊的軟硬件設(shè)計,重點闡述了網(wǎng)關(guān)模塊使用的自定義UDP報文結(jié)構(gòu),該報文結(jié)構(gòu)可提供更多的管理信息,有利于網(wǎng)絡(luò)的管理測試表明設(shè)計的網(wǎng)關(guān)模塊具有一定的實用性和可靠性。
關(guān)鍵詞 CAN;以太網(wǎng);協(xié)議轉(zhuǎn)換;嵌入式
控制器局域網(wǎng)(Controller Area Network,CAN)最先由德國BOSCH公司開發(fā),并成為一種國際標準(IS011898)。由于CAN總線具有靈活、可靠、實時、開放性好、糾錯能力強等優(yōu)點,成為目前最有前途的現(xiàn)場總線之一。但任何事物都具有兩面性,CAN總線也有不足之處,由于其收發(fā)器驅(qū)動能力有限,導致總線上可連接的最大節(jié)點數(shù)和最遠直接傳輸距離受到了限制,無法進行遠程控制,這給系統(tǒng)組網(wǎng)帶來了一定的制約條件。相較而言,以太網(wǎng)憑借著成本低、易于組網(wǎng)、擁有眾多應用軟硬件的支持且根據(jù)網(wǎng)絡(luò)需求的實際情況,不斷地進行完善和改進,并逐步發(fā)展了標準以太網(wǎng)(10 Mbit/s)、快速以太網(wǎng)(100 Mbit/s)千兆以太網(wǎng)和萬兆以太網(wǎ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)之間的雙冗余通信。
硬件電路可劃分為5個部分:控制電路、存儲電路、輔助電路、以太網(wǎng)接口電路和CAN總線接口電路。下面主要對控制電路、以太網(wǎng)接口電路和CAN總線接口電路進行分析。
1.1 系統(tǒng)控制器
系統(tǒng)選用ARM處理器LPC2294作為控制芯片,主要是LPC2294具有超強的功能、功耗低及豐富的片上資源,更重要的是集成了4個支持CAN 2.0B協(xié)議的CAN控制器,并帶有先進的驗收濾波器,提供了系統(tǒng)的集成度和復雜度,還提供了系統(tǒng)的穩(wěn)定性。為滿足系統(tǒng)的程序和數(shù)據(jù)存儲需要,外擴了1 MB的16位Flash芯片SST39VF16 0,用于存儲程序代碼。其中Flash的地址線A1~A20連接至LPC2294的A1~A20,數(shù)據(jù)線ED0~ED15通過一個雙電源供電的雙向收發(fā)器連接至LPC2294的DQ0~DQ15,CE#接至LPC2294的CS0,將其分配到Bank0單元,其地址范圍0x8000 0000~0x8000 1000。OE#、OW#分別連接至LC2294的OE#和WE#。同時外接了1 MB的16位SRAM存儲器IS61LV25616AL,用于堆棧和數(shù)據(jù)的存儲。其中SRAM的地址線A1~A20連接至LPC2294的A0~A19,數(shù)據(jù)線IO0~IO15通過一個雙電源供電的雙向收發(fā)器連接至LPC2294的D0~D15,CE#接至LPC 2294的CS1,將其分配到Bank1單元,該地址范圍0x8100 0030~0x8100 1000。LB#、UB分別與BLS0、BLS1相連,用于控制8位或16位讀寫數(shù)據(jù)。OE#、OW#分別連接至LC2294的OE#和WE#。
1.2 CAN接口電路設(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ā)與高速光耦、電源隔離集成在一個電路模塊中,且隔離電壓高達DC2 500 V,接口簡單、使用方便,并對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進行控制,并使其工作在100 MHz全雙工模式下。對兩個網(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所示。
最終,對DM9000E芯片進行驅(qū)動。該芯片的驅(qū)動主要由3部分完成:void InitNic()用以對芯片進行初始化,配置片內(nèi)寄存器等;void Send_P-acket(struct_pkst*TxdData)為數(shù)據(jù)發(fā)送程序,uint8 Rec_Packet(uint8 num)為數(shù)據(jù)接收程序,上層協(xié)議通過調(diào)用這兩個函數(shù)來發(fā)送以太網(wǎng)數(shù)據(jù)幀。
評論