《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > CAN總線網(wǎng)絡(luò)設(shè)計(jì)

CAN總線網(wǎng)絡(luò)設(shè)計(jì)

2015-05-08

  1  引言
  can(controller area network)即控制器局域網(wǎng)絡(luò),,最初是由德國(guó)bosch公司為解決汽車(chē)監(jiān)控系統(tǒng)中的自動(dòng)化系統(tǒng)集成而設(shè)計(jì)的數(shù)字信號(hào)通信協(xié)議,屬于總線式串行通信網(wǎng)絡(luò)。由于can總線自身的特點(diǎn),其應(yīng)用領(lǐng)域由汽車(chē)行業(yè)擴(kuò)展到過(guò)程控制、機(jī)械制造、機(jī)器人和樓宇自動(dòng)化等領(lǐng)域,被公認(rèn)為最有發(fā)展前景的現(xiàn)場(chǎng)總線之一,。
  can總線系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線式結(jié)構(gòu),其結(jié)構(gòu)簡(jiǎn)單,、成本低,,并且采用無(wú)源抽頭連接,系統(tǒng)可靠性高,。本設(shè)計(jì)在保證系統(tǒng)可靠工作和降低成本的條件下,,具有通用性、實(shí)時(shí)性和可擴(kuò)展性等持點(diǎn),。
  2  系統(tǒng)總體方案設(shè)計(jì)
  整個(gè)can網(wǎng)絡(luò)由上位機(jī)(上位機(jī)也是網(wǎng)絡(luò)節(jié)點(diǎn))和各網(wǎng)絡(luò)節(jié)點(diǎn)組成(見(jiàn)圖1),。上位機(jī)采用工控機(jī)或通用計(jì)算機(jī),它不僅可以使用普通pc機(jī)的豐富軟件,而且采用了許多保護(hù)措施,,保證了安全可靠的運(yùn)行,,工控機(jī)特別適合于工業(yè)控制環(huán)境惡劣條件下的使用。上位機(jī)通過(guò)can總線適配卡與各網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行信息交換,,負(fù)責(zé)對(duì)整個(gè)系統(tǒng)進(jìn)行監(jiān)控和給下位機(jī)發(fā)送各種操作控制命令和設(shè)定參數(shù),。
  網(wǎng)絡(luò)節(jié)點(diǎn)由傳感器接口、下位機(jī),、can控制器和can收發(fā)器組成,,通過(guò)can收發(fā)器與總線相連,接收上位機(jī)的設(shè)置和命令,。傳感器接口把采集到的現(xiàn)場(chǎng)信號(hào)經(jīng)過(guò)網(wǎng)絡(luò)節(jié)點(diǎn)處理后,,由can收發(fā)器經(jīng)由can總線與上位機(jī)進(jìn)行數(shù)據(jù)交換,上位機(jī)對(duì)傳感器檢測(cè)到的現(xiàn)場(chǎng)信號(hào)做進(jìn)一步分析,、處理或存儲(chǔ),,完成系統(tǒng)的在線檢測(cè),計(jì)算機(jī)分析與控制,。本設(shè)計(jì)can總線傳輸介質(zhì)采用雙絞線,。

QQ截圖20150508152841.png

                              圖 1 can總線網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)
  3  can總線智能網(wǎng)絡(luò)節(jié)點(diǎn)硬件設(shè)計(jì)
  本文給出以arm7tdmi內(nèi)核philips公司的lpc2119芯片作為核心構(gòu)成的智能節(jié)點(diǎn)電路設(shè)計(jì)。該智能節(jié)點(diǎn)的電路原理圖如圖2所示,。該智能節(jié)點(diǎn)的設(shè)計(jì)在保證系統(tǒng)可靠工作和降低成本的條件下,,具有通用性、實(shí)時(shí)性和可擴(kuò)展性等特點(diǎn),,下面分別對(duì)電路的各部分做進(jìn)一步的說(shuō)明,。

