摘 要:對(duì)溫濕度的精確檢測和遠(yuǎn)距離傳輸越來越受到人們的重視,針對(duì)這一情況,研制一種高精度、高穩(wěn)定性、低成本且實(shí)用的分布式環(huán)境溫濕度檢測控制系統(tǒng)顯得非常重要。而利用CAN總線實(shí)現(xiàn)遠(yuǎn)距離節(jié)點(diǎn)間和PC機(jī)的實(shí)時(shí)通信,具有結(jié)構(gòu)簡單、可靠性高、成本低、實(shí)時(shí)性好、安裝維護(hù)方便且便于功能擴(kuò)展等優(yōu)點(diǎn),提高了管理水平和工作效率,所以將CAN總線應(yīng)用于溫濕度控制具有較好的前景。
關(guān)鍵詞:CAN總線;溫濕度;實(shí)時(shí)通信
1 前言
本文設(shè)計(jì)了一個(gè)基于CAN總線的溫濕度智能節(jié)點(diǎn)。該系統(tǒng)由單片機(jī)最小系統(tǒng)、濕度檢測電路、溫度檢測電路、A/D轉(zhuǎn)換電路、顯示電路、CAN控制器、CAN收發(fā)器構(gòu)成。
2 系統(tǒng)總體設(shè)計(jì)
本設(shè)計(jì)是一個(gè)基于CAN總線的溫濕度檢測節(jié)點(diǎn),節(jié)點(diǎn)采集溫濕度模擬信號(hào)經(jīng)A/D轉(zhuǎn)換送入主控制器,并將節(jié)點(diǎn)的主控制器連接在CAN總線上,可實(shí)現(xiàn)遠(yuǎn)程通信和監(jiān)控。系統(tǒng)結(jié)構(gòu)如下圖1所示。
3 硬件設(shè)計(jì)
3.1 單片機(jī)最小系統(tǒng)
單片機(jī)最小系統(tǒng)由單片機(jī)AT89C52、時(shí)鐘電路和復(fù)位電路構(gòu)成[1]。
3.2 溫度檢測電路
本設(shè)計(jì)選用LM35為溫度傳感器,LM35溫度傳感器輸出電壓與攝氏溫標(biāo)的線性度好,而且輸出模擬量信號(hào)適合遠(yuǎn)距離傳輸,LM35輸出與溫度值對(duì)應(yīng)的電壓信號(hào)經(jīng)放大10倍后變?yōu)闃?biāo)準(zhǔn)信號(hào)送往A/D轉(zhuǎn)換電路。
3.3 A/D轉(zhuǎn)換電路
LM35輸出的電壓信號(hào)要轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字信號(hào)才可被單片機(jī)接收,本設(shè)計(jì)選取ADC0809作為A/D轉(zhuǎn)換器即可滿足要求,由于ADC0809的時(shí)鐘信號(hào)為500KHZ,故將單片機(jī)的ALE端接四分頻器后給轉(zhuǎn)換器作為時(shí)鐘。
3.4 濕度傳感器電路
本設(shè)計(jì)的濕度檢測電路由555多諧振蕩器來實(shí)現(xiàn),HS1101傳感器的電容值與溫室濕度成線性關(guān)系,空氣濕度通過555測量振蕩電路后,就轉(zhuǎn)變?yōu)榕c之呈反比例的頻率信號(hào),后將頻率信號(hào)送單片機(jī)的計(jì)數(shù)器即可計(jì)算出濕度值。
3.5 顯示電路
由于智能節(jié)點(diǎn)的需要實(shí)時(shí)顯示室內(nèi)的溫濕度值和報(bào)警信息,數(shù)據(jù)較為復(fù)雜,故選擇LCD1602液晶顯示器,可以顯示16×2 個(gè)字符,具有顯示質(zhì)量高、數(shù)字式接口、體積小、重量輕、功耗低等優(yōu)點(diǎn),可以滿足設(shè)計(jì)的要求。
3.6 CAN接口電路
CAN接口電路主要由CAN控制器SJA1000、光電耦合器6N137和CAN驅(qū)動(dòng)器PCA82C250構(gòu)成。CAN總線控制器的地址/數(shù)據(jù)復(fù)用總線與單片機(jī)的P0口相連,并將中斷輸出到單片機(jī)中斷口,總線控制器串行數(shù)據(jù)輸出線(TX)和串行數(shù)據(jù)輸入線(RX)分別經(jīng)光電耦合電路連接至總線驅(qū)動(dòng)器82C250,總線驅(qū)動(dòng)器通過差分發(fā)送和接收功能的兩個(gè)總線端CANH和CANL連接至CAN總線電纜[2]。
⑴總線控制器。CAN總線控制器提供了與單片機(jī)控制器的數(shù)據(jù)線路接口,單片機(jī)通過對(duì)控制器編程設(shè)置其工作模式,控制其工作狀態(tài),啟動(dòng)CAN報(bào)文的發(fā)送并對(duì)反饋報(bào)文接收予以響應(yīng),即CAN總線控制器實(shí)現(xiàn)了CAN協(xié)議中最復(fù)雜的數(shù)據(jù)鏈路功能。本設(shè)計(jì)的總線控制器選用SJA1000。
⑵光電耦合器。由于總線傳輸距離遠(yuǎn),現(xiàn)場環(huán)境干擾大,為了增強(qiáng)抗干擾能力,在SJA1000與PCA82C250間采用高速光耦6N137實(shí)現(xiàn)總線電氣隔離。為了有效隔離,6N137兩端的電源使用B0505S-1W隔離,而且可以減少CAN總線有效回路信號(hào)的傳輸延遲時(shí)間。
⑶CAN收發(fā)器。CAN總線收發(fā)器實(shí)現(xiàn)了物理層的功能,一方面將控制器發(fā)送信號(hào)轉(zhuǎn)化為符合CAN物理層標(biāo)準(zhǔn)的信號(hào),進(jìn)行放大、傳輸;另一方面將總線上收到的信號(hào)轉(zhuǎn)變?yōu)榭刂破魉芙邮盏碾娖叫盘?hào)。其本質(zhì)是提供了CAN控制器與物理總線之間的接口:即為總線提供差分信號(hào)的發(fā)送功能,為控制器提供差分信號(hào)的接收功能。本設(shè)計(jì)的CAN收發(fā)器選擇PCA82C250。
4 軟件設(shè)計(jì)
節(jié)點(diǎn)程序主要包括主程序、CAN控制器初始化程序、濕度檢測中斷程序、接收程序和發(fā)送程序。其中主程序主要完成中斷初始化、鍵盤掃描、溫度檢測和溫濕度顯示及報(bào)警等功能;CAN控制器初始化程序主要完成SJA1000的初始化設(shè)置;濕度檢測中斷程序完成濕度傳感器的脈沖計(jì)數(shù)及對(duì)應(yīng)濕度的計(jì)算;接收程序由單片機(jī)的外部中斷完成,主要實(shí)現(xiàn)節(jié)點(diǎn)接收?qǐng)?bào)文的處理;發(fā)送程序主要實(shí)現(xiàn)節(jié)點(diǎn)報(bào)文的發(fā)送。
[參考文獻(xiàn)]
[1]謝維成,楊加國,主編.<<單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)>>[M].北京:清華大學(xué)出版社,2006年.
[2]牛躍聽,周立功,方丹.<