CC2540和SHT11的無線溫濕度采集系統設計
巴倫匹配電路即平衡不平衡轉換器,使得單極天線接收的信號轉為雙路差分信號時,維持天線的輻射效率。巴倫匹配電路如圖4所示。
3.3 傳感器模塊
傳感器模塊采用數字溫濕度傳感器SHT11,該芯片主要特點有:
◆提供二線數字串行接口SCK和DATA,接口簡單,支持CRC傳輸校驗,可靠性高;
◆高集成度,將溫度感測、濕度感測、信號變換、A/D轉換等功能集成到單一芯片上;
◆提供溫度補償的濕度測量值和高質量的露點計算功能,采用CMOS工藝,可適應潮濕的測量環境。SHT11溫濕度傳感器的典型應用電路如圖5所示。
4 軟件設計
4.1 BLE協議棧
本設計通過使用CC2540芯片所具有的藍牙4.0 BLE協議實現藍牙設備的互聯以及無線數據的發送。TI公司推出的藍牙4.0 BLE協議棧包含兩部分:主機和控制器。協議棧的實現方式采用分層的思想,控制器部分包括物理層、鏈路層、主機控制接口層;主機部分包括邏輯鏈路控制及自適應協議層、安全管理層、屬性協議層、通用訪問配置文件層、通用屬性配置文件層;上層可以調用下層提供的函數來實現需要的功能。藍牙4.0 BLE協議棧的結構如圖6所示。
藍牙4.0 BLE協議棧中,有3個變量至關重要:
①tasksCnt:該變量保存了任務的總個數。該變量的聲明為“uint8 tasksCnt”,其中uint8的定義為“typedef unsigned char uint8”。
②tasksEvents:這是一個指針,指向了事件表的首地址。該變量的聲明為“uint16*tasksEvents”,其中uint16的定義為“typedef unsigned short uint16”。
③tasksArr:這是一個數組,該數組的每一項都是一個函數指針,指向了事件處理函數。該數組的聲明為“pTaskEventHandlerFn tasksArr[]”,其中pTaskEventHandlerFn定義如下:
typedef unsigned short(*pTaskEventHandlerFn)(unsignedchar task_id,unsigned short event)
這是定義了一個函數指針。因此,tasksArr數組的每一項都是一個函數指針,指向了對應的事件處理函數。
可以將BLE協議棧的運行機制總結為:通過不斷地輪詢事件表來判斷是否有事件發生,如果有事件發生,則查找函數表找到對應的事件處理函數對事件進行處理。事件表使用數組來實現,數組的每一項對應一個任務的事件,每一位表示一個事件;函數表使用函數指針數組來實現,數組的每一項是一個函數指針,指向了事件處理函數。
評論