關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

作者: 時間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

摘要:介紹了在遠(yuǎn)程系統(tǒng)中的應(yīng)用,給出一種基于獨(dú)立的CAN控制器和微控制器的系統(tǒng)總體結(jié)構(gòu)、硬件設(shè)計以及軟件設(shè)計方法。實(shí)驗(yàn)表明,該系統(tǒng)采集溫度精確、可靠性高,而且通信距離遠(yuǎn),可廣泛應(yīng)用于各種工業(yè)控制場合。

本文引用地址:http://2s4d.com/article/201610/306637.htm

溫度測量是人們?nèi)粘I钪薪?jīng)常遇到的問題,在工農(nóng)業(yè)生產(chǎn)、地質(zhì)勘探、國防科研等領(lǐng)域扮演著重要的角色,對溫度進(jìn)行準(zhǔn)確的測量顯得尤為重要,而在人工操作不便的偏遠(yuǎn)地區(qū)、氣候惡略地帶,需要使用自動測溫系統(tǒng)進(jìn)行溫度的測量。

控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)是一種串行雙向通信的總線。它采用多主工作方式,能夠支持分布控制和實(shí)時控制。能在遠(yuǎn)距離傳輸上保持較高的通信速率,其網(wǎng)絡(luò)節(jié)點(diǎn)可達(dá)110個。協(xié)議建立在OSI模型基礎(chǔ)上的,已成為國際化標(biāo)準(zhǔn)并在工業(yè)測控和工業(yè)自動化領(lǐng)域廣泛應(yīng)用。

本文實(shí)現(xiàn)了一種遠(yuǎn)程系統(tǒng)。該系統(tǒng)含有多個智能的測溫模塊,在每個節(jié)點(diǎn)位置上的測溫模塊不僅可以獨(dú)立的進(jìn)行溫度測量采集,而且它們還可通過CAN總線連接起來集中的管理和監(jiān)控。

1 系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)總體結(jié)構(gòu)如圖1所示。位于現(xiàn)場的智能節(jié)點(diǎn)構(gòu)成單個溫度采集模塊,諸多溫度采集模塊構(gòu)成了整個溫度采集系統(tǒng),系統(tǒng)通過CAN總線對各節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行實(shí)時地采集和傳輸,發(fā)送到CAN總線上的數(shù)據(jù)可傳送到上位計算機(jī),通過上位計算機(jī)實(shí)現(xiàn)集中監(jiān)控和管理。

基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

2 系統(tǒng)硬件設(shè)計

系統(tǒng)的智能節(jié)點(diǎn)由微控制器和其外圍電路組成。外圍電路包含測溫電路、CAN總線接口電路、LCD顯示模塊等部分。下面就主要部分進(jìn)行詳細(xì)地介紹。

2.1 微處理器

本系統(tǒng)采用能夠兼容8051的STC系列中的微處理器。STC89C52微處理器集成了微處理器模塊、存儲器模塊和輸入/輸出接口模塊的8位嵌入式微控制器芯片。其存儲器模塊包含8 kB內(nèi)部程序存儲器、512數(shù)據(jù)存儲器以及內(nèi)置4KB的EEPROM;輸入/輸出接口模塊包含4個8位并行的I/O端口、32個可編程的I/O引腳。

2. 2 測溫電路

測溫電路采用單總線器件DS18B20實(shí)現(xiàn)。DS18B20內(nèi)部集成了溫度傳感器和模數(shù)轉(zhuǎn)換器,其溫度測量范圍包含在-55℃+125℃與之間。它在一定的溫度范圍其精度可達(dá)0.5℃ DS18B20采用單一總線方式傳輸,接線方式經(jīng)濟(jì)靈活,既降低了硬件的成本又提高了系統(tǒng)的可靠性。DS18B20通過位片序列號,可實(shí)現(xiàn)將多個 DS18B20掛接在一根單總線上,因此可以將該溫度傳感器放在不同的地方,進(jìn)行多節(jié)點(diǎn)溫度的采集。STC89C52可按照DS18B20的序列號得到不同節(jié)點(diǎn)上的溫度值。這是本文實(shí)現(xiàn)遠(yuǎn)程溫度采集系統(tǒng)的關(guān)鍵。DS18B20與STC 89C252的連接如圖2所示。數(shù)字輸入輸出端DQ與單片機(jī)的P2.3口相連。

基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

2.3 CAN總線接口電路

本系統(tǒng)采用了CAN總線通信技術(shù),以便于數(shù)據(jù)及時而有效的傳輸。CAN總線接口電路由CAN總線控制器和CAN總線收發(fā)器82C50兩部分組成。其結(jié)構(gòu)如圖3所示。

基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

