基于單片機(jī)的風(fēng)速風(fēng)向檢測(cè)系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:介紹了一種風(fēng)速風(fēng)向傳感器原理,選用LPC921單片機(jī)設(shè)計(jì)了數(shù)據(jù)采集和數(shù)據(jù)傳輸?shù)臋z測(cè)系統(tǒng),給出了系統(tǒng)硬件電路圖和軟件流程圖,分析了硬件設(shè)計(jì)和軟件編程中的一些問(wèn)題。
1 引言
風(fēng)速風(fēng)向測(cè)量是氣象監(jiān)測(cè)的重要組成部分, 測(cè)量風(fēng)速風(fēng)向?qū)θ祟惛玫匮芯考袄蔑L(fēng)能和改善生活生產(chǎn)有積極的影響。
本系統(tǒng)針對(duì)傳感器的特點(diǎn)選用了LPC921 單片機(jī),通過(guò)I/O 口輸出高低電平,通過(guò)放大電路驅(qū)動(dòng)繼電器,控制傳感器電源的開(kāi)關(guān)。利用單片機(jī)的兩個(gè)通用定時(shí)計(jì)數(shù)器, 對(duì)風(fēng)速脈沖進(jìn)行定時(shí)和計(jì)數(shù), 通過(guò)計(jì)算單位時(shí)間內(nèi)的脈沖數(shù)計(jì)算出風(fēng)速。風(fēng)向則是檢測(cè)輸入的風(fēng)向格雷碼, 將格雷碼轉(zhuǎn)換成二進(jìn)制碼, 通過(guò)查表的方式求出風(fēng)向角度, 最終確定風(fēng)向。最后設(shè)計(jì)RS485 通信協(xié)議,保證通信可靠性, 將風(fēng)速風(fēng)向數(shù)據(jù)送往上位機(jī)進(jìn)行顯示和發(fā)布。
2 傳感器工作原理
本系統(tǒng)采用長(zhǎng)春氣象儀器研究所的EC9 -1 系列高收稿日期:2010-03-05動(dòng)態(tài)性能測(cè)風(fēng)傳感器。EC9 - 1 系列傳感器具有動(dòng)態(tài)性能好、線性精度高、靈敏度高、測(cè)量范圍寬、互換性好、抗風(fēng)強(qiáng)度大等特點(diǎn)。
風(fēng)速傳感器的感應(yīng)組件為三杯式風(fēng)杯組件, 當(dāng)風(fēng)速大于0.4m/s 時(shí)就產(chǎn)生旋轉(zhuǎn), 信號(hào)變換電路為霍爾集成電路。在水平風(fēng)力驅(qū)動(dòng)下風(fēng)杯組旋轉(zhuǎn), 通過(guò)主軸帶動(dòng)磁棒盤旋轉(zhuǎn), 其上的數(shù)十只小磁體形成若干個(gè)旋轉(zhuǎn)的磁場(chǎng), 通過(guò)霍爾磁敏元件感應(yīng)出脈沖信號(hào), 其頻率隨風(fēng)速的增大而線性增加。
計(jì)算公式:V=0.1F。
V:風(fēng)速,單位:m/s; F:脈沖頻率,單位:Hz風(fēng)向傳感器的感應(yīng)組件為前端裝有輔助標(biāo)板的單板式風(fēng)向標(biāo)。角度變換采用的是七位格雷碼光電碼盤。
當(dāng)風(fēng)向標(biāo)隨風(fēng)旋轉(zhuǎn)時(shí), 通過(guò)主軸帶動(dòng)碼盤旋轉(zhuǎn), 每轉(zhuǎn)動(dòng)2.8125°,位于碼盤上下兩側(cè)的七組發(fā)光與接收光電器件就會(huì)產(chǎn)生一組新的七位并行格雷碼,經(jīng)過(guò)整形、倒相后輸出。方位- 角度- 格雷碼- 二進(jìn)制碼對(duì)照表是風(fēng)向測(cè)量單片機(jī)編程的重要依據(jù)。傳感器結(jié)構(gòu)組成如圖1 所示。
圖1 傳感器結(jié)構(gòu)組成圖
3 硬件電路設(shè)計(jì)
該風(fēng)速風(fēng)向測(cè)量系統(tǒng)主要由電源模塊、主控制模塊、輸入輸出模塊和通信模塊4 部分構(gòu)成。硬件電路示意圖如圖2 所示。
圖2 硬件電路示意圖
3.1 電源模塊
電源包括LPC921 芯片工作的3.3V 電源和測(cè)風(fēng)傳感器工作的5 V 電源。電源穩(wěn)壓芯片采用AS1117 。
AS1117 是一個(gè)低壓差電壓調(diào)節(jié)器系列,其壓差在1.2V輸出, 負(fù)載電流為800mA 時(shí)為1.2V, 有多個(gè)固定電壓輸出型號(hào),包括3.3V 和5V。通過(guò)電源指示、防雷、穩(wěn)壓和濾波處理,能夠?yàn)楦鱾€(gè)芯片和傳感器提供穩(wěn)定的工作電源。
3.2 主控制模塊和輸入輸出模塊
P89LPC921 是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場(chǎng)合??梢詽M足多方面的性能要求。P89LPC921 采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需2 到4 個(gè)時(shí)鐘周期。6 倍于標(biāo)準(zhǔn)80C51 器件。P89LPC921 集成了許多系統(tǒng)級(jí)的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。
20 腳TSSOP 封裝的LPC921 芯片,除去電源、地、晶振、復(fù)位管腳,還有15 個(gè)可用I/O 口。P0 口的P0.0到P0.6 作為風(fēng)向七位格雷碼的輸入引腳,P1.2 腳同時(shí)是定時(shí)計(jì)數(shù)器0 的引腳, 我們將其作為風(fēng)速脈沖的輸入引腳。P1.0 和P1.1 用作RS485 通信,P1.3 作為RS485通信收發(fā)控制引腳。P1.7 用作繼電器控制引腳,控制傳感器電源的導(dǎo)通和關(guān)閉。同時(shí),P0.4 和P0.5 也是用芯片程序下載接口,在此,用3 腳跳線將P0.4 和P0.5 引出,使其作為復(fù)用引腳。LPC921 采用ICP 下載器下載程序, 下載程序時(shí)要將電源和地與周圍電路隔離, 因此電源和地的引腳應(yīng)使用2 條跳線引出。
LPC921 管腳可承受5V 工作電壓,因此5V 脈沖信號(hào)和格雷碼在經(jīng)過(guò)防雷, 濾波后可以直接接到單片機(jī)引腳上。輸出部分主要是單片機(jī)輸出引腳通過(guò)驅(qū)動(dòng)電路控制繼電器, 在此, 繼電器選用臺(tái)灣欣大繼電器9 4 6 H -1C-5D,工作電壓5V, 驅(qū)動(dòng)電流70mA。驅(qū)動(dòng)電路三極管采用9013H,直流增益150,限流電阻R5 選8.2K 或5 . 6 K。為了防止繼電器的反向感生電動(dòng)勢(shì)燒壞三極管甚至前邊的電路比如單片機(jī), 應(yīng)在繼電器兩端反向并聯(lián)二極管, 該二極管的正極應(yīng)該在三極管集電極那端, 負(fù)極接正5 V 端。繼電器的使用可以降低系統(tǒng)功耗, 延長(zhǎng)傳感器的使用壽命。
主控制模塊電路圖如圖3 所示。
圖3 主控制模塊電路圖
3.3 通信模塊
本系統(tǒng)提供了兩種通信方式, 一種是RS485 通信,采用M A X 4 8 5 E 收發(fā)器, 接口電路如圖3 中所示。另一種是采用短距離無(wú)線方式傳輸, 因?yàn)楹芏嗲闆r下, 風(fēng)速風(fēng)向觀測(cè)點(diǎn)距離數(shù)據(jù)處理中心并不遠(yuǎn), 采用無(wú)線傳輸可以節(jié)省鋪線成本并提高應(yīng)用的靈活性。短距離無(wú)線傳輸采用的是華奧通H A C - U M 數(shù)傳模塊, 傳輸距離可達(dá)1 0 0 0 米, 數(shù)據(jù)輸入接M A X 4 8 5 的A 、B 端輸出, 并由LPC921 提供休眠控制,電源則共用系統(tǒng)電源模塊的3.3 V 或5 V 電源。
4 軟件設(shè)計(jì)
4.1 風(fēng)速測(cè)量程序設(shè)計(jì)
由測(cè)風(fēng)傳感器資料可知,V= 0.1 F,其中F為傳感器輸入到單片機(jī)的脈沖頻率。將T1做為定時(shí)器, 將T0作為計(jì)數(shù)器。T1與T0同時(shí)工作, 如果T1定時(shí)1秒, 則T0計(jì)數(shù)值即為此刻風(fēng)速的10倍。由此可知最終的風(fēng)速測(cè)量精度為0.1 m /s。LPC921 的兩個(gè)定時(shí)計(jì)數(shù)器共有5 種工作模式,本系統(tǒng)選擇模式1,即T0,T1 均為16 位定時(shí)器/ 計(jì)數(shù)器,THn 和TLn 級(jí)聯(lián),無(wú)預(yù)分頻器。
系統(tǒng)選用7.373MHz 外部晶振, 在不預(yù)分頻情況下, 定時(shí)計(jì)數(shù)器工作頻率為:7.373/2MHz。16 位的定時(shí)器在初值為0 的情況下, 溢出一次共計(jì)時(shí)次數(shù)為6 5 5 3 5(0xFFFFH),共計(jì)時(shí)時(shí)間為17.777ms,所以在定時(shí)器中斷56 次之后共計(jì)延時(shí)約1 秒。
風(fēng)速測(cè)量子程序流程圖如圖4 所示。
圖4 風(fēng)速測(cè)量子程序流程圖
4.2 風(fēng)向測(cè)量程序設(shè)計(jì)
風(fēng)向測(cè)量先測(cè)得7 位格雷碼的輸入, 通過(guò)7 位輸入值計(jì)算出格雷碼, 再通過(guò)格雷碼換算成二進(jìn)制碼, 最后通過(guò)查表法得出風(fēng)向角度。
格雷碼(Gray code),又叫循環(huán)二進(jìn)制碼或反射二進(jìn)制碼。格雷碼屬于可靠性編碼, 是一種錯(cuò)誤最小化的編碼方式, 因?yàn)? 自然二進(jìn)制碼可以直接由數(shù)/ 模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號(hào), 但某些情況, 例如從十進(jìn)制的3 轉(zhuǎn)換成4 時(shí)二進(jìn)制碼的每一位都要變, 使數(shù)字電路產(chǎn)生很大的尖峰電流脈沖。而格雷碼則沒(méi)有這一缺點(diǎn), 它是一種數(shù)字排序系統(tǒng), 其中的所有相鄰整數(shù)在它們的數(shù)字表示中只有一個(gè)數(shù)字不同。它在任意兩個(gè)相鄰的數(shù)之間轉(zhuǎn)換時(shí), 只有一個(gè)數(shù)位發(fā)生變化。它大大地減少了由一個(gè)狀態(tài)到下一個(gè)狀態(tài)時(shí)邏輯的混淆。
表1 方位- 角度- 格雷碼- 二進(jìn)制碼對(duì)照表
n 位格雷碼轉(zhuǎn)換到n 位二進(jìn)制碼的邏輯關(guān)系式(B 代表二進(jìn)制碼,R 代表格雷碼):
在C 語(yǔ)言里面實(shí)現(xiàn)風(fēng)向格雷碼到二進(jìn)制碼轉(zhuǎn)換程序如下:
Wind_Tbl 數(shù)組里面依次存儲(chǔ)的是二進(jìn)制碼對(duì)應(yīng)的角度值, 該值來(lái)源于方位- 角度- 格雷碼- 二進(jìn)制碼對(duì)照表, 該表由傳感器資料提供。如表1 所示。
5 結(jié)束語(yǔ)
LPC921 本身自帶一個(gè)全雙工的串行口,使用RS485收發(fā)器可以與外部進(jìn)行485 串行通信。通過(guò)編寫簡(jiǎn)單通信協(xié)議,多個(gè)風(fēng)速風(fēng)向測(cè)量子系統(tǒng)都可以與PC 進(jìn)行數(shù)據(jù)通信。最后在PC機(jī)上編寫上位機(jī)程序, 定時(shí)或主動(dòng)給下位機(jī)發(fā)送請(qǐng)求數(shù)據(jù)命令,下位機(jī)收到命令進(jìn)行地址,命令類型和校驗(yàn)等檢驗(yàn)后給上位機(jī)發(fā)送數(shù)據(jù), 上位機(jī)收到命令后進(jìn)行校驗(yàn), 然后進(jìn)行數(shù)據(jù)存儲(chǔ)和顯示。實(shí)踐證明本系統(tǒng)在測(cè)量風(fēng)速風(fēng)向上有著較高的準(zhǔn)確性和可靠性。