基于LabWindows/CVI多點(diǎn)無(wú)線溫度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
實(shí)時(shí)時(shí)鐘電路采用Dallas的高性能、低功耗、帶RAM的I2C總線的串行時(shí)鐘/日歷芯片DS1302。I2C總線通過(guò)使能交叉開(kāi)關(guān)配置在C8051F0 20的P0.0(SDA)和P0.1(SCL),并加上拉電阻4.7 kΩ,完成DS1302的初始化和時(shí)間數(shù)據(jù)的傳輸。
無(wú)線模塊由PT2262編碼電路、PT2272解碼電路和315 MHz無(wú)線發(fā)射模塊組成。PT2262/2272是PTC公司生產(chǎn)的一種CMOS工藝、低功耗、低價(jià)位通用編解碼電路,PT2262/2272最多可有12位(A0~A11)三態(tài)地址端管腳(懸空、接高電平、接低電平),任意組合可提供531 441個(gè)地址碼,本系統(tǒng)從機(jī)地址碼固定且不同,且從機(jī)地址碼和主機(jī)地址碼均由單片機(jī)控制。PT2262最多可有6位數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出。當(dāng)PT2262的17腳為高電平時(shí),315 MHz的高頻發(fā)射電路起振并發(fā)射等幅高頻信號(hào),當(dāng)17腳為低電平時(shí),315 MHz的高頻發(fā)射電路停止振蕩,所以高頻發(fā)射電路完全受控于PT2262的17腳輸出的數(shù)字信號(hào),從而對(duì)高頻電路完成幅度鍵控(ASK調(diào)制)相當(dāng)于調(diào)制度為100%的調(diào)幅。實(shí)際運(yùn)用時(shí)要注意PT2262每次發(fā)射時(shí)至少發(fā)射4組字碼,PT2272只有在連續(xù)兩次檢測(cè)到相同地址碼加數(shù)據(jù)碼時(shí)才會(huì)驅(qū)動(dòng)相應(yīng)的數(shù)據(jù)輸出端為高電平和驅(qū)動(dòng)VT端同步為高電平。
2.3 主機(jī)部分電路
串行通信是一種適用于兩機(jī)之間的通信,通過(guò)通信接口,兩機(jī)的發(fā)送、接收口按照預(yù)定的串口地址、傳輸速率(波特率)、數(shù)據(jù)格式、校驗(yàn)方式、傳輸方向完成數(shù)據(jù)交換。其中RS 232串行通信端口是計(jì)算機(jī)中常見(jiàn)的總線形式,在測(cè)量測(cè)試和儀器控制的過(guò)程中大量使用。然而現(xiàn)在筆記本電腦很少有串口,大多數(shù)PC機(jī)提供USB接口,所以系統(tǒng)采用了一種基于PL2303HX芯片的USB轉(zhuǎn)串口的方法。PL2303HX是Prolific公司推出的USB轉(zhuǎn)RS 232接口的轉(zhuǎn)換芯片,能解決RS 232全雙工異步串行通信與USB功能接口的連接,支持完整的RS 232接口,可編程波特率,并可為外部串行口提供電源,且低功耗、低成本。
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)部分分為單片機(jī)程序設(shè)計(jì)和LabWindows/CVI程序設(shè)計(jì)兩部分。系統(tǒng)總體流程圖如圖3所示。本文引用地址:http://2s4d.com/article/170530.htm
3.1 單片機(jī)程序
單片機(jī)程序分為主機(jī)系統(tǒng)程序和從機(jī)系統(tǒng)程序。
主機(jī)程序主要包括數(shù)據(jù)的無(wú)線發(fā)射、接收和串口通信。從機(jī)程序主要包括溫度、時(shí)間采集,AT24C16芯片的讀/寫和無(wú)線發(fā)射、接收。
MCU與上位PC機(jī)通信協(xié)議如下:
串口設(shè)置:RS 232C或TTL電平、115 200 b/s、8位數(shù)據(jù)位、1位停止位、無(wú)奇偶位;MCU UART端接收來(lái)自上位PC機(jī)的控制指令,也向上位PC機(jī)傳輸來(lái)自各個(gè)從機(jī)采集的溫度數(shù)據(jù)。MCU端發(fā)送數(shù)據(jù)約定如下:
格式:0x55 Temperature Hour Minute Second;其中:0x55為數(shù)據(jù)頭;Temperature為從機(jī)實(shí)際采集的溫度數(shù)據(jù);Hour Minute Second為從機(jī)采集溫度數(shù)據(jù)的時(shí)分秒信息,變量類型均為字符型。
上位PC機(jī)向主機(jī)MCU發(fā)送的數(shù)據(jù)格式如下:
格式:0xAA ChannelAddress;
其中:0xAA為數(shù)據(jù)頭,ChannelAddress為上位PC機(jī)要求上傳溫度數(shù)據(jù)的從機(jī)地址,變量類型均為字符型。
如果上位機(jī)需要更改從機(jī)的地址信息,則發(fā)送命令格式如下:
格式:0xBB ChannelAddressA ChannelAddressB;其中:0xBB為數(shù)據(jù)頭;ChannelAddressA為上位PC機(jī)要求上傳溫度數(shù)據(jù)的從機(jī)原地址;ChannelAddressB為上位PC機(jī)要求上傳溫度數(shù)據(jù)的從機(jī)新地址,變量類型均為字符型。
3.2 LabWindows/CVI上位PC機(jī)界面程序
LabWindows/CVI有許多標(biāo)準(zhǔn)函數(shù)庫(kù)。串口通信設(shè)計(jì)時(shí),采用RS 232函數(shù)庫(kù)提供的串口通訊控制函數(shù)和I/O函數(shù)。用戶通過(guò)選擇界面上相應(yīng)區(qū)域的按鈕,按下溫度采集按鈕,此時(shí)上位PC機(jī)發(fā)送一次該區(qū)域溫度采集指令,下位機(jī)則傳送該區(qū)域存儲(chǔ)的溫度數(shù)據(jù),上位機(jī)將收到的溫度數(shù)據(jù)保存到數(shù)組中,再通過(guò)畫圖函數(shù)繪制動(dòng)態(tài)溫度曲線。該上位PC機(jī)軟件操作界面可以將不同從機(jī)的溫度數(shù)據(jù)顯示在同一界面上,方便用戶進(jìn)行溫度數(shù)據(jù)對(duì)比。實(shí)際顯示效果如圖4所示。
4 結(jié)語(yǔ)
本系統(tǒng)在硬件和軟件上都很好地實(shí)現(xiàn)了既定要求,既能夠修改從機(jī)地址碼,又能動(dòng)態(tài)顯示溫度情況,對(duì)不同區(qū)域的溫度采集也較為準(zhǔn)確,操作界面便于管理人員使用。實(shí)驗(yàn)結(jié)果表明,以無(wú)線收發(fā)裝置取代電纜線傳輸數(shù)據(jù),可降低功耗,節(jié)約成本,安裝簡(jiǎn)單靈活,靈敏度高,可靠性強(qiáng),可移植性強(qiáng)。空曠環(huán)境下,無(wú)線傳輸距離超過(guò)150 m;遮擋情況下,無(wú)線信號(hào)可繞過(guò)多層建筑物??梢栽黾又欣^站,以增加傳輸距離。數(shù)據(jù)編碼組數(shù)可以任意擴(kuò)展。
評(píng)論