国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CAN總線技術(shù)實(shí)驗(yàn)教學(xué)研究

2013-10-12 03:28錢新恩
關(guān)鍵詞:標(biāo)識(shí)符寄存器總線

錢新恩

(紫瑯職業(yè)技術(shù)學(xué)院,江蘇南通226002)

0 引言

汽車總線為汽車內(nèi)部各種復(fù)雜的電子設(shè)備、控制器和測(cè)量儀器等提供了統(tǒng)一數(shù)據(jù)交換渠道??刂凭钟蚓W(wǎng)CAN-BUS是一重要的車載網(wǎng)絡(luò),CAN總線標(biāo)準(zhǔn)及應(yīng)用是現(xiàn)代汽車維修人員必學(xué)的關(guān)鍵技術(shù)。

我們?cè)凇捌囓囕d網(wǎng)絡(luò)技術(shù)”課程的教學(xué)過程中感到,由于學(xué)生缺少感性認(rèn)識(shí),不易理解CAN總線的特點(diǎn)和優(yōu)點(diǎn),覺得CAN總線標(biāo)準(zhǔn)抽象無味,學(xué)習(xí)興趣不高。學(xué)生如果采用邊學(xué)習(xí)邊實(shí)踐,先易后難,循序漸進(jìn);教師理論聯(lián)系實(shí)際,學(xué)生就能夠從實(shí)踐中獲得興趣和理解。

SJA1000獨(dú)立CAN控制器可靈活組成低成本的小型CAN總線節(jié)點(diǎn),SJA1000與80C51系列微處理器組成的系統(tǒng)是一常用CAN總線節(jié)點(diǎn)形式。編寫SJA1000與80C51系列微處理器的接口程序是學(xué)習(xí)和掌握CAN總線技術(shù)的一條有效途徑,采用匯編語言程序編程可直接感受CAN總線標(biāo)準(zhǔn)的實(shí)現(xiàn)。SJA1000的PeliCAN模式能充分發(fā)揮CAN的先進(jìn)特性。開始學(xué)習(xí)CAN總線時(shí),要突出主要性能方面。為了使總線系統(tǒng)盡快工作起來,應(yīng)主要關(guān)注系統(tǒng)復(fù)位、標(biāo)示碼設(shè)置和波特率設(shè)置等方面內(nèi)容。本文以SJA1000的PeliCAN接口編程為主線,介紹CAN總線的實(shí)驗(yàn)系統(tǒng)。

1 實(shí)驗(yàn)硬件資源

實(shí)驗(yàn)系統(tǒng)包括:微處理器(STC89C52);CAN總線通訊模塊[1](采用SJA1000+82C250構(gòu)成CAN控制器和驅(qū)動(dòng)器)和四位七段碼顯示器。系統(tǒng)框圖見圖1所示。單片機(jī)STC89C52是以訪問外部存儲(chǔ)器的方式訪問SJA1000。單片機(jī)的P2.0與SJA1000片選管腳連接,在本系統(tǒng)的地址為#0FE00H。SJA1000復(fù)位管腳連接到單片機(jī)的P2.3。四位LED顯示器,段選地址為#80H,位選地址為#0A0H;前兩位顯示自發(fā)信息,后兩位顯示接收的信息,采用中斷方式發(fā)送和接收[2]。

圖1 實(shí)驗(yàn)系統(tǒng)框圖

2 SJA1000初始化

SJA1000寄存器的設(shè)置是編寫程序的第一步。CAN總線協(xié)議具體體現(xiàn)在SJA1000寄存器設(shè)置上,在認(rèn)真閱讀SJA1000在PeliCAN模式下各寄存器的定義的基礎(chǔ)上,逐步進(jìn)行[3]。為了便于描述,在介紹SJA1000寄存器設(shè)置時(shí),用的是CAN內(nèi)部地址。實(shí)際編程用的是外部地址(實(shí)驗(yàn)系統(tǒng)地址),外內(nèi)部地址的關(guān)系為:外部地址=FE00H+內(nèi)部地址。

1)復(fù)位

首先進(jìn)行模式設(shè)置,SJA1000內(nèi)部寄存器地址0,主設(shè)置:

MOD.3(AFM)=0;驗(yàn)收(兩個(gè))濾波器模式;

MOD.2(STM)=0;自檢測(cè)模式,正常模式;

