【摘要】系統(tǒng)介紹了以CAN總線為核心所構(gòu)成的數(shù)據(jù)采集系統(tǒng)的設(shè)計方法,包括總體方案,硬件和軟件設(shè)計。在硬件設(shè)計方面,使用熱電阻傳感器、Σ-Δ型AD7705轉(zhuǎn)換器、單片機、LED數(shù)碼管顯示器、以及目前應(yīng)用比較廣泛的CAN總線構(gòu)建傳輸總線,實現(xiàn)了系統(tǒng)的智能化、實時化和總線化. 在軟件設(shè)計方面,使用Keil C51語言,在Keil uVision2環(huán)境下對系統(tǒng)進行編程。
【關(guān)鍵詞】CAN 總線;單片機;數(shù)據(jù)采集
1.引言
基于CAN總線的分布式數(shù)據(jù)采集系統(tǒng)是利用現(xiàn)場總線集散采集系統(tǒng)的特點,把信息采集在現(xiàn)場進行,而通過操作站集中管理。運用CAN總線技術(shù),極大地提高了系統(tǒng)的可靠性、實時性,系統(tǒng)開發(fā)較價廉,性能價格比高,安裝維護簡潔方便,具有廣闊的應(yīng)用前景,也是工業(yè)控制領(lǐng)域的一個重要發(fā)展方向。CAN是控制器局域網(wǎng)絡(luò)(Controller Area Net)的簡稱,它是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。其主要優(yōu)點如下:采用全雙工的通信方式,無主從機之分,可實現(xiàn)分布式系統(tǒng);最大傳輸速率1Mbps/40m,最遠(yuǎn)傳輸距離10km/5kbps;采用非破壞性總線優(yōu)先級仲裁技術(shù),仲裁的依據(jù)是數(shù)據(jù)塊的標(biāo)識符;采用面向控制的短幀結(jié)構(gòu),數(shù)據(jù)段的長度為0-8字節(jié),實時性較高;采用載波偵聽和CRC校驗技術(shù),具有較強的錯誤控制功能。
分布式數(shù)據(jù)采集系統(tǒng)(Distributed Acqui-sition System)是相對于集中式數(shù)據(jù)采集系統(tǒng)而言的。它一般是由地面采集站、遙測數(shù)據(jù)傳輸電纜以及中央控制站三部分組成,其中地面采集站按測線的方向布置,負(fù)責(zé)采集一個或幾個測點的地球物理數(shù)據(jù),而中央控智站的主要任務(wù)是完成數(shù)據(jù)的記錄和質(zhì)量監(jiān)控。分布式數(shù)據(jù)庫的優(yōu)點:具有靈活的體系結(jié)構(gòu);適應(yīng)分布式的管理和控制機構(gòu);經(jīng)濟性能優(yōu)越;系統(tǒng)的可靠性高、可用性好;局部應(yīng)用的響應(yīng)速度快;可擴展性好,易于集成現(xiàn)有系統(tǒng)。
2.基于CAN總線的分布式數(shù)據(jù)采集系統(tǒng)的總體設(shè)計
由于CAN總線為多主方式工作,最多可掛接110個節(jié)點,并根據(jù)現(xiàn)代控制系統(tǒng)既需集中管理,又需分散實時控制的特殊工藝要求,分布式數(shù)據(jù)采集系統(tǒng)采用現(xiàn)場總線式集散采集系統(tǒng)。系統(tǒng)主要包括操作站(上位機)和現(xiàn)場數(shù)據(jù)采集采集系統(tǒng)兩大部分;其系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體框圖
整個系統(tǒng)工作原理為:從控制現(xiàn)場傳感器傳送來的信息可能是模擬量或數(shù)字量,模擬量通過16位模數(shù)轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信息后,發(fā)送到CAN總線上,總線上的其它節(jié)點單元和操作站根據(jù)自己的需要和事先設(shè)計好的驗收碼和驗收屏蔽碼,來判斷是否接收該信息。如果該信息需要進一步較為復(fù)雜的處理,則可通過操作站(上位機)來處理并對整個網(wǎng)絡(luò)進行管理,經(jīng)過處理后的信息進行保存,如有重要信息則可通過與操作站相連的打印機記錄打印。
3.基于CAN總線的分布式數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計
硬件的核心器件就是CAN控制器SJA1000,通過單片機初始化后,SJAl000就可獨立工作,通過檢測總線上的電壓信號,及內(nèi)部特殊的寄存器內(nèi)容,控制器就完成數(shù)據(jù)的打包、解包、錯誤的鑒定等一系列功能,下面簡要介紹CAN控制器SJA1000:SJA1000是由PHLIPS公司研制的,主要用于自動控制和通信工業(yè)用的8位高性能微控制器,它是PHILIPS上一代控制器PCA82C200的替代品。圖2所示為SJA1000的內(nèi)部結(jié)構(gòu)圖:
圖2 SJA1000的內(nèi)部結(jié)構(gòu)圖
4.基于CAN總線的分布式數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計
系統(tǒng)軟件設(shè)計中,中央監(jiān)控機程序采用C語言編寫,實現(xiàn)對各節(jié)點的狀態(tài)監(jiān)測、參數(shù)設(shè)置和修改以及數(shù)據(jù)的收發(fā)等功能,從而進行動態(tài)的管理與控制。對子系統(tǒng)的各節(jié)點程序設(shè)計可分為兩部分。一個是對CAN 總線控制器SJA100。完成的通信功能進行程序設(shè)計;另一個是對各節(jié)點控制器89C52完成的測控功能進行程序設(shè)計。
4.1 主程序設(shè)計
溫度測量節(jié)點主程序流程圖如圖3所示。在系統(tǒng)初始化以后,調(diào)用事件檢查和處理的子程序,根據(jù)對情況的判別來作出對應(yīng)的動作,此外如果有按鍵輸入按調(diào)用功能鍵子程序來設(shè)定溫度或電壓、電流值等,并通過LED來顯示相應(yīng)的值。采集到的數(shù)據(jù)可通過CAN總線利用數(shù)據(jù)傳送了程序送到監(jiān)控中心。
4.2 CAN總線的數(shù)據(jù)接收過程
接收函數(shù)與發(fā)送函數(shù)有些不同,接收函數(shù)的事件則是當(dāng)“報文接收”時觸發(fā)。不過前提就是RIE(接收中斷使能)必須為邏輯1,因為報文接受與引起接收中斷而該效果關(guān)系性的直接影響SJA1000 的使INT 引腳產(chǎn)生電平變化會而觸發(fā)單片機的外部中斷。
接收函數(shù)觸發(fā)開始直接必須完成幾個條件;一RIE必須使能,二硬件的鏈接。SJA1000的INT引腳與單片機的INT1引腳是直接相連,而我們編程的方法是由SJA1000 RXFIFO飽和中斷,引起SJA1000引腳的電平產(chǎn)生變化而觸發(fā)單片機的外部中斷服務(wù),就是這個外部中斷源通知單片機進行“從RXFIFO讀取報文”的函數(shù)。
圖3 溫度測量節(jié)點主程序圖
接收函數(shù)大體上比較簡單,就是先判斷RI,RXFIFO 空間是否“不空”,而“不空”表示接收的報文已經(jīng)存在,那么接下來的動作就是讀取報文,然后給命令寄存器設(shè)置釋放RXFIFO,過后釋放仲裁丟失捕捉寄存器和錯誤代碼捕捉寄存器(等于讀取仲裁丟失捕捉寄存器和錯誤代碼捕捉寄存器)就結(jié)束了。接收數(shù)據(jù)流程圖如圖4所示:
圖4 接收數(shù)據(jù)流程圖
5.結(jié)束語
本系統(tǒng)主要分為上位機監(jiān)視和分布式采集節(jié)點,本系統(tǒng)主要對溫度采集節(jié)點進行了詳細(xì)的設(shè)計。溫度采集節(jié)點主要由熱電阻傳感器電路單元、AD轉(zhuǎn)換電路單元、最小系統(tǒng)單元、數(shù)碼管顯示單元和CAN總線電路單元組成。上位機是有工業(yè)計算機和CAN通信適配卡組成,采用了VC++進行軟件編程。
參考文獻
[1]周正干,基于CAN總線的閥門智能控制網(wǎng)絡(luò)系統(tǒng)[J].自動化儀表,2004.
[2]陸前鋒.基于SJA1000的CAN智能控制系統(tǒng)設(shè)計[J].自動化技術(shù)與應(yīng)用,2003.
[3]韓黨群.CAN控制器SJA1000及其應(yīng)用[J].電子技術(shù)應(yīng)用,2003.
[4]胡峪,劉靜編.VC++高級編程技巧與示例[M].西安電子科技大學(xué)出版社,2001.
[5]朱齊丹.基于CAN總線的智能照明控制系統(tǒng)的設(shè)計和實現(xiàn)[J].應(yīng)用科技,2008.
[6]王利強.計算機測控系統(tǒng)與數(shù)據(jù)采集卡應(yīng)用[M].北京:機械工業(yè)出版社,2007.
作者簡介:馬明(1983—),男,江蘇宿遷人,碩士,南通廣播電視大學(xué)講師,主要研究方向:自動控制與計算機技術(shù)。