siemens x
I/O 設(shè)備

基于CAN總線的環(huán)境測控系統(tǒng)設(shè)計(jì)

2025China.cn   2005年07月07日
本文介紹了使用CAN總線技術(shù),把商品存儲環(huán)境條件檢測裝置用一根線連起來,就避免了每一單個檢測裝置都單獨(dú)與主機(jī)相連的繁瑣,降低了成本,同時也充分利用了主機(jī)的資源。而CAN總線技術(shù)也能保證不同類型的數(shù)據(jù)信號在總線上安全的進(jìn)行傳輸。 
 在當(dāng)今社會,人們的物質(zhì)生活水平面日益提高,對商品的質(zhì)量要求越來越高。這樣,商品的存儲環(huán)節(jié)的工作變得愈顯重要,這關(guān)系到商品的質(zhì)量保持的時間長短與否。而對存儲最基本的要求就是存儲區(qū)內(nèi)的溫度、濕度要求等。現(xiàn)在的存儲環(huán)境條件檢測大多是靠機(jī)械式儀表來進(jìn)行,而且是利用人工定時進(jìn)行記錄數(shù)據(jù),結(jié)果是數(shù)據(jù)精度低、不夠?qū)崟r。有一些大型倉庫是采用了電子檢測設(shè)備,但也是主要進(jìn)行局部檢測,不能覆蓋整個倉庫區(qū)域。且當(dāng)檢測位置多、檢測數(shù)據(jù)類型多時,檢測裝置的安裝和與主機(jī)的通信都顯得過于復(fù)雜。這樣,筆者就考慮使用CAN總線技術(shù),把所有的檢測裝置用一根線連起來,就避免了每一單個檢測裝置都單獨(dú)與主機(jī)相連的繁瑣,降低了成本,同時也充分利用了主機(jī)的資源。而CAN總線技術(shù)也能保證不同類型的數(shù)據(jù)信號在總線上安全的進(jìn)行傳輸。
1 CAN總線簡介
 CAN總線能在極端惡劣的環(huán)境下運(yùn)作,具有抗瞬間干擾的能力,其控制器接口有降低射頻干擾的斜率控制;有較強(qiáng)的檢錯能力。CAN節(jié)點(diǎn)可在不要求所有節(jié)點(diǎn)及其應(yīng)用層改變?nèi)魏诬浖蛴布那闆r下被接于CAN網(wǎng)絡(luò)中。由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),CAN總線與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性、實(shí)時性和靈活性。其特點(diǎn)如下:
 · CAN為多主方式工作,網(wǎng)絡(luò)上任意一個節(jié)點(diǎn)均可在任意時刻主動地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活。
 · 在報(bào)文標(biāo)識符上,CAN上的節(jié)點(diǎn)分成不同的優(yōu)先級,可滿足不同的實(shí)時要求。
 · CAN采用非破壞性總線仲裁技術(shù)。CAN節(jié)點(diǎn)只需通過對報(bào)文的標(biāo)識符濾波即可實(shí)現(xiàn)點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù)。
 · 報(bào)文采用短幀結(jié)構(gòu),傳輸時間短,受干擾概率低,保證了數(shù)據(jù)出錯率極低。
 · CAN的每幀信息都有CRC校驗(yàn)及其他檢錯措施,具有極好的檢錯效果。
 · CAN通信介質(zhì)可為雙絞線、同軸電纜或光纖,可通過標(biāo)準(zhǔn)插接件方便地連接。
 · CAN節(jié)點(diǎn)在錯誤嚴(yán)重的情況下,具有自動關(guān)閉總線的功能,切斷它與總線的聯(lián)系,以使總線上其它節(jié)點(diǎn)的操作不受影響。
2 測控系統(tǒng)總體方案設(shè)計(jì)
 環(huán)境參數(shù)測控系統(tǒng)設(shè)計(jì)為基于CAN總線的分布式測量控制顯示系統(tǒng),主要用于倉庫等大型空間內(nèi)的各種環(huán)境參數(shù)的測量、控制與顯示,使環(huán)境參數(shù)達(dá)到物品存儲的要求。
