999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

AVR單片機(jī)集成CAN總線控制器分析與應(yīng)用

2011-01-01 00:00:00王治國(guó)高玉峰劉亞龍
電子產(chǎn)品世界 2011年6期

引言

CAN總線應(yīng)用中,總線節(jié)點(diǎn)是CAN總線的基本組成部分。CAN總線節(jié)點(diǎn)有兩種典型設(shè)計(jì)方法,第一種方法采用MCU結(jié)合獨(dú)立CAN控制器組成總線節(jié)點(diǎn):第二種方法采用獨(dú)立的MCU,這時(shí)MCU需要內(nèi)部集成CAN控制器。由于第二種設(shè)計(jì)方法所用的器件少,電路關(guān)系簡(jiǎn)單,已得到廣泛應(yīng)用。本文重點(diǎn)分析AVR系列單片機(jī)內(nèi)部集成的CAN控制器及其應(yīng)用方法。

AT90CAN集成CAN總線控制器分析

AVR內(nèi)部集成CAN控制器的芯片主要包括AT90CAN32/64/128三種單片機(jī),它們之間的主要區(qū)別是存儲(chǔ)空間不同。

AT90CAN32/64/128內(nèi)部集成的CAN總線控制器由CAN通道和郵箱組成,其工作參數(shù)通過(guò)寄存器設(shè)置,工作過(guò)程也通過(guò)寄存器監(jiān)控。CAN控制器基本結(jié)構(gòu)如圖1所示。

CAN總線控制器組成

CANh通道

CAN通道是CAN控制器用于完成發(fā)送和接收的部分。使用CAN控制器時(shí),需要對(duì)CAN通道工作模式和位定時(shí)進(jìn)行設(shè)置。

(1)CAN通道工作模式

CAN通道有使能、待命以及只聽三種工作模式。不同模式下通道、時(shí)鐘以及寄存器的工作模式不同,詳細(xì)內(nèi)容見(jiàn)參考文獻(xiàn)[3]。

(2)位定時(shí)

CAN通道位定時(shí)的概念和基本規(guī)定與CAN總線協(xié)議一致。AVR~~列單片機(jī)中,CAN總線控制器時(shí)間份額(TQ即為波特率分頻器輸出時(shí)鐘信號(hào)的周期。CAN總線位周期由同步段(SYNS)、傳播段(PRS)、相位緩沖段l(PHSl)、相位緩沖段2(PHS2)組成,每個(gè)時(shí)間段的長(zhǎng)度都是時(shí)間份額(T∞的整數(shù)倍。通過(guò)位定時(shí)設(shè)置可以確定各時(shí)間段的長(zhǎng)度,同時(shí)還可以設(shè)置重同步跳轉(zhuǎn)寬度(SJw)以及信號(hào)采樣位置和采樣次數(shù)。設(shè)置時(shí),CAN總線位時(shí)間必須設(shè)置在8~25個(gè)時(shí)間份額之間。位定時(shí)設(shè)置完畢后即可計(jì)算總線波特率,計(jì)算方法見(jiàn)參考文獻(xiàn)。

郵箱及報(bào)文對(duì)象(MOb)

AT90CAN32/64/128單片機(jī)集成的CAN控制器通過(guò)郵箱存儲(chǔ)報(bào)文,并以MOb的形式管理。郵箱包含ls個(gè)獨(dú)立的MOb,每個(gè)MOb都可以設(shè)置為接收或發(fā)送模式。發(fā)送時(shí),編號(hào)小的MOb優(yōu)先級(jí)高。接收時(shí),只有當(dāng)CAN控制器接收到報(bào)文的標(biāo)識(shí)符與某個(gè)MOb預(yù)先設(shè)置的標(biāo)識(shí)符吻合時(shí),CAN控制器才會(huì)將接收到的報(bào)文存儲(chǔ)在該MOb中,并可以通過(guò)中斷的方式通知單片機(jī)。CAN控制器還可自動(dòng)對(duì)遠(yuǎn)程幀作出應(yīng)答,從而減輕CPU的負(fù)擔(dān)。

(1)MOb工作模式

MOb包括禁止、發(fā)送、接收、自動(dòng)應(yīng)答、幀緩沖器接收等6種不同的工作模式。芯片復(fù)位后,MOb并沒(méi)有默認(rèn)的工作狀態(tài)。因此,在使能MOb之前必須對(duì)MOb進(jìn)行配置,配置內(nèi)容及相應(yīng)的工作模式如表l所示。

(2)接收濾波器

AT90CAN32/64/128單片機(jī)集成的cAN總線控制器接收?qǐng)?bào)文時(shí),首先要完成接收濾波。接收濾波時(shí),需要將接收?qǐng)?bào)文的ID+RTR+RBn+IDE域與接收模式MOb的IDT+TRITAG+TBnTAG+IDE域進(jìn)行比較,比較過(guò)程中要考慮掩碼(AVR單片機(jī)掩碼為“1”時(shí)無(wú)效,掩碼為“0”時(shí)有效),結(jié)果一致后確認(rèn)匹配,相應(yīng)MOb的內(nèi)容被更新。接收濾波器原理圖如圖2所示。

