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

AVR單片機集成CAN總線控制器分析與應用

2011-01-01 00:00:00王治國高玉峰劉亞龍
電子產品世界 2011年6期

引言

CAN總線應用中,總線節點是CAN總線的基本組成部分。CAN總線節點有兩種典型設計方法,第一種方法采用MCU結合獨立CAN控制器組成總線節點:第二種方法采用獨立的MCU,這時MCU需要內部集成CAN控制器。由于第二種設計方法所用的器件少,電路關系簡單,已得到廣泛應用。本文重點分析AVR系列單片機內部集成的CAN控制器及其應用方法。

AT90CAN集成CAN總線控制器分析

AVR內部集成CAN控制器的芯片主要包括AT90CAN32/64/128三種單片機,它們之間的主要區別是存儲空間不同。

AT90CAN32/64/128內部集成的CAN總線控制器由CAN通道和郵箱組成,其工作參數通過寄存器設置,工作過程也通過寄存器監控。CAN控制器基本結構如圖1所示。

CAN總線控制器組成

CANh通道

CAN通道是CAN控制器用于完成發送和接收的部分。使用CAN控制器時,需要對CAN通道工作模式和位定時進行設置。

(1)CAN通道工作模式

CAN通道有使能、待命以及只聽三種工作模式。不同模式下通道、時鐘以及寄存器的工作模式不同,詳細內容見參考文獻[3]。

(2)位定時

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

郵箱及報文對象(MOb)

AT90CAN32/64/128單片機集成的CAN控制器通過郵箱存儲報文,并以MOb的形式管理。郵箱包含ls個獨立的MOb,每個MOb都可以設置為接收或發送模式。發送時,編號小的MOb優先級高。接收時,只有當CAN控制器接收到報文的標識符與某個MOb預先設置的標識符吻合時,CAN控制器才會將接收到的報文存儲在該MOb中,并可以通過中斷的方式通知單片機。CAN控制器還可自動對遠程幀作出應答,從而減輕CPU的負擔。

(1)MOb工作模式

MOb包括禁止、發送、接收、自動應答、幀緩沖器接收等6種不同的工作模式。芯片復位后,MOb并沒有默認的工作狀態。因此,在使能MOb之前必須對MOb進行配置,配置內容及相應的工作模式如表l所示。

(2)接收濾波器

AT90CAN32/64/128單片機集成的cAN總線控制器接收報文時,首先要完成接收濾波。接收濾波時,需要將接收報文的ID+RTR+RBn+IDE域與接收模式MOb的IDT+TRITAG+TBnTAG+IDE域進行比較,比較過程中要考慮掩碼(AVR單片機掩碼為“1”時無效,掩碼為“0”時有效),結果一致后確認匹配,相應MOb的內容被更新。接收濾波器原理圖如圖2所示。

(3)MOb頁

郵箱中的MOb以頁的形式存儲和管理。當需要選擇郵箱中某個MOb進行操作時,首先要用CANPAGE寄存器完成對MOb的選擇,然后才能進行相應操作。

(4)CAN數據緩存區

為了保護MOb寄存器的配置,將寄存器存儲在MOb內部,而數據則存儲在CAN數據緩存區中。緩存區可看作一個隊列,每一個MOb都對應一個緩存區,數據緩存區可通過CAN消息寄存器訪問。訪問某一個MOb對應的數據緩存區時需要使用數據索引,該索引是指向緩存區中某個數據字節的地址指針。CAN報文數據的第一個字節存儲在數據緩存區索引為O的地址。

CAN中斷

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

當中斷發生時,相應MOb的CANSTMOB寄存器中斷標志位或通用CANGIT寄存器的中斷標志位置位。如果CANIE寄存器中的ENRX/ENTX/ENERR職位,CANSITn寄存器中相應的MOb位置位,以指出發生中斷的MOb。

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

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

傳輸過程中,當CAN控制器檢測到形式錯誤時,將同時觸發位錯誤,從而產生2種錯誤中斷。當出現MOb錯誤時,僅在CANSTMOB寄存器中置位相應的標志位,CANGIT寄存器不會發生變化。

控制寄存器

AVR系列單片機通過控制寄存器設置并控制CAN總線控制器的工作。控制寄存器包括通用寄存器和MOb寄存器。CAN總線控制器寄存器結構如圖4所示。

(1)通用寄存器

通用寄存器包括控制寄存器和狀態寄存器兩類。

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

(2)MOb寄存器

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

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

CAN總線控制器根據通用寄存器的設置確定其基本工作參數(位定時、中斷設置、CAN定時器設置等)。工作時,CAN通道掃描郵箱中的MOb,完成發送和接收。發送時,CAN通道尋找設置為發送模式并具有最高優先級的MOb,找到后通過CAN通道向總線發送該MOb。接收時,CAN通道掃描設置為接收模式的MOb,通過接收濾波發現匹配的MOb后,根據接收報文刷新匹配的MOb。

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

