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