基于ARM處理器的CAN-Ethernet通信模塊實(shí)現(xiàn)
近20 年來工業(yè)測控系統(tǒng)發(fā)展的趨勢是:分散控制和集中管理、標(biāo)準(zhǔn)化和開放性。工業(yè)測控系統(tǒng)從傳統(tǒng)的集中測量控制系統(tǒng)轉(zhuǎn)向網(wǎng)絡(luò)化的集散控制系統(tǒng)。隨著現(xiàn)場總線技術(shù)高速發(fā)展和標(biāo)準(zhǔn)化程度不斷提高,以現(xiàn)場總線技術(shù)為基礎(chǔ)的開放型集散測控系統(tǒng)—現(xiàn)場總線測控系統(tǒng)得到了廣泛的應(yīng)用。同時(shí),以太網(wǎng)的應(yīng)用也迅速向工業(yè)測控系統(tǒng)滲透,在工業(yè)自動化應(yīng)用中異軍突起。
這種趨勢的出現(xiàn)與計(jì)算機(jī)技術(shù)、信息技術(shù)、網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展相關(guān)?,F(xiàn)代工業(yè)系統(tǒng)信息交換的需求也已經(jīng)從管理層內(nèi)部迅速覆蓋到控制、現(xiàn)場設(shè)備等各個(gè)層次,連接上層網(wǎng)絡(luò)和現(xiàn)場總線的通信設(shè)備成為工廠自動化系統(tǒng)中的關(guān)鍵設(shè)備之一。CAN-Ethernet通信模塊,是一種直接連接以太網(wǎng)和CAN現(xiàn)場總線的設(shè)備,有效解決了控制系統(tǒng)中現(xiàn)場總線和上層信息管理層的互聯(lián)問題,使自動化系統(tǒng)中的信息交換可以深入到現(xiàn)場設(shè)備一級。
1 CAN 總線和以太網(wǎng)的連接
現(xiàn)有的CAN 總線到以太網(wǎng)的通信實(shí)現(xiàn)方案中,采用較多的是使用一臺連接以太網(wǎng)的計(jì)算機(jī),在計(jì)算機(jī)中安裝一塊內(nèi)置式CAN通信板卡;或者通過計(jì)算機(jī)并行和串行接口外接CAN 的通信模塊。這種方法有一定局限性,例如,使用計(jì)算機(jī)體積大,成本高;計(jì)算機(jī)故障后的重啟速度慢,這可能嚴(yán)重影響系統(tǒng)的工作。采用基于ARM微處理器的單板機(jī)系統(tǒng)建立CAN-Ethernet 通信模塊,可以很好地解決上述問題,降低系統(tǒng)的成本,提高其性能。CAN-Ethernet通信模塊連接以太網(wǎng)和CAN 總線的結(jié)構(gòu)如圖1 所示。在以太網(wǎng)和CAN 總線之間,可以掛接一個(gè)通信模塊連接兩種網(wǎng)絡(luò),也可以使用多個(gè)通信模塊形成多個(gè)通路。對于第二種情況,以太網(wǎng)上的計(jì)算機(jī)可以通過指定IP地址和上層協(xié)議的端口選擇通路。
圖1 通過通信模塊連接以太網(wǎng)和CAN 總線
2 通信模塊的硬件設(shè)計(jì)
信模塊的硬件核心采用高性能的ARM處理器S3C44B0x。它是一種精簡指令處理器,可以在32位指令字的ARM模式下和16位指令字的Thumb模式下工作,設(shè)計(jì)者可以根據(jù)需要在性能和代碼大小之間進(jìn)行折衷;片內(nèi)有8KB的高速靜態(tài)RAM,既可以作為高速緩存,也可以作為片內(nèi)存儲器使用;片內(nèi)外設(shè)包括異步和同步串行接口、I2C接口、LCD控制器及接口、實(shí)時(shí)時(shí)鐘等。ARM處理器還具有低能耗和高性價(jià)比,非常適用于構(gòu)建性能較高的嵌入式系統(tǒng)。
通信模塊使用2片39VF040芯片,位擴(kuò)展后組成512K/16bit共1MB的Flash ROM作為程序和配置數(shù)據(jù)的存儲空間,使用1片62LV25616芯片組成256K/16bit 共512B的靜態(tài)隨機(jī)存儲器。CAN總線通信控制芯片選用了Philips公司的SJA1000T,它是一種獨(dú)立的CAN 總線通信控制器,僅需要CPU給出必要的指令,控制器就可以自動完成鏈路層以下的收發(fā)工作,并通知CPU總線的工作狀態(tài)。以太網(wǎng)通信控制芯片采用了臺灣Realtek公司的RTL8019as,它是一種ISA 接口的10Mb/s以太網(wǎng)卡芯片,內(nèi)部包含了以太網(wǎng)媒體訪問控制和物理層驅(qū)動,并帶有16KB的片上緩沖RAM。
2. 1 處理器和5 V 系統(tǒng)數(shù)據(jù)線的連接
系統(tǒng)中的處理器S3C44B0x 和存儲器芯片都使用3.3 V 的IO電壓,CAN總線接口、以太網(wǎng)接口則使用5V的工作電壓。 S3C44B0x 的數(shù)據(jù)、地址和控制信號線可以直接驅(qū)動這些外圍電路芯片(參考S3C44B0x、SJA1000、RTL8019as 數(shù)據(jù)手冊) ,但是外圍電路芯片輸出的高電平可能損壞處理器和直接掛接在處理器數(shù)據(jù)線上的其他芯片。因此,數(shù)據(jù)線上應(yīng)該使用總線轉(zhuǎn)換器進(jìn)行3.3/5V電平轉(zhuǎn)換。系統(tǒng)選用了兼容3.3 V和5V的信號電平的雙向總線收發(fā)器LCX245芯片。LCX245 的控制信號包括方向控制端DIR(0 :B →A ,1 :A →B) 和使能控制端OE(0 :接通,1 :隔斷) ,這些控制信號將使用GAL芯片產(chǎn)生。圖2 為系統(tǒng)的硬件連接示意圖。
圖2 系統(tǒng)的硬件連接示意圖
GAL 芯片選用GAL16V8D-15LP ,它的傳播延遲時(shí)間為15ns ,反饋延遲時(shí)間為7ns ,適于較高速度的工作。除了產(chǎn)生總線收發(fā)器芯片的控制信號外,同一片GAL 還用來產(chǎn)生SJA1000 需要的控制信號。根據(jù)處理器S3C44B0x 的輸出信號, 包括為SJA1000分配的地址組選通信號nGCS3和RTL8019分配的地址組選通信號nGCS4、讀寫信號線nOE和nWE,可以產(chǎn)生總線收發(fā)器LCX245所需要的DIR和OE信號,各信號如圖3 所示。
圖3 LCX245 控制信號的產(chǎn)生
nGCSx 是處理器的地址組選通信號,S3C44B0x 將外部地址空間從地址0 開始,每32M劃分為一個(gè)組(Bank ) ,外部尋址時(shí)地址線A0 ~ A24 輸出組內(nèi)地址,該地址所在的組的組選通信號同時(shí)有效。圖中虛線代表寫操作時(shí)的DIR 信號,實(shí)線為讀操作的信號。從圖中可以得到使用ABEL 語言描寫的的信號生成邏輯式為:
OE = (nOE &nWE) # (nGCS3 &nGCS4 &nGCS5) ;
DIR = nOE # (nGCS3 &nGCS4 &nGCS5) ;
但是為了使系統(tǒng)更加穩(wěn)定地工作,應(yīng)保證OE 信號有效時(shí)DIR 信號不發(fā)生變化,也就是說進(jìn)行讀操作時(shí)圖中OE 低電平脈沖的前沿應(yīng)晚于DIR ,后沿應(yīng)早于DIR ,這樣將出現(xiàn)反饋邏輯,可以使用類似于同步時(shí)序電路的設(shè)計(jì)方法設(shè)計(jì)。圖4 是OE 信號和DIR 信號的次態(tài)卡諾圖,次態(tài)符合上述要求,并且在輸入一定的狀態(tài)下,OE 信號和DIR 信號總是每次改變一個(gè),逐次進(jìn)入最后的穩(wěn)態(tài)狀態(tài)(粗體字表示) 。圖中“
評論