基于CAN總線(xiàn)的遠程溫度采集系統
摘要:介紹了CAN總線(xiàn)在遠程溫度采集系統中的應用,給出一種基于獨立的CAN控制器SJA1000和微控制器STC89C52的系統總體結構、硬件設計以及軟件設計方法。實(shí)驗表明,該系統采集溫度精確、可靠性高,而且通信距離遠,可廣泛應用于各種工業(yè)控制場(chǎng)合。
本文引用地址:http://dyxdggzs.com/article/201610/306637.htm溫度測量是人們日常生活中經(jīng)常遇到的問(wèn)題,在工農業(yè)生產(chǎn)、地質(zhì)勘探、國防科研等領(lǐng)域扮演著(zhù)重要的角色,對溫度進(jìn)行準確的測量顯得尤為重要,而在人工操作不便的偏遠地區、氣候惡略地帶,需要使用自動(dòng)測溫系統進(jìn)行溫度的測量。
控制器局域網(wǎng)絡(luò )(Controller Area Network,CAN)是一種串行雙向通信的總線(xiàn)。它采用多主工作方式,能夠支持分布控制和實(shí)時(shí)控制。CAN總線(xiàn)能在遠距離傳輸上保持較高的通信速率,其網(wǎng)絡(luò )節點(diǎn)可達110個(gè)。CAN總線(xiàn)協(xié)議建立在OSI模型基礎上的,已成為國際化標準并在工業(yè)測控和工業(yè)自動(dòng)化領(lǐng)域廣泛應用。
本文實(shí)現了一種遠程溫度采集系統。該系統含有多個(gè)智能的測溫模塊,在每個(gè)節點(diǎn)位置上的測溫模塊不僅可以獨立的進(jìn)行溫度測量采集,而且它們還可通過(guò)CAN總線(xiàn)連接起來(lái)集中的管理和監控。
1 系統總體結構
溫度采集系統總體結構如圖1所示。位于現場(chǎng)的智能節點(diǎn)構成單個(gè)溫度采集模塊,諸多溫度采集模塊構成了整個(gè)溫度采集系統,系統通過(guò)CAN總線(xiàn)對各節點(diǎn)的數據進(jìn)行實(shí)時(shí)地采集和傳輸,發(fā)送到CAN總線(xiàn)上的數據可傳送到上位計算機,通過(guò)上位計算機實(shí)現集中監控和管理。
2 系統硬件設計
系統的智能節點(diǎn)由STC89C52微控制器和其外圍電路組成。外圍電路包含測溫電路、CAN總線(xiàn)接口電路、LCD顯示模塊等部分。下面就主要部分進(jìn)行詳細地介紹。
2.1 微處理器
本系統采用能夠兼容8051的STC系列中的STC89C52微處理器。STC89C52微處理器集成了微處理器模塊、存儲器模塊和輸入/輸出接口模塊的8位嵌入式微控制器芯片。其存儲器模塊包含8 kB內部程序存儲器、512數據存儲器以及內置4KB的EEPROM;輸入/輸出接口模塊包含4個(gè)8位并行的I/O端口、32個(gè)可編程的I/O引腳。
2. 2 測溫電路
測溫電路采用單總線(xiàn)器件DS18B20實(shí)現。DS18B20內部集成了溫度傳感器和模數轉換器,其溫度測量范圍包含在-55℃+125℃與之間。它在一定的溫度范圍其精度可達0.5℃ DS18B20采用單一總線(xiàn)方式傳輸,接線(xiàn)方式經(jīng)濟靈活,既降低了硬件的成本又提高了系統的可靠性。DS18B20通過(guò)位片序列號,可實(shí)現將多個(gè) DS18B20掛接在一根單總線(xiàn)上,因此可以將該溫度傳感器放在不同的地方,進(jìn)行多節點(diǎn)溫度的采集。STC89C52可按照DS18B20的序列號得到不同節點(diǎn)上的溫度值。這是本文實(shí)現遠程溫度采集系統的關(guān)鍵。DS18B20與STC 89C252的連接如圖2所示。數字輸入輸出端DQ與單片機的P2.3口相連。
2.3 CAN總線(xiàn)接口電路
本系統采用了CAN總線(xiàn)通信技術(shù),以便于數據及時(shí)而有效的傳輸。CAN總線(xiàn)接口電路由CAN總線(xiàn)控制器SJA1000和CAN總線(xiàn)收發(fā)器82C50兩部分組成。其結構如圖3所示。
CAN總線(xiàn)控制器芯片SJA1000是一種獨立控制器。其具有完成CAN通信協(xié)議所要求的全部特性。CAN總線(xiàn)收發(fā)控制器82C50是CAN總線(xiàn)控制器與物理總線(xiàn)之間的接口。其具有差動(dòng)發(fā)送和差動(dòng)接收能力。CAN總線(xiàn)通信協(xié)議由CAN控制器芯片和接口芯片共同作用實(shí)現,本系統在C語(yǔ)言編程設計中采用的是 BasicCAN協(xié)議模式。
3 系統軟件設計
本遠程溫度采集系統的軟件設計主要包括兩部分:CAN總線(xiàn)接口軟件部分和溫度采集軟件部分。CAN總線(xiàn)接口軟件設計包括:SJA1000的初始化、CAN總線(xiàn)數據的發(fā)送和溫度的接收。系統軟件設計是在STC系列單片機的C語(yǔ)言編程環(huán)境下編寫(xiě)的。
3.1 CAN控制器SJA1000的初始化
CAN總線(xiàn)節點(diǎn)的軟件設計首先要進(jìn)行CAN控制器SJA1000初始化。SJA1000初始化是在復位情況下默認的BasicCAN模式下進(jìn)行的。其主要包括設置CAN模式位選擇工作模式,設置相應的寄存器定義接收濾波方式和總線(xiàn)定時(shí)器。另外還有中斷允許寄存器和輸出模式的設置等。
首先SJA1000在上電復位進(jìn)入默認BasicCAN模式,設置總線(xiàn)定時(shí)寄存器BTR0和BTRl值。所有節點(diǎn)的這兩個(gè)總線(xiàn)定時(shí)寄存器設置都應相同,否則系統可能無(wú)法通信。通過(guò)設置這兩個(gè)寄存器從而確定系統的通信波特率和同步跳轉寬度。在復位模式中總線(xiàn)定時(shí)寄存器可被讀/寫(xiě)訪(fǎng)問(wèn)。驗收濾波器通過(guò)驗收代碼寄存器ACR和驗收屏蔽寄存器AMR來(lái)設置。其次設置OCR確定CAN控制器輸出方式。SJA1000初始化完畢,系統即可成功傳輸報文。
3.2 CAN總線(xiàn)數據發(fā)送/接收子程序
CAN總線(xiàn)發(fā)送子程序完成報文的發(fā)送。CAN總線(xiàn)數據發(fā)送子程序流程圖如圖4所示。程序先把待發(fā)送的信息按照要求的格式組成單幀報文,并將其寫(xiě)入SJA1000的發(fā)送緩存寄存器。將SJA1000的命令寄存器CMR第0位置1提出發(fā)送請求,開(kāi)始發(fā)送報文。
CAN總線(xiàn)數據接收子程序完成報文的接收。CAN總線(xiàn)接收子程序流程圖如圖5所示。接收數據采用中斷方式。當SJA1000收到一幀報文時(shí),將報文濾波后存放在接收緩沖器內,再釋放接收緩沖區,等待下面的報文接收。程序在接收報文時(shí),還要處理單片機中斷關(guān)閉、錯誤警告、數據溢出等各種情況。具體來(lái)講,首先將CPU關(guān)中斷,判斷狀態(tài)寄存器的RBS位是否為1,如果為1,就可以接收數據;接收完之后釋放緩沖寄存器,開(kāi)放CPU中斷。
3.3 溫度采集軟件
根據DS18B20的通信協(xié)議,單片機STC89C52控制DS18B20完成溫度采集。溫度采集軟件流程圖如圖6所示。讀寫(xiě)前要對DS18B20進(jìn)行初始化,初始化成功后發(fā)送溫度轉化指令。由此方可對DS18B20進(jìn)行預定的操作。主機使用時(shí)隙來(lái)讀寫(xiě)DS18B20的數據位和寫(xiě)命令字的位。
4 結束語(yǔ)
本文介紹了該系統的硬軟件設計及其實(shí)現過(guò)程。其使用STC89C52作為主控芯片,配合DS18820溫度傳感器、CAN總線(xiàn)電路,實(shí)現基于CAN總線(xiàn)協(xié)議的遠程溫度采集。實(shí)驗表明,該溫度采集系統可采集多個(gè)遠程溫度采集模塊的數據,每一溫度采集模塊都可對各個(gè)節點(diǎn)的數據進(jìn)行遠程采集、遠距離傳輸和數字顯示,系統通過(guò)CAN總線(xiàn)對其進(jìn)行實(shí)時(shí)地的監控和管理。
評論