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