MOD.0(RM)=1;復(fù)位測(cè)模式,復(fù)位。

在復(fù)位程序后應(yīng)加入延時(shí)程序,因?yàn)橄到y(tǒng)整體復(fù)位的到位是需要時(shí)間的,學(xué)生常會(huì)忽略這點(diǎn)。

2)識(shí)別碼編程

SJA1000內(nèi)部寄存器在工作模式與復(fù)位模式下的定義和作用不同,對(duì)于學(xué)生來說較難理解,易于造成混亂。在識(shí)別碼和驗(yàn)收碼方面尤為突出,這是因?yàn)橛行┑刂肥菑?fù)用的。

復(fù)位模式下:驗(yàn)收代碼寄存碼地址:FE10HFE13H;驗(yàn)收屏蔽寄存器地址:FE14H-FE17H。

工作模式下(發(fā)送節(jié)點(diǎn)):識(shí)別碼寄存器地址:FE11H-FE14H;數(shù)據(jù)傳送寄存器地址:FE15HFE1CH。

CAN節(jié)點(diǎn)通過標(biāo)識(shí)符來識(shí)別自己想要的CAN幀,接收濾波寄存器設(shè)置了標(biāo)識(shí)符每位的值。接收屏蔽寄存器一般有相同的數(shù)量匹配接收濾波寄存器,規(guī)定接收濾波寄存器標(biāo)識(shí)符每一位的值是否需要進(jìn)行匹配。

節(jié)點(diǎn)從總線上接收CAN幀,依次將收到的CAN幀標(biāo)識(shí)符與4對(duì)接收濾波和屏蔽寄存器進(jìn)行匹配,符合某對(duì)接收濾波和屏蔽寄存器要求了,就停止匹配,將數(shù)據(jù)接收到對(duì)應(yīng)的緩沖區(qū)中。

某節(jié)點(diǎn)只接收?qǐng)?bào)文標(biāo)示碼為:10101010XXX

設(shè)置驗(yàn)收代碼寄存器(ACR):10101010

設(shè)置驗(yàn)收屏蔽寄存器(AMR):00000000

該對(duì)組合會(huì)拒絕接收10101010xxx之外所有的標(biāo)識(shí)符對(duì)應(yīng)的CAN幀。因?yàn)槠帘纹饕?guī)定前8位(為0)標(biāo)識(shí)符位要嚴(yán)格匹配,其他位的濾波器值和收到的CAN標(biāo)識(shí)符值是否一致都可以。

3)波特率預(yù)設(shè)值

波特率預(yù)設(shè)值時(shí)鐘頻率為16MHz,總線的頻率為125kHz(總線位時(shí)間的倒數(shù))。

總線位時(shí)間(TBIT)=時(shí)間段1(TTSEG1)+時(shí)間段2(TTSEG2)+位同步時(shí)間段(TSYNCSEG)。具體設(shè)置如下所述。

(1)總線定時(shí)器0(CAN地址6)的定義

BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SJW.1 SJW.0 BRP.5 BRP.4 BRP.3 BRP.2 BRP.1 BRP.0

最小時(shí)間段為TSCL=2TCLK(32BRP.5+16BRP.4+8BRP.3+4BRP.2+2BRP.1+BRP.0+1)

同步跳轉(zhuǎn)寬度TSJW=TSCL(2SJW.1+SJW.0+1)

參數(shù)設(shè)置為03H,結(jié)果為

(2/16M)×(2+1+1)=0.5×10-6(s),其結(jié)果相當(dāng)于2 MHz。

(2)總線定時(shí)器1(CAN地址7)的定義

BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SAM TSEG2.2 TSEG2.1 TSEG2.0 TSEG1.3 TSEG1.2 TSEG1.1 TSEG1.0

參數(shù)設(shè)置為1CH,結(jié)果為

這個(gè)結(jié)果相當(dāng)于125kHz。

4)其他

對(duì)于輸出控制命令寄存器(OCR)、狀態(tài)寄存器(SR)、中斷寄存器(IR)和中斷使能寄存器(IER)依照定義進(jìn)行類似設(shè)置。

3 數(shù)據(jù)傳送實(shí)驗(yàn)編程