QQ截圖20150508152850.png

                                  圖2 can總線智能網(wǎng)絡(luò)點(diǎn)
  3.1  lpc2119處理器特點(diǎn)
  lpc2119是philips公司推出的一款高性價(jià)比很處理器。lpc2119是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位arm7tdmi-stm cpu,,并帶有128kb嵌入的高速flash存儲(chǔ)器,。獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行,對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位thumb模式將代碼規(guī)模降低超過(guò)30%,,而性能的損失卻很小。實(shí)行流水線作業(yè),,提供embedded ice邏輯,,支持片上斷點(diǎn)和調(diào)試點(diǎn),具有先進(jìn)的軟件開(kāi)發(fā)和調(diào)試環(huán)境,。
  lpc2119具有非常小的64腳封裝,、極低的功耗、多個(gè)32位定時(shí)器,、4路10位adc,、2路can、pwm通道,、多個(gè)串行接口,,包括2個(gè)16c550工業(yè)標(biāo)準(zhǔn)uart,、高速i2c接口(400 khz)和2個(gè)spi接口,46個(gè)gpio以及多達(dá)9個(gè)外部中斷使它們特別適用于汽車(chē),、工業(yè)控制應(yīng)用以及醫(yī)療系統(tǒng)和容錯(cuò)維護(hù)總線,。
  lpc2119內(nèi)部集成2個(gè)can控制器,每一個(gè)can控制器都與獨(dú)立can控制器sja1000有著相似的寄存器結(jié)構(gòu),。其主要的區(qū)別在于標(biāo)識(shí)符接收過(guò)濾的編程操作上,,篇幅有限這里不作詳述。它的主要特性有:單個(gè)總線上的數(shù)據(jù)傳輸速率高達(dá)1mb/s;32位寄存器和ram訪問(wèn);兼容can2.0b,,iso11898-1規(guī)范;全局驗(yàn)收濾波器可以識(shí)別所有的11位和29位標(biāo)識(shí)符;驗(yàn)收濾波器為選擇的標(biāo)準(zhǔn)標(biāo)識(shí)符提供full can-style自動(dòng)接收,。
  3.2  數(shù)據(jù)采集和人機(jī)接口
  傳感器接口的選用應(yīng)根據(jù)實(shí)際系統(tǒng)所要實(shí)現(xiàn)的功能而定,由傳感器將被測(cè)量轉(zhuǎn)化成電量,。由于測(cè)試環(huán)境的電磁干擾,、傳感器和放大器自身的影響,往往使信號(hào)中含有多種頻率成分的噪音,,直接從傳感器輸出的信號(hào)需要經(jīng)過(guò)信號(hào)調(diào)理電路作進(jìn)一步的處理才能使后續(xù)電路得以正常工作,。經(jīng)過(guò)調(diào)理后的信號(hào)輸入到lpc2119的模擬信號(hào)輸入端p0.27-p0.30,lpc2119內(nèi)有4路10位adc,,轉(zhuǎn)換時(shí)間低至2.44μs,。
  人機(jī)接口利用lpc2119豐富的gpio接口采用led顯示輸出和鍵盤(pán)輸入,如圖2所示,。本設(shè)計(jì)采用4個(gè)led分別表示節(jié)點(diǎn)電源,、數(shù)據(jù)通信狀態(tài)、聯(lián)機(jī)指示和錯(cuò)誤指示,。鍵盤(pán)設(shè)計(jì)了6個(gè)按鍵用來(lái)設(shè)置節(jié)點(diǎn)的報(bào)文濾波,、節(jié)點(diǎn)的波特率及節(jié)點(diǎn)復(fù)位等功能。
  3.3  can總線接口
  根據(jù)圖2所示,,can接口部分包括lpc2119(內(nèi)置can控制器),、光電耦合器和總線收發(fā)器。can總線遵循iso的標(biāo)準(zhǔn)模型,,分為數(shù)據(jù)鏈路層和物理層,。在工程上通常由can控制器和收發(fā)器來(lái)實(shí)現(xiàn)。收發(fā)器選擇philips公司的tja1050高速收發(fā)器,,它符合iso11898標(biāo)準(zhǔn),。can控制器主要完成can的通訊協(xié)議,實(shí)現(xiàn)報(bào)文的裝配和拆分,、接收信息的過(guò)濾和校驗(yàn)等,。收發(fā)器tja1050則是實(shí)現(xiàn)can控制器和通訊線路的物理連接,提高can總線的驅(qū)動(dòng)能力和可靠性。
  為了進(jìn)一步提高系統(tǒng)的抗干擾能力,,lpc2119引腳tx1,、rx1與收發(fā)器tja1050并不是直接相連的,而是通過(guò)高速光耦6n137后與tja1050相連,。電路中可采用隔離型dc/dc 模塊向收發(fā)器電路供電,。dc/dc模塊采用金升陽(yáng)的b0505s-1w定電壓輸入隔離非穩(wěn)壓?jiǎn)屋敵鲂蚫c/dc模塊,隔離電壓≥1000vdc,。這樣就可以很好地實(shí)現(xiàn)總線上各接點(diǎn)的電氣隔離,,這部分電路雖增加了復(fù)雜性,但卻保證了穩(wěn)定性和安全性,。
  tja1050與can總線的接口部分也采用了一定的安全和抗干擾措施,,canh和canl與地之間并聯(lián)了兩個(gè)小電容ch和cl可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。電容值須由節(jié)點(diǎn)的數(shù)量和波特率決定,,當(dāng)tja1050 的輸出級(jí)阻抗大約是20ω,,總線系統(tǒng)有10個(gè)節(jié)點(diǎn)速度是500kbps,則電容的值不應(yīng)該超過(guò)470pf,。另外在兩根can總線接入端與地之間分別反接了一個(gè)保護(hù)二極管,,當(dāng)can 總線有較高的負(fù)電壓時(shí)通過(guò)二極管的短路可起到一定的過(guò)壓保護(hù)作用。根據(jù)tja1050的特性,,本設(shè)計(jì)中can終端電阻使用了分裂終端,,即總線端節(jié)點(diǎn)的兩個(gè)終端電阻都被分成兩個(gè)等值的電阻,用兩個(gè)60ω的電阻代替一個(gè)120ω的電阻,這樣可以有效的減少輻射,。由于使用了分裂終端,,tja1050的emc性能得到優(yōu)化而且不會(huì)產(chǎn)生扼流。
  4  can總線應(yīng)用層通信協(xié)議的制定
  can總線應(yīng)用層協(xié)議制定的總體目標(biāo)是最大限度地發(fā)揮can總線的優(yōu)異性能,,使通信更加規(guī)范,、可靠,提高實(shí)時(shí)性,,降低總線負(fù)載率,。在設(shè)計(jì)系統(tǒng)的應(yīng)用層通信協(xié)議時(shí),需要考慮以下兩個(gè)方面的內(nèi)容:
 ?。?) 結(jié)合系統(tǒng)的設(shè)計(jì)要求,,分析通信中所有信息對(duì)象,確定需要支持的通信傳輸模式;
 ?。?) 確定標(biāo)識(shí)符的分配方案,定義幀格式,。下面分別討論之,。
  4.1  確定通信的傳輸模式
  本系統(tǒng)要求實(shí)現(xiàn)廣播式通信用來(lái)對(duì)全部從結(jié)點(diǎn)或部分從結(jié)點(diǎn)發(fā)布信息,同時(shí)主結(jié)點(diǎn)還要具備能夠?qū)蝹€(gè)結(jié)點(diǎn)進(jìn)行操作的功能。因此定義以下三種傳輸模式:
 ?。?) 支持全局/局部廣播式通信,。主結(jié)點(diǎn)向全部或部分結(jié)點(diǎn)發(fā)送信息,從結(jié)點(diǎn)接收信息后進(jìn)行相應(yīng)動(dòng)作,,不回送確認(rèn)信息,。
  (2) 支持點(diǎn)對(duì)點(diǎn)式通信,。主結(jié)點(diǎn)向某個(gè)從結(jié)點(diǎn)發(fā)送信息請(qǐng)求數(shù)據(jù),,從結(jié)點(diǎn)接收到請(qǐng)求后讀取數(shù)據(jù),并向主結(jié)點(diǎn)發(fā)送請(qǐng)求的數(shù)據(jù),。
 ?。?) 支持點(diǎn)對(duì)點(diǎn)式通信。主結(jié)點(diǎn)向某個(gè)從結(jié)點(diǎn)發(fā)送信息,,從結(jié)點(diǎn)接收到信息后執(zhí)行相應(yīng)操作,,但不回送確認(rèn)信息。
  4.2  確定標(biāo)識(shí)符的分配方案
  確定標(biāo)識(shí)符的分配方案,,定義幀格式,。標(biāo)識(shí)符是can總線實(shí)現(xiàn)仲裁的依據(jù),也是協(xié)議的關(guān)鍵,,其分配方案要滿足個(gè)節(jié)點(diǎn)及信息對(duì)優(yōu)先級(jí)的要求,。本文在協(xié)議中定義了兩種類(lèi)型的幀:信息幀和數(shù)據(jù)幀。信息幀用來(lái)傳送主結(jié)點(diǎn)對(duì)從結(jié)點(diǎn)的命令,、配置信息以及通信中的連接響應(yīng)信息等,。而從結(jié)點(diǎn)向上傳送過(guò)程數(shù)據(jù)則通過(guò)數(shù)據(jù)幀來(lái)實(shí)現(xiàn)。信息幀的優(yōu)先級(jí)高于數(shù)據(jù)幀,。
  設(shè)計(jì)中通信協(xié)議采用can2.0a標(biāo)準(zhǔn)幀格式,,只用數(shù)據(jù)幀,不采用遠(yuǎn)程幀,。報(bào)文的格式如表1所示,。本文對(duì)11位id進(jìn)行了重新定義。dlc用于表示數(shù)據(jù)域的長(zhǎng)度0~7個(gè)字節(jié);m/s用于表示報(bào)文的傳播方向,,0表示主站向從站發(fā)消息,,1表示從站向主站發(fā)消息;b/p表示通信方式,0表示廣播式通信,,1表示點(diǎn)對(duì)點(diǎn)通信;m/d表示幀類(lèi)型,,0表示信息幀,1表示數(shù)據(jù)幀;id(7-0)用于表示報(bào)文標(biāo)識(shí)符;type用于表示報(bào)文是單幀報(bào)文還是多幀報(bào)文,,該位為0時(shí)表示單幀或結(jié)束幀,,該位為1時(shí)表示多幀報(bào)文;cmd表示命令標(biāo)識(shí),,包括:0a表示上傳命令,0b表示下載命令,,0c表示聯(lián)機(jī)命令,,0d表示報(bào)警命令等;data表示數(shù)據(jù)域。

