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