由于單片機(jī)是以訪問外部存儲(chǔ)器的方式訪問SJA1000的,數(shù)據(jù)在CAN線上傳送,結(jié)果表現(xiàn)在將數(shù)據(jù)寫入SJA1000或是從SJA1000讀出數(shù)據(jù)。為使實(shí)驗(yàn)步驟先易后難,先讓學(xué)生進(jìn)行自發(fā)自收編程,再進(jìn)行兩點(diǎn)互發(fā)編程,最后是多點(diǎn)互連實(shí)驗(yàn)。

1)自發(fā)自收編程和兩點(diǎn)互發(fā)編程

自發(fā)自收實(shí)驗(yàn)是為了排除連線問題,將精力集中在SJA1000的參數(shù)設(shè)置方面。自發(fā)自收編程,只需將MOD.2(STM)置1,即進(jìn)入自檢測(cè)模式。

若自發(fā)自收成功了,可以說明系統(tǒng)基本上可以運(yùn)行了。兩點(diǎn)互發(fā)實(shí)驗(yàn),將MOD.2(STM)置零進(jìn)入正常模式,可將驗(yàn)收屏蔽寄存器地址FE14HFE17H全置1。

2)多點(diǎn)互連實(shí)驗(yàn)

暫以四個(gè)節(jié)點(diǎn)為例,四個(gè)節(jié)點(diǎn)分別為1號(hào)、2號(hào)、3號(hào)和4號(hào),連接方式如圖2所示。規(guī)定前8位標(biāo)識(shí)符位要嚴(yán)格匹配,其他為任意。四個(gè)節(jié)點(diǎn)的驗(yàn)收屏蔽寄存器(AMR)前8位都設(shè)置為0,其余24為設(shè)置為1。

圖2 四個(gè)節(jié)點(diǎn)連接框圖

四個(gè)節(jié)點(diǎn)設(shè)置驗(yàn)收代碼寄存器(ACR)如下:

1號(hào)2號(hào)3號(hào)4號(hào)00000001 00000010 00000011 00000100

發(fā)送信息時(shí),在工作模式下,將驗(yàn)收代碼寄存器設(shè)置為需要接受信息節(jié)點(diǎn)的標(biāo)識(shí)碼。

4 結(jié)語

本文通過對(duì)SJA1000與80C51系列微處理器組成CAN節(jié)點(diǎn)的實(shí)驗(yàn),加深了學(xué)生對(duì)CAN總線的了解。在“汽車車載網(wǎng)絡(luò)技術(shù)”課程的學(xué)習(xí)中,汽車電子技術(shù)專業(yè)和汽車檢測(cè)與維修專業(yè)的學(xué)生,通過互連的CAN節(jié)點(diǎn)實(shí)驗(yàn),較好地理解了報(bào)文標(biāo)識(shí)符的含義,從而較快地設(shè)計(jì)出不同的節(jié)點(diǎn)同時(shí)接收到相同數(shù)據(jù)的實(shí)現(xiàn)程序,與此同時(shí)對(duì)自檢模式、差分輸出和波特率的設(shè)置等有了較深理解。由此增強(qiáng)了學(xué)生學(xué)習(xí)的興趣,為今后進(jìn)一步學(xué)習(xí)和應(yīng)用汽車總線技術(shù)打下了良好的基礎(chǔ)。

[1] CEPARK+CAN總線開發(fā)板V3.0原理圖www.bbs.cepark.com[eb/ol] ∥2012.9.22

[2] 陳蕾,鄧晶,仲光榮.單片機(jī)原理與接口技術(shù)[M] .北京:機(jī)械工業(yè)出版社,2012.129-145

[3] 李勇,李鵬偉,茍丹丹.汽車單片機(jī)與車載網(wǎng)絡(luò)技術(shù)[M] .北京:電子工業(yè)出版社,2012.207-224

猜你喜歡
標(biāo)識(shí)符寄存器總線
基于底層虛擬機(jī)的標(biāo)識(shí)符混淆方法
STM32和51單片機(jī)寄存器映射原理異同分析
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
基于區(qū)塊鏈的持久標(biāo)識(shí)符系統(tǒng)①
基于PCI Express總線的xHC與FPGA的直接通信
機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
科研人員唯一標(biāo)識(shí)符的理論研究現(xiàn)狀剖析
CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
多通道ARINC429總線檢查儀
數(shù)字圖書館推廣工程唯一標(biāo)識(shí)符體系構(gòu)建研究*