QQ截圖20150508152859.png

  當(dāng)上位機(jī)需要與子節(jié)點(diǎn)進(jìn)行通信時(shí),,可用以上三種模式向can網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送信息幀,,can網(wǎng)絡(luò)中的節(jié)點(diǎn)接收到信息幀后,通過(guò)判別標(biāo)識(shí)符和命令標(biāo)識(shí)來(lái)區(qū)別信息幀的類(lèi)別,,并將節(jié)點(diǎn)所需要的數(shù)據(jù)發(fā)送出去,。當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生突發(fā)事件時(shí),可隨時(shí)向上位機(jī)報(bào)告,,上位機(jī)同樣也是通過(guò)標(biāo)識(shí)符來(lái)識(shí)別數(shù)據(jù)類(lèi)型,。
  5  結(jié)束語(yǔ)
  本文基于can總線技術(shù),以lpc2119為核心,,重點(diǎn)介紹了網(wǎng)絡(luò)節(jié)點(diǎn)的硬件電路設(shè)計(jì)以及應(yīng)用層協(xié)議的制定,。軟件設(shè)計(jì)部分,在keil uvision3環(huán)境下,,實(shí)現(xiàn)了can控制器的驅(qū)動(dòng)程序和應(yīng)用層協(xié)議,,解決了現(xiàn)場(chǎng)傳感器得到的測(cè)量信號(hào)利用下位機(jī)進(jìn)行處理和存儲(chǔ),然后通過(guò)內(nèi)置can控制器將數(shù)據(jù)發(fā)送到can總線上,,完成與上位機(jī)的通訊,。設(shè)計(jì)具有通用性,實(shí)時(shí)性,,可擴(kuò)展性強(qiáng)的特點(diǎn),,現(xiàn)已通過(guò)調(diào)試,性能穩(wěn)定,,可以移植到其他系統(tǒng)中,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]