基于CPLD/FPGA/MCU的CAN-VME總線(xiàn)轉換方案
本文提出了基于FPGA的VME總線(xiàn)和CAN總線(xiàn)之間的傳輸轉換方案,滿(mǎn)足一些特殊工業(yè)環(huán)境的需要,具有一定的研究意義和實(shí)用價(jià)值。
1 轉換系統的硬件設計
該系統由VME總線(xiàn)接口模塊、CAN總線(xiàn)節點(diǎn)(8路CAN節點(diǎn))模塊、復雜可編程邏輯器模塊、MCU模塊4部分核心模塊構成。整個(gè)系統在一個(gè)3U標準的VME板卡上實(shí)現,機構緊湊,布局合理。系統的原理框圖如圖1所示。
1.1 VME總線(xiàn)接口模塊
整個(gè)系統實(shí)現是兩種通信之間的轉換,所以數據的發(fā)送都是由上位主機發(fā)送的。由于FPGA控制靈活,所以很方便實(shí)現與VME總線(xiàn)的連接。文中FPGA器件選用XILINX公司的XC2S200系列的5PQ208,56 Kb專(zhuān)用存儲器,最高運行速度200 MHz,I/O電壓在3.3~5.5 V,地址總線(xiàn)、數據總線(xiàn),/AS,/IACKIN,/IACKOUT,SYS CLK等可以直接與5PQ208連接。
1.2 CAN總線(xiàn)節點(diǎn)模塊
CAN總線(xiàn)節點(diǎn)模塊是該系統中的主要模塊,選用Philips公司生產(chǎn)的SJA1000,它負責連接總線(xiàn)與8路CAN選通主控制器CPLD之間的數據通信,其整個(gè)系統功能如圖2所示。收發(fā)器選用P82C251T。CAN接口原理如圖3所示。
1.3 復雜可編程邏輯器件(CPLD)模塊
在系統中,由于FPGA的地址總線(xiàn)和數據總線(xiàn)是分開(kāi)的,而SJA1000的地址和數據線(xiàn)是分時(shí)復用的,所以在總線(xiàn)接口上有一定差異,因此選用MAX3000系列可編程邏輯器件EPM3128來(lái)進(jìn)行邏輯變換。該CPLD芯片有豐富的宏單元,80個(gè)用戶(hù)I/O管腳,管腳間延遲時(shí)間是10 ns,最高速度可達100 MHz,能夠滿(mǎn)足系統設計的需要??删幊踢壿嬈骷谙到y中的功能為:轉換FPGA與CAN控制器SJA1000之間的地址總線(xiàn)和數據總線(xiàn);通過(guò)對FPGA的地址線(xiàn)譯碼,擴展CAN控制節點(diǎn)的通道。
1.4 MCU處理器
由于CAN總線(xiàn)的最高傳輸速度是1 Mb/s,所以該部分選取宏晶STC12C5A60S2,FLASH程序存儲器為56 KB。SRAM為1 280 B,2個(gè)專(zhuān)用的UATR,豐富的CPU資源滿(mǎn)足作為下位機的CPU控制單元,主要完成兩種總線(xiàn)協(xié)議的轉換,負責將從FPGA過(guò)來(lái)的VME總線(xiàn)轉換成CAN總線(xiàn)格式,并傳輸到指定CAN節點(diǎn);同時(shí)也將CPLD選通的CAN通道數據,轉換為FPGA能識別的VME總線(xiàn)格式,并在MCU中斷主機時(shí),將數據反饋給VME主機。
評論