基于雙層CAN總線(xiàn)的聲納數據通信系統設計
2.2 電源監測與隔離電路
電源是通信系統的能量保證,電源電路的可靠性和穩定性對系統能否正常工作起著(zhù)至關(guān)重要的作用。為最大限度減小噪聲和干擾,光耦部分采用的兩個(gè)電源VCC與VDD必須完全隔離,否則采用光耦也就失去了意義。
系統采用ICL7665對5 V電源進(jìn)行監測,當電源電壓在4.8~5.2 V之間時(shí),OUT1和OUT2均輸出高電平;當電源電壓高于5.2 V時(shí),OUT1輸出低電平,OUT2輸出高電平;當電源電壓低于4.8 V時(shí),OUT1輸出高電平,OUT2輸出低電平。ICL7665的輸出信號通過(guò)光電耦合器TLP281接入PIC18F4580的I/O口,實(shí)現對電源電壓的監控,使電源電壓誤差4%。TLP281通過(guò)電光和光電傳遞信號,在電氣上隔離信號的發(fā)送端和接收端。這種隔離作用能有效抑制噪聲,消除接地回路的干擾。電源監測與隔離電路原理圖如圖4所示。本文引用地址:http://dyxdggzs.com/article/156678.htm
2.3 軟件設計
通信程序主要包括節點(diǎn)初始化程序、數據發(fā)送程序、數據接收程序以及CAN總線(xiàn)出錯處理程序等。為便于移植和資源共享,系統軟件設計采用C語(yǔ)言實(shí)現,軟件遵循模塊化設計思想,采用結構化程序設計方案,使其具有良好的擴展性。
在CAN通信過(guò)程中,初始化包括設置SPI接口的數據傳輸速率、CAN通信的波特率、MCP2510的接收過(guò)濾器和屏蔽器以及發(fā)送和接收中斷允許標志位等。內部和外部CAN控制器在接收數據時(shí)采用中斷方式,發(fā)送數據時(shí)采用查詢(xún)方式。與內部CAN控制器不同的是,讀、寫(xiě)MCP2510的發(fā)送和接收緩沖器必須通過(guò)SPI接口協(xié)議的讀寫(xiě)命令來(lái)實(shí)現。寫(xiě)指令首先被發(fā)送到MCP2510的SI引腳,并在SCK的上升沿鎖存每個(gè)數據位,然后發(fā)送地址和數據。指令執行完畢后,數據被寫(xiě)進(jìn)指定的地址單元中,再通過(guò)SPI接口協(xié)議的寫(xiě)命令來(lái)設置發(fā)送位以啟動(dòng)發(fā)送。讀操作時(shí),首先將讀指令和地址發(fā)送到MCP2510的SI引腳,并在SCK的上升沿鎖存每個(gè)數據位。同時(shí)把存貯在這個(gè)地址單元中的數據在SCK的下降沿輸出到SO引腳。當執行讀寫(xiě)操作時(shí),CS引腳應始終保持在低電平。外部擴展CAN總線(xiàn)軟件設計的流程圖,如圖5所示。
3 系統測試
CAN總線(xiàn)協(xié)議有很好的錯誤校驗措施,當硬件檢測到數據在傳送過(guò)程中發(fā)生錯誤時(shí),會(huì )自動(dòng)重新發(fā)送數據,當某一節點(diǎn)的錯誤嚴重時(shí),總線(xiàn)會(huì )自動(dòng)關(guān)閉該節點(diǎn),且不影響其他節點(diǎn)的數據傳送。
為了驗證系統數據采集及通信可靠性,分別對CAN總線(xiàn)上位機與各中間控制器節點(diǎn)、中間控制器與各采集單元節點(diǎn)進(jìn)行實(shí)時(shí)仿真測試。仿真通信介質(zhì)采用100 m長(cháng)屏蔽電纜,采用多種數據幀結構,選用總線(xiàn)速率為20 kB/s,傳送數據域長(cháng)度為8 bit的數據幀。分別進(jìn)行上位機與節點(diǎn)的單幀和多幀通信。從主控狀態(tài)顯示情況來(lái)看,無(wú)數據傳送出錯和數據丟失現象,性能穩定,驗證系統具有一定的可靠性。
4 結束語(yǔ)
本文結合CAN總線(xiàn)在航海領(lǐng)域的應用狀況,在研究CAN總線(xiàn)技術(shù)和PIC單片機功能的基礎上,設計了一種基于雙層CAN總線(xiàn)的聲納數據傳輸系統。本系統通過(guò)結合PIC18F4580內置CAN控制器及外擴展CAN控制器的方式,以具有雙CAN總線(xiàn)接口的單片機中間控制器為核心,采用分級、分區域組合的思想實(shí)現兩級、多區域數據信息的采集。系統充分融合了CAN總線(xiàn)傳輸距離遠,傳輸速率高,抗干擾能力強的特點(diǎn),通過(guò)實(shí)驗檢測,文中所提出的設計方案可行,完全滿(mǎn)足聲納數據傳輸系統高穩定性、高可靠性的要求。系統不僅適用于船舶聲納數據的采集,而且可對CAN總線(xiàn)在航空領(lǐng)域的應用提供參考。
評論