摘要:為了保證數(shù)據(jù)傳輸?shù)膶?shí)時性、可靠性,解決數(shù)據(jù)傳輸過程中易受干擾的問題,并保證數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集和控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)的性能,采用CAN" title="CAN">CAN總線作為現(xiàn)場總線來實(shí)現(xiàn)數(shù)據(jù)傳輸。經(jīng)過對系統(tǒng)軟硬件在不同環(huán)境下的多次測試,驗(yàn)證了該系統(tǒng)的性能,同時也體現(xiàn)了CAN總線在通信能力、可靠性和實(shí)時性等方面的明顯優(yōu)勢。
關(guān)鍵詞:CAN總線;數(shù)據(jù)采集;控制系統(tǒng);串行通信
0 引言
隨著計算機(jī)網(wǎng)絡(luò)上的高速發(fā)展,使得信息的交流與共享變得空前廣泛和自如,而這項(xiàng)技術(shù)也滲入到自動化領(lǐng)域的變革當(dāng)中,現(xiàn)場總線(Fieldbus)由此應(yīng)運(yùn)而生,開創(chuàng)了工業(yè)控制的新篇章?,F(xiàn)場總線是一種應(yīng)用于生產(chǎn)現(xiàn)場,在現(xiàn)場設(shè)備之間、現(xiàn)場設(shè)備和控制裝置之間實(shí)行雙向、串形、多結(jié)點(diǎn)的數(shù)字通信技術(shù),在當(dāng)今自動化領(lǐng)域中具有廣闊的發(fā)展前景。本文給出了一種基于CAN總線的數(shù)據(jù)采集與控制系統(tǒng)設(shè)計" title="設(shè)計">設(shè)計方案,實(shí)現(xiàn)對開關(guān)量的數(shù)據(jù)采集和對外部設(shè)備的控制功能。
控制器局域網(wǎng)(Controller Area Network,CAN)總線是現(xiàn)場總線的一種,是一種有效支持分布式控制或?qū)崟r控制的串行網(wǎng)絡(luò)通信,已經(jīng)被廣泛地應(yīng)用于工業(yè)自動化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面,并被公認(rèn)為最有前途的現(xiàn)場總線之一,其主要特點(diǎn)如下:
(1)CAN是有國際標(biāo)準(zhǔn)的現(xiàn)場總線。
(2)CAN為多主工作方式,網(wǎng)絡(luò)上的任意一節(jié)點(diǎn)都可在任意時刻向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,且不分主從。
(3)CAN采用非破壞總線仲裁技術(shù)。當(dāng)多個節(jié)點(diǎn)同時向總線發(fā)送信息出現(xiàn)沖突時,優(yōu)先級低的節(jié)點(diǎn)將主動退出發(fā)送,而優(yōu)先級高的節(jié)點(diǎn)不受影響繼續(xù)發(fā)送。
(4)CAN節(jié)點(diǎn)在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,使總線上其他節(jié)點(diǎn)的操作不受影響。
(5)報文采用短幀結(jié)構(gòu),傳輸時間短,受干擾概率低,而且每幀都有CRC校驗(yàn)及其他校驗(yàn)措施,具有極好的檢錯效果。
(6)CAN的直接最遠(yuǎn)通信距離可達(dá)10 km,最高通信速率可達(dá)1 Mb/s。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計
系統(tǒng)主要由上位機(jī)(PC機(jī))和數(shù)據(jù)采集和控制模塊組成。系統(tǒng)總體結(jié)構(gòu)設(shè)計如圖1所示。
上位機(jī)是整個系統(tǒng)的核心,實(shí)現(xiàn)系統(tǒng)的監(jiān)控和管理功能。CAN總線智能適配卡的作用是收集各個CAN節(jié)點(diǎn)上的數(shù)據(jù),然后轉(zhuǎn)發(fā)到上位機(jī),同時把上位機(jī)的命令轉(zhuǎn)發(fā)到各個節(jié)點(diǎn)。由于CAN總線特有的多主傳輸方式,各個節(jié)點(diǎn)根據(jù)需要自主地向總線發(fā)送數(shù)據(jù),而且在上位機(jī)監(jiān)聽各個節(jié)點(diǎn)的同時,節(jié)點(diǎn)也實(shí)時監(jiān)聽總線并接收自己需要的數(shù)據(jù)。數(shù)據(jù)采集和控制模塊采用微處理器和可編程的CAN控制芯片,主要用于完成現(xiàn)場數(shù)據(jù)的采集、數(shù)據(jù)的傳送以及各個現(xiàn)場設(shè)備運(yùn)行的控制。
2 數(shù)據(jù)采集和控制模塊硬件設(shè)計
基于CAN總線的數(shù)據(jù)采集與控制系統(tǒng)將功能盡可能地分散到各個控制模塊中,各個模塊以微處理器為核心,完成數(shù)據(jù)采集和控制功能。為了使信息能在CAN協(xié)議的標(biāo)準(zhǔn)下進(jìn)行通信,各個模塊都設(shè)有CAN總線接口電路。該模塊的微處理器(MCU)選用宏晶科技的STC89C52RC單片機(jī)。STC89C52RC是新一代超強(qiáng)抗干擾、高速、低功耗的8位單片機(jī),指令代碼完全兼容傳統(tǒng)的8051單片機(jī),36個通用I/O口,3個16位定時器/計數(shù)器,4路外部中斷。根據(jù)實(shí)際需求分析,STC89C52RC單片機(jī)完全滿足本設(shè)計的需求。數(shù)據(jù)采集和控制模塊的結(jié)構(gòu)如圖2所示。
2.1 CAN總線接口硬件設(shè)計
CAN總線接口硬件結(jié)構(gòu)如圖3所示。
在本系統(tǒng)中CAN總線控制器選用SJA1000。SJA1000是Philips公司生產(chǎn)的獨(dú)立的CAN總線控制器,可以應(yīng)用于一般的工業(yè)環(huán)境中和移動目標(biāo)的CAN總線網(wǎng)絡(luò)控制。SJA1000是Philips半導(dǎo)體PCA82C200 CAN總線控制器BasicCAN的替代產(chǎn)品,而且增加了一種新的工作模式PeliCAN,這種模式能支持具有很多新特性的CAN 2.0B協(xié)議?;咎匦匀缦拢杭嫒軧asicCAN模式;擴(kuò)展地接收緩沖器(64 B,先進(jìn)先出FIFO);同時支持11位和29位識別碼;位速率可達(dá)1 Mb/s;24 MHz時鐘頻率;對不同微處理器的接口兼容;可編程的CAN輸出驅(qū)動器配置。PeliCAN模式擴(kuò)展功能包括;可讀/可訪問的錯誤計數(shù)器;可編程的錯誤報警器;對每一個CAN總線錯誤進(jìn)行中斷;單次發(fā)送無重發(fā);驗(yàn)收濾波器控制4 B代碼、4 B屏蔽等。
CAN總線收發(fā)器選用Philips公司生產(chǎn)的專用CAN總線收發(fā)器PCA82C250,提供CAN總線協(xié)議控制器和物理總線接口,而且對CAN總線控制器提供差動接收能力。基本特性如下:高速率(最高達(dá)1 Mb/s);具有抗瞬間干擾和保護(hù)總線的能力;利用斜率控制,可降低射頻干擾;使用差分接收器,可抗寬范圍的共模干擾,以及抗電磁干擾;熱保護(hù);低電流待機(jī)模式;未上電的節(jié)點(diǎn)對總線無影響;可以支持多達(dá)110個節(jié)點(diǎn)。
為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,并不是在SJA1000與PCA82C250之間直接相連,而是加入了高速光耦隔離器。這樣能很好地實(shí)現(xiàn)總線上各個CAN總線節(jié)點(diǎn)之間的電氣隔離。在該系統(tǒng)中高速光耦采用6N137。6N137兼容TTL和COMS電平,可通過信號的寬度為10 MHz,完全可滿足CAN總線信號1 Mb/s通信速率的要求。
2.2 開關(guān)量數(shù)據(jù)采集單元硬件設(shè)計
該單元用于采集現(xiàn)場的開關(guān)量數(shù)據(jù)的采集。硬件電路圖如圖4所示。
該單元將采集到的開關(guān)量數(shù)據(jù)傳送到微處理器,并傳送到CAN總線上,然后通過CAN總線智能適配卡轉(zhuǎn)發(fā)給上位機(jī)進(jìn)行處理。外界環(huán)境以及電路、器件本身對系統(tǒng)引入了干擾和噪聲,為了提高單片機(jī)系統(tǒng)的性能,保證其穩(wěn)定性,采用光耦器件進(jìn)行隔離,抑制干擾。光耦器件將電信號轉(zhuǎn)變?yōu)楣庑盘?,光信號傳送到接受?cè)再轉(zhuǎn)換為電信號。由于光信號的傳送不需要共地??梢詫⒐怦钇骷蓚?cè)的地加以隔離。因此在加入光耦器件后,在傳輸信的同時能有效地抑制尖脈沖和各種噪聲干擾,大大提高通道上的信噪比。需要注意的是光耦器件兩端的電源不能共用,否則起不到隔離的作用。
2.3 控制單元硬件設(shè)計
該單元用于控制現(xiàn)場外部設(shè)備的運(yùn)行。該單元硬件電路如圖5所示。
該單元是上位機(jī)按照預(yù)先設(shè)定好的程序自動控制輸出,上位機(jī)通過CAN總線智能適配卡傳送開關(guān)量到CAN總線,然后數(shù)據(jù)采集和控制模塊根據(jù)需要接受CAN總線上的開關(guān)量,以控制現(xiàn)場設(shè)備。在該單元中,開關(guān)量通過單片機(jī)的I/O端口輸出,但I(xiàn)/O端口的驅(qū)動能力有限,一般不足以驅(qū)動繼電器,此時需要添加驅(qū)動電路。同時,為了避免單片機(jī)受到干擾,在驅(qū)動電路設(shè)計時,必須采取隔離措施。
3 軟件設(shè)計
該系統(tǒng)軟件設(shè)計主要分為兩個部分:數(shù)據(jù)采集與控制模塊程序設(shè)計和CAN總線通信程序設(shè)計。
3.1 數(shù)據(jù)采集與控制模塊程序設(shè)計
數(shù)據(jù)采集與控制模塊程序設(shè)計流程圖如圖6所示。
3.2 CAN總線通信程序設(shè)計
CAN總線通信程序設(shè)計分為三個部分:CAN總線初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。
(1)CAN總線初始化。CAN總線初始化主要是設(shè)置一些通信參數(shù),保證通信的正常進(jìn)行。初始化主要包括工作方式的設(shè)置、驗(yàn)收濾波方式的設(shè)置、驗(yàn)收屏蔽寄存器和驗(yàn)收代碼寄存器的設(shè)置、波特率參數(shù)設(shè)置、中斷允許寄存器的設(shè)置等。特別需要注意的是,初始化只有在復(fù)位模式下才可以進(jìn)行,因?yàn)镾JA1000配置信息的寄存器只有在復(fù)位模式下才可以進(jìn)行寫操作。
(2)數(shù)據(jù)發(fā)送。數(shù)據(jù)發(fā)送前,微處理器周期查詢狀態(tài)寄存器,查看發(fā)送緩沖器是否被鎖定。若沒有鎖定,則把從現(xiàn)場取得的開關(guān)量數(shù)據(jù)發(fā)向CAN總線控制器的發(fā)送緩沖區(qū),然后啟動CAN總線控制器發(fā)送命令,此時CAN總線控制器自動向總線發(fā)送數(shù)據(jù)。數(shù)據(jù)發(fā)送的流程圖如圖7所示。
(3)數(shù)據(jù)接收。數(shù)據(jù)接收采用中斷方式。系統(tǒng)中的CAN控制器檢測到總線上有數(shù)據(jù)時會自動接收總線上的數(shù)據(jù),存入其接收緩沖區(qū),并向微控制器發(fā)送接收中斷,啟動中斷接收服務(wù)程序,通過執(zhí)行中斷接收服務(wù)程序,從CAN控制器的接收緩沖區(qū)讀取數(shù)據(jù),并對其進(jìn)行進(jìn)一步處理工作。數(shù)據(jù)接收流程圖如圖8所示。
4 結(jié)語
通過對系統(tǒng)的軟硬件的反復(fù)調(diào)試表明,該數(shù)據(jù)采集和控制系統(tǒng)的設(shè)計方案是成功的。該系統(tǒng)能高速有效地采集、傳遞和處理現(xiàn)場數(shù)據(jù),并且能在惡劣環(huán)境下保證通信速率和極低的出錯率,運(yùn)行效果很好,體現(xiàn)了CAN總線高性能和高可靠性的優(yōu)點(diǎn)。