?

基于FPGA的CAN總線通信系統的設計

2015-12-02 20:46時旭付成偉
現代電子技術 2015年22期
關鍵詞:數據通信

時旭++付成偉

摘 要: 為了避免單片機的缺陷,同時滿足工業上穩定,精確的數據通信需求,在此提出了基于FPGA的通信系統,通過控制CAN控制器SJA1000,從而實現CAN總線的數據通信的設計。介紹了該系統的硬件結構和設計原理,針對FPGA的控制流程和原理進行了分析和設計;實驗結果顯示,該CAN通信系統滿足通信需求,較以往的單片機CAN通信系統具有更高性能和優越性。

關鍵詞: FPGA; CAN總線通信; CAN控制器; 數據通信

中圖分類號: TN958?34; TP391.4 文獻標識碼: A 文章編號: 1004?373X(2015)22?0059?03

0 引 言

CAN總線全稱為控制器局域網是一個可以多個主機同時使用的異步串行總線,是在國際上被應用最廣泛的現場總線之一;而且其同時也是惟一被ISO國際標準化組織批準的現場總線。由于其優良的性能及獨特的設計,CAN總線已經被廣泛地應用在控制系統中。通常CAN總線的數據通信系統采用的是MCU(STM32等單片機)+CAN控制器(SJA1000)+CAN收發器(CTM8251T)的方案,但是單片機有諸多缺點的;所以本平臺提出的設計方案采用FPGA(主控芯片)+CAN控制器(SJA1000)+CAN收發器(CTM8251T)的通信方案。與原始的通信方案相比,由于FPGA運行速度快、運算能力強、管腳相比單片機要更加豐富、在設計和實現大規模系統上更加出眾,同時FPGA內部在執行程序時是并行運行的、在處理復雜邏輯上更突出,并且運行時系統的穩定性高,后期的擴展更加方便,所以本設計選用FPGA作為總體的模塊控制器。

1 系統硬件設計

整個系統的總體硬件結構設計圖如圖1所示。

其中在硬件的選取上,FPGA模塊使用的是以EP3C25為主芯片的EP3C25Q240芯片,采用EPCS16作為內部的配置芯片。芯片的等效邏輯門數量龐大,大約為65萬門級,I/O口更是達到了173個,同時擁有4個PLL。其不僅功能強大,而且對后期的功能擴展和開發提供了便利的條件。因為電源模塊沒有特別的要求,采用LM1117(3.3 V)和LM1117(5 V),前者是將5 V轉換成3.3 V,后者是將12 V轉換成5 V。這兩款芯片負責給除FPGA以外所有硬件供電,而FPGA應用自己本身的5 V電源進行供電。因為FPGA的I/O需要連接3.3 V,而CAN控制器輸出電壓為5 V,如果直接相連會導致I/O口燒毀,對FPGA造成損壞。所以通過一個電平轉換器將電壓轉換成3.3 V,電平轉換器選用SN74ALVC164245,這款電平轉換器具有三態輸出16位2.5~3.3 V或3.3~5 V電平轉換收發器,非常適用于本設計。

CAN控制器選用Philips公司的SJA1000,CAN收發器選用的是CTM8251。CTM8251這款芯片本身帶有隔離,抗干擾能力強,所以不需要設計隔離電路。為了避免干擾,提高CAN收發器接受的數據更加準確、穩定,在CTM8251的CAN_H,CAN_L之間連接一個120 Ω的阻抗匹配電阻。在使用SJA1000時,將RX1管腳接地,啟用它的旁路功能,這樣可以減少數據傳送延時,提高通信的長度。最后進行試驗,實驗表明硬件設計可以實現CAN總線的數據通信。

2 FPGA控制程序和邏輯原理