(3)MOb頁(yè)

郵箱中的MOb以頁(yè)的形式存儲(chǔ)和管理。當(dāng)需要選擇郵箱中某個(gè)MOb進(jìn)行操作時(shí),首先要用CANPAGE寄存器完成對(duì)MOb的選擇,然后才能進(jìn)行相應(yīng)操作。

(4)CAN數(shù)據(jù)緩存區(qū)

為了保護(hù)MOb寄存器的配置,將寄存器存儲(chǔ)在MOb內(nèi)部,而數(shù)據(jù)則存儲(chǔ)在CAN數(shù)據(jù)緩存區(qū)中。緩存區(qū)可看作一個(gè)隊(duì)列,每一個(gè)MOb都對(duì)應(yīng)一個(gè)緩存區(qū),數(shù)據(jù)緩存區(qū)可通過(guò)CAN消息寄存器訪問(wèn)。訪問(wèn)某一個(gè)MOb對(duì)應(yīng)的數(shù)據(jù)緩存區(qū)時(shí)需要使用數(shù)據(jù)索引,該索引是指向緩存區(qū)中某個(gè)數(shù)據(jù)字節(jié)的地址指針。CAN報(bào)文數(shù)據(jù)的第一個(gè)字節(jié)存儲(chǔ)在數(shù)據(jù)緩存區(qū)索引為O的地址。

CAN中斷

CAN控制器包括普通中斷和特殊中斷。普通中斷包括接收完成中斷、發(fā)送完成中斷、錯(cuò)誤中斷f位錯(cuò)誤、填充錯(cuò)誤、CRC校驗(yàn)錯(cuò)誤、形式錯(cuò)誤、應(yīng)答錯(cuò)誤)、幀緩沖區(qū)滿中斷以及總線關(guān)閉設(shè)置中斷等。特殊中斷主要指CAN定時(shí)器超時(shí)中斷。普通中斷由ENIT位使能,特殊中斷由ENORVT位使能。CAN總線控制器各種中斷的相互關(guān)系如圖3所示。

當(dāng)中斷發(fā)生時(shí),相應(yīng)MOb的CANSTMOB寄存器中斷標(biāo)志位或通用CANGIT寄存器的中斷標(biāo)志位置位。如果CANIE寄存器中的ENRX/ENTX/ENERR職位,CANSITn寄存器中相應(yīng)的MOb位置位,以指出發(fā)生中斷的MOb。

為了響應(yīng)Mob中斷,CANsTMOB寄存器中的相應(yīng)位(RXOK、TXOK)必須通過(guò)軟件復(fù)位。具體的復(fù)位操作過(guò)程為“讀一修改一寫入”。

