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