本設計的核心是保證FPGA與SJA1000之間的準確通信,為了保證FPGA與SJA1000之間能夠準確無誤的通信,在他們之間進行數據通信時,必須要按照SJA1000的時序邏輯進行通信。SJA1000的地址總線和地數據總線使用的是同一個總線而且是并行總線。在進行硬件連接、讀/寫操作時,采用的SJA1000工作模式為INTERL模式。該模式下的信號有[RD],[WR],ALE,[CS],ADD和DATA。[RD]為讀信號,低電平有效;[WR]為寫信號,低電平有效;ALE為地址鎖存,下降沿有效;[CS]為片選,低電平有效;ADD是地址總線;DATA為數據總線。在編寫FPGA的控制邏輯時,需要嚴格根按照SJA1000的讀/寫時序圖。如圖2為SJA1000讀周期時的時序圖,圖3是其寫周期時的時序圖。

對SJA1000進行寫操作時的狀態圖如圖4所示。根據ALE,[RD],[WR]和[CS]的狀態,進行狀態機的轉移。

在系統啟動時,程序首先對SJA1000進行初始化,初始化完成后,進行查詢,檢測ALE管腳的狀態,當ALE出現低電平時,地址總線被鎖定,并將此時的地址總線上的數據傳輸到SJA1000,否則程序會保持在查詢狀態;地址數據傳輸后,進入等待的狀態機中,在等待狀態,地址已經被鎖定,設置好片選信號,同時檢測寫操作[WR]的信號時鐘狀態,當寫操作的信號為有效時,進入寫操作狀態,在寫操作狀態,檢測WR信號,當WR信號出現低電平時,將數據鎖定,并將數據傳輸到SJA1000,數據處理則是當查詢到發送緩沖區有數據后,寫入幀數據,同時對數據幀進行處理,而緩沖區則是在數據處理完成后將緩沖區進行釋放。這樣FPGA內部程序就通過狀態機的轉移完成SJA1000數據的寫操作。根據同樣的原理可以利用FPGA對SJA1000進行數據的讀操作。讀過程中根據的是3 程序仿真

本設計在Quartus 8.0和Modelsim軟件上進行程序的編寫和程序的綜合及仿真,并在實際應用上得到了驗證。驗證過正中,應用周立功的USB?CAN Ⅱ和上位機的ZLGCAN軟件進行CAN總線的數據通信,同時應用ChipScope軟件進行數據監控和測試,采用的測試數據為00,01,02,03,04,05,06,07,這樣的數據既容易觀察又可以驗證通信的準確性。數據波形如圖6所示。

4 結 語

該設計采用以FPGA(EP3C25)作為系統的主控制器,滿足了系統的需求。與以MCU為控制器的原始系統相比,主控制器的功能和運算能力更加強大;同時本設計在硬件結構上進行了改進,使通信速度和通信的最大長度得到提升,而且本設計運行的穩定性高,擴展性強,應用市場更加廣泛,為CAN總線的通信方式提供了更好的應用基礎。

參考文獻

[1] 劉濤.CAN總線接口電路設計中的關鍵問題[J].工礦自動化,2007(2):100?101.

[2] 張培坤,高偉,宋宗喜,等.基于FPGA的CAN總線通信節點設計[J].儀表技術與傳感器,2010(12):68?70.

[3] 楊恒.FPGA/CPLD 最新實用技術指南[M].北京:清華大學出版社,2005.

[4] 張紹忠,王輝.基于SJA1000的CAN總線智能節點實現[J].電子技術應用,2006(8):22?24.

[5] 鄔寬明.CAN 總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1996.

[6] 劉向明,方建安.CAN總線網絡的實時性研究和改進[J].現代電子技術,2011,34(22):46?49.

[7] 邱浩淼.基于CAN總線的在線更新機制的設計與實現[J].現代電子技術,2013,36(12):78?80.

猜你喜歡
數據通信
基于快牙平臺實現全站儀與計算機的數據通信
監測系統接口數據通信方式
一種高效可靠的串行數據通信協議及處理算法
TCN實時協議棧過程數據通信研究
廣州蓄能水電廠B廠電能表數據通信研究與應用
ZigBee手持終端數據通信模塊設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合