2.1 系統(tǒng)組成
 環(huán)境參數(shù)測控系統(tǒng)包括4個主要的子系統(tǒng),系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
 (1) 計(jì)算機(jī)子系統(tǒng)。由工業(yè)控制計(jì)算機(jī)、顯示器和打印機(jī)等組成。
 (2) 數(shù)據(jù)傳輸通信子系統(tǒng)。由裝在上位機(jī)上的CAN總線通信適配卡、裝在前端調(diào)節(jié)執(zhí)行機(jī)構(gòu)上的通信卡和數(shù)據(jù)傳輸通信介質(zhì)組成。
 (3) 測量傳感器子系統(tǒng)。由電量傳感器和CCD傳感器組成。
 (4) 調(diào)節(jié)執(zhí)行機(jī)構(gòu)控制子系統(tǒng)。由調(diào)節(jié)執(zhí)行機(jī)構(gòu)、力傳感器和調(diào)節(jié)執(zhí)行機(jī)構(gòu)前端機(jī)組成。
2.2 系統(tǒng)工作原理
 環(huán)境參數(shù)測控系統(tǒng)利用傳輸信號簡單、通信速率高、實(shí)時性強(qiáng)的CAN總線將一臺上位機(jī)與一臺前端機(jī)和眾多的傳感器連接起來,完成存儲空間內(nèi)的環(huán)境參數(shù)測量,在經(jīng)過主機(jī)處理后,再把控制信號傳給執(zhí)行前端機(jī),以控制環(huán)境參數(shù)的變化。通信介質(zhì)可采用雙絞線,也可采用75Ω同軸電纜。
 電量傳感器和CCD傳感器主要完成環(huán)境中各參數(shù)的測量任務(wù)。它包括CCD攝像機(jī)、信號采集板、A/D傳感器、高速緩存等。調(diào)節(jié)執(zhí)行機(jī)構(gòu)主要完成對環(huán)境參數(shù)的調(diào)節(jié)作用,也就是根據(jù)主機(jī)的信號進(jìn)行相應(yīng)的操作,使各環(huán)境參數(shù)保持在預(yù)先規(guī)定的范圍內(nèi)。它主要由大功率繼電器、傳感器、電流控制裝置、可調(diào)整支架等組成。主機(jī)采用高性能工控機(jī),具有高抗擾工業(yè)級電源,硬盤及機(jī)箱防磁、防塵。作為測量控制通信中心,主機(jī)主要完成測控系統(tǒng)有關(guān)參數(shù)的設(shè)置、測試通信的分段標(biāo)被測參數(shù)的整理計(jì)算、參數(shù)顯示、打印輸出、數(shù)據(jù)存盤及控制調(diào)節(jié)機(jī)構(gòu)進(jìn)行環(huán)境參數(shù)的調(diào)節(jié)動作。如此機(jī)接入了網(wǎng)絡(luò),也可實(shí)現(xiàn)與其它計(jì)算機(jī)的聯(lián)網(wǎng),實(shí)現(xiàn)數(shù)據(jù)共享。
3 測控系統(tǒng)主要分系統(tǒng)設(shè)計(jì)
3.1 數(shù)據(jù)傳輸通信子系統(tǒng)
 此系統(tǒng)由裝在主機(jī)中的CAN總線通信卡,裝在調(diào)節(jié)執(zhí)行機(jī)構(gòu)中的通信卡和數(shù)據(jù)傳輸介質(zhì)組成。在本系統(tǒng)中,方案設(shè)計(jì)為PCI-CAN控制通信卡,CAN控制器卡集成兩路電氣隔離的CAN通道,使工控機(jī)方便地連接到CAN總線上,實(shí)現(xiàn)CAN總線協(xié)議的連接通信。CAN控制器卡整體結(jié)構(gòu)框圖如圖2所示。
圖2 CAN控制器卡整體結(jié)構(gòu)框圖
3.2 調(diào)節(jié)執(zhí)行機(jī)構(gòu)控制子系統(tǒng)
 此系統(tǒng)采用單片機(jī)構(gòu)成一個控制系統(tǒng)。接收來自主機(jī)的控制信號,通過繼電器來對機(jī)械執(zhí)行機(jī)構(gòu)進(jìn)行控制,以調(diào)節(jié)諸如包括溫度、濕度、氣體壓力和氣體百分比容量等參數(shù)。此系統(tǒng)框圖如圖3所示。
