色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的CAN總線通信節(jié)點設計

          基于FPGA的CAN總線通信節(jié)點設計

          作者: 時間:2012-04-19 來源:網(wǎng)絡 收藏

          2。2頂層模塊

          頂層的模塊如圖5所示。其中clkdiv模塊是將輸入的50MHz時鐘clock十分頻后作為模塊基準時鐘。SJACTROL模塊是控制的主模塊,而RW模塊則是根據(jù)主模塊的信號生成SJA1000所需要的讀寫時序信號。SJACTROL模塊通過start和iswr兩個信號通知RW模塊是否要進行讀或?qū)?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/總線">總線操作。若是寫操作,則將地址和數(shù)據(jù)通過Addrout和Dataout傳遞給RW,RW將負責把數(shù)據(jù)準確地送到SJA1000的數(shù)據(jù)地址復用ADDR,并驅(qū)動SJA1000接收數(shù)據(jù),在寫操作完成后發(fā)送writeover信號通知SJACTROL寫操作完成。讀操作時RW根據(jù)SJACTOL送來的地址,從SJA1000的數(shù)據(jù)總線上讀取數(shù)據(jù),并將得到的數(shù)據(jù)通過Datasave總線返回給SJACTROL。

          圖5 頂層模塊設計

          圖5頂層模塊

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

          3仿真結(jié)果

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

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

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

          4結(jié)束語

          通過對系統(tǒng)的分析,利用FPGA作為的主控制單元,對的硬件接口電路設計方案進行了詳細的說明,并編寫了CAN通信流程中的初始化程序、數(shù)據(jù)發(fā)送接收程序。通過軟硬件的聯(lián)調(diào),實現(xiàn)了CAN總線的通信功能,系統(tǒng)工作狀態(tài)良好。實踐證明CAN通信節(jié)點采用FPGA作為核心控制單元,與傳統(tǒng)的單片機設計相比,更加靈活并且擴展性更強。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