CAN總線在自動生產線中的應用
標識符字節1設定發送節點/接收節點,設定內容見表2。標識符字節2中ID.2~ID.0(高3位)無定義取0,RTR是遠程發送請求位,低4位為數據長度碼。

報文的標識符就象報文的名字,它在接收器的接收過濾中被用到。網絡上所有的節點可以通過接收過濾確定是否采用該報文。接收過濾功能是可選項,如選擇接收過濾功能,則應將接收屏蔽寄存器中各個位設置成“相關”,如不選擇接收過濾功能,接收屏蔽寄存器中各個位應設置成“不相關”。當選擇了接收過濾功能時,一旦節點接收到數據,則只有當接收碼與標識符的ID.6~ID.3相同,接收的數據才會被節點采用。
報文中數據區第1個字節的內容設定為信息類別,第2字節為待發送的數據。信息類別根據被傳送的信息類型進行編碼,詳見表3。數據用來區分工件的黑/白顏色、正品/次品等信息。

3.2 CAN通訊節點軟件設計
CAN通訊節點的軟件設計主要包括兩個部分:CAN通訊模塊程序、站內控制模塊程序。站內控制模塊程序包括單片機初始化和站內控制功能的實現以及對CAN子程序的調用。CAN總線通訊程序是指在單片機的控制下將本節點的數據發送到總線上,以及接收總線上發送給本節點的信息并將其存人單片機,主要包括CAN總線控制器sJAlooo的初始化、報文發送和報文接收3個部分。CAN通訊的數據傳輸按照用戶自定義通訊協議的格式進行。
第2站(搬運站)的CAN通訊數據幀定義見表4。

3.2.1 CAN初始化子程序流程
CAN控制器初始化是CAN總線系統正常工作的前提,CAN控制器SJAlooO的初始化設置是在復位模式下進行的。由于篇幅關系,本文不作詳細說明。
3.2.2 CAN發送子程序流程
報文的發送由SJAl000根據CAN總線協議自動完成,用戶所要做的是把要發送的信息按特定的格式組成一幀報文,從單片機內的系統發送緩沖區送到SJA1000的發送緩沖區中,然后通過寫命令寄存器的相應位啟動“發送請求標志位”。在將系統發送緩沖區數據送到SJAl000的發送緩沖區前,應先判斷總線上是否正在接收數據,還需判斷一下上次發送是否成功,否則不能寫入數據。
3.2.3 CAN接收子程序流程
報文的接收仍然由SJAlooO獨立完成。在搬運站中,節點從總線上接收報文采用中斷的方式進行。搬運站通過中斷接收方式接收的信息有前站的工件顏色、前站準備好的信息以及后站準備好的信息。
采用中斷的方式進行控制時,總線上的報文通過本節點的驗收濾波器測試后,這條完整的報文就被保存在接收緩沖器中。此時,接收緩沖器狀態標志位RBS被置1,表示接收緩沖區有新的數據,并同時產生外部中斷。
單片機進入中斷接收程序后首先保護現場,然后CPU讀出接收緩沖區的內容,接著發送釋放接收緩沖器命令,清除接收緩沖器狀態標志。最后恢復現場,中斷返回。
4 結束語
網絡技術在自動控制系統中的應用已成為現代控制技術的一個重要發展方向。作為目前現場總線的主流標準-CAN總線技術在現代自動控制領域中的應用狀況,從某種程度上代表著現代工業控制技術的發展水平。
本文根據預期的通訊速度快、可靠性高的目標和要求,設計這套測控系統,通過用戶自定義網絡應用層協議,給出了具體的設計方案,闡述了CAN通訊程序的實現方法,滿足了自動生產線實時化、網絡化和智能化的設計要求。
隨著計算機、通訊和控制等技術的不斷發展,建立于這些技術基礎之上的現場總線技術也在不斷向前發展,CAN總線的特點和優勢,使它非常適合于作為現場監測和控制系統的通訊協議,其技術開放性及低成本,使基于CAN總線的測控技術可以廣泛應用于工業自動化領域。


評論