CAN總線控制器芯片是一種獨(dú)立控制器。其具有完成CAN通信協(xié)議所要求的全部特性。CAN總線收發(fā)控制器82C50是CAN總線控制器與物理總線之間的接口。其具有差動發(fā)送和差動接收能力。CAN總線通信協(xié)議由CAN控制器芯片和接口芯片共同作用實(shí)現(xiàn),本系統(tǒng)在C語言編程設(shè)計中采用的是 BasicCAN協(xié)議模式。

3 系統(tǒng)軟件設(shè)計

本遠(yuǎn)程溫度采集系統(tǒng)的軟件設(shè)計主要包括兩部分:CAN總線接口軟件部分和溫度采集軟件部分。CAN總線接口軟件設(shè)計包括:SJA1000的初始化、CAN總線數(shù)據(jù)的發(fā)送和溫度的接收。系統(tǒng)軟件設(shè)計是在STC系列單片機(jī)的C語言編程環(huán)境下編寫的。

3.1 CAN控制器SJA1000的初始化

CAN總線節(jié)點(diǎn)的軟件設(shè)計首先要進(jìn)行CAN控制器SJA1000初始化。SJA1000初始化是在復(fù)位情況下默認(rèn)的BasicCAN模式下進(jìn)行的。其主要包括設(shè)置CAN模式位選擇工作模式,設(shè)置相應(yīng)的寄存器定義接收濾波方式和總線定時器。另外還有中斷允許寄存器和輸出模式的設(shè)置等。

首先SJA1000在上電復(fù)位進(jìn)入默認(rèn)BasicCAN模式,設(shè)置總線定時寄存器BTR0和BTRl值。所有節(jié)點(diǎn)的這兩個總線定時寄存器設(shè)置都應(yīng)相同,否則系統(tǒng)可能無法通信。通過設(shè)置這兩個寄存器從而確定系統(tǒng)的通信波特率和同步跳轉(zhuǎn)寬度。在復(fù)位模式中總線定時寄存器可被讀/寫訪問。驗(yàn)收濾波器通過驗(yàn)收代碼寄存器ACR和驗(yàn)收屏蔽寄存器AMR來設(shè)置。其次設(shè)置OCR確定CAN控制器輸出方式。SJA1000初始化完畢,系統(tǒng)即可成功傳輸報文。

3.2 CAN總線數(shù)據(jù)發(fā)送/接收子程序

CAN總線發(fā)送子程序完成報文的發(fā)送。CAN總線數(shù)據(jù)發(fā)送子程序流程圖如圖4所示。程序先把待發(fā)送的信息按照要求的格式組成單幀報文,并將其寫入SJA1000的發(fā)送緩存寄存器。將SJA1000的命令寄存器CMR第0位置1提出發(fā)送請求,開始發(fā)送報文。

基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

CAN總線數(shù)據(jù)接收子程序完成報文的接收。CAN總線接收子程序流程圖如圖5所示。接收數(shù)據(jù)采用中斷方式。當(dāng)SJA1000收到一幀報文時,將報文濾波后存放在接收緩沖器內(nèi),再釋放接收緩沖區(qū),等待下面的報文接收。程序在接收報文時,還要處理單片機(jī)中斷關(guān)閉、錯誤警告、數(shù)據(jù)溢出等各種情況。具體來講,首先將CPU關(guān)中斷,判斷狀態(tài)寄存器的RBS位是否為1,如果為1,就可以接收數(shù)據(jù);接收完之后釋放緩沖寄存器,開放CPU中斷。

3.3 溫度采集軟件

根據(jù)DS18B20的通信協(xié)議,單片機(jī)STC89C52控制DS18B20完成溫度采集。溫度采集軟件流程圖如圖6所示。讀寫前要對DS18B20進(jìn)行初始化,初始化成功后發(fā)送溫度轉(zhuǎn)化指令。由此方可對DS18B20進(jìn)行預(yù)定的操作。主機(jī)使用時隙來讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。

基于CAN總線的遠(yuǎn)程溫度采集系統(tǒng)

4 結(jié)束語

本文介紹了該系統(tǒng)的硬軟件設(shè)計及其實(shí)現(xiàn)過程。其使用STC89C52作為主控芯片,配合DS18820溫度傳感器、CAN總線電路,實(shí)現(xiàn)基于CAN總線協(xié)議的遠(yuǎn)程溫度采集。實(shí)驗(yàn)表明,該溫度采集系統(tǒng)可采集多個遠(yuǎn)程溫度采集模塊的數(shù)據(jù),每一溫度采集模塊都可對各個節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行遠(yuǎn)程采集、遠(yuǎn)距離傳輸和數(shù)字顯示,系統(tǒng)通過CAN總線對其進(jìn)行實(shí)時地的監(jiān)控和管理。



關(guān)鍵詞: 溫度采集 STC89C52 SJA1000 CAN總線

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