CAN總線智能采集卡的設(shè)計(jì)與實(shí)現(xiàn)
DS18B20是一個(gè)單線式溫度采集數(shù)據(jù)傳輸并直接轉(zhuǎn)換數(shù)字量的溫度傳感器。其特點(diǎn)為:獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行雙向通信,多個(gè)并聯(lián)可實(shí)現(xiàn)多點(diǎn)測(cè)溫;可通過(guò)數(shù)據(jù)線
本文引用地址:http://www.ex-cimer.com/article/157787.htm
供電,電源電壓為3~5.5V;零待機(jī)功耗;用戶可自定義的非易失性溫度報(bào)警設(shè)置;報(bào)警識(shí)別命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;測(cè)溫范圍為-55~+125○C。 精度為9~12位(與數(shù)據(jù)位數(shù)的設(shè)定有關(guān)),9位的溫度分辨率為±0.5℃,12位的溫度分辨率為±0.0625○C,缺省為12位;在93.75~750ms內(nèi)將溫度值轉(zhuǎn)化為9~12位的數(shù)字量,典型轉(zhuǎn)換時(shí)間為200ms。
DS18B20有3個(gè)主要數(shù)字部件:64位激光ROM、溫度傳感器以及非易失性(E2PROM)溫度報(bào)警觸發(fā)器TH和TL。操作的順序?yàn)椋撼跏蓟◤?fù)位)、ROM操作命令、暫存器操作命令。通過(guò)單總線的所有操作都從一個(gè)初始化序列開始。次初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和緊隨其后由從機(jī)發(fā)出的存在脈沖。一旦總線控制器探測(cè)到一個(gè)存在脈沖,它就會(huì)發(fā)出5個(gè)ROM命令之一。通過(guò)RAM操作命令DS18B20完成一次溫度測(cè)量。測(cè)量結(jié)果放在DS18B20的暫存器里,用一條讀暫存器內(nèi)容的存儲(chǔ)器操作命令可以將暫存器中數(shù)據(jù)讀出。溫度報(bào)警觸發(fā)器TH和TL各由一個(gè)E2PROM字節(jié)構(gòu)成。用一條存儲(chǔ)器操作命令對(duì)TH和TL進(jìn)行寫入,對(duì)這些寄存器的讀出則需要通過(guò)暫存器。所有操作命令都是8位,所有數(shù)據(jù)均以低有效位在前的方式(LSB)進(jìn)行讀/寫。連接DS18B20的總線電纜有長(zhǎng)度限制,采用普通信號(hào)電纜長(zhǎng)度為50米,總線電纜為雙絞線帶屏蔽電纜時(shí),正常通信距離為150米。另外,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào)。如果DS18B20接觸不好或斷線,則程序讀該DS18B20時(shí),將沒(méi)有返回信號(hào)。
3)可編程鍵盤、顯示器接口芯片---8279 及CAN總線物理接口---82C250
8279芯片是專用于鍵盤、顯示器的接口芯片,能對(duì)顯示器自動(dòng)掃描,能識(shí)別鍵盤上閉合鍵的鍵號(hào),提高CPU的工作效率。8279包括鍵盤輸入和顯示輸出兩個(gè)部分,鍵盤部分提供的掃描方式,可以和具有64個(gè)按鍵和傳感器的陣列相連,能自動(dòng)消除開關(guān)抖動(dòng)以及對(duì)n鍵同時(shí)按下采取保護(hù)。顯示部分按掃描方式工作,可以顯示8或16位LED八段數(shù)碼顯示器。
82C250是PHILIPS公司生產(chǎn)的CAN控制器與物理總線之間的接口,提供對(duì)CAN總線的差動(dòng)發(fā)送和接收能力,最初是為汽車高速通信的應(yīng)用而設(shè)計(jì)的。它與ISO/DIS 11898標(biāo)準(zhǔn)全兼容,具有抗汽車環(huán)境下的瞬間干擾、保護(hù)總線能力??梢酝ㄟ^(guò)調(diào)整CAN總線上通信脈沖的斜率來(lái)降低射頻干擾??捎?10個(gè)節(jié)點(diǎn)相連接。
4.軟件設(shè)計(jì)
在采集卡的軟件設(shè)計(jì)中,主要采用模塊化的設(shè)計(jì)思想,主要分為系統(tǒng)初始化程序、CAN中斷服務(wù)程序、INT1中斷服務(wù)程序(即8279中斷服務(wù)程序)、ADC中斷服務(wù)程序、T0中斷服務(wù)程序和“看門狗”定時(shí)器服務(wù)程序等幾個(gè)部分。
系統(tǒng)初始化程序主要是對(duì)CAN控制器、8279芯片、DS18B20、定時(shí)器、ADC控制寄存器、中斷控制寄存器、中斷優(yōu)先級(jí)寄存器等進(jìn)行初始化設(shè)置。然后根據(jù)發(fā)生事件的不同來(lái)進(jìn)行不同的處理。
CAN中斷服務(wù)程序主要包括CAN接收中斷服務(wù)程序和CAN發(fā)送中斷服務(wù)程序,主要處理CAN總線通信過(guò)程中的各種情況。
INT1外部中斷是由8279引起的中斷,當(dāng)8279的FIFO寄存器不為空的時(shí)候,就向CPU發(fā)出中斷申請(qǐng),CPU進(jìn)入中斷后,首先讀8279的狀態(tài)寄存器,如果發(fā)生錯(cuò)誤,就進(jìn)入鍵盤出錯(cuò)處理程序。否則,進(jìn)入鍵盤處理程序。在鍵盤處理程序中,從FIFO寄存器中讀出鍵值,根據(jù)鍵值的不同,進(jìn)行相應(yīng)的處理。
T0中斷程序主要處理跟定時(shí)有關(guān)的操作,可以起到時(shí)鐘的作用,并且根據(jù)實(shí)現(xiàn)設(shè)定好的參數(shù),實(shí)現(xiàn)定時(shí)采樣,定時(shí)發(fā)送的功能。
T2定時(shí)器是專門防止單片機(jī)“死機(jī)”而設(shè)置的“看門狗”定時(shí)器。
本文作者創(chuàng)新點(diǎn):采用當(dāng)前流行器件來(lái)構(gòu)成CAN智能采集卡以及相關(guān)軟件設(shè)計(jì)。CAN總線數(shù)據(jù)采集系統(tǒng)由上位機(jī)、CAN總線適配卡及若干個(gè)CAN節(jié)點(diǎn)組成。可通過(guò)網(wǎng)卡或者嵌入式WEB網(wǎng)關(guān)連入局域網(wǎng),再通過(guò)路由器接入Internet。通過(guò)WEB服務(wù)器,利用OPC技術(shù),進(jìn)一步實(shí)現(xiàn)B/S結(jié)構(gòu)的實(shí)時(shí)監(jiān)控。
評(píng)論