張福建,周 暉,汪 湛
(中國(guó)船舶重工集團(tuán)公司第七二三研究所,江蘇揚(yáng)州 225001)
控制器局域網(wǎng)絡(luò)CAN(Controller Area Network)是20世紀(jì)80年代初研制成功的一種現(xiàn)場(chǎng)總線,其最初主要是為汽車監(jiān)測(cè)、控制系統(tǒng)而設(shè)計(jì)的。CAN總線采用差分驅(qū)動(dòng),可在高噪聲干擾的環(huán)境中使用,且具有較強(qiáng)的糾錯(cuò)能力等,加之其性能好、成本低、靈活的特點(diǎn),已在廣泛的領(lǐng)域得到應(yīng)用。
CAN總線采用雙絞線,通信速率塊,支持設(shè)備多(最多110個(gè))[2];廢除傳統(tǒng)的站地址編碼,多主從方式工作;采用短幀結(jié)構(gòu),不易受干擾影響;采用CRC校驗(yàn)提高數(shù)據(jù)傳輸可靠性,抗干擾能力強(qiáng);采用仲裁技術(shù),區(qū)分節(jié)點(diǎn)優(yōu)先級(jí),有效避免總線沖突。
某控制系統(tǒng)基本結(jié)構(gòu)框圖如圖1所示。
其中,平臺(tái)控制板與A、M軸驅(qū)動(dòng)器板之間有大量的數(shù)據(jù)傳輸。系統(tǒng)要求A、M軸驅(qū)動(dòng)器板以3 k的頻率向平臺(tái)控制板傳送A、M軸電機(jī)瞬時(shí)的轉(zhuǎn)速和位置數(shù)據(jù)(均為16位二進(jìn)制數(shù)據(jù)),而平臺(tái)控制板在接收到相應(yīng)信息后,進(jìn)行解算,并以相同的3 k頻率分別向A、M軸驅(qū)動(dòng)器給出16位速度指令,同時(shí)要把解算出的由于A、M軸的運(yùn)動(dòng)造成對(duì)方位軸速度和位置的擾動(dòng)實(shí)時(shí)地傳給方位控制板(A軸、M軸、方位電機(jī)是依次自下往上按一定角度疊加在一塊的)。
圖1 某控制系統(tǒng)結(jié)構(gòu)框圖
方位驅(qū)動(dòng)板以3 k的頻率向方位控制板傳送方位電機(jī)的瞬時(shí)速度和位置量。方位控制板根據(jù)平臺(tái)控制板和方位驅(qū)動(dòng)板送來(lái)的數(shù)據(jù)解算出對(duì)方位電機(jī)的速度指令,并以3 k的頻率發(fā)送給方位驅(qū)動(dòng)板。這就對(duì)控制板和驅(qū)動(dòng)板之間的通訊提出了很高的要求。因此在本系統(tǒng)中決定采用CAN總線通訊方式。
本系統(tǒng)中采用PC104總線的嵌入式控制系統(tǒng),因此CAN總線的硬件電路主要包括PC104總線模塊、雙口RAM控制電路、80C592單片機(jī)、光電隔離電路、82C251芯片、保護(hù)電路等。CAN控制器完成CAN通信協(xié)議;總線收發(fā)器調(diào)節(jié)電平,增大通信距離;光電隔離電路以及后面保護(hù)電路實(shí)現(xiàn)控制器與收發(fā)器及總線的物理隔離,保護(hù)器件[4]。
CAN總線接口框圖如圖2所示。
圖2 CAN總線框圖
(1)工作原理
驅(qū)動(dòng)板把數(shù)據(jù)傳到CAN總線上,控制板上的82C251接收總線上所有傳輸?shù)膸?,通過(guò)電流和電壓隔離后,傳送到P80C592的CAN模塊,CAN模塊比較接收碼寄存器和幀的ID碼,若相等則接收,并引發(fā)一個(gè)接收中斷。在接收中斷的處理中,P80C592讀取碼CAN模塊接收緩沖區(qū)的數(shù)據(jù),把它傳送到CY7C09449的雙口RAM中,并觸發(fā)PC104模塊的接受中斷,PC104模塊在中斷中讀取CY7C09449雙口RAM中的數(shù)據(jù),并根據(jù)數(shù)據(jù)的ID碼來(lái)區(qū)分是從哪塊驅(qū)動(dòng)板來(lái)的數(shù)據(jù)加以處理。反之,PC104模塊把計(jì)算出的指令,根據(jù)對(duì)象的不同,加上ID碼組成數(shù)據(jù),寫入CY7C09449并觸發(fā)單片機(jī)P80C592中斷,單片機(jī)從雙口RAM中讀出改數(shù)據(jù),再傳送到內(nèi)部的CAN模塊,CAN模塊把數(shù)據(jù)傳給82C251,再由82C251把數(shù)據(jù)傳到CAN總線上,由相應(yīng)的驅(qū)動(dòng)板接收[5]。
CAN控制器和總線上設(shè)備的交互與其控制段、發(fā)送緩沖層、接收緩沖層密切相關(guān),其驗(yàn)收碼寄存器的驗(yàn)收碼位(AC.7~AC.0)和報(bào)文標(biāo)識(shí)符的最高8位(ID.10~I(xiàn)D.3)必須等于由驗(yàn)收屏蔽位(AM.7~AM.0)屏蔽的那些位。若滿足下列等式,則予以驗(yàn)收:
[(ID.10~I(xiàn)D.3) =(AC.7~AC.0)] OR (AM.7~AM.0) =11111111B
(2)具體保護(hù)電路及措施
光電隔離:利用光耦器件實(shí)現(xiàn)CAN控制器與收發(fā)器的物理隔離,實(shí)現(xiàn)保護(hù)。
電容濾波:CANH和CANL與地之間接30 pF的電容濾除總線上的高頻干擾,抑制電磁輻射。
TVS管保護(hù):在CANH與CANL之間以及CANH、CANL與地之間分別接上一個(gè)6.8 V的瞬態(tài)電壓抑制二極管(TVS),防止瞬間的差模以及共模電壓損壞電路。正常工作狀態(tài)下,瞬態(tài)抑制二極管工作在反向偏置狀態(tài),相當(dāng)于開路;當(dāng)產(chǎn)生較高的瞬態(tài)電壓時(shí),瞬態(tài)抑制二極管的阻抗瞬間降到很低,為大電流提供一個(gè)額外通路,同時(shí)將電壓鉗位至正常電壓[6]。
PPTC電阻:TVS管后連接PPTC電阻(自恢復(fù)保險(xiǎn)絲),正常工作狀態(tài)下阻抗很小,相當(dāng)于通路;當(dāng)電流過(guò)大時(shí),PPTC電阻內(nèi)部熔斷,阻抗變大,將電流降至安全范圍內(nèi),以此實(shí)現(xiàn)對(duì)總線的限流保護(hù)。
軟件采用匯編語(yǔ)言編寫,具體的流程如圖3~圖6所示。
圖3 主程序框圖
圖4 CAN模塊初始化框圖
圖5 接受中斷程序框圖
圖6 發(fā)送中斷程序框圖
本文設(shè)計(jì)的CAN總線接口目前已經(jīng)在該控制系統(tǒng)中實(shí)際使用,完全符合系統(tǒng)工作要求,運(yùn)行良好,具有良好的電磁防護(hù)和抗干擾能力。CAN總線技術(shù)在伺服控制中的應(yīng)用前景,能在可靠性、高精度、經(jīng)濟(jì)性等多方面獲得最大的效益;以工業(yè)標(biāo)準(zhǔn)PC/104為代表的嵌入式控制系統(tǒng)具有突出的優(yōu)點(diǎn),十分適合于工業(yè)環(huán)境的要求。