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