基于CAN總線的數據采集記錄裝置設計
當所謂的中斷過程既在中斷服務子程序(ISR)的入口處,程序的走向由讀取到的ISR的值來確定。如果收到一個新的幀,則首先清除接收中斷標志,接著讀取幀數據,等待接收緩沖區空;如果沒有收到新的幀,則判斷幀是否發送完畢,若一幀已發送完則清除發送中斷標志并讀取狀態寄存器,并進一步判斷發送隊列是否還有未發送的數據幀,如果有則繼續發送。如果全部數據發送完,則從中斷子程序返回。主程序流程圖如圖1所示。

3.4 CAN控制器軟件設計
設計中使用的處理器LPC2294內部集成了4個獨立的CAN模塊,并且為所有的CAN控制器提供了全局的可以接受標識符查詢的功能。設計中只使用到CAN控制器1和CAN控制器2兩個控制器,CAN模塊的存儲器在處理器中的地址映射如下:
AF RAM(2KB):E0038000~E00387FF;
AF RAM寄存器:E003C000~E003C017;
中央CAN寄存器:E0040000~E004000B;
CAN控制器1寄存器:E0044000~E004405F;
CAN控制器2寄存器:E0048000~E004805F;
CAN的驅動程序主要包括四個部分:CAN的初始化、CAN的數據接收、CAN的數據發送和異常處理。
另外,由于CAN通信中沒有物理地址,只是采用軟件ID辨識的方式來對總線上的信息進行過濾的,并且ID還決定當有多個節點需要同時傳送數據時的優先級,故對ID設置要格外注意。
3.5 CAN與以太網網關協議轉換
由于以太網和CAN是兩個不同的通信系統,當連接在CAN總線上的設備向以太網發送數據時,數據必須通過CAN接口電路發送到主系統上,通過協議轉換程序,提取要傳送的數據,然后對數據添加TCP和IP協議所需要的幀信息。
在本設計中用到的μc/os-Ⅱ操作系統下,應用層功能是以5個主要的任務來實現的,按優先級從高到低依次為:CAN總線接收數據包;CAN總線發送數據包;TCP/UDP協議數據包接收;TCP/UDP協議數據包發送;主系統協議轉換。
4.系統測試
接通電源,程序正常啟動后,數據記錄儀開始工作。連通后的ip地址為192.168.
1.102,物理地址為00-26-18-20-d9-f0,通過ping命令測試,證明數據包收發成功,設備聯通正常。
程序運行后,依次完成獲取數據容量、讀取時間、設定時間、清空記錄儀、獲取壞塊、初始化記錄儀,接著數據記錄儀開始工作,程序運行結果如圖2所示。

5.結束語
測試證明:系統完成了CAN和以太網互聯的功能,具有較高的可靠性和易用性。記錄儀具備了在以太網高速數據傳輸下記錄、儲存、分析總線數據的能力,使設備在調試階段、實際運行工作階段以及日常維護階段具備了完善的電子數據診斷和故障定位能力












評論