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