為了響應(yīng)普通中斷,CANGIT寄存器中的相應(yīng)位(BXOK、BOFFIT)必須通過(guò)軟件復(fù)位。該操作需要通過(guò)向這些標(biāo)志位寫入邏輯“1”完成。OVRTIM(cAN定時(shí)器溢出中斷)標(biāo)志位復(fù)位的方式有所不同。當(dāng)執(zhí)行CAN定時(shí)器溢出中斷程序以及CANGIT寄存器中其它中斷標(biāo)志位置位時(shí),OVRTIM標(biāo)志位自動(dòng)復(fù)位。

傳輸過(guò)程中,當(dāng)CAN控制器檢測(cè)到形式錯(cuò)誤時(shí),將同時(shí)觸發(fā)位錯(cuò)誤,從而產(chǎn)生2種錯(cuò)誤中斷。當(dāng)出現(xiàn)MOb錯(cuò)誤時(shí),僅在CANSTMOB寄存器中置位相應(yīng)的標(biāo)志位,CANGIT寄存器不會(huì)發(fā)生變化。

控制寄存器

AVR系列單片機(jī)通過(guò)控制寄存器設(shè)置并控制CAN總線控制器的工作。控制寄存器包括通用寄存器和MOb寄存器。CAN總線控制器寄存器結(jié)構(gòu)如圖4所示。

(1)通用寄存器

通用寄存器包括控制寄存器和狀態(tài)寄存器兩類。

CAN通用控制寄存器(CANGCON)和通用狀態(tài)寄存器(CANGSTA)用于設(shè)置及查詢CAN控制器的工作模式;CAN通用中斷寄存器(CANGIT)和通用中斷使能寄存器(CANGIE)用于使能中斷并查詢中斷標(biāo)志:CAN使能MOb寄存器(CANEN2和CANENl)用于使能MOb。CAN使能MOb中斷寄存器(CANIE2和CANIEl)用于使能MOb中斷;CAN位定時(shí)寄存器(CANBTl、CANBT2和CANBT3)用于設(shè)置位定時(shí)相關(guān)的內(nèi)容,包括時(shí)鐘分頻系數(shù)、同步跳轉(zhuǎn)寬度、總線位周期各段長(zhǎng)度和采樣點(diǎn):CAN定時(shí)器控制寄存器(cANTCON)用于設(shè)置CAN定時(shí)器分頻系數(shù)。CAN定時(shí)器寄存器(cANTIML和CANTIMH)用于讀取CAN定時(shí)器計(jì)數(shù)值:TTC定時(shí)器寄存器(CANTTCL和CANTTCH)用于讀取TTC定時(shí)器計(jì)數(shù)值:CAN發(fā)送錯(cuò)誤計(jì)數(shù)器寄存器(cANTEC)用于記錄CAN發(fā)送錯(cuò)誤次數(shù)。CAN接收錯(cuò)誤計(jì)數(shù)器寄存器(cANREC)用于記錄CAN接收錯(cuò)誤次數(shù):CAN最高優(yōu)先級(jí)MOb寄存器(cANHPMOB)用于記錄具有最高優(yōu)先級(jí)MOb的頁(yè)碼:CAN的MOb頁(yè)寄存器(CANPAGE)用于設(shè)置當(dāng)前有效MOb的頁(yè)碼以及CAN數(shù)據(jù)緩沖區(qū)索引增加模式,同時(shí)可設(shè)置或讀取CAN數(shù)據(jù)緩沖區(qū)索引值。

(2)MOb寄存器

MOb狀態(tài)寄存器(CANSTMOB)用于顯示MOb的狀態(tài),主要包括發(fā)送、接收完成信息以及錯(cuò)誤信息:MOb控制與數(shù)據(jù)長(zhǎng)度控制寄存器(CANCDMOB)用于設(shè)置當(dāng)前有效MOb的工作模式、標(biāo)識(shí)符擴(kuò)展標(biāo)志以及數(shù)據(jù)長(zhǎng)度:標(biāo)識(shí)符寄存器(CANIDTl、CANIDT2、CANIDT3和CANIDT4)用于設(shè)置MOb標(biāo)識(shí)符;標(biāo)識(shí)符屏蔽寄存器(CAN!DMl、CANIDM2、CANIDM3和CANIDM4)用于設(shè)置MOb標(biāo)識(shí)符屏蔽碼:時(shí)間戳寄存器(cANSTML和CANSTMH)用于讀取MOb時(shí)間戳:數(shù)據(jù)寄存器(cANMSG)用于讀寫當(dāng)前有效MOb的數(shù)據(jù)。

