久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9131|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

LPC1768/17XX之CAN控制器硬件查找表的理解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90762 發(fā)表于 2018-10-18 08:36 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一、背景:
         使用LPC1768來(lái)做CAN的收發(fā),在此對(duì)使用LPC1769的 CAN 控制器進(jìn)行收發(fā)做個(gè)總結(jié)和記錄,以備下次開(kāi)發(fā)快速上手使用。
     附:LPC1768/1769 除了支持最高頻率不同以外,其它基本上一致。

二、正文:
         先貼一張 LPC1769 CAN 控制器的方框圖:

由上圖可見(jiàn),整個(gè) CAN 控制器一頭是 CPU,另一頭是 CAN 收發(fā)器:        
    CAN 收發(fā)器負(fù)責(zé) CAN 數(shù)據(jù)與 CAN 網(wǎng)絡(luò)的通信。CAN 內(nèi)核模塊解析和封裝要發(fā)送到 CAN 收發(fā)器以及從 CAN   
    收發(fā)器發(fā)過(guò)來(lái)的數(shù)據(jù),此處 CAN 內(nèi)核工作由硬件自行完成。   
    CPU通過(guò) APB總線(xiàn)即可設(shè)置 CAN 控制器狀態(tài),以及讀取中斷信息和中斷狀態(tài)。      
    一共有 3 個(gè)發(fā)送緩沖器(郵箱),這樣就可以保證,最少可以發(fā)送 3組并發(fā)的 CAN 數(shù)據(jù);
    2 個(gè)接收緩沖器(郵箱),這樣就可以在 CPU 處理 1 個(gè)郵箱的接收數(shù)據(jù)的同時(shí),
    還能用另一個(gè)郵箱接收網(wǎng)絡(luò)上的數(shù)據(jù)。        
     LPC17XX CAN 的驗(yàn)收濾波器比較特殊,
    它是一個(gè)獨(dú)立于 CAN 控制器的器件,也屬于一種外設(shè),不過(guò)比較特殊的是,


它是服務(wù)于 CAN 控制器的外設(shè),這么做的意義就在于,驗(yàn)收濾波這方面,不再需要軟件來(lái)做任何事情,直接由硬件來(lái)實(shí)現(xiàn)查表算法,節(jié)省寶貴的 CPU資源,由于它也算是一個(gè)
    獨(dú)立的外設(shè),   
   
CAN 驗(yàn)收濾波器有 2 種工作模式:一種是一般模式;另一種被稱(chēng)為“FullCAN 模式”。
1.在一般模式下,當(dāng) CAN 控制器的接收端收到一個(gè)完整的標(biāo)識(shí)符時(shí),它將通知接收驗(yàn)收濾波器。驗(yàn)收濾波器響應(yīng)這個(gè)信號(hào),讀出 CAN 控制器編號(hào)和標(biāo)識(shí)符大小(標(biāo)準(zhǔn)標(biāo)識(shí)符 ll 位或擴(kuò)展標(biāo)識(shí)符 29位);然后搜索 LUT,查找匹配的標(biāo)識(shí)符。如果找到匹配的標(biāo)識(shí)符,則通知 CAN 控制器將接收的報(bào)文放入 CAN控制器接收緩沖中;否則,放棄接收到的這一幀信息。
    2.如果使能 FullcAN 模式,且 CAN 控制器報(bào)告產(chǎn)生的是一
個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)符,則驗(yàn)收過(guò)濾器首先查詢(xún) FullCAN 標(biāo)準(zhǔn)標(biāo)識(shí)符表然后在 FullCAN 模式下處理接收。如果在 FullCAN 標(biāo)準(zhǔn)標(biāo)識(shí)符表中沒(méi)有找到匹配的 ID,則依次查找下一個(gè)存在的表格,直到找到匹配者或查找表結(jié)束。一旦發(fā)現(xiàn)匹配的 ID,就將接收到的報(bào)文放入特定的報(bào)文緩沖中而不是 CAN 控制器接收緩沖中,這個(gè)特定的緩沖位于驗(yàn)收濾波器的 RAM 中,而且是在 LUT的最后部分。CPU可以在任何時(shí)候讀取接收到的報(bào)文。

以上讀起來(lái)有點(diǎn)累:
我的理解獨(dú)立的外設(shè) CAN,
1.本質(zhì)是多個(gè)硬件比較器,接受 ID 與內(nèi)部設(shè)定 ID自動(dòng)比較,不通過(guò) CPU,直接由硬件來(lái)實(shí)現(xiàn)查表算法,節(jié)省寶貴的CPU 資源。這是 NXP-CAN獨(dú)特優(yōu)點(diǎn), 實(shí)時(shí)工控系統(tǒng)需要由多個(gè)功能 CAN,RS485,I2C,用戶(hù)邏輯編程等。NXP-CAN 適合設(shè)計(jì)實(shí)時(shí)控制系統(tǒng)。
     
2.編程
只是設(shè)定接收濾波器工作模式,與收濾波器起始地址。
3.其它設(shè)定網(wǎng)上資料很多。


