隨著數字式聲納系統的發展,聲納基陣越來越大,系統功能日趨復雜,一部現代聲納要對幾十路甚至幾百路的數據進行采集,大容量數據的遠距離傳輸成為聲納設計的重要課題。以往采用的以太網傳輸方式為超時重發機制,單點的故障容易擴散,造成整個網絡系統的癱瘓。由于CAN總線傳輸距離遠、速度快,有較強的抗電磁干擾能力,已成為國際上應用最廣的現場總線之一。CAN為多主方式工作,其節點分成不同的優先級,采用非破壞仲裁技術,報文采用短幀結構,數據出錯率極低,節點在錯誤嚴重的情況下可自動關閉輸出。本系統利用雙層CAN總線實現聲納數據通信,具有突出的可靠性、實時性和靈活性。
1、設計原理
本數據通信系統要同時對多區域、多單元的數據信息進行傳輸及管理控制,因此采用分層、分區域的思想實現通信。系統采用單片機中間控制器作為各采集區域的核心控制器,實現上下層間的數據交換。采集單元自身具有微控制器和存儲器,既可作為系統的重要組成部分,參與系統功能的實現,也可作為獨立單元來完成數據采集功能,即在系統出現通信等故障的情況下,采集單元仍可以獨立實現數據采集功能,并進行數據存儲,提高了系統的可靠性。單片機中間控制器是數據通信的區域控制器,提供上層網絡和下層網絡通訊的雙接口。一方面通過底層網絡(Bot-CAN Bus)與各個采集單元進行通訊,實現對本區域數據的傳輸與處理;另一方面通過上層網絡(Top-CAN Bus)與上位機進行數據通訊,實現上位機對各個采集區域和采集單元的信息采集和控制。系統結構原理框圖如圖1所示。
2 、系統設計
系統主要由上位機、單片機中間控制器PIC18F4580、CAN總線控制器MCP2510、收發器TJA1040T、高速光耦HCPL0600、各采集單元等組成。接口包括采集單元的CAN總線接口、單片機中間控制器的雙CAN總線接口和上位機的CAN總線接口。采集單元的CAN總線接口采用標準的CAN總線接口。上位機采用工業控制計算機,可通過CAN適配卡連接到CAN總線網絡上。單片機中間控制器的雙層CAN總線接口電路是系統設計的關鍵,其原理框圖,如圖2所示。
2.1 雙層CAN總線接口電路
單片機中間控制器PIC18F4580自身就集成了一路CAN控制器,該路CAN總線與各采集單元進行通信。為了實現兩路獨立的CAN總線,需要通過單片機的SPI口向外擴展一路CAN控制器,該路CAN總線實現與上位機的通信。
外擴展CAN控制器選用MieroChip生產的獨立可編程CAN控制器芯片MCP2510,MCP2510是一種帶有SH接口的CAN控制器,它支持CAN2.0A/B協議,并能夠發送和接收標準及擴展的信息幀,同時具有接收濾波和信息管理的功能。MCP2510通過SPI接口與PIC18F4580進行數據傳輸,最高數據傳輸速率可達5 MB/s,PIC18F4580可通過MCP2510與CAN總線上的其他MCU單元通訊。MCP2510內含3個發送緩沖器、兩個接收緩沖器,同時還具有靈活的中斷管理能力,這些特點使得MCU對CAN總線的操作變得靈活簡便。為提高系統的抗干擾能力,在CAN控制器和CAN收發器之間加入高速光耦HCPL0600,其數據傳輸速率為10 MB/s,隔離電壓為2 500 V。CAN數據收發器選用Philips公司生產的TJA1040T,具有功耗低和電磁兼容性好的特點。使用MCP2510擴展CAN總線的接口電路原理圖,如圖3所示。
圖3中,單片機只給出部分管腳來說明具體的設計方法。使用單片機的RA5管腳來輸出MCP2510的片選信號,單片機的INT1管腳作為接收到有效數據包時的中斷輸入腳,利用單片機的SPI端口SDO,SDI和SCK與MCP251O實現數據的接收與發送。為了增強CAN總線節點的抗干擾能力,MCP2510的TXCAN和RXCAN并不是直接與TJA1040的TXD和RXD相連,而是通過高速光耦HCPL0600連接,這樣可實現總線上各CAN節點間的電氣隔離。另外,CAN總線兩端接有一個120 Ω的電阻,其作用是匹配總線阻抗。實驗證明,忽略匹配電阻的接入會使數據通信的抗干擾性以及可靠性降低,甚至無法實現數據通信。
單片機與各采集單元之間的通信利用自身集成的CAN控制器實現,只需將高速光耦HCPL0600與PIC18F4580的CAN控制器部分直接接口即可,不再贅述。為方便系統測設,設置了3個發光管指示燈,分別對CPU狀態和兩層CAN總線網絡運行狀態進行顯示。
2.2 電源監測與隔離電路
電源是通信系統的能量保證,電源電路的可靠性和穩定性對系統能否正常工作起著至關重要的作用。為最大限度減小噪聲和干擾,光耦部分采用的兩個電源VCC與VDD必須完全隔離,否則采用光耦也就失去了意義。
系統采用ICL7665對5 V電源進行監測,當電源電壓在4.8~5.2 V之間時,OUT1和OUT2均輸出高電平;當電源電壓高于5.2 V時,OUT1輸出低電平,OUT2輸出高電平;當電源電壓低于4.8 V時,OUT1輸出高電平,OUT2輸出低電平。ICL7665的輸出信號通過光電耦合器TLP281接入PIC18F4580的I/O口,實現對電源電壓的監控,使電源電壓誤差《4%。TLP281通過電光和光電傳遞信號,在電氣上隔離信號的發送端和接收端。這種隔離作用能有效抑制噪聲,消除接地回路的干擾。電源監測與隔離電路原理圖如圖4所示。
2.3 軟件設計
通信程序主要包括節點初始化程序、數據發送程序、數據接收程序以及CAN總線出錯處理程序等。為便于移植和資源共享,系統軟件設計采用C語言實現,軟件遵循模塊化設計思想,采用結構化程序設計方案,使其具有良好的擴展性。
在CAN通信過程中,初始化包括設置SPI接口的數據傳輸速率、CAN通信的波特率、MCP2510的接收過濾器和屏蔽器以及發送和接收中斷允許標志位等。內部和外部CAN控制器在接收數據時采用中斷方式,發送數據時采用查詢方式。與內部CAN控制器不同的是,讀、寫MCP2510的發送和接收緩沖器必須通過SPI接口協議的讀寫命令來實現。寫指令首先被發送到MCP2510的SI引腳,并在SCK的上升沿鎖存每個數據位,然后發送地址和數據。指令執行完畢后,數據被寫進指定的地址單元中,再通過SPI接口協議的寫命令來設置發送位以啟動發送。讀操作時,首先將讀指令和地址發送到MCP2510的SI引腳,并在SCK的上升沿鎖存每個數據位。同時把存貯在這個地址單元中的數據在SCK的下降沿輸出到SO引腳。當執行讀寫操作時,CS引腳應始終保持在低電平。外部擴展CAN總線軟件設計的流程圖,如圖5所示。
3 、系統測試
CAN總線協議有很好的錯誤校驗措施,當硬件檢測到數據在傳送過程中發生錯誤時,會自動重新發送數據,當某一節點的錯誤嚴重時,總線會自動關閉該節點,且不影響其他節點的數據傳送。
為了驗證系統數據采集及通信可靠性,分別對CAN總線上位機與各中間控制器節點、中間控制器與各采集單元節點進行實時仿真測試。仿真通信介質采用100 m長屏蔽電纜,采用多種數據幀結構,選用總線速率為20 kB/s,傳送數據域長度為8 bit的數據幀。分別進行上位機與節點的單幀和多幀通信。從主控狀態顯示情況來看,無數據傳送出錯和數據丟失現象,性能穩定,驗證系統具有一定的可靠性。
4 、結束語
本文結合CAN總線在航海領域的應用狀況,在研究CAN總線技術和PIC單片機功能的基礎上,設計了一種基于雙層CAN總線的聲納數據傳輸系統。本系統通過結合PIC18F4580內置CAN控制器及外擴展CAN控制器的方式,以具有雙CAN總線接口的單片機中間控制器為核心,采用分級、分區域組合的思想實現兩級、多區域數據信息的采集。系統充分融合了CAN總線傳輸距離遠,傳輸速率高,抗干擾能力強的特點,通過實驗檢測,文中所提出的設計方案可行,完全滿足聲納數據傳輸系統高穩定性、高可靠性的要求。系統不僅適用于船舶聲納數據的采集,而且可對CAN總線在航空領域的應用提供參考。
責任編輯:gt
-
控制器
+關注
關注
112文章
16361瀏覽量
178055 -
CAN總線
+關注
關注
145文章
1951瀏覽量
130760 -
數據采集
+關注
關注
39文章
6108瀏覽量
113653
發布評論請先 登錄
相關推薦
評論