基于DSP的分析儀器CAN網絡通信系統(tǒng)
?。茫粒危ǎ茫铮睿簦颍铮欤臁。粒颍澹帷。危澹簦鳎铮颍耄┦菄H上應用最廣泛的現場總線之一,使用了一種串行多控制方通信協(xié)議,可以有效地支持分布式實時控制,并且具有很高的安全性和高達1Mbps的通信速率。由于CAN具有多主站控制、無破壞性總線仲裁、可靠的檢錯和重發(fā)機制以及故障節(jié)點的判斷和自動脫離等等顯著優(yōu)點,在富含噪聲和其他要求苛刻的環(huán)境中得到越來越廣泛的應用,而且其應用領域也在不斷的擴大[1]。
?。狈治鰞x器網絡結構
多組分氣體分析平臺基于過程分析儀器系統(tǒng)的物流和信息兩通道所需的基本共性功能,系統(tǒng)采用模塊化設計。各硬件模塊具有獨立結構,可適應不同分析傳感器及其組合以及預處理裝置的選擇要求;軟件系統(tǒng)則為檢測信號的數據處理、儀器的自動診斷、自動標定的操作控制以及為與DCS間的信息通信提供支持[2]。
分析平臺采用TMS320F2812作為處理器。TMS320F2812是TI公司推出的一款用于控制領域的高性能32位數字信號處理器,適用于實時數據處理,并集成了豐富的外設,如片上12位模數轉換器(ADC)、SPI、eCAN等功能模塊,可以方便地進行功能擴展。平臺由數據采集模塊、控制模塊、開關量輸入輸出模塊、人機交互模塊以及通訊接口組成。
根據現場情況,通過不同傳感器的組合對樣品中不同組分進行檢測,配合相應的軟件實現不同的數據處理方法,構成組合式分析儀器,每臺分析儀器可檢測2-4個組分。此處我們以兩臺分析儀器為例,每臺能檢測兩個組分,一臺檢測CO2和O2,另一臺檢測SO2和CO,與上位機一起構建CAN通信網絡。
?。茫粒尉W絡系統(tǒng)一般由上位機、CAN適配卡、若干節(jié)點以及CAN總線構成。由于PC機上有多條擴展槽,利用局域網絡通信卡,使得該系統(tǒng)很容易與其他生產管理部門聯(lián)網,便于統(tǒng)一調度和管理;另外,選用PC機還可以充分利用現有的軟件工具和開發(fā)環(huán)境,方便快捷地設計功能豐富的計算機軟件,所以此處上位機我們選用通用PC機。
?。茫粒芜m配卡我們選用的是北京科日新工控的KPCI-8110光隔非智能CAN總線通訊卡,符合ISO/ISO11898國際標準,滿足2.0B(PeliCAN)兼容CAN2.0A通信協(xié)議,通訊距離最長達10km,傳輸速率最高達1Mbps?;诙嘟M分氣體分析平臺的組合式分析儀器做為CAN智能節(jié)點??偩€上的信息傳輸遵守CAN通信協(xié)議,通信介質采用雙絞線即可。
系統(tǒng)總體結構圖如下所示:
圖1 基于分析儀器的CAN網絡結構圖
?。病。茫粒慰偩€通信協(xié)議
CAN技術規(guī)范版本2.0包括兩部分內容:版本2.0A描述CAN技術規(guī)范1.2中定義的CAN報文格式;版本2.0B描述標準和擴展格式兩種報文格式。為了同CAN技術規(guī)范2.0兼容,要求CAN執(zhí)行既同版本2.0A,也同版本2.0B兼容。
鑒于我們目前所要傳輸的內容僅限于檢測結果,同時考慮到現場需要網絡中可能連接的智能節(jié)點的個數,采用標準報文格式完全能夠滿足我們的要求。
CAN技術規(guī)范版本2.0B中,數據幀由7個不同的位場組成:即幀起始、仲裁場、控制場、數據場、CRC場、應答場、幀結束。數據幀格式如下所示[3]:
圖2?。茫粒危玻埃聰祿袷?/FONT>
分析儀器主控制器F2812 DSP片上共有32個郵箱,在SCC模式下0-15郵箱可用,在eCAN模式下,32個郵箱全部可用,而且與2407不同的是,F2812可以發(fā)送和存儲包括報文ID在內的所有幀信息。所以我們只需對標準標識符的位進行分配,而不用定義數據字節(jié),即可滿足上位機和主節(jié)點識別幀來源和幀意義的要求。對標準標識符的分配如下表所示:
表1 標識符分配
?。场⊥ㄐ懦绦蛟O計
若想實現CAN網絡的正常通信,必須保證各通信節(jié)點的波特率和標識符都定義得一致。由于KPCI-8110使用獨立的CAN控制器SJA1000,而智能節(jié)點多組分氣體分析平臺中使用微處理器DSP中內置的CAN控制器,各自寄存器的定義和分配不盡相同,所以數據幀格式的定義方法也不一樣,在編寫初始化和通信程序時要特別注意寄存器的定義和分配。
?。常敝悄芄?jié)點端
為了實現各個節(jié)點信息的同步,考慮把智能節(jié)點中的一個做為主節(jié)點,其他節(jié)點做為從節(jié)點。主節(jié)點先收集所有從節(jié)點的數據,再把所有的數據一起發(fā)送給上位機。
做為CAN網絡的智能節(jié)點,組合式分析儀器采用內置了CAN模塊的F2812做為微處理器,從硬件上來講,外接一個CAN收發(fā)器就可以方便地掛接到CAN總線上,從軟件設計上來講,由于F2812強大的寄存器功能,也可以很容易地實現CAN模塊的初始化以及信息的發(fā)送和接收。
智能節(jié)點的編程采用C語言與匯編語言相結合的方式,采用結構化程序設計方案,可讀可移植性好。流程如圖3所示。程序設計的重點在于CAN模塊的初始化和中斷程序的調用。
圖3 智能節(jié)點程序流程圖
智能節(jié)點端CAN模塊初始化(流程圖如圖4所示[4])主要包括三個方面的內容:波特率的配置、郵箱分配(包括郵箱方向、標識符分配等)、中斷寄存器初始化。波特率和標識符的分配非常重要,是CAN網絡通信成功的關鍵所在。F2812內置CAN控制器使用位時序配置寄存器CANBTC中的BRP、TSEG1和TSEG2來設置波特率,計算公式為:SYSCLK/(BRP+1)×[(TSEG1reg+1)+(TSEG2reg+1)+1],此處我們采用的晶振頻率為30MHZ,系統(tǒng)倍頻為1/2,BRP=9,TSEG1=10,TSEG2=2,因此波特率為100Kbps。標識符就根據表1的描述來確定。
圖4 智能節(jié)點CAN模塊初始化流程圖
中斷程序中主要對從節(jié)點傳送的數據進行處理,然后轉存到主節(jié)點的發(fā)送郵箱中,等待發(fā)送給上位機。在進行數據處理的時候要把接收郵箱中的數據賦給中間變量,處理完后再把中間變量的值賦給發(fā)送郵箱,這個過程中要注意借助指針來完成。如下所示:
?。停幔椋欤猓铮。健。Γ牛茫幔睿幔停猓铮澹螅停拢希兀啊。。睿弧 。。顬猷]箱號
receiveboxl?。健。停幔椋欤猓铮荆停模遥蹋幔欤?;
receiveboxh?。健。停幔椋欤猓铮荆停模遥龋幔欤?;
?。常采衔粰C端
?。校脵C端主要完成對各分析平臺分析結果的采集、處理,采用適合快速開發(fā)的面向對象高級語言VB來編寫。KPCI-8110CAN適配卡提供.dll驅動和.lib庫函數,通過在VB程序中調用相關的驅動函數就可以實現CAN適配卡的配置和數據的讀寫。數據的處理主要完成對各組分檢測結果中干擾背景氣的去除以及單位換算等工作。
上位機在接收主節(jié)點傳送過來的數據時,在SJA1000?。茫粒慰刂破鞑捎脝螢V波器模式,只接收在界面中輸入的組分的數據。濾波規(guī)則為:驗收代碼位(ACR.7-ACR.0)和信息識別碼(標識符)的高8位(ID.10-ID.3)相等,且與驗收屏蔽位(AMR.7-AMR.0)的相應位相或為1[5]。例如,在上位機接收界面中輸入組分名“co2”,運行程序時就會把“co2”對應的一組驗收代碼值和驗收屏蔽值初始化為驗收濾波器的預設值。為了具有通用性,把驗收屏蔽碼設為ACR?。铮颉。Γ龋疲?。
由于SJA1000CAN控制器每個地址存儲8位的數據,而F2812內置CAN控制器每個地址存儲16位的數據而且標準數據幀的標識符也不是從字節(jié)的起始位開始的,所以定義標識符的時候要按照不同控制器的要求來定義。例如F2812內置CAN控制器定義數據幀標識符為1144 0000(bit28-bit18為標識符位),SJA1000獨立控制器對應的標識符應為8A20(bit15-bit5為標識符位)。.
下圖為自己開發(fā)的接收界面成功接收到數據:
圖5 上位機接收界面
?。?結論
該通信系統(tǒng)在試驗中得到了良好的效果,滿足了多組分分析儀器的設計要求。數字化在線分析儀器作為網絡神經元,有機地融入網絡系統(tǒng),實現信息實時傳輸、遠程故障診斷是分析儀器的發(fā)展趨勢,也是工業(yè)化和信息化的發(fā)展趨勢。
高效液相色譜儀相關文章:高效液相色譜儀原理 光譜分析儀相關文章:光譜分析儀原理
評論