工業(yè)應(yīng)用中的網(wǎng)絡(luò)主題有著漫長(zhǎng)而又糾結(jié)的歷史。每個(gè)行業(yè)都接近在各個(gè)設(shè)備上部署電子控制的任務(wù),將這些控制連接到自動(dòng)化孤島,最后將這些島嶼拉到工廠范圍的網(wǎng)絡(luò)中。它們現(xiàn)在鏈接到企業(yè)網(wǎng)絡(luò)中,并與銷售預(yù)測(cè),庫(kù)存控制和管理信息系統(tǒng)等相關(guān)聯(lián)。但是,這超出了本文的范圍。這種方法的問(wèn)題在于不同的行業(yè)開發(fā)了不同的方法來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)。在20世紀(jì)80年代,有一種運(yùn)動(dòng)來(lái)創(chuàng)建一種用ISO的OSI(開放系統(tǒng)互連)模型描述網(wǎng)絡(luò)的通用方法,并找到不同網(wǎng)絡(luò)技術(shù)使用該模型進(jìn)行交互的方式。這將通信視為七層模型。 1級(jí)是物理層,定義了電線,連接器以及信號(hào)穿過(guò)電線(或光纖)的方式。層變得越來(lái)越抽象,直到第7層,即應(yīng)用層,即網(wǎng)絡(luò)之間的接口和通訊軟件。
圖1:OSI七層模型。
當(dāng)時(shí)對(duì)OSI活動(dòng)進(jìn)行了大量投資,其重要的遺產(chǎn)包括能夠根據(jù)相關(guān)OSI層描述當(dāng)前的網(wǎng)絡(luò)技術(shù),即使它們不是采用這種方法設(shè)計(jì)的。
今天有幾種網(wǎng)絡(luò)技術(shù)正在部署中。工業(yè)以太網(wǎng)正在穩(wěn)步發(fā)展,特別是因?yàn)樗灰暈榕c標(biāo)準(zhǔn)以太網(wǎng)兼容。雖然它有很多優(yōu)點(diǎn),但它確實(shí)有一些缺點(diǎn),特別是對(duì)于硬實(shí)時(shí)應(yīng)用程序。盡管如此,許多早期的網(wǎng)絡(luò)技術(shù),如Modbus和Profibus,已經(jīng)被改編為以太網(wǎng)上的覆蓋。
CAN總線越來(lái)越受歡迎,也許目前占主導(dǎo)地位的網(wǎng)絡(luò)技術(shù)(雖然不同的市場(chǎng)數(shù)據(jù)給出了不同的數(shù)字)。這開始是將汽車中越來(lái)越多的智能節(jié)點(diǎn)連接起來(lái)的一種方式,由Robert Bosch在德國(guó)開發(fā)。它被廣泛應(yīng)用于一般汽車行業(yè),被SAE(美國(guó)汽車工程師協(xié)會(huì))接受,現(xiàn)在由國(guó)際標(biāo)準(zhǔn)組織標(biāo)準(zhǔn)ISO 11898涵蓋,有幾個(gè)部分。在當(dāng)前的實(shí)施方式中,CAN總線成本低,魯棒且容許汽車的極端環(huán)境,這些特性使其對(duì)工業(yè)控制應(yīng)用具有吸引力。它已經(jīng)變得如此普遍,以至于許多微控制器在芯片上都包含CAN接口,因此無(wú)需為每個(gè)節(jié)點(diǎn)提供專用控制器芯片。一些估計(jì)表明,有超過(guò)20家公司為微控制器提供CAN功能,通常是16位或32位。
CAN總線
CAN總線的設(shè)計(jì)是為了簡(jiǎn)化物理。沒有單個(gè)主設(shè)備,因?yàn)榫W(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都是主設(shè)備,節(jié)點(diǎn)通過(guò)單個(gè)端接雙絞線連接。每個(gè)節(jié)點(diǎn)都可以與任何其他節(jié)點(diǎn)通信。最大比特率為1 Mbit/sec,可以在大約40 m的正常電纜長(zhǎng)度上維持。隨著電纜長(zhǎng)度的增加,比特率下降,對(duì)于理論上10千米的電纜,比特率將降至約5 Kbit/sec。還有使用光學(xué)連接甚至無(wú)線的CAN總線網(wǎng)絡(luò)。他們的數(shù)據(jù)率會(huì)有所不同。
圖2:CAN總線連接。
節(jié)點(diǎn)沒有給定特定地址,雖然理論上這允許無(wú)限數(shù)量的節(jié)點(diǎn),但網(wǎng)絡(luò)上的正常最大值大約為64。消息具有確定消息優(yōu)先級(jí)的標(biāo)識(shí)符,而不是節(jié)點(diǎn)地址。 CAN總線部署CSMA/CD(帶沖突檢測(cè)的載波偵聽多路訪問(wèn)),這意味著任何節(jié)點(diǎn)都可以傳輸消息。如果兩個(gè)(或更多)節(jié)點(diǎn)嘗試同時(shí)進(jìn)行傳輸,那些優(yōu)先級(jí)較低的節(jié)點(diǎn)將產(chǎn)生最高優(yōu)先級(jí)并稍后重試。偵聽節(jié)點(diǎn)將識(shí)別與其相關(guān)的消息并下載它們。
消息以四種類型的幀傳輸。數(shù)據(jù)框是消息傳遞的基本框架。另外還有遠(yuǎn)程幀,請(qǐng)求傳輸特定消息;錯(cuò)誤幀,在節(jié)點(diǎn)檢測(cè)到錯(cuò)誤時(shí)發(fā)送;和過(guò)載幀,用于在數(shù)據(jù)幀之間添加延遲。
數(shù)據(jù)幀本身最多可攜帶8個(gè)字節(jié)的數(shù)據(jù),并有7個(gè)字段:?jiǎn)蝹€(gè)幀起始幀(SOF);仲裁領(lǐng)域;控制字段(指定消息的字節(jié)數(shù));數(shù)據(jù)字段,介于0到8個(gè)字節(jié)之間; 15位CRC序列和1位定界符的循環(huán)冗余校驗(yàn)(CRC)字段;一個(gè)2比特的確認(rèn)(ACK)字段(一個(gè)用于確認(rèn)接收消息,另一個(gè)用于字段定界符);和幀結(jié)束(EOF)的七位。
仲裁字段定義了兩種不同的數(shù)據(jù)幀類型:標(biāo)準(zhǔn)幀和擴(kuò)展幀。標(biāo)準(zhǔn)幀使用11位標(biāo)識(shí)符,而擴(kuò)展幀又為標(biāo)識(shí)符添加18位,以應(yīng)對(duì)CAN總線覆蓋的一些協(xié)議要求。
圖3:CAN數(shù)據(jù)幀格式。
網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都會(huì)讀取每條消息,并確定內(nèi)容是否與它們相關(guān)。如果他們確定該消息是相關(guān)的,則該節(jié)點(diǎn)重置ACK字段位并重新發(fā)送該消息。這允許發(fā)送節(jié)點(diǎn)知道至少一個(gè)節(jié)點(diǎn)已經(jīng)接收到該消息。所有的消息管理都由CAN總線控制器執(zhí)行,最初是一個(gè)獨(dú)立的設(shè)備,通常用于工業(yè)自動(dòng)化,現(xiàn)在是主控制器的集成部分。
簡(jiǎn)要回到OSI 7層模型,CAN總線只有兩層。一,電線,對(duì)應(yīng)于模型的最低或物理層。另一種是消息格式和CSMA/CD過(guò)程,大致映射到數(shù)據(jù)鏈路層。這意味著CAN總線僅定義道路和在道路上行駛的車輛的整體形狀。車輛攜帶的內(nèi)容,數(shù)據(jù)字段的內(nèi)容實(shí)際意味著什么,留待實(shí)施。這意味著更高級(jí)別的OSI模型的等價(jià)物未定義。一個(gè)涵蓋從網(wǎng)絡(luò)層到應(yīng)用層的層的定義是由CiA(CAN in Automation)開發(fā)的CAN Open標(biāo)準(zhǔn),這是一個(gè)由560家公司組成的聯(lián)盟。這種以及可以使用CAN總線的其他協(xié)議的選擇在很大程度上取決于應(yīng)用程序的上下文。 CAN現(xiàn)已標(biāo)準(zhǔn)化為ISO 11898,ISO 16845和SAE J1939,適用于汽車,工業(yè)和通用嵌入式通信。
FlexCAN
CANC的擴(kuò)展,F(xiàn)lexCAN以及相關(guān)協(xié)議SafeCAN已在美國(guó)開發(fā),并且在安全關(guān)鍵應(yīng)用方面取得了一些成功,因?yàn)樗鼛?lái)了確定性和實(shí)時(shí)性方面。通常,在微控制器上實(shí)現(xiàn)FlexCAN的情況下,它向后兼容CAN。
LIN LIN,本地互連網(wǎng)絡(luò),也來(lái)自汽車行業(yè)。它的開發(fā)是為了提供CAN總線的替代和擴(kuò)展,在與CAN總線提供的高帶寬和錯(cuò)誤處理相關(guān)的成本太高的應(yīng)用中。在汽車應(yīng)用中,這些是簡(jiǎn)單的事情,如窗戶控制,雨水傳感器和門鎖,而在工業(yè)應(yīng)用中,溫度和壓力傳感器,非關(guān)鍵的通斷開關(guān)和簡(jiǎn)單的執(zhí)行器是LIN網(wǎng)絡(luò)的自然候選者。 LIN通常用于為CAN創(chuàng)建子網(wǎng)。
CAN總線控制器往往是高端16位和32位微控制器提供的選項(xiàng)的一部分,LIN可以使用甚至成本最低的8位微控制器上的標(biāo)準(zhǔn)串行通用異步接收器/發(fā)送器(UART)或?qū)S玫腖IN接口。
LIN總線不是等狀態(tài)節(jié)點(diǎn),而是主從。任何LIN總線都有一個(gè)主站和一個(gè)或多個(gè)從站(最多16個(gè))。主人還包括一個(gè)奴隸。主設(shè)備以預(yù)定義的順序和頻率輪詢從設(shè)備。該消息可以是指令或信息請(qǐng)求。奴隸通過(guò)訂閱(執(zhí)行指令)或發(fā)布(提供信息)來(lái)回應(yīng)。
圖4:LIN消息幀。
LIN消息幀具有消息頭和消息響應(yīng),主節(jié)點(diǎn)發(fā)送標(biāo)頭,其中一個(gè)從節(jié)點(diǎn)響應(yīng)。 Header有三個(gè)元素:Break,Sync和Identifier,而Response有兩個(gè),Data和Checksum。 Break用于警告所有從站即將發(fā)送消息,而Sync允許從站同步到傳輸速度。標(biāo)識(shí)符既提供消息的標(biāo)識(shí),也提醒特定消息相關(guān)的從屬設(shè)備。然后,相關(guān)從站使用響應(yīng),在數(shù)據(jù)字段中提供最多8個(gè)字節(jié)的有效負(fù)載,并計(jì)算校驗(yàn)和值。標(biāo)識(shí)符的映射和數(shù)據(jù)格式的內(nèi)容是依賴于實(shí)現(xiàn)的。
當(dāng)前標(biāo)準(zhǔn)是LIN 2.1,這為節(jié)點(diǎn)提供了睡眠模式。觸發(fā)睡眠模式的不活動(dòng)時(shí)段由開發(fā)人員定義,并由任何節(jié)點(diǎn)結(jié)束,主節(jié)點(diǎn)工作到預(yù)定義的調(diào)度,或者從屬應(yīng)用軟件的預(yù)定義狀態(tài)觸發(fā)。
實(shí)現(xiàn)CAN
大多數(shù)微控制器開發(fā)人員提供CAN接口。通常,微控制器上的CAN接口將連接到CAN收發(fā)器,這些可從各種供應(yīng)商處獲得。
飛思卡爾擁有基于PowerPC架構(gòu)的大量微控制器選項(xiàng)。 MPC8306/9系列是PowerQUICC II Pro產(chǎn)品,具有e300 PowerPC內(nèi)核和基于QUICC,RISC的通信引擎。它們?cè)O(shè)計(jì)為通信處理器,提供多種不同接口選擇,可用于將CAN橋接到其他網(wǎng)絡(luò)技術(shù)。在工業(yè)應(yīng)用中,這通常是以太網(wǎng),用于將CAN網(wǎng)絡(luò)鏈接到更廣泛的企業(yè)。在MPC8306/9系列中,可提供各種速度/功率折衷,飛思卡爾是少數(shù)幾家實(shí)施FlexCAN的制造商之一。飛思卡爾擁有跨越MPC830X系列的開發(fā)套件。產(chǎn)品的低功耗端是Silicon Labs C8051F5XX微控制器。這些是基于8位8051的,采用小型封裝,并提供用戶對(duì)所有外設(shè)的控制,允許它們斷電以節(jié)省功耗。可用的工具包括一個(gè)可以容納兩個(gè)處理器的開發(fā)套件,允許運(yùn)行LIN 2.1主從網(wǎng)絡(luò)。
德州儀器(TI)的Stellaris系列提供基于ARM Cortex內(nèi)核的大量功率/速度選項(xiàng)。 Stellaris 2000,5000,8000和9000系列都具有CAN功能。 TI提供了一系列用于使用Stellaris開發(fā)CAN網(wǎng)絡(luò)的電路板和套件,采用不同的開發(fā)環(huán)境,如IAR,Keil和CodeSourcery。 TI還提供具有CAN功能的其他微控制器架構(gòu),包括Piccolo系列的成員; Sitara ARM微處理器,基于ARM9或Cortex-A8內(nèi)核;和Hercules安全微控制器平臺(tái),專為使用ARM Cortex-M3和Cortex-R4F內(nèi)核的IEC 61508和ISO 26262安全關(guān)鍵應(yīng)用而設(shè)計(jì)。
Atmel還有幾個(gè)支持CAN的系列,包括32位AVR AT32UC3C和基于ARM9的SAM9的成員。此外,Microchip還提供大多數(shù)PIC變體的CAN,包括8位PIC 10/12/16和18,16位PIC24和32位PIC32。與大多數(shù)制造商一樣,這些都得到了各種開發(fā)套件的支持。
參數(shù)
這只是一些可用微控制器選項(xiàng)的簡(jiǎn)短摘要。選擇微控制器的問(wèn)題不在于它是否有CAN。相反,選擇標(biāo)準(zhǔn)將是通常使用的選擇標(biāo)準(zhǔn),使用諸如功率/性能,其他外圍設(shè)備和可用軟件之類的參數(shù)。通常關(guān)鍵的因素是,特定建筑的內(nèi)部投資,包括工具和人工年數(shù),是否能夠讓這個(gè)項(xiàng)目在高質(zhì)量,時(shí)間和預(yù)算范圍內(nèi)完成。
-
微控制器
+關(guān)注
關(guān)注
48文章
7936瀏覽量
154270 -
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5769瀏覽量
83948 -
網(wǎng)絡(luò)通信
+關(guān)注
關(guān)注
4文章
824瀏覽量
30855
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論