新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 一種新型CAN總線冗余電路設計與研究

        一種新型CAN總線冗余電路設計與研究

        作者: 時間:2010-03-09 來源:網絡 收藏

        本文采用帶在片控制器的單片機P80C3592,節點電路連接圖如圖6所示。控制器的發送輸出端CTX0接CD4053的第二路模擬開關輸出端Y;控制器的接收輸入端CRX0接CD4053的第一路模擬開關輸出端X。CD4053的第一路模擬開關的輸入端X0、X1分別接兩個驅動器的接收輸出端RXD;CD4053的第三路模擬開關的輸出端Z與其輸入端Z0連接后,然后將第二路與第三路模擬開關的輸入端Y0、Y1和Z0、z1對應連接,再對應連接兩個驅動器的發送輸入端TXD。CD4053三獨立選通由單片機的P1口低三位控制。這樣就使得雙可供選擇的工作方式增加。對于單一節點來說,雙總線所有可能的運行方式如表1所示。

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


        對于所有節點來說,雙CAN總線有同時運行和熱備份兩種運行方式。由于采用雙驅動器冗余,只有一個總線控制器,所以每個節點不能同時從兩路總線接收數據,故本文的驅動器冗余方式不能實現嚴格意義上的同時運行方式。另外,同時運行方式功耗大,總線通信利用率低。
        若采用圖3所示的電路,只能實現表1中的方式5和6,若采用圖4所示的電路,只能實現表1中的方式1和4。方式2和3具有非常特殊的作用:a.雙總線同時運行時,可以為兩個不同的節點傳遞報文,提高總線通信利用率;b.可能實現單節點調試。因為單節點采用其他方式調試時,報文發送后由于得不到應答而會檢測到錯誤并不斷重發報文,節點轉為被動出錯節點。

        3 軟件編程
        CAN總線節點的通信程序主要包括初始化、報文發送和報文接收三部分。
        (1)CAN節點初始化主要是配置控制組寄存器。在初始化前,必須確保CAN控制器進入復位模式。初始化主要有:配置總線定時器BTR0和BTR1,設定總線通信波特率;配置輸出控制寄存器OCR,設定控制器輸出管腳CTXO和CTX1的輸出模式;配置驗收碼寄存器ACR和驗收屏蔽碼寄存器AMR,設定驗收碼和驗收屏蔽碼。
        (2)報文發送程序將報文(目標節點ID、數據長度和數據)送入發送緩沖器,然后啟動發送指令即可,CAN控制器能自動報文發送過程。報文發送可通過中斷和查詢兩種方式實現,但是中斷方式效率高,采用較多。
        (3)報文接收程序是從CAN控制器的接收緩沖器讀取節點需要的數據并保存。數據接收也可通過中斷和查詢兩種方式實現,普遍采用效率高的中斷方式。

        4 結 論
        本文所設計的驅動器冗余電路簡單,能較好地提高硬件可靠性,相對降低了成本,同時,為雙總線運行提供了更多的方式,使得編程更加靈活,可以提高總線通信利用率。除此之外,在報文發送出現沖突時,還可以通過軟件轉移負荷,平衡雙總線的通信負荷。



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双鸭山市| 邯郸市| 崇信县| 怀来县| 乌鲁木齐县| 海丰县| 盐城市| 稻城县| 晋中市| 唐海县| 漠河县| 平顺县| 突泉县| 高平市| 锡林浩特市| 射阳县| 交口县| 松江区| 大安市| 布尔津县| 顺平县| 江安县| 安徽省| 星座| 周口市| 万全县| 社旗县| 汉沽区| 威远县| 广西| 朝阳县| 青岛市| 石渠县| 互助| 乌兰察布市| 唐河县| 宣威市| 思茅市| 中西区| 九寨沟县| 奎屯市|