/*-------------------------------------------------------------------
*  函數(shù)名稱(chēng): CAN_SetACCF()
*  參      數(shù):  波特率
*  返      回: XX
*  函數(shù)功能:  接收濾波器狀態(tài)
*  版本信息: 2010-04-30          *  修改信息:   
-*-------------------------------------------------------------------
void CAN_SetACCF(const unsigned int ACCFMode)
{
            
      switch (ACCFMode)  
            {
             case ACCF_OFF:         //  接收濾波器狀態(tài)-復(fù)位/停止
    LPC_CANAF->AFMR = ACCFMode;//  不 緩 沖 區(qū) 接 收 報(bào)
文            
                        break;
                        
         case ACCF_BYPASS:         //  接收濾波器狀態(tài)-復(fù)位/停止
             LPC_CANAF->AFMR = ACCFMode; //  所有接收的報(bào)文
存到接收緩沖區(qū)中
                        break;
                        //  接收濾波器狀態(tài)-運(yùn)行         //  硬件接收過(guò)濾
         case ACCF_ON: // ACCOFF\ACCBP\EFCAN=0 時(shí),接收濾波
器處于工作模式
         case ACCF_FULLCAN: //  ,接收濾波器處于 FullCAN 工作模

                  LPC_CANAF->AFMR = ACCF_OFF;
                 CAN_SetACCF_Lookup();
                 LPC_CANAF->AFMR = ACCFMode;
                        break;            

                        default:            break;
            }
}

/*-------------------------------------------------------------------
函數(shù)名稱(chēng): CAN_SetACCF()
*  參      數(shù):  波特率
*  返      回: XX
*  函數(shù)功能:  接收濾波器狀態(tài)
*                  
*-*------------------------------------------------------------------
void CAN_SetACCF_Lookup(void)
{
              unsigned int address = 0;
              unsigned int ID_high, ID_low;
              /* Set explicit standard Frame */     
              LPC_CANAF->SFF_sa = address;
            ID_low = (0x125 << 16);
            ID_high = 0x126;
         *((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address))
= ID_low | ID_high;
            address += 4;   
              /* Set group standard Frame */
              LPC_CANAF->SFF_GRP_sa = address;
      ID_low = (0x125 << 16);             //  下邊界
       ID_high = 0x129;                         /  上邊界
         *((volatile uint32_t *)(LPC_CANAF_RAM_BASE + address))
= ID_low | ID_high;
            address += 4;   
             LPC_CANAF->EFF_sa = address;             //標(biāo)準(zhǔn)擴(kuò)展幀
            LPC_CANAF->EFF_GRP_sa = address;     //  擴(kuò)展幀組幀
                          /* Set End of Table */
         LPC_CANAF->ENDofTable = address;     //表結(jié)束地址
}


   
/*--------------------------------------------------------------------------------*-
*  函數(shù)名稱(chēng): CAN_SetACCF_Lookup()
*  參      數(shù):  波特率
*  返      回: XX
*  函數(shù)功能:  接收濾波器狀態(tài)                  
*  說(shuō)      明:  如果一個(gè)表格的起始地址等于下一個(gè)表格的起始
地址或表格終止寄存器的數(shù)值,
*       則該表格為空,在處理中將被忽略。
*       表格的大小由其前后 2 個(gè)表格起始地址寄存器的差值決
定。
*     例如,(SFF_GRP_sa) - (SFF_sa)為獨(dú)立標(biāo)準(zhǔn)幀標(biāo)識(shí)符查找表
格大小。
*   若其值為0,即 SFF_GRP_sa=SFF_sa,則獨(dú)立標(biāo)準(zhǔn)幀標(biāo)識(shí)符
查找表格大小為 0,
*    在查找時(shí)此表格將被忽略。查找表結(jié)束寄存器 ENDofTable
代表查找表結(jié)束地址,
*     (ENDofTable) - (EFF_GRP_sa)為擴(kuò)展幀組標(biāo)識(shí)符查找表大小。


完整的pdf格式文檔51黑下載地址:
LPC1768CAN硬件過(guò)過(guò)濾器2.zip (688.05 KB, 下載次數(shù): 19)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:441038 發(fā)表于 2018-12-6 16:48 | 只看該作者
非常好的資源。
回復(fù)

使用道具 舉報(bào)

板凳
ID:6656 發(fā)表于 2018-12-10 14:09 | 只看該作者
多謝分享,資源很好
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日操操| 麻豆changesxxx国产 | 久草.com | 欧美乱码精品一区二区三区 | 国产成人精品午夜视频免费 | 日韩成人中文字幕 | 亚洲成人精 | 中文在线a在线 | 欧美综合一区二区 | www.一区二区三区.com | 亚洲成人精品在线观看 | 成年免费大片黄在线观看岛国 | 免费三级网 | 欧美一区二区三区视频在线播放 | 欧美激情国产精品 | 色综合成人网 | 国产一级视频免费播放 | 日韩在线观看网站 | 国产亚洲精品成人av久久ww | 日韩三级一区 | 成人在线免费看 | 国产综合精品一区二区三区 | 蜜臀久久99精品久久久久野外 | 91黄在线观看 | 中文字幕啪啪 | 国产欧美一区二区三区日本久久久 | 日韩中文字幕在线观看 | 午夜看电影在线观看 | 精品国产免费人成在线观看 | 国产在线视频一区二区 | 日韩欧美二区 | 北条麻妃99精品青青久久主播 | 欧美aⅴ | 亚洲久在线 | 久久亚洲一区 | 久久专区 | 欧美成人精品一区二区男人看 | 欧美黄色片 | 成人一区二区三区 | 久久婷婷色 | v亚洲 |