控制器局域網(wǎng)(CAN)協(xié)議是在20世紀(jì)80年代中期專為汽車行業(yè)設(shè)計的一種規(guī)范,可在日益增長的互聯(lián)應(yīng)用中減少數(shù)據(jù)傳輸?shù)牟季€復(fù)雜性(重量、數(shù)量和成本)。
CAN的優(yōu)勢也被其他市場(包括工廠自動化和醫(yī)療應(yīng)用)接受和吸納,這使其應(yīng)用范圍更加廣泛,全球每年交付的CAN節(jié)點(diǎn)超過10億個。同樣,每年交付的8位單片機(jī)(MCU)也超過10億個。如今,雖然這些統(tǒng)計數(shù)據(jù)有部分重疊,但今后仍會有大幅增長。
CAN繼續(xù)滿足汽車制造商的需求
傳統(tǒng)的CAN通信以事件為基礎(chǔ),允許單片機(jī)和專用集成電路(ASICS)在應(yīng)用中直接相互通信,無需主機(jī)。CAN經(jīng)過半導(dǎo)體公司集成后極大降低了成本,并且能夠與更多汽車系統(tǒng)兼容。自2000年初以來,8位MCU也引入了CAN協(xié)議。最近,2015年最先推出的8位MCU設(shè)計方案使用獨(dú)立于內(nèi)核的外設(shè)(CIP),全新的8位MCU系列能夠解決CAN應(yīng)用中的許多系統(tǒng)問題。
除了成本效益高之外,CAN的成功還可以歸功于:
§穩(wěn)健性
§可靠的數(shù)據(jù)傳輸
§易于實(shí)現(xiàn)
毫無疑問,除了成本效益極高之外,8位MCU還具有上述優(yōu)勢。因此,8位MCU和CAN是用于滿足汽車網(wǎng)絡(luò)需求的完美組合。
多年來的實(shí)踐足以證明CAN能夠滿足各種控制系統(tǒng)的需求。隨著汽車網(wǎng)絡(luò)需要的各種屬性不斷增加,包括時間觸發(fā)、容錯和單線實(shí)現(xiàn)以及具有靈活數(shù)據(jù)傳輸速率的CAN(CAN FD),CAN規(guī)范也得到擴(kuò)展。表1顯示的是自30多年前首次推出以來CAN發(fā)生的諸多變化。
表1.用于滿足不同汽車需求的CAN版本
為了將傳感器和執(zhí)行器聯(lián)網(wǎng)以提高系統(tǒng)舒適度,汽車工程師使用局域互連網(wǎng)絡(luò)(LIN)協(xié)議來降低成本。但是,LIN是單線主從式網(wǎng)絡(luò),需要對使用CAN的硬件和軟件進(jìn)行更改。使用CAN的最新汽車應(yīng)用包括門禁控制、電池充電/電池管理和診斷設(shè)備。為了實(shí)現(xiàn)全部的車輛要求,尤其是需要從另一個CAN控制系統(tǒng)訪問數(shù)據(jù)的車輛要求,需要使用8位MCU/CAN。圖1顯示的是將8位MCU/CAN節(jié)點(diǎn)輕松添加到現(xiàn)有CAN總線的示例。
圖1.不同的CAN實(shí)現(xiàn)可以共存,這增加了CAN總線的靈活性
使用支持CAN的8位MCU滿足低成本網(wǎng)絡(luò)需求
連接到CAN總線是系統(tǒng)設(shè)計人員需要實(shí)現(xiàn)的最低功能,通過增加專門用于滿足其他系統(tǒng)要求的外設(shè),簡化設(shè)計人員的任務(wù)。這些系統(tǒng)任務(wù)包括感測一個或兩個用于控制目的的參數(shù)、移動電機(jī)或激活電磁線圈或者提供其他功能。
使用CIP方法可以降低軟件的復(fù)雜程度,并以較低的時鐘速度提供更快的響應(yīng)時間,同時降低功耗。Microchip PIC18 K83系列中豐富的CIP系統(tǒng)類別包括:
·智能模擬(包括傳感器接口)
·波形控制
·時序和測量
·邏輯和數(shù)學(xué)
·安全和監(jiān)視
·通信
·低功耗和系統(tǒng)靈活性
在這些類別中,具體外設(shè)包括:
·帶有存儲器掃描的循環(huán)冗余校驗(CRC),用于確保非易失性存儲器的完整性
·直接存儲器訪問(DMA),用于在沒有CPU參與的情況下進(jìn)行存儲器和外設(shè)之間的數(shù)據(jù)傳輸
·窗口看門狗定時器(WWDT),用于觸發(fā)系統(tǒng)復(fù)位
·帶計算功能的12位模數(shù)轉(zhuǎn)換器(ADC2),可自動進(jìn)行模擬信號分析,從而實(shí)現(xiàn)實(shí)時系統(tǒng)響應(yīng)
·互補(bǔ)波形發(fā)生器(CWG),用于使能電機(jī)控制的高效同步開關(guān)
除了使用CAN 2.0B外,集成CAN控制器還能夠完全兼容以前版本的CAN模塊(CAN 1.2和CAN 2.0A)。該產(chǎn)品的功能包括存儲器訪問分區(qū)(MAP),用于在數(shù)據(jù)保護(hù)和自舉程序應(yīng)用中為設(shè)計人員提供支持。器件信息區(qū)(DIA),用于為工廠編程的器件ID和外設(shè)校準(zhǔn)值提供專用存儲空間。
由于CAN節(jié)點(diǎn)的主要目標(biāo)是通信,因此8位MCU改進(jìn)了串行通信,包括支持異步通信和LIN協(xié)議的UART以及更高速的獨(dú)立I2C和SPI串行通信接口。表2顯示了15個CIP以及它們滿足具體系統(tǒng)需求的方式。
表2. PIC18 K83系列中獨(dú)立于內(nèi)核的外設(shè)可滿足多種系統(tǒng)需求
過去并沒有考慮過在8位MCU中實(shí)施這些片上結(jié)構(gòu),而正是由于這些結(jié)構(gòu),現(xiàn)在的8位MCU的性能與許多設(shè)計人員的期望完全不同,提供的功能遠(yuǎn)遠(yuǎn)超過十年前設(shè)計的MCU。
8位MCU的編程方式非常簡單,與CAN和CIP結(jié)合使用時甚至更加容易。當(dāng)這些8位MCU能夠提供足夠的處理能力時,特別是針對遠(yuǎn)程節(jié)點(diǎn)的處理能力,便能夠替代更昂貴且更難編程的16位MCU。而CIP可以提供更多處理能力,實(shí)現(xiàn)更多8位MCU選項。
可靈活配置的片上硬件模塊能夠更高效更確定地處理重復(fù)嵌入。事實(shí)上,由于CAN的確定性,如果MCU陷入循環(huán),使用CIP的CAN仍然可以在內(nèi)核之外繼續(xù)運(yùn)行。
借助最新的8位MCU/CAN + CIP和LIN,網(wǎng)絡(luò)設(shè)計人員現(xiàn)在可以為CAN和LIN通信提供更多靈活性和選擇。實(shí)際上,一些典型的8位MCU LIN應(yīng)用現(xiàn)在是潛在的CAN應(yīng)用。例如,如果模塊需要了解網(wǎng)絡(luò)上的其他數(shù)據(jù)(如車輛速度),CAN可能是更好的選擇,或者至少是LIN的備選方案。這對于擋風(fēng)玻璃雨刮非常有用,可以根據(jù)車輛的速度改變雨刷速度,而無需CAN到LIN的網(wǎng)關(guān)。另外,如圖2所示,使用系統(tǒng)級CIP可以少用一兩個額外的ASIC。
多年來,汽車中一直使用相同的PWM和互補(bǔ)波形發(fā)生器CIP生成相當(dāng)復(fù)雜的多色LED氣氛照明。由于MCU沒有應(yīng)用CAN功能,這些驅(qū)動程序會連接到LIN總線。將該功能與支持CAN功能的高性價比8位MCU相結(jié)合,可為設(shè)計提供更高的靈活性和簡化的備用方法。
雖然市面上大多數(shù)8位MCU都嚴(yán)重依賴內(nèi)核來處理外設(shè)功能,但CIP可實(shí)現(xiàn)其他系統(tǒng)設(shè)計可能性,不會對CPU造成明顯負(fù)擔(dān),這包括:各種傳感器的高精度接口、高功率LED驅(qū)動器和/或相當(dāng)復(fù)雜的電機(jī)控制水平。
可以使用各種開發(fā)工具確定這些和其他可能性中的哪一種適合特定網(wǎng)絡(luò)。例如,MPLAB 代碼配置器(MCC)是一款免費(fèi)的軟件插件,可提供圖形界面來配置特定于應(yīng)用的外設(shè)和功能。借助該工具,系統(tǒng)設(shè)計工程師在完成特定任務(wù)時可以輕松配置基于硬件的外設(shè),而不必編寫和驗證整個軟件程序。
樹立自信的態(tài)度
對于汽車和工業(yè)應(yīng)用中的總線架構(gòu),系統(tǒng)設(shè)計人員肯定有多種選擇。作為一種廣受認(rèn)可的總線,當(dāng)需要為現(xiàn)有網(wǎng)絡(luò)增加檢測和/或控制功能時,具有附加功能來滿足不同系統(tǒng)需求的MCU使CAN成為一種出色的選擇。憑借其獨(dú)立于內(nèi)核的外設(shè),8位MCU/CAN系列可將CAN擴(kuò)展到網(wǎng)絡(luò)上更具成本效益的節(jié)點(diǎn)中。
新型8位MCU/CAN + CIP為新興汽車網(wǎng)絡(luò)應(yīng)用提供了靈活、經(jīng)濟(jì)高效、簡單而可靠的數(shù)據(jù)傳輸以及訪問控制、電池充電/電池管理和診斷設(shè)備所需的更高性能和系統(tǒng)支持。
參考資料
1.PIC18 K83產(chǎn)品系列:http://www.microchip.com/promo/pic18f-k83
2.MPLAB代碼配置器(MCC):http://www.microchip.com/mplab/mplab-code-configurator