電視監控系統中CAN總線網絡應用
3.軟件設計
本系統的軟件設計主要集中在信息的傳遞上,以CAN2.0協議為基礎,自定義通信協議,采用模塊化設計。
3.1用戶協議
在動作幀中,000是幀號,用來識別幀的類型。根據驗收濾波器中的內容來選擇傳送幀的目的地。這利用了CAN2.0協議的 特點。動作包括了對攝像機的動作控制命令和對圖像切換的控制命令,根據前面的內容而定。
切換幀中, 001為幀號。工作方式有四種:00為定點;01為循環;10為四畫面循環[4]。
數據部分主要根據工作方式的不同,來確定所傳輸的通道號、定點路號、循環路號等等。
時間幀中,010為幀號。循環時間是指畫面的循環時間[4]。
在CAN系統中,數據在節點間發送和接收以四種不同類型的幀出現和控制,其中:數據幀將數據由發送器傳至接收器;遠程幀由節點發送,以請求發送具有相同標志符的數據幀;出錯幀可由任何節點發送,以檢測總線錯誤,而超載幀用于提供先前和后續數據幀或遠程幀之間的附加延時。另外,數據幀和遠程幀以幀間空間隔同先前幀隔開。
有了完整的底層和上層協議,就可以設計本系統的軟件部分。主要集中在信息傳送上,采用模塊化設計。以下具體描述信息傳遞的程序設計,其他的部分讀者可參閱參考文獻中的涉及論文[4]。
3.2軟件框圖
1. 主程序模塊
主程序模塊如圖6所示,對系統進行統一的管理和調度。
2. 初始化模塊
在這個模塊中主要是對系統的初始化,其中包括了CAN控制器SJA1000、DG884等的初始化。在這里詳細的介紹SJA1000的初始化程序流程。由于獨立的CAN控制器SJA1000有兩種不同的工作模式BasicCan 模式 和PeliCan模式。上電時BasicCan模式是默認工作模式。PeliCan是新的工作模式,它能夠處理所有的CAN2.0定義的幀了類型。還提供一些增強功能,本系統采用PeliCan模式。在進行信息傳遞時,首先必須對SJA1000進行初始化,這對SJA1000是一項很重要的工作。分別對其模式寄存器、時鐘分頻寄存器、接收代碼寄存器、接收屏蔽寄存器、總線定時寄存器0、1、輸出控制寄存器、發送錯誤計數器、錯誤代碼捕捉寄存器及中斷使能寄存器按照PeliCan的模式進行初始化。接下來才能進行信息的接收和發送。
評論