(1)廣播位 操作站向控制器發(fā)送廣播時該位為1,其它情況為0。
(2)目標(biāo)地址 表示數(shù)據(jù)報文所要到達節(jié)點的地址。
(3)數(shù)據(jù)包類型(TYPE) 報文的類型。
(4)RTR位 在數(shù)據(jù)報文中必須是“顯性”電平0,在遠(yuǎn)程報文中必須是“隱性”電平1。
(5)數(shù)據(jù)長度碼DLC 標(biāo)識報文中該字節(jié)往后的數(shù)據(jù)長度,最長為8字節(jié)。
(6)源地址 表示發(fā)出數(shù)據(jù)報文的節(jié)點地址,當(dāng)接收節(jié)點收到此報文后,會把此源地址作為目標(biāo)地址發(fā)送響應(yīng)報文。
(7)忙 表示操作站正與某一控制器通信,此時此位為1。
3.2標(biāo)識符分配方案
由CAN的數(shù)據(jù)鏈路層協(xié)議已經(jīng)知道,CAN的每一幀都有一個11位的標(biāo)識符,用來標(biāo)識該幀數(shù)據(jù),并且決定仲裁。
標(biāo)識符分配是CAN應(yīng)用層協(xié)議中的重要問題,標(biāo)識符要能反映報文的地址信息,報文類型,體現(xiàn)報文級別。另外,很重要的是報文標(biāo)識符決不能重復(fù)。在逆變電源監(jiān)控系統(tǒng)CAN應(yīng)用層協(xié)議中,標(biāo)識符由三項確定:廣播位,地址域和數(shù)據(jù)包類型域,如圖3所示。
500)this.style.width=500;" border="0" />
這三項包含了是主機還是從機,網(wǎng)絡(luò)節(jié)點地址以及報文承載的數(shù)據(jù)信息。廣播位決定一半的優(yōu)先級,因此主機發(fā)出的命令優(yōu)先級一定高于從機的數(shù)據(jù)。網(wǎng)絡(luò)節(jié)點地址域使不同節(jié)點發(fā)出的報文標(biāo)識符不同。
3.3 多報文的處理
在數(shù)據(jù)鏈路層中,CAN協(xié)議規(guī)定每幀最大8字節(jié)。為了傳輸大于8字節(jié)的數(shù)據(jù)包,在應(yīng)用層中采用多報文機制。多報文發(fā)送時要有報文標(biāo)識,在多報文的發(fā)送期間通過識別這一標(biāo)識判斷是否屬于同一多報文,在多報文發(fā)送完畢時有多報文結(jié)束標(biāo)識。在報文發(fā)送期間,如果同時收到其它報文則不做處理,待多報文發(fā)送完畢后再讓它重新發(fā)送。
3.4 錯誤處理
對于數(shù)據(jù)傳輸中的錯誤,應(yīng)采取分層的概念做出處理。即下一層對上一層提交一定可信度的信道,使上一層只關(guān)注于解決本層可能出現(xiàn)的錯誤,并解決下一層無法處理,提交上來的錯誤。反之,上一層如果認(rèn)為下一層信道是安全可靠的,在把數(shù)據(jù)交給下一層后,它將不認(rèn)為會出現(xiàn)數(shù)據(jù)傳輸錯誤,當(dāng)然對線路斷開,目的站離線等嚴(yán)重錯誤,下一層無法解決的錯誤,交給上一層后,上層要有解決措施,幫助恢復(fù)下層信道。[!--empirenews.page--]
CAN網(wǎng)絡(luò)的特征之一就是安全可靠的鏈路層,對鏈路傳輸中因干擾造成的數(shù)據(jù)傳輸錯誤,丟幀錯誤有自動重發(fā)的功能;對線路出現(xiàn)的斷線,目標(biāo)站點不在線等嚴(yán)重錯誤,有自動離線的功能。因此,在應(yīng)用層將數(shù)據(jù)交給數(shù)據(jù)鏈路層的數(shù)據(jù)后,認(rèn)為一定會安全可靠到達目的站點,不需要再對丟幀情況,數(shù)據(jù)傳送出錯情況作處理。只需在應(yīng)用層向下傳輸沒有接到返回響應(yīng)報文的情況下重發(fā)即可。
3.5程序框圖
應(yīng)用層的實現(xiàn)程序主要包括操作站發(fā)送報文和接收報文,操作站接收報文的程序框圖如圖4所示,包括發(fā)送廣播報文反對控制器爭主,多報文的處理,以及報文數(shù)據(jù)的處理。
500)this.style.width=500;" border="0" />
操作站和DSP模塊控制器之間通過CAN總線進行通信,主要實現(xiàn)DSP模塊控制器將逆變電源自身的狀態(tài)數(shù)據(jù)通過CAN總線傳送給操作站,并將操作站的控制信息經(jīng)CAN總線傳送給DSP模塊控制器來控制電源模塊的運行。由信息的傳送方向可分為操作站傳送給DSP模塊控制器和DSP模塊控制器傳送給操作站。信息由操作站傳送給DSP模塊控制器主要是控制信息和控制命令包括對逆變電源進行開啟、關(guān)閉,對逆變電源模塊運行參數(shù)的設(shè)定、修改,檢查電源模塊是否運行正常,查看模塊狀態(tài),以及回應(yīng)DSP模塊控制器發(fā)送來的驗證操作站是否癱瘓的信號;信息由DSP模塊控制器傳送給操作站主要是返回操作站發(fā)來的控制信號收到的確認(rèn)信號,發(fā)送逆變電源模塊狀態(tài)數(shù)據(jù)給操作站,發(fā)送探測操作站是否工作正常并在操作站癱瘓時行使操作站功能的爭主信號。
4 監(jiān)控功能實現(xiàn)
操作站監(jiān)控功能包括各逆變電源模塊狀態(tài)數(shù)據(jù)顯示,設(shè)定和調(diào)整逆變電源參數(shù),對DSP模塊控制器進行檢測,繪制逆變電源參數(shù)的實時波形,數(shù)據(jù)存入數(shù)據(jù)庫,狀態(tài)參數(shù)打印等功能。監(jiān)控程序結(jié)構(gòu)如圖5所示。
500)this.style.width=500;" border="0" />
5 結(jié)論
該系統(tǒng)已經(jīng)通過了第一次聯(lián)和調(diào)試,成功的實現(xiàn)了對逆變電源的監(jiān)控。實驗證明該監(jiān)控系統(tǒng)設(shè)計合理,監(jiān)控界面友好,易于操作,工作穩(wěn)定可靠,達到了預(yù)期的目標(biāo)。
本文作者創(chuàng)新點:利用CAN總線實現(xiàn)對逆變電源模塊間通信并完成對其控制,同時實現(xiàn)了CAN總線應(yīng)用層協(xié)議。
CAN總線首先在汽車上得到了廣泛應(yīng)用,之后又在工業(yè)生產(chǎn)領(lǐng)域有了很大發(fā)展,那么面對不同的應(yīng)用場景和工況,如何選擇合適的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)慢慢成為一個讓人頭疼的問題。在這篇文章中,我將重點介紹用于驅(qū)動這些總線電壓的 CAN 驅(qū)動器...
關(guān)鍵字: CAN總線 CAN總線拓?fù)?/a>大家好,我是小麥。最近在調(diào)試一個CAN總線的設(shè)備遇到一些問題,簡單總結(jié)一下。本文會對CAN總線進行簡單介紹,CAN的硬件鏈路層,協(xié)議層,以及調(diào)試的一些心得。目錄什么是CAN總線?物理層差分信號連接方式CAN節(jié)點CAN協(xié)議...
關(guān)鍵字: CAN總線大家好,我是小麥。最近在調(diào)試一個CAN總線的設(shè)備時遇到了一些問題,在此簡單總結(jié)一下。本文將對CAN總線進行簡單介紹,包括CAN的硬件鏈路層、協(xié)議層,以及調(diào)試的一些心得。目錄什么是CAN總線?物理層差分信號連接方式CAN節(jié)...
關(guān)鍵字: CAN總線摘要:現(xiàn)有的通信系統(tǒng)(GSM/CDMA)因為使用便捷,而在電源監(jiān)控領(lǐng)域中得到了廣泛的推廣和使用,但是,由于建設(shè)移動通信基站系統(tǒng)費用昂貴,而且它的信號只能覆蓋在用戶較集中的地方,造成許多偏僻、人煙稀少但又需要進行電源監(jiān)控的...
關(guān)鍵字: 通信系統(tǒng) 電源監(jiān)控 ZigBee技術(shù) IEEE802.15.4協(xié)議摘要:介紹了基于STC12C5A60S2單片機、SJA1000型CAN接口控制器以及PCA82C250串行收發(fā)器構(gòu)成的總線通信網(wǎng)絡(luò)。該網(wǎng)絡(luò)中遠(yuǎn)端的CAN節(jié)點可監(jiān)測現(xiàn)場環(huán)境,并實現(xiàn)數(shù)據(jù)收發(fā)和串行通信,上位PC機利用VB6....
關(guān)鍵字: 單片機 CAN總線 VB6.0 環(huán)境參數(shù)