控制器工作原理與使用方法

CAN總線控制器根據(jù)通用寄存器的設(shè)置確定其基本工作參數(shù)(位定時(shí)、中斷設(shè)置、CAN定時(shí)器設(shè)置等)。工作時(shí),CAN通道掃描郵箱中的MOb,完成發(fā)送和接收。發(fā)送時(shí),CAN通道尋找設(shè)置為發(fā)送模式并具有最高優(yōu)先級(jí)的MOb,找到后通過(guò)CAN通道向總線發(fā)送該MOb。接收時(shí),CAN通道掃描設(shè)置為接收模式的MOb,通過(guò)接收濾波發(fā)現(xiàn)匹配的MOb后,根據(jù)接收?qǐng)?bào)文刷新匹配的MOb。

根據(jù)上述CAN總線控制器工作原理,首先利用通用控制寄存器完成對(duì)CAN控制器的基本配置,主要包括位定時(shí)、中斷、CAN定時(shí)器等的設(shè)置:然后利用MOb頁(yè)寄存器和MOb寄存器初始化MOb,主要包括標(biāo)識(shí)符、標(biāo)識(shí)符屏蔽碼等;之后使能CAN通道,CAN通道將掃描郵箱內(nèi)的MOb,并根據(jù)MOb設(shè)置進(jìn)行相應(yīng)操作,操作結(jié)果可通過(guò)查詢或中斷的方式監(jiān)控。

集成CAN總線控制器應(yīng)用

應(yīng)用CAN控制器可完成發(fā)送、接收、自動(dòng)應(yīng)答、錯(cuò)誤處理等任務(wù)。下面重點(diǎn)討論發(fā)送和接收的應(yīng)用方法。

發(fā)送數(shù)據(jù)幀或遠(yuǎn)程幀

(1)發(fā)送前初始化。需要初始化的域包括標(biāo)識(shí)符(IDT)、標(biāo)識(shí)符擴(kuò)展位(IDE)、遠(yuǎn)程發(fā)送請(qǐng)求位(TRTrAG)、數(shù)據(jù)長(zhǎng)度代碼(DLC)、保留位(RBnTAG)、消息需要發(fā)送的數(shù)據(jù)(MSG)。

(2)配置MOb(CONMOB)。配置完成后,MOb發(fā)送數(shù)據(jù)幀或遠(yuǎn)程幀準(zhǔn)備就緒。

(3)CAN通道掃描配置為“發(fā)送”狀態(tài)的所有MOb、找到優(yōu)先級(jí)最高的1個(gè)后,將其發(fā)送出去。

(4)發(fā)送結(jié)束后,TXOK標(biāo)志位置位(可產(chǎn)生相應(yīng)中斷)。

(5)在重新始化之前,MOb所有參數(shù)和數(shù)據(jù)均可訪問(wèn)。

3.2接收數(shù)據(jù)幀或遠(yuǎn)程幀

(1)接收前初始化。需要初始化的域包括標(biāo)識(shí)符(IDT)、標(biāo)識(shí)符掩碼(IDMSK)、標(biāo)識(shí)符擴(kuò)展位(IDE)、標(biāo)識(shí)符擴(kuò)展位掩碼(IDEMSK)、遠(yuǎn)程發(fā)送請(qǐng)求位(TRTTAG)、遠(yuǎn)程發(fā)送請(qǐng)求位掩碼(TRTTAGMSK)、數(shù)據(jù)長(zhǎng)度代碼(DLC)、保留位(RBnTAG)。

