基于CAN總線(xiàn)的電車(chē)漏電檢測裝置的研制
CAN接口電路采用了PHILIPS公司的SJA1000控制器和TJA1050高性能收發(fā)器。為了使本裝置與電車(chē)上其他各路系統如蓄電池管理系統、發(fā)動(dòng)機系統、儀表顯示系統的電氣隔離,該CAN接口的設計上采用了高速光耦6N137和單獨的隔離5 V電源,隔離電壓達到了電車(chē)電器部件隔離規范要求的3 000 V。詳細設計如圖3所示。本文引用地址:http://dyxdggzs.com/article/197801.htm
CAN 2.0B協(xié)議數據單元由標識碼和數據域兩個(gè),部分組成,標識碼包括了優(yōu)先權(P)、保留位(R)、數據頁(yè)(DP)、格式域(PF)、特定域(PS)、源地址(SA)和數據域(DF)七部分。
SAE J1939是以CAN 2.0B擴展信息格式為基礎,用于大型車(chē)輛的協(xié)議。該設計參照此協(xié)議并兼容了北京公交的無(wú)軌電車(chē)電器控制CAN編碼協(xié)議,規定了通訊的波特率為200 kHz。標識碼由29位組成,分別為狀態(tài)ID和指令I(lǐng)D。定義為:PF=0XFF,PS=0X04,優(yōu)先級=3,地址=0X09。數據域由8個(gè)字節,64位組成,各個(gè)單元的數據域都有不同定義。
3 軟件例程與應用
軟件采用模塊化、結構化的編程方法,本系統軟件部分主要由單片機的數據采集模塊和CAN接口的通信模塊組成;所有代碼在ICC AVR開(kāi)發(fā)環(huán)境中進(jìn)行C語(yǔ)言編寫(xiě)。本系統中,核心處理器器ATmega 16與CAN控制器之間采用中斷觸發(fā)的方式進(jìn)行命令、數據的接收,并采用輪詢(xún)方式進(jìn)行數據的發(fā)送。
系統周期性采集到外部信號后,按照規定的格式發(fā)送數據到總線(xiàn)上,同時(shí)根據需要提前報文和標志并判別是否發(fā)送成功;若CAN控制器接收到外部命令數據,利用屏蔽濾波寄存器對接收報文的標識符和預先在接收緩沖器初始化時(shí)設定的標識符進(jìn)行有選擇地逐位比較,只有標識符匹配的報文才能進(jìn)人接收緩沖器并發(fā)送信號到MCU的對應引腳,從而觸發(fā)中斷。
3.1 系統初始化
系統初始化主要對系統中ADC與CAN控制器工作時(shí)的各參數設置,其主要內容包括:設置對應2個(gè)I/O口為ADC口、設定ADC使能和查詢(xún)讀數方式、硬件使能CAN、設置CAN報警界限、設置總線(xiàn)波特率、設置中斷工作方式、設置CAN驗收濾波器的工作方式、設置CAN控制器的工作模式等。初始化流程如圖4所示。
評論