CAN總線擴(kuò)充器MCP25050
關(guān)鍵詞:CAN總線 擴(kuò)充器 MCP25050
1 概述
MicroChip公司生產(chǎn)的CAN(Controller Area Net-work)總線I/O擴(kuò)充器MCP25050,可用于在CAN總線系統(tǒng)中擴(kuò)充CAN總線節(jié)點(diǎn),它可以獨(dú)立構(gòu)成一個(gè)CAN節(jié)點(diǎn)而不需要再加微控制器。該器件采用14腳小型封裝和低功耗CMOS工藝技術(shù),可在2.7~5.5V電壓范圍內(nèi)正常工作。它能夠支持的CAN2.0B標(biāo)準(zhǔn)位速率可達(dá)1Mbit/s;NCP25050內(nèi)含一個(gè)可編程的屏蔽器、二個(gè)可編程的接收過濾器、4路10位A/D轉(zhuǎn)換器、兩路PWM輸出、三個(gè)自動(dòng)傳送數(shù)據(jù)緩沖區(qū)、兩個(gè)接收數(shù)據(jù)緩沖區(qū)及低功耗工作方式;其芯片配置信息可通過CAN總線在線修改,并可工作在1-WireCAN總線工作模式;同時(shí),它還可使系統(tǒng)具有遠(yuǎn)程輸入和輸出功能。因此,在擴(kuò)充簡(jiǎn)單的瘦客戶CAN總線遠(yuǎn)程節(jié)點(diǎn)時(shí),使用它會(huì)帶來意想不到的便利。
2?。停茫校玻担埃担皟?nèi)部結(jié)構(gòu)
MCP25050內(nèi)部功能圖如圖1所示,引腳圖如圖2所示。從圖中可看出:該器件主要由用戶存儲(chǔ)區(qū)、時(shí)鐘產(chǎn)生器、控制邏輯、CAN協(xié)議模塊、A/D轉(zhuǎn)換和PWM模塊組成。以下分別介紹:
控制邏輯部分主要起著把其它幾部分接合在一起的作用,另外它還控制數(shù)據(jù)的傳送和接收以及在上電初始化時(shí)對(duì)內(nèi)部寄存器的控制操作。
時(shí)鐘產(chǎn)生器部分可為其它芯片提供時(shí)鐘脈沖。
用戶存儲(chǔ)區(qū)是一塊ROM區(qū),主要是一些控制寄存器,利用它可以先對(duì)用戶存儲(chǔ)區(qū)進(jìn)行編程,以使MCP25050在上電復(fù)位后工作在用戶事先定義的模式。這些寄存器可通過CAN總線來訪問。
A/D部分主要是對(duì)輸入的模擬信號(hào)自動(dòng)進(jìn)行A/D轉(zhuǎn)換。
CAN協(xié)議模塊主要是對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行CAN數(shù)據(jù)包的封裝,或是對(duì)接收到的CAN數(shù)據(jù)包進(jìn)行解包。它有二個(gè)彼此獨(dú)立的接收緩沖區(qū),且每個(gè)接收緩沖區(qū)都有自己的接收過濾器。同時(shí),錯(cuò)誤管理邏輯也位于此模塊內(nèi)。因此,CAN協(xié)議模塊是MCP25050的核心模塊。
利用GPIO模塊可對(duì)八個(gè)輸入輸出引腳進(jìn)行管理,并可通過設(shè)置寄存器來使每個(gè)引腳工作在不同的方式。MCP25050各引腳功能說明如表1所列。
表1 MCP2505的引腳功能說明
引腳名稱 | 腳 號(hào) | 功 能 | 復(fù)用功能 |
GP0/AN0 | 1 | 雙向IO口 | 模擬輸入通道0 |
GP1/AN1 | 2 | 雙向IO口 | 模擬輸入通道1 |
GP2/AN2/PWM1 | 3 | 雙向IO口 | 模擬輸入通道2/PWM輸出 |
GP3/AN3/PWM2 | 4 | 雙向IO口 | 模擬輸入通道3/PWM輸出 |
GP4/VREF- | 5 | 雙向IO | 參考電源負(fù)端 |
GP5/VREF+ | 6 | 雙向IO口 | 參考電源正端 |
VSS | 7 | 電源地線 | 無 |
OSC1/CLKIN | 8 | 外部晶體輸入 | 外部時(shí)鐘信號(hào)輸入 |
OSC2 | 9 | 外部晶體輸出 | 無 |
GP6/CLKOUT | 10 | 雙向IO口 | 時(shí)鐘信號(hào)輸出 |
GP7/RST/VPP | 11 | 雙向IO口 | 復(fù)位端 |
RXCAN | 12 | CAN數(shù)據(jù)輸入 | 無 |
TXCAN/TXRXCAN | 13 | CAN數(shù)據(jù)發(fā)送 | 1-Wire操作下的發(fā)送接收端 |
VDD | 14 | 電源 | 無 |
3 工作原理
在MCP25050上電后,系統(tǒng)將首先進(jìn)入復(fù)位操作模式,此時(shí)它將會(huì)禁止接收和發(fā)送數(shù)據(jù),同時(shí),A/D轉(zhuǎn)換器和PWM也被禁止;而后MCP25050進(jìn)行自初始化,自初始化主要通過把用戶存儲(chǔ)區(qū)的數(shù)據(jù)讀入SRAM中實(shí)現(xiàn);當(dāng)自初始化完成后,MCP25050將進(jìn)入正常工作模式,以準(zhǔn)備接收或發(fā)送數(shù)據(jù),這時(shí)A/D轉(zhuǎn)換器和PWM都可以正常工作;接下來MCP25050會(huì)在CAN總線上發(fā)一個(gè)“在線”信號(hào)給網(wǎng)絡(luò),以通知整個(gè)網(wǎng)絡(luò)存在這個(gè)站點(diǎn)。
MCP25050通過一個(gè)通用屏蔽器、二個(gè)接收過濾器及二個(gè)接收緩沖區(qū)來確定接收到的數(shù)據(jù)是否被接受。MCP25050有三種數(shù)據(jù)類型:信息請(qǐng)求數(shù)據(jù)、輸出數(shù)據(jù)和輸入數(shù)據(jù)。其中信息請(qǐng)求數(shù)據(jù)是指MCP25050接收到的數(shù)據(jù),輸出數(shù)據(jù)則是指MCP25050回應(yīng)信息請(qǐng)求而發(fā)出的數(shù)據(jù),而輸入數(shù)據(jù)指的是MCP25050接收到的可用來修改寄存器的數(shù)據(jù)。
MCP25050還具有自動(dòng)傳送功能,它有三個(gè)彼此獨(dú)立的發(fā)送數(shù)據(jù)ID:TXID0、TXID1和TXID2。其中TXID0用來發(fā)送“在線”信號(hào),TXID1用來發(fā)送“命令確認(rèn)”信號(hào)、接收緩沖區(qū)溢出信號(hào)和出錯(cuò)信息,TXID2則用來傳送A/D轉(zhuǎn)換結(jié)果。
4 實(shí)際應(yīng)用
在傳統(tǒng)的CAN總線系統(tǒng)中,如果需要再增加一個(gè)節(jié)點(diǎn),一般的做法是用一片MCU?微控制器?和一片CAN總線控制器?如SJA1000、MCP2510等?為主來構(gòu)成。這樣雖然節(jié)點(diǎn)的功能很強(qiáng),但在有些應(yīng)用中是完全不必要的,如在瘦客戶的CAN應(yīng)用中,通常不需要節(jié)點(diǎn)有多少功能,只要求節(jié)點(diǎn)能夠采集數(shù)據(jù)即可,此時(shí),MCU+CAN控制器的方式就顯得有些過于復(fù)雜和昂貴;但如果采用CAN總線擴(kuò)充器MCP25050來組建,則不但可簡(jiǎn)化系統(tǒng)設(shè)計(jì),也可減少設(shè)計(jì)成本,因?yàn)檫@種方案只需要一片MCP25050和一片CAN總線驅(qū)動(dòng)器即可,而完全不需要MCU和CAN總線控制器。其常用電路如圖3所示。
應(yīng)用MCP25050擴(kuò)充CAN總線節(jié)點(diǎn)是一個(gè)既方便又經(jīng)濟(jì)的辦法。在現(xiàn)存或新的CAN總線系統(tǒng)中使用它會(huì)帶來很多便利,其最大的好處是不需要MCU。筆者在設(shè)計(jì)監(jiān)測(cè)多點(diǎn)溫度的CAN系統(tǒng)中成功地使用了這一方案。實(shí)踐證明,MCP25050可靠性高,運(yùn)行穩(wěn)定。
評(píng)論