圖3 機(jī)械執(zhí)行機(jī)構(gòu)框圖
4 系統(tǒng)主要軟件設(shè)計(jì)
4.1 CAN總線接口的初始化設(shè)計(jì)
 CAN控制器卡的軟件設(shè)計(jì)主要分為三部分:CAN初始化、數(shù)據(jù)發(fā)送及數(shù)據(jù)接收。系統(tǒng)軟件設(shè)計(jì)的指導(dǎo)思想是:系統(tǒng)上電后,首先對SJA1000進(jìn)行初始化,配置SJA1000的控制段寄存器內(nèi)容以設(shè)定通信參數(shù)(如:模式、位速率、驗(yàn)收碼、屏蔽碼、字段長、總線定時、波特率、輸出特性等)。初始化完成后,SJA1000按設(shè)定值控制CAN總線上的通信。系統(tǒng)是否能正常地工作,初始化程序的設(shè)計(jì)是個關(guān)鍵。CAN初始化主要是設(shè)置CAN的通信參數(shù),即通過對CAN控制器段中的寄存器進(jìn)行設(shè)置,從而確定CAN控制器的工作方式等。初始化程序的流程圖如圖4所示。
圖4 SJA1000初始化流程圖
 總線定時寄存器的設(shè)置極大地影響了CAN性能的發(fā)揮。一般來說,若硬件連接無誤,通信失敗的主要原因在于總線定時寄存器設(shè)置不當(dāng)。它確定了3個時間—時鐘周期、系統(tǒng)周期和位周期之間的關(guān)系。對BTR0操作,可決定波特率預(yù)分頻器BRP和同步跳轉(zhuǎn)寬度SJW的數(shù)值;對BTR1進(jìn)行寫操作,可決定位周期的寬度、采樣點(diǎn)的位置及在每個采樣點(diǎn)進(jìn)行采樣的次數(shù)。這兩個寄存器的內(nèi)容,可唯一確定波特率及同步跳轉(zhuǎn)寬度。只有當(dāng)系統(tǒng)中的所有節(jié)點(diǎn)的BTR0和BTR1的內(nèi)容都相同時,才能正常通信。關(guān)于CAN總線波特率的設(shè)置參見表1。
表1 CAN總線波特率設(shè)置
4.2 驅(qū)動程序開發(fā)
 PCI總線接口設(shè)備的一大特點(diǎn)是即插即用。因此,在軟件上必須編寫能夠?qū)崿F(xiàn)即插即用功能的設(shè)備驅(qū)動程序。從廣義上來說,驅(qū)動程序就是控制硬件的一組函數(shù)。PCI設(shè)備驅(qū)動程序的開發(fā),就是取得PCI板卡所占用的各種資源(內(nèi)存、端口、中斷和DMA等),并提供給用戶一條可以訪問這些資源的途徑。在本設(shè)計(jì)中,由于PCI9052的中斷、I/O端口、映射內(nèi)存等資源都是動態(tài)分配的,必須編寫驅(qū)動程序來管理硬件,才能供用戶編程使用。
 WinDriver是專業(yè)的設(shè)備驅(qū)動程序開發(fā)工具。利用它的驅(qū)動程序向?qū)В―river Wizard),可以快速測試新硬件,并生成設(shè)備驅(qū)動程序框架。在寫設(shè)備驅(qū)動程序之前,重要的一點(diǎn)是確保硬件準(zhǔn)確無誤。用WinDriver的驅(qū)動程序向?qū)riverWizard 提供的診斷程序Diagnostic Program來診斷CAN控制器卡。此診斷程序支持多種類型的芯片,本設(shè)計(jì)采用PCI9052作為PCI接口芯片,由于WinDriver PLX 9050的庫完全與PLX 9052兼容,可以選擇PLX 9050診斷程序,它通過WinDriver的程序訪問硬件。
5 結(jié)語
 由于工控機(jī)及先進(jìn)的數(shù)據(jù)采集處理技術(shù)的應(yīng)用,大大提高了對環(huán)境參數(shù)的測控,并提高了測控精度。CAN總線的使用使整個復(fù)雜的系統(tǒng)更加簡潔、緊湊,提高了測控系統(tǒng)的抗干擾能力,同時也增強(qiáng)了系統(tǒng)的安全性。接入局域網(wǎng),可使操作人員遠(yuǎn)距離對測控系統(tǒng)進(jìn)行控制,實(shí)現(xiàn)測控?cái)?shù)據(jù)的遠(yuǎn)距離傳輸。
(摘自自動化博覽)

(轉(zhuǎn)載)

2024世界人工智能大會專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會
專題報(bào)道