單片機(jī)在CAN總線智能節(jié)點(diǎn)中的應(yīng)用
1 Can總線概述
本文引用地址:http://2s4d.com/article/170724.htmCAN, 全稱為“Controller Area Network”,是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。20世紀(jì)80年代初,德國(guó)Bosch公司為了解決現(xiàn)代汽車中眾多的控制與測(cè)試儀表之間的數(shù)據(jù)交換問(wèn)題,開發(fā)出 CAN總線。CAN總線能有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),具有抗干擾性強(qiáng)和使用可靠等優(yōu)點(diǎn),最初主要應(yīng)用汽車工業(yè),現(xiàn)在廣泛應(yīng)用于汽車工業(yè)、航空工業(yè)和工業(yè)控制等自動(dòng)化領(lǐng)域,如分布式環(huán)境監(jiān)測(cè)系統(tǒng)、溫室環(huán)境監(jiān)控系統(tǒng)、變電站變監(jiān)測(cè)系統(tǒng)等。
CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)數(shù)據(jù)的成幀處理,用戶可在其基礎(chǔ)上開發(fā)適應(yīng)系統(tǒng)實(shí)際需要的應(yīng)用層通信協(xié)議。CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊編碼,采用這種方法可使網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制,還可使不同的節(jié)點(diǎn)同時(shí)收到相同的數(shù)據(jù)。
CAN總線提供高速數(shù)據(jù)傳送, 在短距離(40m)條件下具有高速(1Mbit/s)數(shù)據(jù)傳輸能力,而在最大距離10000m時(shí)具有低速(5kbits/s)傳輸能力,極適合在高速的工業(yè)自控應(yīng)用上,CAN總線可在同一網(wǎng)絡(luò)上連接多種不同功能的傳感器(如位置,溫度或壓力等)。
CAN總線的其他特點(diǎn)如下:
(1)它是一種多主總線,即每個(gè)節(jié)點(diǎn)機(jī)均可成為主機(jī),且節(jié)點(diǎn)機(jī)之間也可進(jìn)行通信;
(2)通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,通信速率可達(dá)1Mbps;
(3)數(shù)據(jù)段長(zhǎng)度最多為8個(gè)字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令,工作狀態(tài)及測(cè)試數(shù)據(jù)的一般要求。同時(shí),8個(gè)字節(jié)不會(huì)占用總線時(shí)間過(guò)長(zhǎng),從而保證了通信的實(shí)時(shí)性;
(4)CAN協(xié)議采用CRC檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。
CAN可以以多主方式工作,網(wǎng)絡(luò)上任意節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向總線上其它節(jié)點(diǎn)發(fā)送信息,實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播幾種方式發(fā)送接收數(shù)據(jù);CAN采用非破壞性總線仲裁技術(shù),當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向總線上發(fā)送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),節(jié)省了總線沖突仲裁時(shí)間。
圖1-1為一個(gè)CAN總線應(yīng)用系統(tǒng),主要有主機(jī)和各節(jié)點(diǎn)組成,主機(jī)和節(jié)點(diǎn)之間通過(guò)CAN收發(fā)器及CAN控制器相連,單個(gè)節(jié)點(diǎn)包括一個(gè)單片機(jī)控制器、一個(gè)CAN收發(fā)器和一個(gè)CAN控制器。其中一個(gè)典型的應(yīng)用是:主機(jī)接收各節(jié)點(diǎn)發(fā)送的現(xiàn)場(chǎng)數(shù)據(jù),如現(xiàn)場(chǎng)溫度、電流或壓力等參數(shù),主機(jī)經(jīng)過(guò)綜合計(jì)算、判斷作出相應(yīng)的控制命令,這些命令將通過(guò)CAN總線傳送至各節(jié)點(diǎn)。各節(jié)點(diǎn)由單片機(jī)作為控制器,它用于采集現(xiàn)場(chǎng)的各項(xiàng)參數(shù),并執(zhí)行主機(jī)發(fā)送的各項(xiàng)命令,這些命令將最終傳送至各執(zhí)行機(jī)構(gòu),如閥門、電機(jī)或泵等.
圖1-1 CAN總線應(yīng)用系統(tǒng)
本文將介紹基于凌陽(yáng)8位通用型工控單片機(jī)的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)。本文將闡述智能節(jié)點(diǎn)中的主控器SPMC65P2404A在本方案中的應(yīng)用特點(diǎn),及主控器與CAN總線控制器之間的通信。
評(píng)論