六月婷婷综合-日韩理论在线-69久久久久-欧色图-蜜桃成人在线视频-色先锋在线-亚洲va中文字幕-香蕉影院在线-av一区免费-强开小嫩苞一区二区三区网站-国产视频九色蝌蚪

寧波市鄞州首南恒宇激光雕刻廠

在30分鐘或更短的時間內開發CAN
分享到:


摘要:自從上世紀80年代引入CAN以來,在其規范和需求方面出現了巨大演變。由于其擴展能力,使得其在眾多應用中得以廣泛使用,從汽車到工業機器和工業自動化。隨著其廣泛使用,實施復雜性也在兩個層面上相應增加:

* CAN控制器設計從基本控制器轉向全CAN控制器,在某些情況下,甚至為擴展的全CAN控制器。

* CAN軟件堆棧從汽車通信堆棧變為CANOpen,以及DeviceNet。

假定CAN僅是汽車系統中的單個組件,開發人員僅需面對盡可能少的挑戰就能實現它,那么就能夠將工作重點放在系統級功能上面,而不是糾纏于外圍配置。在本文中,將研究CAN接口,討論不同的實施、配置方式,以及調試接口以簡化設計。

控制器區域網絡(CAN)最早是由Robert Bosch引入的,用于處理不斷增加的車輛功能和網絡復雜性。在嵌入式系統開發的早期階段,模塊中包含單個MCU,可執行單個或多個簡單功能,如通過ADC讀取傳感器電平信號并控制直流電機等。隨著這些功能日益復雜,設計人員采用分布式模塊架構,在同一PCB(印刷電路板)的2個或多個MCU中實現其功能,并使用I2C或SPI協議執行這些功能之間的通訊。對于前面的相同示例,綜合模塊則具有用于執行所有系統功能、診斷和故障保證的主MCU,同時另一MCU負責BLDC電機控制功能。以較低的成本采用廣泛使用的通用MCU即可實現該目的。

在當前的車輛中,功能分布于車輛中而不僅僅是模塊內,模塊間的通信協議需要高的故障容差,,因而在汽車市場中設計并引入了CAN。

圖1 –CAN 介紹
到上世紀90 年代中,隨著DeviceNet 和CANOpen 協議的引入,CAN 以及工業控制已在汽車之外的范圍得到廣泛應用。

受市場中這類需求的推動,很多MCU 供應商內部集成了CAN 控制器,用于推廣這類市場。雖然在高層面上CAN 的功能看上去類似于I2C 或SPI,允許兩個節點之間的通信,但在控制器層面上CAN 通信與他們存在本質不同,下面列出CAN 能提供的服務:

· CAN 通信基于消息,而不是基于地址。
· CAN 節點能夠在總線上發送或請求消息。
· 復雜的錯誤處理機制。
· 使用CRC-15(循環冗余校驗)保護,能夠探測一行中出現的5 個損壞位。

由于是基于消息而不是基于地址,CAN 總線上的節點可擁有多條傳輸的消息,也就是說,制動器模塊可能具有包含車輛速度信息的消息,包含傳感器信息的消息(如輪速傳感器),以及包含診斷信息的消息,后者具有最高的傳輸優先級。

首先考察節點中的消息優先級和消息ID 解碼,人們或許認為CAN 會使CPU 產生高的負荷,從而阻止更多復雜功能的集成。這類問題是可以通過不同類型的CAN 控制器解釋,如圖2 所示。

圖2 - 基本CAN 控制器和全CAN 控制器
· 基本CAN 控制器:在CAN 控制器硬件中實現了十分基本的過濾功能,減少了消息處理,具有較高的CPU 負荷。在基本CAN 控制器中,CPU 會從CAN 控制器收到多條中斷信號,以便接收、確認和分析消息,也會從應用程序一側收到多條中斷信號,以便確定是否要根據所收到消息的ID 傳輸應答。基本CAN 控制器僅應在低波特率、低消息通信數量的情形下使用,從而使得CPU 能夠處理額外的非通信任務。

