摘要:本文分析了CAN總線的一些特點(diǎn)以及在國(guó)內(nèi)的的應(yīng)用狀況,提出了引入國(guó)際上通用的CAN總線高層應(yīng)用協(xié)議,以提高國(guó)內(nèi)CAN系統(tǒng)應(yīng)用水平的建議,并簡(jiǎn)要介紹了一種CAN的高層協(xié)議—CANopen協(xié)議。文章最后部分介紹了國(guó)際上一些較先進(jìn)的CAN產(chǎn)品和開(kāi)發(fā)方法。關(guān)鍵詞:CAN-bus協(xié)議;CANopen協(xié)議;嵌入式軟件中間件在設(shè)計(jì)嵌入式系統(tǒng),尤其是分布式嵌入式系統(tǒng)時(shí),解決好系統(tǒng)各單元間可靠、有效的通信是系統(tǒng)設(shè)計(jì)成敗的關(guān)鍵,對(duì)實(shí)時(shí)性和安全可靠性要求高
摘 要: 本文分析了
CAN總線的一些特點(diǎn)以及在國(guó)內(nèi)的的應(yīng)用狀況,提出了引入國(guó)際上通用的CAN總線高層應(yīng)用協(xié)議,以提高國(guó)內(nèi)CAN系統(tǒng)應(yīng)用水平的建議,并簡(jiǎn)要介紹了一種CAN的高層協(xié)議—CANopen協(xié)議。文章最后部分介紹了國(guó)際上一些較先進(jìn)的CAN產(chǎn)品和開(kāi)發(fā)方法。
關(guān)鍵詞: CAN-
bus協(xié)議;CANopen協(xié)議;嵌入式軟件中間件
在設(shè)計(jì)嵌入式系統(tǒng),尤其是分布式嵌入式系統(tǒng)時(shí),解決好系統(tǒng)各單元間可靠、有效的通信是系統(tǒng)設(shè)計(jì)成敗的關(guān)鍵,對(duì)實(shí)時(shí)性和安全可靠性要求高的網(wǎng)絡(luò)而言就更是如此。解決這一問(wèn)題有
多種方案,如RS232/
485串行總線、CAN、ProfitBus、FF、WorldFIP、LonWorks等各類型的現(xiàn)場(chǎng)總線,還有嵌入式以太網(wǎng)等。其中,盡管
RS485串行總線協(xié)議的性能不高,但由于其在硬件成本以及開(kāi)發(fā)簡(jiǎn)便性上的巨大優(yōu)勢(shì),目前仍然是國(guó)內(nèi)廣泛的總線應(yīng)用。
隨著嵌入式系統(tǒng)應(yīng)用的發(fā)展,RS485性能上的不足逐漸顯露出來(lái),已經(jīng)不能滿足設(shè)計(jì)一個(gè)高性能、高實(shí)時(shí)性系統(tǒng)的要求。盡管還需要實(shí)踐的證明,但筆者經(jīng)過(guò)多年的觀察和實(shí)踐,感覺(jué)到CAN總線是其中最有希望成功的。
選擇CAN總線實(shí)現(xiàn)
通信的原因
選擇CAN總線作為最佳候選者,主要是基于以下幾方面原因:
CAN串行總線具有高性能
CAN的傳輸距離可以達(dá)到
10公里;通信速率最高可達(dá)1Mbps;具有完善的錯(cuò)誤檢測(cè)機(jī)制;采用“多重訪問(wèn)沖突仲裁”機(jī)制的幀傳輸方式,可保證不丟失信息;每一幀中最多可以傳輸8個(gè)字節(jié)數(shù)據(jù),可提供很高的實(shí)時(shí)性等等。性能上的優(yōu)勢(shì)保證了CAN可以應(yīng)用在很多的領(lǐng)域,在汽車工業(yè)、船舶運(yùn)輸、機(jī)械控制、工廠自動(dòng)化、樓宇自動(dòng)化等都可以看到CAN的應(yīng)用。
CAN在硬件成本上很具優(yōu)勢(shì)
除了性能外,和
其它現(xiàn)場(chǎng)總線相比,CAN總線在硬件成本上也有很大優(yōu)勢(shì)。從硬件芯片上來(lái)說(shuō),智能節(jié)點(diǎn)要收發(fā)信息需要一個(gè)CAN控制器和一個(gè)CAN收發(fā)器。經(jīng)過(guò)20多年的發(fā)展,CAN已經(jīng)獲得了國(guó)際上各大半導(dǎo)體制造商的大力支持,據(jù)CAN最主要的推廣組織CIA(自動(dòng)化CAN)統(tǒng)計(jì),目前已經(jīng)有20余種CAN控制器和收發(fā)器可供選擇,片內(nèi)集成CAN控制器的單片機(jī)更多達(dá)
100余種。CAN在開(kāi)發(fā)成本上的優(yōu)勢(shì)也很明顯
目前,從廣泛應(yīng)用的8位/
16位單片機(jī),到
DSP和32位的PowerPC、ARM等嵌入式處理器,均在芯片內(nèi)部含有CAN總線硬件接口單元。因此,從硬件角度看,CAN具備其它現(xiàn)場(chǎng)總線無(wú)法比擬的高集成化優(yōu)勢(shì)和廣泛的市場(chǎng)支持基礎(chǔ)。
CAN的開(kāi)發(fā)平臺(tái)也比較簡(jiǎn)單,用戶如果選擇普通單片機(jī)加上CAN控制器進(jìn)行開(kāi)發(fā),則CAN的開(kāi)發(fā)平臺(tái)和普通單片機(jī)的開(kāi)發(fā)平臺(tái)完全相同;如果選擇帶有片內(nèi)CAN控制器的單片機(jī)進(jìn)行開(kāi)發(fā),則只要換用支持該單片機(jī)的
仿真器就可以了,其他開(kāi)發(fā)設(shè)備完全相同。開(kāi)發(fā)CAN也需要相應(yīng)的驅(qū)動(dòng)程序。用戶可以自行根據(jù)選擇的CAN控制器開(kāi)發(fā)驅(qū)動(dòng)程序。
圖1 CANopen協(xié)議通信模型
圖2 CANopen設(shè)備模型