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