新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA實現CAN總線通信節點設計

        FPGA實現CAN總線通信節點設計

        作者: 時間:2014-03-20 來源:網絡 收藏

        圖4 接收數據流程圖

          2.2 頂層模塊設計

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

        圖5 頂層模塊設計

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

          3仿真結果

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

        圖6SJA1000接收和發送數據的時序仿真

        圖6SJA1000接收和發送數據的時序仿真

          4 結束語

          實現了CAN 總線的通信功能, 系統工作狀態良好。實踐證明CAN 采用FPGA作為核心控制單元, 與傳統的單片機設計相比, 更加靈活并且擴展性更強。

        fpga相關文章:fpga是什么


        通信相關文章:通信原理


        晶振相關文章:晶振原理
        雙絞線傳輸器相關文章:雙絞線傳輸器原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 涟源市| 成武县| 西青区| 苗栗县| 西充县| 兰州市| 上高县| 奉新县| 抚顺县| 铁岭县| 托里县| 鄂尔多斯市| 青州市| 武强县| 碌曲县| 高青县| 琼中| 九台市| 浦县| 油尖旺区| 建始县| 乐都县| 鞍山市| 张家港市| 漳平市| 东兰县| 云安县| 乐都县| 蓝田县| 库尔勒市| 广德县| 孟州市| 德保县| 贵港市| 昭平县| 诸暨市| 张家口市| 岚皋县| 洪雅县| 鹰潭市| 托里县|