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