亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

C8051F040中CAN控制器的應用

時間:2024-09-04 21:43:08 理工畢業(yè)論文 我要投稿
  • 相關推薦

C8051F040中CAN控制器的應用

摘要:介紹C8051F040單片機內部CAN控制器的應用。詳細敘述此控制器的構成及其訪問方式,指出在使用時是如何配置控制器的相關控制寄存器,并且給出CAN控制器在應用中的物理層硬件電路和應用層軟件設計。

單片機與CAN總線連接的傳統方式是將CPU與總線控制器和總線收發(fā)器相連后再接入總線網絡,這樣使CPU外圍電路復雜化,整個系統受外部影響較大。為了解決這一問題,很多單片機廠商紛紛將CAN控制器集成在單片機芯片上。目前,單片機內部集成的CAN控制器有Motorola公司的MC68HC912DG128A、Philips公司的P87C591、Atmel公司的AT89C51CC01和AT89C51CC02、Intel公司的TN87C196CA和TN87C196CB以及Cygnal公司的C8051F040等。

不同單片機內部CAN控制器的使用方法有所不同,但存在著很多相似之處。這里以C8051F040為列詳細介紹其內部CAN控制器的使用方法,希望通過這篇文章能給初學帶來方便,并能和廣大的單片機愛好者就這一問題做進一步的討論。

1 C8051F040 CAN控制器構成及訪問方式

C8051F040單片機是美國Cygnal公司生產的完全集成的混合信號系統級芯SoC(System on Chip),具有與8051指令集完全兼容的CIP-51內核。它在一塊芯片上集成了構成一個單片機數據采樣或控制系統所需要的幾乎所有模擬和數字外設及其它功能部件。它具有64KB Flash、4352B RAM、CAN控制器2.0、2個串行接口、5個16位定時器、12位A/D轉換器、8位A/D轉換器及12位D/A轉換器等,它內部還帶有JTAG接口,使調試變得非常方便。

C8051F040內部集成的CAN控制器為Bosch CAN控制器。此CAN控制器有以下幾部分構成:CAN內核、報文RAM(與C8051 RAM相互獨立)、報文處理狀態(tài)機制和CAN控制寄存器。其結構框圖如圖1所示。

在CAN控制器里只有三個寄存器可通過CIP-51中的特殊功能寄存器直接訪問,其它的寄存器只能通過CAN0ADR、CAN0DATH和CAN0DATL寄存器以地址索引的方式間接訪問。在使用CAN控制器時,重點和難點是對CAN控制器的寄存器的使用,其內部寄存器的分類及其主要功能如下:

(1)CAN控制器協議寄存器

該協議寄存器是用來配置CAN控制器,處理各種中斷,監(jiān)控總線狀態(tài)以及置控制器為測試模式。CAN控制器協議寄存器可使用C8051 MCU特殊功能寄存器通過索引方式間接訪問,其中有些還可以很方便的通過C8051內部特殊功能寄存器直接尋址來訪問。這部分的寄存器有:CAN控制寄存器(CAN0CN)、CAN狀態(tài)寄存器(CAN0STA)、CAN測試寄存器(CANTST)、錯誤計數寄存器、位定時寄存器和波特率預比列因子擴展寄存器。其中,CAN0CN、CAN0STA和CANTST可通過C8051 MCU特殊功能寄存器直接訪問,其它的只能通過間接訪問。

(2)報文對象接口寄存器

CAN控制器中有兩組報文對象接口寄存器,它們用來配置報文RAM中32個報文對象是用來向CAN總線發(fā)送數據,還是從CAN總線接收數據。當其中的一組被設置為向報文RAM中寫數據,另一組則從報文RAM中讀取數據。利用此接口寄存器可以避免CPU訪問報文RAM與CAN報文接收和發(fā)送緩沖轉移之間的沖突。所有的報文對象都存儲在報文RAM里面,通過報文對象寄存器對其進行訪問和配置,這些寄存器要通過C8051的CAN0ADR和CAN0DAT寄存器,使用間接索引地址方式來訪問。這部分寄存器有:IFX命令請求寄存器、IFX命令屏蔽寄存器、IFX屏蔽寄存器1、IFX屏蔽寄存器2、IFX仲裁寄存器1、IFX仲裁寄存器2、IFX報文控制寄存器、IFX數據寄存器A1、IFX數據寄存器A2、IFX數據寄存器B1和IFX數據寄存器B2。

(3)報文處理寄存器

所有的報文處理寄存器都是只讀寄存器。通過讀取它們的值可以實時地判斷相應報文對象的狀態(tài),從而使CAN控制器能正確運行。它們的標識位由CAN0ADR、CAN0DATH和CAN0DATL通過索引方式間接來訪問。報文處理寄存器提供中斷、錯誤、發(fā)送/接收請求和新數據信息。這部分的寄存器包括:中斷寄存器、發(fā)送請求寄存器、新數據寄存器、中斷隊列寄存器和報文有效寄存器。

那么,通過CAN0ADR、CAN0DATH和CAN0DATL寄存器以索引方式間接訪問CAN控制器中寄存器的過程會怎樣呢?因為每個CAN控制器寄存器都有一個索引號,如果要訪問某一CAN控制寄存器,只需將此寄存器的索引號寫入CAN0ADR寄存器,而數據讀/寫操作通過CAN0DATH和CAN0DATL來完成。例如:如果需要對位定時寄存器重新配置時,只需向CAN0ADR寄存器中寫入0X03,將新配置的數據的低字節(jié)寫入CAN0DATL中,高字節(jié)寫入CAN0DATH中。

2 CAN控制器應用時寄存器配置

下面就CAN控制器在應用時,根據所要完成功能的不同而需要做的不同配置做具體描述。這包括報文對象初始化處理、發(fā)送對象配置、接收對象配置、中斷處理配置;另外,還有發(fā)送對象的更新、位定時寄存器等配置。

2.1 報文對象初始化處理

報文RAM中的報文對象(除MsgVal、NewDat、IntPnd和TxRqst)配置不受芯片復位的影響。所有的報文對象在使用前必須由CPU來初始化為零或者被設置為無效。報文對象的配置是通過相應的接口寄存器來設置其屏蔽碼、仲裁場、控制場和數據場值,而這一設置過程由相應的IFX命令請求寄存器來完成。

當CAN控制寄存器中的Init位置零,CAN內核中的CAN協議控制器狀態(tài)機制和報文處理狀態(tài)機制將控制C_CAN的內部數據流。接收到的報文通過接收濾波后都存放在報文RAM中,而得到傳輸請求的報文都要移入CAN內核的移位寄存器中并通過CAN總線傳出。

2.2 發(fā)送對象的配置

當報文對象作為發(fā)送對象時,仲裁寄存器(ID28-0和

【C8051F040中CAN控制器的應用】相關文章:

控制器局域網(CAN)技術在工程機械中的應用03-18

CAN控制器SJA1000及其應用12-05

CAN總線在樓宇監(jiān)控系統中的應用03-07

CAN總線控制器與DSP的接口03-07

ZLG7290在低壓無功補償控制器中的應用03-07

PCI9052在多功能CAN適配卡中的應用研究03-19

CAN中繼器設計及其應用03-18

P80C592芯片在基于CAN總線顯示通信模塊中應用03-18

CAN總線中位定時的設定方法03-18