a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于CY7C68013A的無線多路溫度采集系統設計與開發

基于CY7C68013A的無線多路溫度采集系統設計與開發

作者: 時間:2016-10-29 來源:網絡 收藏

0 引言

本文引用地址:http://www.j9360.com/article/201610/308667.htm

系統在現代工業和農業領域有著極其廣泛的應用,在某些特殊環境下,采集的溫度必須通過無線電波才能傳輸出來。傳統的無線系統一般只能在終端進行顯示,沒有上位機數據采集存儲功能。本文設計與開發了一套多路系統,該系統由溫度采集端和溫度接收端兩部分組成。溫度采集端由DS18B20溫度傳感器,AT89C52單片機和無線發射模塊組成,八枚DS18B20溫度傳感器獲取數字溫度信號后,傳輸給主控AT89C52單片機,然后通過無線模塊將數據通過2.5GHz的載波發送出來。接收端由單片機、LCD12864顯示模塊、無線接收模塊和上位機組成。NRF24L01無線接收模塊將溫度采集端發送過來的數據送至單片機,然后通過USB2.0總線上傳給上位機進行溫度數據采集和存儲,同時把溫度數據送至LCD12864進行實時顯示。

1 系統硬件設計

系統總體框架如圖1所示。溫度采集端的8枚溫度傳感器采集將溫度數據送入主控芯片AT89C52,再通過NRF24L01無線模塊將數據發送出來。溫度接收端的NRF24L01無線模塊將收到的溫度數據送至單片機,然后通過USB2.0總線提交給上位機。

a.jpg

(1)溫度采集端。溫度采集端由8枚DS18B20溫度傳感器,AT89C52單片機和NRF24L01無線發射模塊組成。8枚DS18B20溫度傳感器共用一個總線與AT89C52單片機的P2.2口連接。每個DS18B20都具有唯一的64位二進制ROM代碼作為識別序列號,利用唯一的序列號可以分別讀出各個DS18B20的溫度,這在多路采集中應用非常方便,大大減少了I/O口的

占用。利用DS18B20的此特征,本系統也可以非常方便的擴展為16路或32路溫度采集。NRF24L01無線模塊與單片機的P3.2口~P3.7口連接,負責將8路溫度數據通過2.5GHz的載波發送出來。本文所采用的是基于挪威VLSI公司出品的無線數字傳輸芯片NRF24L01開發的無線收發模塊,其豐富資料,硬件上無需附加其他元件,直接通過相應接口與單片I/O端口相連即可由單片機控制使用,非常方便。

b.jpg

(2)CY7C68013A系統模塊。溫度接收端的主控芯片為CY7C68013A,其為美國CYPRESS公司推出的功能強大的USB2.0接口芯片,內建增強型51單片機,是USB2.0設備常用的主控芯片。CY7C68013A的系統模塊電路圖如圖3所示,其中LT1763CS8—3.3為3.3V穩壓芯片,負責將USB接口的5V電壓轉換為CY7C68013A工作所需的3.3V電壓。AT24C08為I2C總線的E2PROM存儲芯片,其容量為8K,用來存儲CY7C68013A的固件程序。

c.jpg

(3)LCD顯示模塊與無線接收模塊。為了讓溫度接收端實時直觀顯示溫度數據,本系統設置了LCD12864液晶模塊,LCD12864工作在串行顯示模式,由CY7C68013A通過PD0~PD2端口控制顯示,PA0~PA7端口控制數據的傳輸。NRF24L01無線接收模塊與CY7C68013A的PB0~PB5端口連接,負責接收溫度采集端發來的無線溫度數據。圖4 LCD顯示模塊與無線接收模塊電路圖。

d.jpg

2.系統軟件設計

系統軟件的開發包含了溫度采集端AT89C52和溫度接收端CY7C68013A的固件程序開發、CY7C68013A的windows驅動程序開發以及USB上位機應用程序的開發。對于溫度接收端的CY7C68013A的固件、驅動和上位機的程序的開發,我們可以利用CYPRESS公司提供的開發包,縮短開發周期,提高開發效率。

溫度采集端的AT89C52的固件程序主要完成對8枚DS18B20溫度采集的控制和對NRF24L01無線模塊數據發送的控制。為此我們采用TC51語言編寫,開發環境為Keil uVision 4.0。其固件程序的主要思路為:先初始化NRF24L01,然后進入大循環,從DS18B20讀取溫度數值(采用默認12位精度),將得到的溫度數據(2字節16位)進行標記,將此數據表示的溫度路數標記在高4位(1~8路的數據分別對應為0000~0111),然后將數據寫入發射數組,再將溫度發射出去,經過延時溫度發送完畢。然后循環切換到下一路DS18B20的ROM地址,繼續下一路溫度的讀取與發射。

CY7C68013A的固件程序主要完成對NRF24L01無線模塊的通信控制,將其接收的無線數據傳送給LCD12864進行實時顯示和上傳給USB上位機。對于CYTC68013A的固件程序的開發,我們采用了C51語言編寫,開發環境為Keil uVision4.0,并利用了CYPRESS公司提供的固件程序框架,免去了編寫一些通用性比較強、模式化的程序,提高了開發效率。在驅動程序開發方面,我們直接利用了CYPRESS公司的SDK中為CY7C68013A提供的通用設備驅動程序CYUSB.SYS,其不僅完全符合Windows Driver Foundation規范,而且還具有兼容USB1.1和USB2.0設備、支持即插即用和支持高帶寬數據傳輸等優點。我們只對CYUSB.SYS通用驅動程序相匹配的CYUSB.INF文件進行相應的簡單修改,使其符合我們USB硬件的VID和PID數值。在上位機的應用程序的開發方面,我們同樣利用CYPRESS公司SDK中為CY7C68013A提供的功能強大的C++編程接口:CyAPLLib庫函數。我們選用了Microsoft Visual C++6.0作為開發工具,通過CyAPLLib函數與CYUSB.SYS設備驅動程序傳遞溫度數據,并將8路溫度數據存入了相應的服務器上的SQL2005數據庫,從而實現了溫度數據的實時采集和儲存。

3.總結

本文針對目前無線測溫系統的不足,利用CY7C68013A芯片、NRF24L01無線模塊、DS18B20數字溫度傳感器等元件設計與開發了一套多路溫度采集系統。該系統具有以下優點:溫度米集端利用8個DS18B20數字溫度傳感器進行并聯,共用一根I/O總線,不僅大幅度節約了端口資源,而且非常容易擴展為16路和32路溫度采集;溫度接收端采用CY7C68013A芯片為主控CPU,不僅能實現8路溫度數據的LCD實時顯示,而且可以與上位機直接進行USB通信,通過上位機的應用程序可以非常方便的對溫度數據進行圖形顯示、計算分析和上傳數據服務器進行儲存。經實物測試,該系統測溫精度可達0.1攝氏度,距離可達50米,能同時采集8路溫度數據。



評論


相關推薦

技術專區

關閉