新聞中心

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

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

        作者: 時間:2014-03-20 來源:網絡 收藏
        FPGA實現CAN總線通信節點接口電路

        圖2 接口電路

          2 系統軟件設計

          2.1 設計流程

          對CAN 總線通訊模塊的控制主要包括3 部分: 節點初始化、報文發送和報文接收。由于通訊模塊對接收數據的實時性要求并不是很高, 因此CAN 總線的數據接收和發送采用查詢方式。

          2.1.1 初始化過程

          系統上電后首先對82C250 和S JA1000 進行初始化, 以確定工作主頻、波特率、輸出特性等。SJA1000的初始化只有在復位模式下才可以進行, 初始化主要包括工作方式的設置、驗收濾波方式的設置、驗收屏蔽寄存器( AMR )和驗收代碼寄存器( ACR)的設置、波特率參數設置和中斷允許寄存器( IER) 的設置等。在完成SJA1000 的初始化設置以后, SJA1000 就可以回到工作狀態, 進行正常的通信任務。設計中使SJA1000工作在PeliCan的方式下。

          2.1.2 發送過程

          發送時, 用戶只需將待發送的數據按特定的格式組合成一幀報文, 送入SJA1000發送緩沖區中, 然后啟動SJA1000發送即可。當然, 在往SJA1000 發送緩存區送報文之前, 必須先判斷發送緩沖區是否鎖定, 如果鎖定則等待; 判斷上次發送是否完成, 未完成則等待發送完成。 通過SJA1000 向CAN 總線進行數據發送的流程圖如圖3所示。

        圖3 發送數據流程圖

          2.1.3 接收過程

          接收子程序負責節點報文的接收以及其他情況處理。接收子程序比發送子程序要復雜一些, 因為在處理接收報文的過程中, 同時要對諸如總線關閉、錯誤報警、接收溢出等情況進行處理。只有在總線正常, 沒有錯誤報警, 并且接收緩沖區中有新報文, 才開始進行數據接收操作。對接收緩沖區的數據讀取完畢后釋放CAN接收緩沖區。 通過SJA1000接收上的數據流程圖如圖4所示。

        fpga相關文章:fpga是什么


        通信相關文章:通信原理


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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 钟山县| 新巴尔虎左旗| 修文县| 团风县| 宜城市| 文成县| 深圳市| 玉溪市| 武威市| 滨海县| 株洲县| 宝兴县| 绥江县| 成都市| 仲巴县| 香格里拉县| 南部县| 合川市| 武城县| 铜陵市| 苗栗县| 香格里拉县| 老河口市| 临江市| 勐海县| 淳安县| 无极县| 鹰潭市| 太保市| 庆元县| 曲靖市| 峨边| 华安县| 资阳市| 江城| 新竹县| 襄汾县| 永泰县| 白城市| 金湖县| 龙游县|