集成CAN總線控制器應用

應用CAN控制器可完成發送、接收、自動應答、錯誤處理等任務。下面重點討論發送和接收的應用方法。

發送數據幀或遠程幀

(1)發送前初始化。需要初始化的域包括標識符(IDT)、標識符擴展位(IDE)、遠程發送請求位(TRTrAG)、數據長度代碼(DLC)、保留位(RBnTAG)、消息需要發送的數據(MSG)。

(2)配置MOb(CONMOB)。配置完成后,MOb發送數據幀或遠程幀準備就緒。

(3)CAN通道掃描配置為“發送”狀態的所有MOb、找到優先級最高的1個后,將其發送出去。

(4)發送結束后,TXOK標志位置位(可產生相應中斷)。

(5)在重新始化之前,MOb所有參數和數據均可訪問。

3.2接收數據幀或遠程幀

(1)接收前初始化。需要初始化的域包括標識符(IDT)、標識符掩碼(IDMSK)、標識符擴展位(IDE)、標識符擴展位掩碼(IDEMSK)、遠程發送請求位(TRTTAG)、遠程發送請求位掩碼(TRTTAGMSK)、數據長度代碼(DLC)、保留位(RBnTAG)。

(2)配置MOb(CONMOB)。配置完成后,MOb接收數據幀或遠程幀準備就緒。

(3)當總線收到幀標識符時,CAN通道掃描所有設置為“接收”模式的MOb,找出匹配且優先級最高的1個,該MOb的IDT、IDE、DLC由接收到的數據幀更新。

(s)接收完成后,接收消息的數據被存儲在相應MOb的數據緩沖區中,RXOK標志位置位(可產生相應中斷)。

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

結語

(1)使用AT90CAN32/64/128系列單片機時,可不使用外部獨立CAN控制器完成CAN總線節點的設計。

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

主站蜘蛛池模板: 久久中文电影| 国产美女在线观看| 亚洲成人黄色网址| 亚洲人成网站色7777| 久久久久88色偷偷| 亚洲视频无码| 国产午夜福利亚洲第一| 伊人查蕉在线观看国产精品| 一级毛片免费不卡在线| 99这里精品| 国产激情在线视频| 91午夜福利在线观看| 欧美亚洲国产一区| 无码区日韩专区免费系列| 欧美精品aⅴ在线视频| 伊人久综合| 潮喷在线无码白浆| 国产拍揄自揄精品视频网站| 国产波多野结衣中文在线播放| 国产日韩精品一区在线不卡| AV不卡国产在线观看| 欧美日韩另类在线| 精品人妻一区无码视频| 久久永久精品免费视频| 精品视频在线一区| 国产爽妇精品| 欧美在线网| 欧美.成人.综合在线| 少妇被粗大的猛烈进出免费视频| 亚洲无码高清一区| 国产一级妓女av网站| 中文字幕无码制服中字| 在线观看热码亚洲av每日更新| 露脸一二三区国语对白| 特级欧美视频aaaaaa| 国产午夜精品一区二区三| 五月激激激综合网色播免费| 一级毛片免费高清视频| 久久频这里精品99香蕉久网址| 精品国产电影久久九九| 国产亚洲精品精品精品| 少妇极品熟妇人妻专区视频| 国产大片黄在线观看| 麻豆精品在线视频| 中国一级特黄视频| 波多野结衣一区二区三区AV| 久久a毛片| 亚洲精品天堂在线观看| 久无码久无码av无码| 国产麻豆精品在线观看| 无码人中文字幕| 国产va免费精品| 综合社区亚洲熟妇p| jizz国产视频| 亚洲综合色吧| 亚洲一区二区约美女探花| 青青热久麻豆精品视频在线观看| 久久久受www免费人成| 国产在线观看91精品亚瑟| 九九这里只有精品视频| 婷婷久久综合九色综合88| 国产成人亚洲欧美激情| 女人一级毛片| 日韩欧美国产精品| 99国产精品国产| 四虎影视永久在线精品| 亚洲精品无码AⅤ片青青在线观看| 91色在线视频| 欧美成人手机在线观看网址| 亚洲日本精品一区二区| 国产欧美视频一区二区三区| 日本免费一区视频| 国产精品久久久精品三级| 色综合久久88| 亚洲最大福利视频网| 国产人成在线观看| 久久综合九色综合97婷婷| 激情综合网激情综合| 成人在线观看不卡| 欧美精品在线免费| 欧美乱妇高清无乱码免费| 国产成人精品三级|