CAN總線在自動生產(chǎn)線中的應(yīng)用
標(biāo)識符字節(jié)1設(shè)定發(fā)送節(jié)點(diǎn)/接收節(jié)點(diǎn),設(shè)定內(nèi)容見表2。標(biāo)識符字節(jié)2中ID.2~I(xiàn)D.0(高3位)無定義取0,RTR是遠(yuǎn)程發(fā)送請求位,低4位為數(shù)據(jù)長度碼。
報(bào)文的標(biāo)識符就象報(bào)文的名字,它在接收器的接收過濾中被用到。網(wǎng)絡(luò)上所有的節(jié)點(diǎn)可以通過接收過濾確定是否采用該報(bào)文。接收過濾功能是可選項(xiàng),如選擇接收過濾功能,則應(yīng)將接收屏蔽寄存器中各個(gè)位設(shè)置成“相關(guān)”,如不選擇接收過濾功能,接收屏蔽寄存器中各個(gè)位應(yīng)設(shè)置成“不相關(guān)”。當(dāng)選擇了接收過濾功能時(shí),一旦節(jié)點(diǎn)接收到數(shù)據(jù),則只有當(dāng)接收碼與標(biāo)識符的ID.6~I(xiàn)D.3相同,接收的數(shù)據(jù)才會被節(jié)點(diǎn)采用。
報(bào)文中數(shù)據(jù)區(qū)第1個(gè)字節(jié)的內(nèi)容設(shè)定為信息類別,第2字節(jié)為待發(fā)送的數(shù)據(jù)。信息類別根據(jù)被傳送的信息類型進(jìn)行編碼,詳見表3。數(shù)據(jù)用來區(qū)分工件的黑/白顏色、正品/次品等信息。
3.2 CAN通訊節(jié)點(diǎn)軟件設(shè)計(jì)
CAN通訊節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括兩個(gè)部分:CAN通訊模塊程序、站內(nèi)控制模塊程序。站內(nèi)控制模塊程序包括單片機(jī)初始化和站內(nèi)控制功能的實(shí)現(xiàn)以及對CAN子程序的調(diào)用。CAN總線通訊程序是指在單片機(jī)的控制下將本節(jié)點(diǎn)的數(shù)據(jù)發(fā)送到總線上,以及接收總線上發(fā)送給本節(jié)點(diǎn)的信息并將其存人單片機(jī),主要包括CAN總線控制器sJAlooo的初始化、報(bào)文發(fā)送和報(bào)文接收3個(gè)部分。CAN通訊的數(shù)據(jù)傳輸按照用戶自定義通訊協(xié)議的格式進(jìn)行。
第2站(搬運(yùn)站)的CAN通訊數(shù)據(jù)幀定義見表4。
3.2.1 CAN初始化子程序流程
CAN控制器初始化是CAN總線系統(tǒng)正常工作的前提,CAN控制器SJAlooO的初始化設(shè)置是在復(fù)位模式下進(jìn)行的。由于篇幅關(guān)系,本文不作詳細(xì)說明。
3.2.2 CAN發(fā)送子程序流程
報(bào)文的發(fā)送由SJAl000根據(jù)CAN總線協(xié)議自動完成,用戶所要做的是把要發(fā)送的信息按特定的格式組成一幀報(bào)文,從單片機(jī)內(nèi)的系統(tǒng)發(fā)送緩沖區(qū)送到SJA1000的發(fā)送緩沖區(qū)中,然后通過寫命令寄存器的相應(yīng)位啟動“發(fā)送請求標(biāo)志位”。在將系統(tǒng)發(fā)送緩沖區(qū)數(shù)據(jù)送到SJAl000的發(fā)送緩沖區(qū)前,應(yīng)先判斷總線上是否正在接收數(shù)據(jù),還需判斷一下上次發(fā)送是否成功,否則不能寫入數(shù)據(jù)。
3.2.3 CAN接收子程序流程
報(bào)文的接收仍然由SJAlooO獨(dú)立完成。在搬運(yùn)站中,節(jié)點(diǎn)從總線上接收報(bào)文采用中斷的方式進(jìn)行。搬運(yùn)站通過中斷接收方式接收的信息有前站的工件顏色、前站準(zhǔn)備好的信息以及后站準(zhǔn)備好的信息。
采用中斷的方式進(jìn)行控制時(shí),總線上的報(bào)文通過本節(jié)點(diǎn)的驗(yàn)收濾波器測試后,這條完整的報(bào)文就被保存在接收緩沖器中。此時(shí),接收緩沖器狀態(tài)標(biāo)志位RBS被置1,表示接收緩沖區(qū)有新的數(shù)據(jù),并同時(shí)產(chǎn)生外部中斷。
單片機(jī)進(jìn)入中斷接收程序后首先保護(hù)現(xiàn)場,然后CPU讀出接收緩沖區(qū)的內(nèi)容,接著發(fā)送釋放接收緩沖器命令,清除接收緩沖器狀態(tài)標(biāo)志。最后恢復(fù)現(xiàn)場,中斷返回。
4 結(jié)束語
網(wǎng)絡(luò)技術(shù)在自動控制系統(tǒng)中的應(yīng)用已成為現(xiàn)代控制技術(shù)的一個(gè)重要發(fā)展方向。作為目前現(xiàn)場總線的主流標(biāo)準(zhǔn)-CAN總線技術(shù)在現(xiàn)代自動控制領(lǐng)域中的應(yīng)用狀況,從某種程度上代表著現(xiàn)代工業(yè)控制技術(shù)的發(fā)展水平。
本文根據(jù)預(yù)期的通訊速度快、可靠性高的目標(biāo)和要求,設(shè)計(jì)這套測控系統(tǒng),通過用戶自定義網(wǎng)絡(luò)應(yīng)用層協(xié)議,給出了具體的設(shè)計(jì)方案,闡述了CAN通訊程序的實(shí)現(xiàn)方法,滿足了自動生產(chǎn)線實(shí)時(shí)化、網(wǎng)絡(luò)化和智能化的設(shè)計(jì)要求。
隨著計(jì)算機(jī)、通訊和控制等技術(shù)的不斷發(fā)展,建立于這些技術(shù)基礎(chǔ)之上的現(xiàn)場總線技術(shù)也在不斷向前發(fā)展,CAN總線的特點(diǎn)和優(yōu)勢,使它非常適合于作為現(xiàn)場監(jiān)測和控制系統(tǒng)的通訊協(xié)議,其技術(shù)開放性及低成本,使基于CAN總線的測控技術(shù)可以廣泛應(yīng)用于工業(yè)自動化領(lǐng)域。
評論