趙旭
摘要:在工業(yè)控制領域,溫度測量是不可或缺的工作。隨著工業(yè)控制精細化、多點化要求,多點測溫系統(tǒng)的需求空間越來越大。本文基于CAN總線設計了一個多點測溫系統(tǒng),硬件電路由微處理器、CAN控制器與驅(qū)動器、數(shù)字測溫芯片DS18B20、LCD、復位電路等幾部分組成,單片機STC89C52RC是硬件電路的核心,承擔CAN控制器的初始化、數(shù)據(jù)收發(fā)控制等任務。實驗證明,該系統(tǒng)精度高,可靠性好,結(jié)構(gòu)簡單,成本低,適用范圍內(nèi)可取代傳統(tǒng)測溫系統(tǒng)。
關鍵詞:CAN總線;多點測溫系統(tǒng);DS18B20溫度傳感器
1引言
在工業(yè)控制領域,溫度測量是不可或缺的工作。隨著工業(yè)控制精細化、多點化要求,多點測溫系統(tǒng)的需求空間越來越大。CAN(控制器域網(wǎng),Controller Area Network)總線在組網(wǎng)和通信功能上的優(yōu)點以及它的高價比決定了它在眾多領域具有廣闊的發(fā)展前景,尤其是在分布在多點測溫應用方面。本文基于CAN總線設計了一個多點紅外測溫系統(tǒng),能夠?qū)崟r對多點進行測溫,具有測溫范圍廣、精度高、環(huán)境適應能力強等特點。
2硬件設計
CAN總線多點測溫系統(tǒng)主要由現(xiàn)場設備,主控設備和計算機組成,系統(tǒng)總體結(jié)構(gòu)圖如圖1。
2.1溫度測量電路設計
DS18B20傳感器可以把溫度直接轉(zhuǎn)換成串行數(shù)字信號供微控制器進行處理。由于每個傳感器含有唯一的硅串行數(shù),故一條總線上可以有任意多個DS18B20芯片。本設計中的DS18B20是在模擬的現(xiàn)場節(jié)點上的,采用不同材質(zhì)的通信電纜,其最大測溫范圍不一樣。因此,使用DS18B20設計長距離測溫系統(tǒng)時,電容與阻抗匹配問題是不可忽略的一個因素。DS18B20的寄生電源模式有兩項基本功能,一是保證微處理器和DS18B20之間的正常通訊,二是為DS18B20提供電源。實際應用中當單總線上所掛DS18B20超過8個時,就需要考慮微總線驅(qū)動問題,這一點進行測溫時要尤為注意。
2.2CAN總線通訊節(jié)點電路設計
本文選用選用STC的單片機做為主控器,選用CAN控制器和CAN驅(qū)動器來構(gòu)建CAN通訊網(wǎng)絡。主要由三部分構(gòu)成:微控制STC89C52、獨立CAN通信控制器SJA1000和CAN總線收發(fā)器PCA82C250;微處理器STC89C52負責SJA1000的初始化,通過控制SJA1000實現(xiàn)數(shù)據(jù)的接收與發(fā)送;SJA1000的AD0~AD7連接到STC89C52的P0口上,CS連接到STC89C52的P2.0,P2.0為0的CPU片外存貯器地址可選中SJA1000,CPU通過這些地址可對SJA1000執(zhí)行相應的讀寫操作。
2.3數(shù)碼管顯示電路設計
由于STC89C52的P1、P2、P3口內(nèi)部都有上拉電阻,為了減少硬件電路的復雜度,在這里選用STC89C52的P1 口來做為數(shù)碼管的段碼控制口,P2 口的四位做為數(shù)碼管的位選信號,從而省去了數(shù)碼管復雜的驅(qū)動電路,也降低了硬件設計的難度;為了節(jié)省單片機的端口資源,同時降低成本,這兒選用四位一體的共陰數(shù)碼管做為顯示設備,采用動態(tài)掃描的方法顯示,比著用四個獨立的數(shù)碼管來顯示要容易的多,硬件也簡單的多。
2.4液晶接口電路設計
根據(jù)設計要求,主控板需要將模擬的三個現(xiàn)場節(jié)點的溫度值讀取過來并在液晶上顯示,為了能夠同時顯示漢字和字符,這兒選用YJD12864做為液晶顯示模塊,相比于只能顯示字符的1602,12864的顯示更加美觀,更加人性化。YJD12864有并行數(shù)據(jù)傳輸和串行數(shù)據(jù)傳輸兩種工作方式,本設計選用8位并行傳輸方式,STC 單片機的P1 口做為12864的數(shù)據(jù)口;P2.1接12864 的4腳,用來向12864發(fā)送數(shù)據(jù)和控制指令;P2.2接12864的5腳,用來通知12864本次操作是讀操作還是寫操作;P2.3接12864的6腳,對12864操作的使能信號,高電平使能操作。
2.5串口通訊電路設計
設計要求中規(guī)定,現(xiàn)場設備將溫度值傳給主控設備,然后主控設備再將數(shù)據(jù)傳送到上位機顯示,并且上位機可以隨時更改現(xiàn)場設備參數(shù),從而實現(xiàn)遠程控制;為了滿足上述設計要求,這里使用485加232的方式通訊,由于232的傳輸距離有限,雖然CAN總線寬范圍的傳輸距離能夠彌補232這一缺點,且設計成本低,但考慮到現(xiàn)場的各種干擾信號比較復雜,一旦現(xiàn)場噪聲到達極值時可能會連同上位機一并損壞;而485則不同,它是一個半雙工通訊器件,其采用平衡壓差的方式傳輸數(shù)據(jù),使得數(shù)據(jù)線上的衰減和干擾都大大降低,從而加大了傳輸距離,提高了抗干擾能力,故在這里又加了一層485 的通訊,不僅使現(xiàn)場和上位機有效地隔離,而且進一步加大了數(shù)據(jù)傳輸?shù)木嚯x。
3軟件設計
智能CAN總線節(jié)點的軟件主要用來完成三項任務:一是溫度傳感器的采樣;二是現(xiàn)場節(jié)點將數(shù)據(jù)傳送給主控節(jié)點,由主控節(jié)點將數(shù)據(jù)處理之后送給上位機顯示;三是主控節(jié)點隨時準備接收上位機傳來的參數(shù),并通過CAN總線發(fā)給現(xiàn)場節(jié)點修改相關參數(shù)。主控節(jié)點的流程如圖2。
3.1溫度采樣系統(tǒng)軟件設計
該系統(tǒng),主要操作包括高低溫報警數(shù)據(jù)的寫入、溫度數(shù)據(jù)的讀取、數(shù)據(jù)處理、碼制轉(zhuǎn)換以及數(shù)碼顯示等幾部分;對DS18B20處理時要注意以下幾點:①每次讀寫之前要復位;②收到信號后等待16~60μs后發(fā)出60~240μs的存在低脈沖,主CPU收到此信號后表示復位成功;③緊接著依次發(fā)送一條ROM指令、RAM 指令,這樣才能對DS18B20進行正確操作。
3.2CAN通訊控制器初始化
CAN初始化主要是設置SJA1000的參數(shù)。需要初始化的CAN控制寄存器有:模式寄存器、時鐘分頻寄存器、接收代碼寄存器、輸出控制寄存器等。
SJA1000的初始化程序如下:
void CAN_init(void)
{ucharbdata REG;
uchar ACRR[4];
uchar AMRR[4];
ACRR[0]=0x01;//作為本機地址
ACRR[1]=0xff;
ACRR[2]=0xff;
ACRR[3]=0xff;//接收代碼寄存器
AMRR[0]=0x00;//驗收高8位標識符
AMRR[1]=0xff;
AMRR[2]=0xff;
AMRR[3]=0xff;//接收屏蔽寄存器do
{MODR=0x09;//.0=1進入復位模式,以便設置相應的寄存器
REG=MODR;}
while(?。≧EG&0x01));//防止未進入復位模式,重復寫入
CDR=0x88;//CDR.3=1--時鐘關閉;.7=1---PeliCAN
BTR0=0x83;
BTR1=0xff;//總線波特率設定,80kbps
IER=0x01;//.0=1--接收中斷使能;.1=0--關閉發(fā)送中斷使能
OCR=0xaa;//配置輸出控制寄存器
CMR=0x04;//釋放接收緩沖器
ACR=ACRR[0];
ACR1=ACRR[1];
ACR2=ACRR[2];
ACR3=ACRR[3];//初始化標示碼
AMR=AMRR[0];
AMR1=AMRR[1];
AMR2=AMRR[2];
AMR3=AMRR[3];//初始化掩碼
do
{MODR=0x08;
REG=MODR;}
while(REG&0x01);//確保退出復位模式
}
3.3LCD顯示及串口發(fā)送接收軟件設計
液晶YJD12864的初始化程序流程圖如圖3所示。
在這里需要說明一下,上位機給主控板發(fā)數(shù)據(jù)時,當發(fā)送的第1個數(shù)據(jù)是字符“$”,最后1個數(shù)據(jù)是字符“*”時,主控板才認為接收到的是有效數(shù)據(jù),否則,主控板不對接收到的數(shù)據(jù)進行處理;用發(fā)送的第2個字符來區(qū)分要發(fā)送的數(shù)據(jù)是送給哪一個現(xiàn)場節(jié)點的,字符“A”表示現(xiàn)場節(jié)點1,字符“B”表示現(xiàn)場節(jié)點2,字符“C”表示現(xiàn)場節(jié)點3;第3~6個字符是要傳送的高低溫報警值,高溫在前,低溫在后。
4實驗結(jié)果分析
為了驗證設計系統(tǒng)的穩(wěn)定性和準確性,對系統(tǒng)顯示模塊、測溫模塊、CAN總線模塊及串口通信進行調(diào)試。調(diào)試完畢后,我們用設計的測溫系統(tǒng)在實驗室不同時間段不同地點采集十組數(shù)據(jù),其中上午測試五組,下午測試五組,除了測溫方式不同,其他因素全部相同,具體數(shù)據(jù)如表1所示。
由表可知,系統(tǒng)對照值與測量值,最大偏差小于0.2,系統(tǒng)測溫方案的可靠性較強。
5結(jié)語
本文利用紅外輻射測溫的原理,計了一種基于CAN總線和DS18B20為傳感器的多點紅外測溫系統(tǒng),硬件電路由單片機STC89C52、CAN控制器、測溫芯片DS18B20、LCD、LED、串行通訊口、復位電路等幾部分組成。基于CAN總線的多點紅外測溫系統(tǒng)具有測溫范圍廣、精度高、環(huán)境適應能力強等特點。該系統(tǒng)通過CAN適配器與計算機連接,可以方便地構(gòu)成分布式測控系統(tǒng)。實驗表明,該系統(tǒng)不僅具有高精度溫度測控功能,而且通過CAN總線實現(xiàn)對多個地區(qū)溫度進行集中監(jiān)控,具有測溫范圍廣、精度高、環(huán)境適應能力強等特點。
參考文獻:
[1]王奧運,范冰新,潘文強等.基于CAN總線的遠程溫度采集系統(tǒng)[J].山西電子技術(shù),2015⑶19-21.
[2]湯鍇杰,栗燦,王迪等.基于DSB18B20的數(shù)字式溫度采集報警系統(tǒng)設[J].傳感器與微系統(tǒng),2014,33⑶:99-102.
[3]周鵬.基于STC89C52單片機的溫度檢測系統(tǒng)設計[J].現(xiàn)代電子技術(shù),2012,35(22):10-13.
[4]楊盛泉,劉海泉,劉白林.ZigBee與RS485混合網(wǎng)絡的糧情監(jiān)控系統(tǒng)的研究[J].西安工業(yè)大學學報,2016,36(9):749-756.
[5]楊博雄,倪玉華.無線傳感網(wǎng)絡[M].北京:人民郵電出版社,2015.