基于CAN總線的數(shù)據(jù)采集與控制系統(tǒng)設(shè)計(jì)
摘要:為了保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性、可靠性,解決數(shù)據(jù)傳輸過(guò)程中易受干擾的問(wèn)題,并保證數(shù)據(jù)采集和控制系統(tǒng)的性能,采用CAN總線作為現(xiàn)場(chǎng)總線來(lái)實(shí)現(xiàn)數(shù)據(jù)傳輸。經(jīng)過(guò)對(duì)系統(tǒng)軟硬件在不同環(huán)境下的多次測(cè)試,驗(yàn)證了該系統(tǒng)的性能,同時(shí)也體現(xiàn)了CAN總線在通信能力、可靠性和實(shí)時(shí)性等方面的明顯優(yōu)勢(shì)。
關(guān)鍵詞:CAN總線;數(shù)據(jù)采集;控制系統(tǒng);串行通信
0 引言
隨著計(jì)算機(jī)網(wǎng)絡(luò)上的高速發(fā)展,使得信息的交流與共享變得空前廣泛和自如,而這項(xiàng)技術(shù)也滲入到自動(dòng)化領(lǐng)域的變革當(dāng)中,現(xiàn)場(chǎng)總線(Fieldbus)由此應(yīng)運(yùn)而生,開(kāi)創(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ì)開(kāi)關(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)聽(tīng)各個(gè)節(jié)點(diǎn)的同時(shí),節(jié)點(diǎn)也實(shí)時(shí)監(jiān)聽(tīng)總線并接收自己需要的數(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所示。
評(píng)論