MCP2502X/5X:CAN I/O 擴展器的詳細解析
在嵌入式系統的設計中,CAN(Controller Area Network)總線因其高可靠性、實時性和廣泛的應用場景,成為了眾多工程師的首選通信協議。而 Microchip 推出的 MCP2502X/5X 系列 CAN I/O 擴展器,為構建簡單且高效的 CAN 節點提供了強大的支持。不過需要注意的是,該產品目前已不推薦用于新設計,可考慮使用 MCP2515 或 MCP25625 替代。下面,我將結合自身經驗,對這款擴展器進行詳細剖析。
文件下載:MCP25025T-I SL.pdf
產品概述
MCP2502X/5X 系列產品主要包括 MCP25020、MCP25025、MCP25050 和 MCP25055 等型號。這些器件能夠作為控制器局域網(CAN)系統的 I/O 擴展器,支持 CAN v2.0B 協議,其總線速率最高可達 1 Mb/s。它的一大亮點在于,無需微控制器即可實現簡單的 CAN 節點,這大大簡化了系統設計。不同型號間僅有一處差異,即 MCP25025 和 MCP25055 支持一線數字 CAN 總線,而 MCP25020 和 MCP25050 則不支持。
產品特性與優勢
功能特性
- CAN 協議實現:全面實現 CAN V2.0B 協議,可編程比特率高達 1 Mb/s。具備一個可編程掩碼、兩個可編程過濾器和三個自動傳輸緩沖區,能夠有效過濾和處理 CAN 消息。同時,兩個消息接收緩沖區可確保消息的穩定接收,且無需同步或配置消息,提升了系統的易用性。
- 硬件特性:采用非易失性存儲器進行用戶配置,上電時可自動加載,方便快捷。擁有八個通用 I/O 線,可單獨選擇作為輸入或輸出,還能針對每個輸入單獨選擇引腳變化時的自動傳輸功能。此外,MCP2505X 器件還具備四個 10 位模擬輸入通道,可通過可編程轉換時鐘和 VREF 源進行靈活配置。該系列產品還支持消息調度功能和兩個 10 位 PWM 輸出,其頻率可獨立編程。通過 CAN 總線消息即可修改設備配置,并且支持在線串行編程(ICSP?)默認配置存儲器,還可選擇一線 CAN 總線操作。
- 低功耗特性:基于低功耗 CMOS 技術,工作電壓范圍為 2.7V 至 5.5V,典型工作電流僅為 10 mA,在 CAN 睡眠模式下待機電流僅 30 μA,能有效降低系統功耗。
- 封裝與溫度范圍:提供 14 引腳 PDIP(300 mil)和 SOIC(150 mil)封裝,可滿足不同的應用需求。溫度范圍支持工業級(-40°C 至 +85°C)和擴展級(-40°C 至 +125°C),具備良好的環境適應性。
實際應用優勢
在實際應用中,MCP2502X/5X 的這些特性帶來了諸多優勢。例如,在汽車電子系統中,其低功耗特性有助于降低整體能耗,延長電池使用壽命;豐富的 I/O 接口和模擬輸入通道可方便地連接各種傳感器和執行器,實現對車輛狀態的實時監測和精確控制。而在工業自動化領域,消息調度功能和自動傳輸功能能夠確保數據的及時準確傳輸,提高系統的響應速度和可靠性。
CAN 模塊詳解
核心組成與功能
CAN 模塊作為協議控制器,負責在原始數字數據和 CAN 消息包之間進行轉換。其主要功能模塊包括 CAN 協議引擎、緩沖區、掩碼和過濾器。
- 協議引擎:核心為有限狀態機(FSM),它按位處理消息,根據不同幀類型的字段進行狀態切換,控制 TX/RX 移位寄存器、CRC 寄存器與總線之間的數據傳輸,同時管理錯誤處理邏輯,確保消息的接收、仲裁、傳輸和錯誤信號處理都嚴格遵循 CAN 協議,并能自動處理總線消息的重傳。
- CRC 校驗:CRC 寄存器用于生成 CRC 碼,在控制字段或數據字段之后傳輸,用于對接收消息的 CRC 字段進行校驗,保證數據傳輸的準確性。
- 錯誤管理邏輯:通過接收錯誤計數器(REC)和傳輸錯誤計數器(TEC)對 CAN 設備的故障進行監控和處理。根據計數器的值,設備可進入錯誤激活、錯誤被動或總線關閉狀態。當設備進入總線關閉狀態后,需接收到包含 128 個連續隱性位的總線關閉恢復序列才能恢復正常,恢復后若總線空閑 128 x 11 位,設備將自動從錯誤激活狀態恢復。通過讀取 EFLG 寄存器,可確定設備當前的錯誤模式(除總線關閉外)。
- 位定時邏輯:通過編程 TQ 長度和各時間段內的 TQ 數量來計算標稱位時間。該邏輯監測總線輸入,根據 CAN 協議處理總線相關的位定時。在幀起始時進行硬同步,后續在隱性到顯性的總線轉換時進行重新同步,并提供可編程的時間段以補償傳播延遲和相位偏移,同時確定采樣點的位置。
位定時邏輯關鍵參數
- 時間量子(TQ):TQ 是基于振蕩器周期的固定時間單位,通過可編程波特率預分頻器(BRP)和固定的二分頻生成。其計算公式為 (T{Q}=2 * T{OSC} * (BRP + 1)),標稱位時間可在 8 TQ 至 25 TQ 之間可編程,最小標稱位時間為 1 μs,對應 1 Mbps 的速率。
- 時間段:標稱位時間由同步段(SyncSeg)、傳播段(PropSeg)、相位緩沖段 1(PS1)和相位緩沖段 2(PS2)組成。編程時需遵循一定規則,如 (PropSeg + PS1 ≥ PS2)、(PS2 > 同步跳轉寬度(SJW))、(PS2 ≥ 信息處理時間(IPT))。同步段用于同步總線上的 CAN 節點,固定為 1 TQ;傳播段用于補償網絡中的物理延遲,可在 1 TQ 至 8 TQ 之間編程;相位緩沖段用于優化接收位的采樣點位置,PS1 和 PS2 可在 1 TQ 至 8 TQ 之間編程,但 PS2 實際最小長度為 2 TQ。
- 采樣點:采樣點位于 PS1 結束處,用于讀取總線電平并確定接收位的值。可選擇在采樣點對總線進行多次采樣,通過多數表決確定接收位的值。
- 信息處理時間(IPT):IPT 從采樣點開始,用于計算后續位電平,CAN 規范規定其小于等于 2 TQ,MCP2502X/5X 中定義為 2 TQ,因此 PS2 長度至少為 2 TQ。
- 同步跳轉寬度(SJW):用于補償系統中節點之間的相位偏移和振蕩器公差。當檢測到傳輸數據中的隱性到顯性邊緣時,根據邊緣位置與預期時間的比較,利用可編程的 SJW 調整 PS1 和 PS2 的值,以實現重新同步。SJW 可編程范圍為 1 TQ 至 4 TQ。
緩沖區、掩碼和過濾器
- 緩沖區:三個傳輸緩沖區分別用于處理不同的傳輸消息 ID,兩個接收緩沖區用于存儲 CAN 消息的仲裁字段、控制字段和數據字段,還有一個消息組裝緩沖區(MAB)輔助處理消息,確保在高負載情況下也能有效處理接收消息,減少接收緩沖區溢出的風險。
- 掩碼:用于定義 CAN ID 中哪些位需要與可編程過濾器進行比較,掩碼中的“1”位表示對應 CAN ID 位需與過濾器位匹配,“0”位則表示該位不參與比較,可視為“無關位”。對于標準 ID 和擴展 ID 的消息,部分掩碼位有特殊配置規則。
- 過濾器:包含兩個獨立的接受過濾器(RXF0 和 RXF1),分別用于信息請求消息和輸入消息。每個過濾器的位與 CAN ID 對應,只有當 CAN ID 中與掩碼設置位對應的位與過濾器位匹配時,消息才會被接受,否則將被忽略。
設備操作流程
上電序列
MCP2502X/5X 在上電復位(POR)時會經歷一系列操作,以確保正確加載配置并避免在總線上引入錯誤。上電后,設備首先進入配置模式,在此模式下禁止通過 CAN 接口發送或接收消息,ADC 和 PWM 外設也處于禁用狀態。隨后進行自我配置,將 EPROM 陣列的內容傳輸到 SRAM 陣列,并比較數據的校驗和以驗證數據的有效性。自我配置完成后,設備進入監聽模式,等待檢測到無錯誤的 CAN 消息,以確保設備與系統的總線速率一致。檢測到無錯誤消息后,設備等待總線空閑,然后切換到正常模式,此時若 ADC 和 PWM 外設已啟用,則可正常工作。此外,MCP2505X 可通過用戶配置的控制位(OPTREG2.PUNRM)直接進入正常模式,而無需先進入監聽模式。設備進入正常模式后,會發送一次“On Bus”消息,通知網絡其存在,后續若啟用了定時傳輸功能,該消息將按 STCON 寄存器設定的頻率重復發送。
消息處理
- 消息類型:主要包括信息請求消息(IRMs)、輸出消息和輸入消息。IRMs 由 MCP2502X/5X 接收,可配置為遠程傳輸請求(RTR)或數據幀消息;輸出消息是 MCP2502X/5X 對 IRMs 的響應;輸入消息用于修改設備寄存器。IRMs 被接收至接收緩沖區 0,輸入消息則被接收至接收緩沖區 1。
- 信息請求消息處理:根據 OPTREG2 寄存器中的 MTYPE 位,IRMs 可選擇 RTR 或數據幀消息類型。當選擇 RTR 消息類型時,系統中的節點需發送符合 MCP2502X/5X 掩碼/過濾器規則且 RTR 位設置為“1”的遠程幀;當選擇數據幀消息類型時,節點發送的信息請求必須滿足掩碼/過濾器規則且 RTR 位清零,同時消息 ID 的第 3 位需設置為“1”。MCP2502X/5X 接收到請求后,根據消息的最低三位確定要執行的功能,并根據預定義的數據長度代碼(DLC)返回相應的數據。
- 輸出消息處理:輸出消息是對信息請求消息的響應。對于 RTR 消息的響應,輸出消息具有相同的標識符和數據字節數;對于數據幀消息的響應,輸出消息的標識符的低三位與接收消息相同,標準標識符的高七位或擴展標識符的高 25 位也相同,但第 3 位的值與信息請求消息相反。輸出消息的具體數據內容根據不同的消息類型而定。
- 輸入消息處理:輸入消息用于修改預定義的寄存器組。消息需通過 MCP2502X/5X 的掩碼/過濾器處理,標準標識符的低三位指示要寫入的寄存器,具體的寄存器值包含在數據字節中。若使用多個控制節點,需對設備進行相應配置,以避免消息沖突。
- 動態消息處理:該設備能夠有效處理不同總線負載條件下的收發消息。在消息接受/拒絕方面,符合掩碼/過濾器規則的消息將根據其類型進行相應處理;在接收多個消息時,設備一次只能處理一條消息,若第二條消息在第一條消息處理完成前到達,將可能導致消息丟失,但設備可通過配置 TXID1 發送接收溢出消息來通知網絡;在發送消息優先級方面,輸出消息優先級最高,其次是 TXID2、TXID1 和 TXID0,當多個消息等待發送時,將按照優先級順序發送。
其他模塊功能
GPIO 模塊
MCP2502X/5X 擁有八個通用 I/O 引腳(GP0 至 GP7),除 GP7 為輸入引腳外,其余引腳均可通過 GPDDR 寄存器單獨配置為輸入或輸出。所有引腳均具有 TTL 輸入電平和全 CMOS 輸出驅動器,每個引腳還帶有一個弱上拉電阻,可通過 OPTREG.GPPU 位進行統一控制。引腳具備多種復用功能,包括模擬輸入、模擬 VREF 輸入、PWM 輸出、時鐘輸出和外部復位等。此外,該模塊還支持數字輸入邊緣檢測功能,通過 IOINTEN 和 IOINTPO 寄存器可對每個引腳進行單獨配置,當檢測到指定極性的邊緣時,將自動發送消息(TXID2)。若在睡眠模式下對應的中斷使能位已設置,該功能還可喚醒設備。
PWM 模塊
該模塊包含兩個脈沖寬度調制(PWM)模塊(PWM1 和 PWM2),分別在 GP2 和 GP3 引腳產生高達 10 位分辨率的輸出信號。每個模塊都有獨立的使能控制、定時器、占空比和周期寄存器。PWM 輸出的頻率和占空比可通過編程進行靈活調整,計算公式為 (PWM 周期 = [(PR{n}) + 1] * 4T{OSC} (TMRn 預分頻值)) 和 (PWM 占空比 = (PWMnTDC) T_{OSC} * TMRn(預分頻))。在設備上電時,PWM 輸出默認禁用,直到自我配置完成。若 CAN 總線通信中斷且 OPTREG2.PDEFEN 位啟用,PWM 輸出將恢復到默認狀態。
模數轉換器(A/D)模塊
A/D 模塊為四通道、10 位逐次逼近型轉換器,可將模擬輸入信號轉換為 10 位數字值。四個通道通過 GP[3:0] 引腳復用,可通過 ADCON0 寄存器開啟或關閉轉換器,通過 ADCON1 寄存器單獨啟用每個通道,并可選擇內部或外部的 VREF+ 和 VREF- 源。每個通道可選擇自動轉換或按需轉換模式。在自動轉換模式下,轉換速率由定時器和預分頻器決定;在按需轉換模式下,設備僅在接收到“Read A/D Registers”或“Read Register Receive”消息時進行轉換。此外,該模塊還支持 A/D 閾值檢測功能,當轉換結果超過或低于預設閾值時,將自動發送消息(TXID2)。
特殊功能與特性
振蕩器選擇
MCP2502X/5X 提供四種振蕩器模式供用戶選擇,通過編程 CONFIG 寄存器中的 (F{OSC}1: F{OSC}0) 位,可選擇低功耗晶體(LP)、晶體/諧振器(XT)、高速晶體諧振器(HS)或外部時鐘源模式。在未對 CONFIG 寄存器進行編程時,設備默認采用 HS 模式。
復位功能
設備具備上電復位(POR)和外部 RST 復位兩種復位方式。上電復位時,當檢測到 VDD 在 1.5V 至 2.1V 范圍內上升,會在芯片內生成復位脈沖。外部 RST 輸入可通過 GP7 引腳實現,通過串聯電阻連接到 VDD 可省去外部 RC 組件。設備內部還設有上電定時器(PWRT)和振蕩器啟動定時器(OST),PWRT 提供約 72 ms 的固定延遲,確保 VDD 上升到可接受水平;OST 在 PWRT 延遲結束后提供 512 個振蕩器周期的延遲,保證晶體振蕩器穩定啟動。
睡眠模式
睡眠模式可通過 OPTREG2 寄存器中的 SLPEN 位啟用。當設備在正常模式下檢測到 CAN 總線空閑時間達到至少 1408 位時,將進入睡眠模式。此外,若 PUSLP 位啟用,設備在加電后處于監聽模式且 CAN 總線無活動時也可進入睡眠模式。在睡眠模式下,I/O 端口保持進入睡眠前的狀態,但 A/D 模塊數據轉換、自動轉換模式、自動消息發送、PWM 模塊和輸出以及時鐘輸出等功能將暫停。設備可通過外部復位輸入、GPIO 引腳的邊緣檢測或 CAN 總線活動喚醒。
在線串行編程
MCP2502X/5X 支持在線串行編程,通過時鐘、數據、電源、地和編程電壓這五條線即可實現。在應用電路中,可通過將 GP4 和 GP5 引腳拉低,同時將 GP7(VPP)引腳從 VIL 升高到 VIH,將設備置于編程/驗證模式。在此模式下,GP4 作為編程數據輸入,GP5 作為編程時鐘輸入,二者均為施密特觸發輸入。
電氣特性與封裝信息
電氣特性
- 絕對最大額定值:該設備的工作環境溫度范圍為 -55°C 至 +125°C,存儲溫度范圍為 -65°C 至 +150°C。各引腳的電壓范圍、電源電壓、功耗、電流等參數均有明確的最大額定值,使用時需嚴格遵守,以避免對設備造成永久性損壞。
- DC 特性:包括電源電壓、電壓上升速率、輸入/輸出電壓、電流、電容等參數,不同的振蕩器配置和工作模式下,這些參數會有所不同。例如,XT 和 LP 振蕩器配置下的電源電壓范圍為 2.7V 至 5.5V,而 HS 振蕩器配置下的電源電壓為 4.5V 至 5.5V。
- AC 特性:涉及時鐘輸入頻率、振蕩器頻率、周期、高/低時間、上升/下降時間、傳播延遲等參數,不同的振蕩器模式(XT、
-
CAN協議
+關注
關注
1文章
42瀏覽量
13184
發布評論請先 登錄
MCP23017/MCP23S17帶有串行接口的16位 I/O擴展器相關資料.pdf
基于MCP2502X/5X下的CAN I/O 擴展器
MCP2502X/5X:CAN I/O 擴展器的詳細解析
評論