關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于無線傳感器網絡的大棚環境參數采集系統

        基于無線傳感器網絡的大棚環境參數采集系統

        作者: 時間:2012-06-04 來源:網絡 收藏

        命令模式適用于從提取大批量數據時使用,此時處于停止測量狀態,其功耗小于3.5 mW。流模式是工廠默認模式,此時每秒產生2個測量數據,除了正處于測量的過程中以外,傳感器會及時處理收到的命令,所以傳感器在處理命令時可能會出現100 ms的延遲,這種工作模式的功耗為3.5 mW。查詢模式時傳感器并不產生數據,但是周期性的測量在后臺繼續,當傳感器收到讀取命令時,會將最近的測量值轉換成數據送出。查詢模式的功耗與查詢頻率有關,但是幾乎接近3.5mW。
        文中將COZIR的通訊口接到單片機的EUART0口,COZIR工作在查詢模式(Polling Mode)。

        2 軟件設計
        軟件的開發為Keil uVision3,使用C51語言。通信部分采用標準MODBUS協議,為點對多點的通信方式。主機采用同樣的電路,去除傳感器部分,增加USB與UART橋接芯片CP2102,通過USB口連接PC機。PC機在安裝Silicon Labs公司提供的免費驅動程序后,通過USB接口虛擬出一個COM口。從機為測量節點,每一個節點都擁有一個唯一的地址,工作方式為主站輪詢,從站監聽的方式。節點軟件的主要流程如圖3所示。

        本文引用地址:http://www.104case.com/article/160513.htm

        b.jpg


        2.1 程序流程
        初始化時,MCU進入掉電模式,Timer3選擇32768 kHz晶振作時鐘源,定時1 min中斷。Si4432進入睡眠模式,開啟Si4432的Wake-up Timer,定時31s。有兩個事件會將MCU喚醒:Timer3定時和Si4432的nIRO引起的外部中斷。
        在Timer3的中斷服務子程序中做兩件工作:1)軟時鐘計時。由于對實時性要求不高,時鐘可以分鐘為最低計時單位。并且上位機可定期通過寫指令對時鐘進行校準;2)數據。從溫濕度傳感器和CO2濃度傳感器讀取數據并按規定格式存放在規定緩沖區,等待上位機讀取。
        MCU的INT0設置為低電平觸發,連接Si4432的nIRQ腳,每31秒Si4432的Wake-up Timer使得nIRQ腳產生低電平,從而引發MCU外部中斷。在中斷服務子程序中MCU通過SPI口讀取Si4432的iswdet和ipreaval位,以判斷是否接收到前導碼或同步碼。若有,則命Si4432進入RX狀態,繼續接收數據并處理,否則回到休眠狀態。上位機要喚醒節點,需連續發40 s(大于31 s)喚醒信號,這對于供電充分的上位機來說不是問題。
        2.2 通信協議
        通信協議采用MODBUS協議的RTU傳輸模式。MODBUS協議是免費的用于工業現場的總線協議。在我國,MODBUS已經成為國家標準GB/T195 82-2008。可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。
        在本系統中,主機(PC)直接面對的是虛擬COM口,因此可方便地采用MODBUS協議,主機界面可采用簡單的串口調試工具,如SSCOM等,也可以由用戶自行開發。通過USB口連接主機的無線節點與從機之間采用透明傳輸,由上向下傳輸數據前需增加喚醒過程。從機(無線測量節點)向上發送數據時,則按照MODBUS幀格式組建數據包連續發送。
        MODBUS通信使用主——從技術,即僅一個設備(主設備)能初始化傳輸(查詢)。其他設備(從設備)根據主設備查詢提供的數據作出相應反應。主設備可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一個消息作為回應,如果是以廣播方式查詢的,則不作任何回應。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兰溪市| 巴马| 托克逊县| 广饶县| 南岸区| 土默特左旗| 新化县| 昆山市| 兴仁县| 大宁县| 安义县| 马尔康县| 铜山县| 即墨市| 遵义县| 镇远县| 阿图什市| 黑河市| 绍兴县| 平舆县| 陆河县| 方城县| 沂南县| 新干县| 乌兰察布市| 黄平县| 马山县| 安吉县| 耿马| 济源市| 金平| 南漳县| 棋牌| 内江市| 文水县| 通山县| 屏边| 杭州市| 乌什县| 武平县| 温宿县|