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

由STC89C52RC單片機(jī)實(shí)現(xiàn)模擬路燈控制系統(tǒng)的詳細(xì)資料說明

使用STC89C52RC單片機(jī)實(shí)現(xiàn)的流水燈代碼和工程文件免費(fèi)下載

基于STC89C52RC單片機(jī)的智能定時(shí)開關(guān)電源
51單片機(jī)入門模板(STC89C52RC)

8051單片機(jī)實(shí)戰(zhàn)分析(以STC89C52RC為例) | 10 - 外部中斷的使用

【轉(zhuǎn)】STC89C52RC單片機(jī)實(shí)現(xiàn)串口打印功能

單片機(jī)STC89C52RC病床呼叫控制系統(tǒng)

評(píng)論