基于A(yíng)RM7的MVB_CAN網(wǎng)關(guān)設計
本系統的軟件模塊主要有CAN模塊、MVB控制模塊、總任務(wù)處理模塊、以及數據緩沖模塊。其中CAN控制模塊主要負責從CAN數據包中解析
出完整的CAN協(xié)議報文,并存入數據緩沖區2,同時(shí)將數據緩沖區A中的CAN數據封裝成完整的CAN協(xié)議報文后發(fā)送到CAN總線(xiàn)上;MVB控制模塊主要負責從MVB數據包中解析出完整的MVB協(xié)議報文,并將其存人數據緩沖區1,同時(shí)再將數據緩沖NB中的MVB數據封裝成完整的MVB協(xié)議報文后發(fā)送到MVB上;總任務(wù)處理模塊主要起綜合調度和監控作用,同時(shí),它還用于整個(gè)傳輸過(guò)程中的中斷響應;緩沖區模塊主要負責將CAN側和MVB側接收的數據存儲到緩沖區中。
網(wǎng)關(guān)程序的整體設計思路是當CAN側數據發(fā)往MVB側時(shí),首先使CAN側檢測到有數據傳過(guò)來(lái),總處理模塊通過(guò)調用CAN模塊處理函數來(lái)接收數據,并通過(guò)對CAN幀的解碼來(lái)獲取CAN標志符,然后調用應用層轉換表(inbus-to-outbus)以查詢(xún)出相應的MVB端口的相關(guān)變量,接著(zhù)再把相
應的數據發(fā)送到數據緩沖區2中,最后由總任務(wù)處理模塊通知MVB控制模塊將緩沖區2中數據取走,并對數據進(jìn)行MVB幀格式的編碼,再發(fā)送到
MVB總線(xiàn)上后釋放緩沖區。
同樣,當MVB側數據發(fā)往CAN側時(shí),首先將數據發(fā)送到MVB上,然后由總任務(wù)處理模塊檢測MVB上是否有數據傳輸,并通知MVB控制模塊接收數據,同時(shí)對信息進(jìn)行解碼分析,從中獲取端口相關(guān)變量,依據端口相關(guān)變量查詢(xún)應用層轉換表(out-to-inbus),找出對應CAN標識符,同時(shí)將數據發(fā)送到數據緩沖區1。此時(shí),總任務(wù)處理模塊可通過(guò)CAN控制模塊從緩沖區1中提取數據并進(jìn)行完整的CAN報文封裝,再發(fā)送到CAN總線(xiàn)上并釋放緩沖區A。其中,MVB側發(fā)往CAN側的主程序流程如圖6所示。本文引用地址:http://dyxdggzs.com/article/156540.htm
5 結束語(yǔ)
本文主要介紹了MVB-CAN網(wǎng)關(guān)的硬件和軟件實(shí)現方法。其中,應用層協(xié)議的轉換是整個(gè)網(wǎng)關(guān)的主要工作所在,所以,設計時(shí)必須建立盡量完善的關(guān)系對應列表,同時(shí)應提供友好的用戶(hù)接口函數。
通過(guò)MVB-CAN網(wǎng)關(guān)的設計可以實(shí)現機車(chē)內車(chē)載設備間不同接口單元之間的通訊,從而為列車(chē)通信網(wǎng)絡(luò )的多元化發(fā)展提供有力的支持。
評論