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