(2)配置MOb(CONMOB)。配置完成后,MOb接收數(shù)據(jù)幀或遠(yuǎn)程幀準(zhǔn)備就緒。

(3)當(dāng)總線收到幀標(biāo)識(shí)符時(shí),CAN通道掃描所有設(shè)置為“接收”模式的MOb,找出匹配且優(yōu)先級(jí)最高的1個(gè),該MOb的IDT、IDE、DLC由接收到的數(shù)據(jù)幀更新。

(s)接收完成后,接收消息的數(shù)據(jù)被存儲(chǔ)在相應(yīng)MOb的數(shù)據(jù)緩沖區(qū)中,RXOK標(biāo)志位置位(可產(chǎn)生相應(yīng)中斷)。

(6)在重新初始化之前,MOb所有參數(shù)和數(shù)據(jù)均可訪問(wèn)。

結(jié)語(yǔ)

(1)使用AT90CAN32/64/128系列單片機(jī)時(shí),可不使用外部獨(dú)立CAN控制器完成CAN總線節(jié)點(diǎn)的設(shè)計(jì)。

(2)AT90CAN32/64/128系列單片機(jī)集成的CAN總線控制器主要由CAN通道、郵箱和控制寄存器組成。CAN控制器的工作主要通過(guò)寄存器控制完成。

主站蜘蛛池模板: 亚洲日本中文字幕天堂网| 国产AV毛片| 欧美精品亚洲精品日韩专区| 亚洲成人一区二区三区| 男女男精品视频| 国产精品国产主播在线观看| 大香网伊人久久综合网2020| 呦视频在线一区二区三区| 国产美女精品在线| 亚洲国产成人在线| 免费国产在线精品一区| 欧美伦理一区| 国产午夜福利亚洲第一| 亚洲色欲色欲www网| av大片在线无码免费| 亚洲综合网在线观看| 国内丰满少妇猛烈精品播| 欧美成人一区午夜福利在线| 午夜不卡福利| 成人亚洲国产| 国产微拍一区二区三区四区| 国产农村妇女精品一二区| 亚洲AⅤ无码国产精品| 97久久精品人人做人人爽| 日韩欧美国产另类| 性色生活片在线观看| 国产特一级毛片| 亚洲精品国产首次亮相| 欧美成人午夜影院| 国产激爽爽爽大片在线观看| av在线无码浏览| 日本人妻一区二区三区不卡影院| 波多野结衣久久高清免费| 亚洲一级毛片免费观看| 免费在线视频a| 另类欧美日韩| 在线a视频免费观看| 国产一级毛片网站| 国产爽妇精品| 黄色网在线| 久久精品中文字幕免费| 黄色一级视频欧美| 欧美性久久久久| 欧美一区二区精品久久久| 99精品视频九九精品| 久久网欧美| 香蕉色综合| 国产成a人片在线播放| 国产女人在线观看| 免费国产高清精品一区在线| 日韩乱码免费一区二区三区| 亚洲欧美日韩中文字幕在线一区| 91黄视频在线观看| 波多野结衣无码AV在线| 青青青视频免费一区二区| 国产农村妇女精品一二区| 免费福利视频网站| av在线人妻熟妇| 免费看美女毛片| 色偷偷av男人的天堂不卡| 99视频在线看| 亚洲精品波多野结衣| 精品三级网站| 久久精品一品道久久精品| 国产精品对白刺激| 国产精品污视频| 欧洲熟妇精品视频| 波多野结衣视频网站| 亚洲第一精品福利| 99久久国产自偷自偷免费一区| 尤物亚洲最大AV无码网站| 欧美成人区| 在线色国产| 欧美中日韩在线| 日本午夜视频在线观看| 九九热精品视频在线| 亚洲精品视频网| 国产精品美女免费视频大全| 日本人妻丰满熟妇区| 一级毛片免费的| 亚洲精品麻豆| 黄色一级视频欧美|