劉海波,王紅艷,李愛寧,何 洪
(河北工程技術(shù)高等??茖W(xué)校,河北滄州 061001)
隨著數(shù)字化、信息化時(shí)代的到來,現(xiàn)場總線技術(shù)已經(jīng)廣泛地應(yīng)用于工業(yè)控制中,涉及行業(yè)和領(lǐng)域非常廣泛,其中汽車制造、化工生產(chǎn)、鋼鐵制造、煤礦生產(chǎn)、智能建筑等應(yīng)用廣泛,而且尤其以CAN總線在這些行業(yè)應(yīng)用中的份額較大。其主要原因就是由于CAN總線具有可靠性高、成本低、容易實(shí)現(xiàn)等優(yōu)點(diǎn),而且其傳輸速率高、抗電磁干擾能力強(qiáng),當(dāng)傳輸距離達(dá)到10 km時(shí)傳輸速度仍可達(dá)到5kbps[1]。
在CAN總線的各種應(yīng)用系統(tǒng)中,都有大量的現(xiàn)場參數(shù)需要測(cè)量,從而實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制和監(jiān)測(cè)。對(duì)現(xiàn)場參數(shù)測(cè)量來說數(shù)量大、測(cè)量點(diǎn)分散、測(cè)量精度要求也高,如何運(yùn)用先進(jìn)技術(shù)實(shí)現(xiàn)多參數(shù)智能測(cè)控值得我們?nèi)パ芯?。文中以TM320為核心,設(shè)計(jì)了CAN總線智能數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)將多種被測(cè)參數(shù)集中進(jìn)行測(cè)量、處理、顯示和記錄,并與控制系統(tǒng)相連實(shí)現(xiàn)自動(dòng)控制和調(diào)節(jié)。
CAN總線的數(shù)據(jù)采集系統(tǒng)采用上位機(jī)加智能網(wǎng)絡(luò)測(cè)量節(jié)點(diǎn)組成[2]。系統(tǒng)組成框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
1.1微處理器TMS320LF2407A
TMS320LF2407A是一款定點(diǎn)DSP控制器,它采用了高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3 V,減小了控制器的功耗;40MIPS的執(zhí)行速度使得指令周期縮短到25 ns(40 MHz),從而提高了控制器的實(shí)時(shí)控制能力;片內(nèi)集成了32 K字的閃存(可加密)、2.5K的數(shù)據(jù)/程序RAM、544 B雙口RAM、2KB單口RAM、500 ns轉(zhuǎn)換時(shí)間的A/D轉(zhuǎn)換器;片上事件管理器提供了可以滿足各種電機(jī)的PWM接口和I/O功能;還提供了適用于工業(yè)控制領(lǐng)域的一些特殊功能:看門狗電路、串行外設(shè)模塊SPI、串行通信模塊SCI和區(qū)域控制器模塊CAN等,從而使它可廣泛應(yīng)用于工業(yè)控制領(lǐng)域。
TMS320LF2407A的CAN模塊是一個(gè)完全的CAN總線控制器,他符合CAN總線技術(shù)規(guī)范,通過驅(qū)動(dòng)芯片PCA82C250就可以把DSP芯片TMS320LF2407A接入CAN總線。
1.2總線收發(fā)器PCA82C250
PCA82C250是CAN協(xié)議控制器和物理總線之間的接口,該器件對(duì)總線提供差動(dòng)發(fā)送能力并對(duì)CAN控制器提供差動(dòng)接收能力。這是使用最廣泛的一種CAN收發(fā)器。它具有完全符合ISOll898標(biāo)準(zhǔn)、高速率(最高可達(dá)1Mb/s)、低電流待機(jī)模式、未供電節(jié)點(diǎn)不干擾總線、斜率控制以降低射頻干擾(RFI)、差分接收器具有抗寬范圍的共模干擾和抗電磁干擾(EMI)等特點(diǎn)。其接口電路如圖2所示。
圖2 CAN總線接口電路
系統(tǒng)中的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)采用STC89C58RD+作為微處理器,SJAl000作為CAN總線控制器,CAN總線收發(fā)器還是采用PCA82C250。
2.1STC89C58RD+單片機(jī)
STC89C58RD+單片機(jī)是一款超強(qiáng)抗干擾、高速、低功耗的單片機(jī)。其特點(diǎn)為:內(nèi)部32K的Flash存儲(chǔ)器、1.28 K字節(jié)的RAM及16K的E2PROM,指令與標(biāo)準(zhǔn)的8051系列單片機(jī)完全兼容;高抗靜電性、強(qiáng)抗快速脈沖干擾特性以及寬電壓和溫度范圍特性;I/O口和其內(nèi)部的電源供電系統(tǒng)、時(shí)鐘電路、復(fù)位電路和看門狗電路等經(jīng)過特殊處理,具有超強(qiáng)的抗干擾能力;有較低的電磁輻射、超低功耗、支持在線編程、加密性強(qiáng)。
2.2CAN通信接口
SJAl000是智能節(jié)點(diǎn)中總線與微處理器的控制接口,用于控制實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的數(shù)據(jù)通信。PCA82C250作為CAN總線收發(fā)器,在SJAl000與PCA82C250之間采用高速光耦6N137用于隔離控制器與外部總線上的信號(hào),從而避免干擾信號(hào)影響控制系統(tǒng)功能,提高了控制系統(tǒng)的可靠性[3]。接口電路如圖3所示。
圖3 CAN通信接口電路
CAN總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),實(shí)時(shí)性強(qiáng),節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),優(yōu)先級(jí)高的數(shù)據(jù)最多可在134 μs內(nèi)得到傳輸;多主方式工作,CAN總線網(wǎng)絡(luò)上任意節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息;CAN總線通信格式采用短幀格式、報(bào)文濾波技術(shù),CAN只需通過報(bào)文濾波技術(shù)即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等多種方式傳送數(shù)據(jù)[4]。
CAN總線采集系統(tǒng)程序軟件設(shè)計(jì)分為下位機(jī)和上位機(jī)兩部分。
3.1下位機(jī)智能節(jié)點(diǎn)軟件設(shè)計(jì)
下位機(jī)CAN節(jié)點(diǎn)的程序主要包括初始化程序、報(bào)文發(fā)送程序和報(bào)文接收程序三部分。
初始化程序是完成對(duì)CAN通信參數(shù)設(shè)置,主要針對(duì)SJAl000。在上電復(fù)位后,才能對(duì)相關(guān)的寄存器進(jìn)行設(shè)置。所以首先通過控制寄存器設(shè)置SJAl000工作在復(fù)位模式,對(duì)需要寫入的寄存器如鐘分頻寄存器、命令寄存器、驗(yàn)收碼寄存器、驗(yàn)收濾波寄存器、總線定時(shí)器0、總線定時(shí)器l和輸出控制寄存器等進(jìn)行寫入操作。系統(tǒng)中CAN控制器采用BasicCAN工作模式。如圖4所示為SJA1000的初始化程序流程圖。
圖4 SAJ1000初始化
CAN接收子程序負(fù)責(zé)節(jié)點(diǎn)的報(bào)文接收,SJA1000報(bào)文的接收主要有中斷接收方式和查詢接收方式兩種方式,系統(tǒng)采用中斷方式。開啟單片機(jī)的外部中斷0,設(shè)置單片機(jī)外部中斷的中斷優(yōu)先級(jí)和中斷觸發(fā)方式。如圖5所示為報(bào)文接收程序流程圖。
CAN發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)的報(bào)文發(fā)送任務(wù)。報(bào)文的發(fā)送可以采用中斷方式或采用查詢方式,系統(tǒng)中關(guān)閉發(fā)送中斷,采用查詢方式。如圖6所示為報(bào)文發(fā)送程序流程圖。
3.2上位機(jī)CAN主節(jié)點(diǎn)程序設(shè)計(jì)
CAN主節(jié)點(diǎn)程序設(shè)計(jì)也包括初始化、報(bào)文接收、報(bào)文發(fā)送基本部分。對(duì)TM320來說系統(tǒng)采用CCS開發(fā)環(huán)境,CCS是一種針對(duì)標(biāo)準(zhǔn)TMS320調(diào)試接口的集成開發(fā)環(huán)境。其具有高度集成的源代碼編輯器、對(duì)C語言源文件和DSP匯編語言文件的目標(biāo)管理等特點(diǎn)。由于TM320的CAN模塊是內(nèi)嵌式,因此它的軟件設(shè)計(jì)要簡單一些。
圖5 報(bào)文接收
圖6 報(bào)文發(fā)送
在初始化時(shí),將郵箱使能位禁止,進(jìn)入復(fù)位模式。配置位定時(shí)器、寄存器(BCRl和BCR2);然后將主控制寄存器的改變數(shù)據(jù)域請(qǐng)求位CDR置1,進(jìn)入配置郵箱寄存器來配置數(shù)據(jù)的標(biāo)識(shí)符、幀類型及數(shù)據(jù)結(jié)構(gòu);最后返回工作模式,將需要用到的郵箱使能,相應(yīng)的郵箱就能進(jìn)行正常的發(fā)送和接收操作了。數(shù)據(jù)從CAN控制器發(fā)送到CAN總線是由控制器自動(dòng)完成的,所以DSP在寫數(shù)據(jù)到發(fā)送郵箱后,如果相應(yīng)郵箱的發(fā)送請(qǐng)求為使能,則信息幀就會(huì)被發(fā)送到CAN總線上。在每次報(bào)文成功發(fā)送后,系統(tǒng)都會(huì)收到發(fā)送應(yīng)答,將發(fā)送請(qǐng)求復(fù)位,開始下一幀數(shù)據(jù)的傳送。系統(tǒng)的接收采用中斷方式,設(shè)置好接收郵箱后,只有標(biāo)識(shí)符相同的信息才能被接收。
該系統(tǒng)完成了以DSP 芯片TMS320LF2407A為核心的CAN總線多數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),該系統(tǒng)具有抗干擾能力強(qiáng)、結(jié)構(gòu)簡單、參數(shù)采集智能化程度提高,同時(shí)由于采用總線結(jié)構(gòu),系統(tǒng)布線的工作量減少,尤其在多參數(shù)長距離檢測(cè)中優(yōu)勢(shì)更加明顯。該系統(tǒng)的應(yīng)用領(lǐng)域也比較廣泛,在汽車檢測(cè)、煤礦生產(chǎn)等多種場合都能應(yīng)用且可靠性較高。
參考文獻(xiàn):
[1]許文斌,桂武明.基于CAN總線的多參數(shù)測(cè)控系統(tǒng)設(shè)計(jì).微計(jì)算機(jī)信息,2010,26(5-2):61-62.
[2]張穎超.基于CAN總線的溫室監(jiān)測(cè)系統(tǒng)的通信設(shè)計(jì).控制工程,2009,1(1):103-104.
[3]王堅(jiān)峰.基于CAN總線的溫室環(huán)境控制系統(tǒng).輕工機(jī)械,2009,27(1):69-71.
[4]饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,2004.
[5]劉師良,李長青.基于CAN總線的煤礦監(jiān)控系統(tǒng)工作站的研究.工礦自動(dòng)化,2009(1):66-68.