新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 四冗余通信板的仿真 少不了CAN總線技術輔助

        四冗余通信板的仿真 少不了CAN總線技術輔助

        作者: 時間:2014-02-14 來源:網絡 收藏
        (HCS)的光纖配合使用,最高通信速率可達5 MB。由于采用了開集電極電路,此接收器兼容TTL及CMOS電平。該電路的通信距離最遠可達1.7 km。

        本文引用地址:http://www.104case.com/article/226552.htm

        為提高CAN通信板的抗震性,抗干擾性等綜合性能,采用了雙面布線設計。該通信板尺寸規格嚴格按照PC/104板的要求做。

        (3)冗余設計及CAN Hub設計

        該通信板設計了4路冗余,工作時只有1路CAN通道進行工作,采用高位片選的方式進行工作通道的選擇,其片選模塊在FPGA內部設計完成。

        (4)GAN Hub的設計

        由于本系統采用“雙光雙電”四冗余的電路設計,為提高通信速度,采用485收發器代替標準的CAN收發器。光是“點對點” 的傳輸,485收發器是差分傳輸,在形式上都無法構成總線式結構。因此,引入CAN Hub來對信號進行處理,在邏輯上達到總線式的結構。

        3 軟件設計

        CAN通信板的正常工作離不開強大的軟件支持,本系統中控制部分的核心采用PC/104嵌入式計算機系統。PC/104嵌入式計算機擁有可以和PC機媲美的強大功能,CAN通信板軟件部分的開發和設計就是在PC/104計算機上完成的,采用C語言進行設計。C語言具有通用性、高效性和實時性,能滿足儀器的實時性要求。在設計過程中采用了模塊化、結構化的設計方法,把軟件按功能分成若干個模塊,這些模塊既有一定的獨立性,又有一定聯系。每個模塊的編制要求相對獨立,以便對各模塊進行檢驗調試和修改、維護。這種框架模式的程序可以保證良好的通用性、可維護性、可擴展性、移植性、互換性和獨立性。

        由于CAN核的內部結構和SJA1000一樣,因此,開發時就像面對SJA1000一樣,編寫起來簡單方便。本設計采用中斷處理的方式來進行任務的處理。在中斷到來后進行相應的處理就可以了。

        通信板初始化流程如圖3所示。數據發送流程如圖4所示,數據接收流程如圖5所示。

        四冗余通信板的仿真 少不了CAN總線技術輔助

        4 系統的仿真

        采用Modelsim進行仿真。

        系統的測試平臺(TestBench),例化了模塊can4core和1個CAN核cantop,并仿真它們之間的通信。

        本仿真完全按照 CAN核正常工作過程進行,仿真過程如下:

        ①初始化設置。首先進行時間寄存器的設置和數據格式的設置。通過平臺對本系統設計模塊和CAN核進行設置。

        ②同步測試。包括硬同步測試和重新同步測試。一個硬同步后,內部的位時間以同步段重新開始。硬同步使引起硬同步的跳變沿位于重新開始的位時間同步段之內。

        ③空FIFO測試(test_empty_fifo_ext)。該測試通過接收2個數據幀,然后讀取接收緩沖器,接著清空緩沖器,再讀取緩沖器,反復清空和讀取,看FIFO中的數據是否被完全清除。

        ④滿FIFO測試 (test_full_fifo_ext)。首先清空寄存器,然后通過不斷地接收數據幀來填滿FIFO并讀取信息,檢測是否能正常工作。

        ⑤ 總線空閑測試(bus-off-test)。通過不斷發送數據來使總線處于忙狀態,致使總線產生錯誤,測試中斷寄存器是否能檢測到錯誤,以及錯誤清除后 CAN核能否繼續正常工作。

        ⑥Basic CAN模式發送幀檢測。測試CAN核能否正常發送幀。

        ⑦寄存器測試。通過不停地讀寫寄存器,檢測CAN核寄存器是否正常工作。

        ⑧總線上數據的傳輸。仿真過程中重要的一點就是總線上是否能夠正常傳輸數據信息。

        經過仿真可以看到該CAN通信板突破了SJA1000在速度方面的限制,傳輸速度可達2MHz,有效傳輸速率得到了大幅提高,工作性能良好。

        結語



        關鍵詞: 四冗余通信 CAN總線技術

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双桥区| 石河子市| 石狮市| 揭西县| 南和县| 汝州市| 遵义市| 定边县| 威信县| 吉隆县| 垫江县| 通城县| 赣州市| 黑河市| 昆明市| 文登市| 昌江| 思茅市| 穆棱市| 永寿县| 平果县| 喀喇沁旗| 扶风县| 灯塔市| 沾益县| 曲阳县| 聊城市| 灌阳县| 彩票| 华宁县| 虎林市| 梁山县| 无棣县| 宜春市| 平乐县| 光山县| 芜湖县| 土默特左旗| 河北省| 科尔| 陕西省|