新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > FPGA實(shí)現(xiàn)CAN總線通信節(jié)點(diǎn)設(shè)計

FPGA實(shí)現(xiàn)CAN總線通信節(jié)點(diǎn)設(shè)計

作者: 時間:2014-03-20 來源:網(wǎng)絡(luò) 收藏

圖4 接收數(shù)據(jù)流程圖

  2.2 頂層模塊設(shè)計

  頂層的模塊設(shè)計如圖5 所示。其中c lkdiv 模塊是將輸入的50MH z時鐘clock十分頻后作為模塊基準(zhǔn)時鐘。SJACTROL模塊是控制總線通信的主模塊, 而RW 模塊則是根據(jù)主模塊的信號生成SJA1000所需要的讀寫時序信號。SJACTROL模塊通過start和isw r兩個信號通知RW 模塊是否要進(jìn)行讀或?qū)懣偩€操作。若是寫操作, 則將地址和數(shù)據(jù)通過Addrout和Dataout傳遞給RW, RW 將負(fù)責(zé)把數(shù)據(jù)準(zhǔn)確地送到S JA1000的數(shù)據(jù)地址復(fù)用總線ADDR, 并驅(qū)動SJA1000接收數(shù)據(jù), 在寫操作完成后發(fā)送w riteover信號通知SJACTROL寫操作完成。讀操作時RW根據(jù)SJACTOL送來的地址, 從SJA1000的數(shù)據(jù)總線上讀取數(shù)據(jù), 并將得到的數(shù)據(jù)通過Datasave 總線返回給SJACTROL。

圖5 頂層模塊設(shè)計

  SJACTROL的狀態(tài)機(jī)通過5個狀態(tài)的轉(zhuǎn)換來實(shí)現(xiàn)控制: 空閑狀態(tài)、初始化狀態(tài)、查詢狀態(tài)、讀狀態(tài)、寫狀態(tài)。RW 則是按照SJA1000的芯片數(shù)據(jù)手冊進(jìn)行時序邏輯設(shè)計。在編寫模塊時, 需注意雙向總線的編寫技巧。雙向口最好在頂層定義, 否則模塊綜合的時候容易出錯。

  3仿真結(jié)果

  中利用Verilog 編程產(chǎn)生SJA1000的片選信號CS, 地址鎖存信號ALE, 讀寫信號RD、WR.這些控制信號共同驅(qū)動SJA1000進(jìn)行數(shù)據(jù)接收和發(fā)送。設(shè)計選取的是v irtex系列的芯片, 邏輯開發(fā)在ISE 平臺上進(jìn)行。在FPGA 的調(diào)試階段, 使用xilinx的應(yīng)用軟件 ChipScope pro( 在線邏輯分析儀) 來在線觀察FPGA設(shè)計內(nèi)部信號的波形, 它比傳統(tǒng)的邏輯分析儀更方便。圖6為在線進(jìn)行數(shù)據(jù)傳送接收時的實(shí)際波形。

圖6SJA1000接收和發(fā)送數(shù)據(jù)的時序仿真

圖6SJA1000接收和發(fā)送數(shù)據(jù)的時序仿真

  4 結(jié)束語

  實(shí)現(xiàn)了CAN 總線的通信功能, 系統(tǒng)工作狀態(tài)良好。實(shí)踐證明CAN 采用FPGA作為核心控制單元, 與傳統(tǒng)的單片機(jī)設(shè)計相比, 更加靈活并且擴(kuò)展性更強(qiáng)。

fpga相關(guān)文章:fpga是什么


通信相關(guān)文章:通信原理


晶振相關(guān)文章:晶振原理
雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