中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      C8051F040中CAN控制器的應(yīng)用

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

      C8051F040中CAN控制器的應(yīng)用

      摘要:介紹C8051F040單片機(jī)內(nèi)部CAN控制器的應(yīng)用。詳細(xì)敘述此控制器的構(gòu)成及其訪問方式,指出在使用時(shí)是如何配置控制器的相關(guān)控制寄存器,并且給出CAN控制器在應(yīng)用中的物理層硬件電路和應(yīng)用層軟件設(shè)計(jì)。

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

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

      1 C8051F040 CAN控制器構(gòu)成及訪問方式

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

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

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

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

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

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

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

      (3)報(bào)文處理寄存器

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

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

      2 CAN控制器應(yīng)用時(shí)寄存器配置

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

      2.1 報(bào)文對象初始化處理

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

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

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

      當(dāng)報(bào)文對象作為發(fā)送對象時(shí),仲裁寄存器(ID28-0和

      【C8051F040中CAN控制器的應(yīng)用】相關(guān)文章:

      控制器局域網(wǎng)(CAN)技術(shù)在工程機(jī)械中的應(yīng)用03-18

      CAN控制器SJA1000及其應(yīng)用12-05

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

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

      ZLG7290在低壓無功補(bǔ)償控制器中的應(yīng)用03-07

      PCI9052在多功能CAN適配卡中的應(yīng)用研究03-19

      CAN中繼器設(shè)計(jì)及其應(yīng)用03-18

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

      CAN總線中位定時(shí)的設(shè)定方法03-18

      主站蜘蛛池模板: 国产日韩三级| 国产午夜精品视频在线播放| 亚洲av成人一区二区三区不卡| 八宿县| 亚洲黄色一级高潮大片| 久久婷婷国产五月综合色| 亚洲青青草视频在线播放| 国产九色蝌蚪91av在线观看| 连江县| 南华县| 扎囊县| 德庆县| 琼结县| 临海市| 吉安县| 乌审旗| 休宁县| 国产女主播福利一二区| 石阡县| 龙川县| 郓城县| 通河县| 国产目拍亚洲精品区一区| 平舆县| 昌黎县| 高h视频在线免费观看| 国产成人亚洲精品2020| 不卡免费av在线高清| 久久国产色av老熟蜜臀av| 一区二区三区国产偷拍| 2020最新国产激情| AV无码专区亚洲AVL在线观看| 久久精品天堂一区二区三区| 亚洲国产精品性色av| 一区二区三区国产97| 人人妻人人澡av| 2017天天爽夜夜爽精品视频| 玖玖资源站无码专区| 亚洲午夜亚洲精品国产成人| 二区三区亚洲精品国产| 精品一区二区三区在线观看l|