<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 四冗余通信板的仿真 少不了CAN總線(xiàn)技術(shù)輔助

四冗余通信板的仿真 少不了CAN總線(xiàn)技術(shù)輔助

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

本文引用地址:http://dyxdggzs.com/article/226552.htm

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

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

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

(4)GAN Hub的設計

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

3 軟件設計

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

由于CAN核的內部結構和SJA1000一樣,因此,開(kāi)發(fā)時(shí)就像面對SJA1000一樣,編寫(xiě)起來(lái)簡(jiǎn)單方便。本設計采用中斷處理的方式來(lái)進(jìn)行任務(wù)的處理。在中斷到來(lái)后進(jìn)行相應的處理就可以了。

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

四冗余通信板的仿真 少不了CAN總線(xiàn)技術(shù)輔助

4 系統的仿真

采用Modelsim進(jìn)行仿真。

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

本仿真完全按照 CAN核正常工作過(guò)程進(jìn)行,仿真過(guò)程如下:

①初始化設置。首先進(jìn)行時(shí)間寄存器的設置和數據格式的設置。通過(guò)平臺對本系統設計模塊和CAN核進(jìn)行設置。

②同步測試。包括硬同步測試和重新同步測試。一個(gè)硬同步后,內部的位時(shí)間以同步段重新開(kāi)始。硬同步使引起硬同步的跳變沿位于重新開(kāi)始的位時(shí)間同步段之內。

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

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

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

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

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

⑧總線(xiàn)上數據的傳輸。仿真過(guò)程中重要的一點(diǎn)就是總線(xiàn)上是否能夠正常傳輸數據信息。

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

結語(yǔ)



關(guān)鍵詞: 四冗余通信 CAN總線(xiàn)技術(shù)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>