国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的CAN總線通信系統(tǒng)的設(shè)計

2015-12-02 20:46時旭付成偉
現(xiàn)代電子技術(shù) 2015年22期
關(guān)鍵詞:數(shù)據(jù)通信

時旭++付成偉

摘 要: 為了避免單片機(jī)的缺陷,同時滿足工業(yè)上穩(wěn)定,精確的數(shù)據(jù)通信需求,在此提出了基于FPGA的通信系統(tǒng),通過控制CAN控制器SJA1000,從而實現(xiàn)CAN總線的數(shù)據(jù)通信的設(shè)計。介紹了該系統(tǒng)的硬件結(jié)構(gòu)和設(shè)計原理,針對FPGA的控制流程和原理進(jìn)行了分析和設(shè)計;實驗結(jié)果顯示,該CAN通信系統(tǒng)滿足通信需求,較以往的單片機(jī)CAN通信系統(tǒng)具有更高性能和優(yōu)越性。

關(guān)鍵詞: FPGA; CAN總線通信; CAN控制器; 數(shù)據(jù)通信

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

0 引 言

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

1 系統(tǒng)硬件設(shè)計

整個系統(tǒng)的總體硬件結(jié)構(gòu)設(shè)計圖如圖1所示。

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

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

2 FPGA控制程序和邏輯原理

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

對SJA1000進(jìn)行寫操作時的狀態(tài)圖如圖4所示。根據(jù)ALE,[RD],[WR]和[CS]的狀態(tài),進(jìn)行狀態(tài)機(jī)的轉(zhuǎn)移。

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

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

4 結(jié) 語

該設(shè)計采用以FPGA(EP3C25)作為系統(tǒng)的主控制器,滿足了系統(tǒng)的需求。與以MCU為控制器的原始系統(tǒng)相比,主控制器的功能和運(yùn)算能力更加強(qiáng)大;同時本設(shè)計在硬件結(jié)構(gòu)上進(jìn)行了改進(jìn),使通信速度和通信的最大長度得到提升,而且本設(shè)計運(yùn)行的穩(wěn)定性高,擴(kuò)展性強(qiáng),應(yīng)用市場更加廣泛,為CAN總線的通信方式提供了更好的應(yīng)用基礎(chǔ)。

參考文獻(xiàn)

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

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

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

[4] 張紹忠,王輝.基于SJA1000的CAN總線智能節(jié)點(diǎn)實現(xiàn)[J].電子技術(shù)應(yīng)用,2006(8):22?24.

[5] 鄔寬明.CAN 總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1996.

[6] 劉向明,方建安.CAN總線網(wǎng)絡(luò)的實時性研究和改進(jìn)[J].現(xiàn)代電子技術(shù),2011,34(22):46?49.

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

猜你喜歡
數(shù)據(jù)通信
基于快牙平臺實現(xiàn)全站儀與計算機(jī)的數(shù)據(jù)通信
監(jiān)測系統(tǒng)接口數(shù)據(jù)通信方式
一種高效可靠的串行數(shù)據(jù)通信協(xié)議及處理算法
TCN實時協(xié)議棧過程數(shù)據(jù)通信研究
廣州蓄能水電廠B廠電能表數(shù)據(jù)通信研究與應(yīng)用
ZigBee手持終端數(shù)據(jù)通信模塊設(shè)計
青冈县| 乌拉特后旗| 桦川县| 喜德县| 阿图什市| 满城县| 大姚县| 德阳市| 明光市| 武功县| 江都市| 邵阳市| 时尚| 邵武市| 宝兴县| 北票市| 封开县| 建始县| 武定县| 温泉县| 扶风县| 赤水市| 沂南县| 社旗县| 遂平县| 宝清县| 金门县| 盐山县| 赤峰市| 宜川县| 章丘市| 怀宁县| 乐东| 兴山县| 哈密市| 永安市| 定南县| 边坝县| 隆昌县| 营山县| 邻水|