· 全 CAN 控制器:提供了擴展的消息過濾功能,以及硬件消息分析功能,解放了CPU,使其無需再對每一接收到的消息做出回應。可對全CAN 控制器進行配置,僅當消息ID 已在控制器中設為接受時,才會中斷CPU。全CAN 控制器還設置了多個消息對象,相當于郵箱,郵箱能夠儲存特定的消息信息,如收到的ID 和數據字節,以供CPU 檢索。在該情形下,CPU 可在任何時間檢索消息,但必須在更新所收到的相同消息并改寫郵箱當前內容之前完成任務。這類情形在最終類型的CAN 控制器中得到了解決。

· 擴展的全CAN 控制器:通過提供用于接收消息的硬件FIFO,提供了額外層面的硬件實施功能。通過這類實施方案,在中斷CPU 中斷之前,可保存相同消息一個以上的情況,因而防止了高頻率消息的丟失,通過該功能,CPU 甚至能夠在較長的時間段內專注于主要的模塊功能。

請注意,DeviceNet 將過濾判據擴展到了ID 字段之外,擴展到數據的前兩個字節,在實施該協議時,必須使用全CAN 控制器或擴展的全CAN 控制器。

根據具體的消息結構,上述兩種配置可共存于單個模塊中,以便實現高的消息優先級,并改善CPU 對所收到消息的處理。例如,對于接收一條消息(如ID = 0x250)中實效保護信息以及另一消息(如ID = 0x3FF)中溫度傳感器信息的模塊,可將第一個CAN 控制器配置為全CAN 控制器,并將第2 個配置為具有4 緩沖FIFO 的擴展全CAN 控制器:收到每條失效保護消息時,以及溫度傳感器消息時,CPU 被中斷。在圖3 中,給出了這類CAN 控制器的配置圖,它具有一個可定制的虛擬CAN 控制器,能夠快速實現復雜的消息處理,這三種類型的CAN 控制器可共存于其中:

· 消息5  基本CAN 郵箱。
· 消息0x250  全CAN 郵箱。
· 消息0x3FF  擴展的全CAN 郵箱。

圖3 – PSoC Creator – CAN 控制器配置
除了其功能方面的優勢外,CAN 還因其高的容錯性而得到廣泛應用。其比特率高達1Mbps、總線長度可達1000 米(在50Kbps 下),因而必須遵照CAN 比特時序,以便在電子噪音環境下工作,同時保持高水平的故障檢測和校錯特性。

為了確保高水平的容錯性能,與CAN 一起引入了亞比特時序結構,能夠實現更嚴格的控制,確保每一CAN 總線的正確總線狀態。

一個單獨的CAN 位由4 個段表示:

· Sync_Seg:用于同步總線上的各種節點。
· Prop_Seg:對物理延遲進行補償(物理總線和內部CAN 節點上的傳播延遲)。
· Phase_Seg1,Phase_Seg2:用于補償相位邊緣誤差。在在同步過程中,會縮短或加長這些段。

僅具有3 個段的CAN 控制器也很常見,其中,Prop_Seg 添加到了Phase_Seg1 上。

在圖4 中,顯示了位時序表征,以及實現它所需要的所有參數:

圖4 - 位時序表征
請注意,所有的CAN 位時序計算均基于時間量(TQ),它定義為固定的時間單位,由振蕩器導出,取值介于8 和25 之間。按照時間方面的觀點,1 個TQ 等效于1Mbps 總線速度下1 微秒位長度的1/25th 位或40 納秒。

聯系我們

地址: 浙江省.寧波市鄞州區寧姜公路(九曲小區二期旁)

郵編: 315040

聯系人: 盛立峰

電話: 0574-87139378

傳真: 0574-87139378

手機: 13867861670

郵箱: 85400329@qq.com

聯系我們
主站蜘蛛池模板: 栾城县| 泰州市| 罗山县| 万宁市| 东城区| 丘北县| 鸡西市| 黄梅县| 长治县| 庐江县| 寻乌县| 黔南| 怀化市| 廊坊市| 随州市| 鹤壁市| 贺兰县| 漯河市| 曲阜市| 崇明县| 庄河市| 石家庄市| 临夏市| 嘉义县| 木兰县| 墨脱县| 沧州市| 黄大仙区| 安顺市| 静宁县| 尤溪县| 宁波市| 广宗县| 荔浦县| 武鸣县| 钟祥市| 大名县| 迁西县| 二手房| 阜阳市| 怀柔区|