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