遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)_第1頁
遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)_第2頁
遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)_第3頁
遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)_第4頁
遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、本科生畢業(yè)設計(論文)論文題目遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)學生姓名 學號 專業(yè)電子信息工程班級電子081指導教師 職稱 遠程測溫無線傳輸系統(tǒng)的設計與實現(xiàn)摘 要溫度在工農(nóng)業(yè)生產(chǎn)、現(xiàn)代科學研究及高新技術(shù)開發(fā)過程中是一個極其普遍而重要的測量參數(shù)。隨著無線傳感器網(wǎng)絡技術(shù)的發(fā)展和普及,各種測溫系統(tǒng)也向無線化、智能化、低功耗方向發(fā)展。無線傳感器網(wǎng)絡技術(shù)綜合了傳感器技術(shù)、嵌入式計算技術(shù)、通信技術(shù)等,它的出現(xiàn)為隨機性地研究數(shù)據(jù)提供了方便。傳感器網(wǎng)絡節(jié)點基本由四個單元構(gòu)成:傳感單元、處理單元(包括cpu、嵌入式操作系統(tǒng)等)、通信單元(無線通信模塊)、電源。本設計中處理單元采用ti公司的低功耗單片機msp43

2、0149,通信單元采用由低功耗cc1101無線通信模塊,詳細介紹了軟硬件實現(xiàn)方法,重點介紹了msp430單片機控制溫度傳感器處理數(shù)據(jù)、控制cc1101模塊進行無線通信的軟件設計,并通過實際測試驗證了方案的可行性。采用無線傳輸方式既節(jié)省了布線,又可以迅速布局在需要測量的地方,是遠程測溫系統(tǒng)的一個很好的解決方案。關鍵詞:溫度,無線傳感網(wǎng)絡技術(shù),msp430,cc1101the design and realization of temperature wireless transmission system based on the msp430abstracttemperature in the

3、 industrial and agricultural production, modern scientific research and high-tech development process is an extremely common and important measurement parameter. with the development and popularity of wireless sensor network technology, a variety of temperature measurement systems go to the developm

4、ent of wireless, intelligent, low-power direction. wsn technology integrates sensor technology, embedded computing technology, communications technology, its emergence convenients the research of data at random.sensor network is consisted of four units: sensing unit, processing unit (cpu, embedded o

5、perating system), the communication unit (wireless communication module), the power supply. processing unit of this design uses tis low-power microcontroller msp430149, the communication unit adopts the low-power cc1101 wireless communication module.and the design details the hardware and software i

6、mplementation, focuses on the msp430s control of temperature sensor to process data, control of cc1101 module for wireless communications, software design, and tests the feasibility of the program. the wireless transmission not only saves wiring but also can quickly layout where measurement is.it is

7、 a good solution for remote temperature measurement system.keywords: temperature,wsn, msp430,cc1101目 錄第一章 緒論-1 1.1 課題研究背景-11.2 無線傳感網(wǎng)絡技術(shù)發(fā)展及現(xiàn)狀-1 1.3 msp430單片機概述-11.3.1 msp430系列單片機的特點-2 1.3.2 msp430單片機的iar開發(fā)環(huán)境-31.4 cc1101概述-31.5 本課題任務與意義-4第二章 硬件設計-52.1硬件系統(tǒng)整體結(jié)構(gòu)-52.2電源設計-62.3 溫度傳感電路-62.3.1 ds18b20概述-72.3

8、.1 溫度傳感電路設計-72.4 通信模塊電路-8第三章 軟件設計-11 3.1 溫度傳感器與430單片機之間軟件編程-113.2 msp430控制cc1101傳輸和接收-15 3.2.1 寄存器配置-163.2.2 讀寫操作-173.2.3 控制cc1101發(fā)射接收過程-183.3 msp430控制液晶顯示-19第四章 總結(jié)與展望-21 4.1 系統(tǒng)的可行性驗證-214.2總結(jié)與展望-21參考文獻-22致謝-23第一章 緒論1.1 課題研究背景溫度是關于物體冷熱程度的度量,是自然界主要的物理量之一。而溫度的測量是工業(yè)、農(nóng)業(yè)、國防和科研等部門最普遍的測量項目,溫度測量儀現(xiàn)己廣泛應用于農(nóng)業(yè)實驗室

9、,工業(yè),環(huán)保,衛(wèi)生防疫,倉儲運輸,博物館,溫室等領域,因此溫度測量技術(shù)的研究是一個很重要的課題。而面對一些特殊的測量對象,比如在發(fā)生故障時由于電流過大或其他原因引起溫度上升而導致電器損壞的強電系統(tǒng),需要監(jiān)測爐內(nèi)溫度的的旋轉(zhuǎn)爐,這些系統(tǒng)都不能用于有線數(shù)據(jù)傳輸。在某些環(huán)境惡劣的工業(yè)環(huán)境,以人工方式直接操作設置儀表溫度也不現(xiàn)實,因此采用無線方式進行溫度檢測尤為必要。隨著無線通訊技術(shù)的發(fā)展與廣泛應用,遠程傳輸技術(shù)正朝著低功耗、多功能化、微型化、智能化、網(wǎng)絡化、無線化的方向發(fā)展。1.2 無線傳感網(wǎng)絡技術(shù)發(fā)展及現(xiàn)狀無線傳感網(wǎng)絡技術(shù)是傳感器技術(shù)、通信技術(shù)、嵌入式技術(shù)發(fā)展的產(chǎn)物,它將信息采集、傳輸和處理集于一

10、體,為隨機性地研究數(shù)據(jù)提供了方便,無線傳感網(wǎng)絡技術(shù)正成為現(xiàn)代信息技術(shù)中一個熱門的研究領域,受到廣泛關注。多年來經(jīng)過不同領域研究人員的研究,無線傳感網(wǎng)絡技術(shù)在軍事領域、精細農(nóng)業(yè)、安全監(jiān)控、環(huán)保監(jiān)測、建筑領域、醫(yī)療監(jiān)護、工業(yè)監(jiān)控、智能交通、物流管理、自由空間探索、智能家居等領域的應用得到了充分的肯定和展示。在目前看來能量供給、可靠性、微型化是制約傳感器網(wǎng)絡技術(shù)應用的最大問題。傳感器節(jié)點通常由自身攜帶的電池供電,能量有限,而且由于條件的限制,難以在使用過程中給節(jié)點更換電池,通過采用低頻可以減少射頻設備功耗,但頻率越低對應天線尺寸越大而不便于節(jié)點微型化。能量獲取與存儲容量與設備體積呈正比,充足的能源與

11、微型化設計之間的矛盾難于調(diào)和。這些技術(shù)問題還有待解決,相關的研究有待深入。而我國在這方面起步晚,無線傳感網(wǎng)絡技術(shù)方興未艾,要想讓其更好地為人們生活服務,不僅需要研究人員開展廣泛的應用系統(tǒng)研究,更需要政府的引導,企業(yè)的積極參與。因此本課題的研究具有十分重要的意義。1.3 msp430單片機概述msp430系列單片機是德州儀器(ti)1996年開始推向市場的一種16位超低功耗、具有精簡指令集(risc)的混合信號處理器。稱之為混合信號處理器,是由于其針對實際應用需求,將多個不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個芯片上,以提供“單片”解決方案。由于低功耗的特點該系列單片機多應用于需要電

12、池供電的便攜式儀器儀表中。本設計選用是ti公司最近推出的msp430系列超低功耗微控制器中的msp430f1491。 圖1.1 msp430f149內(nèi)部結(jié)構(gòu)圖1.3.1 msp430f149系列單片機的特點(1) 豐富的片內(nèi)資源圖1.1是msp430x149單片機的內(nèi)部結(jié)構(gòu)圖,從中可以看出msp430f149單片機內(nèi)部集成了12位模數(shù)轉(zhuǎn)換器,內(nèi)部溫度傳感器,16位定時器a和定時器b,串行異步通信端口uarto和 uart 1(軟件可選擇uart/spi模式),硬件乘法器,多達48位的通用io端口,60kb的flash程序空間和2kb的數(shù)據(jù)空間等諸多外設,是msp430系列單片機的典型代表。其中

13、,看門狗可以使程序失控時迅速復位;模擬比較器進行模擬電壓的比較,配合定時器,可設計出 a/d 轉(zhuǎn)換器;12/14位硬件a/d轉(zhuǎn)換器有較高的轉(zhuǎn)換速率,最高可達200kbps,能夠滿足大多數(shù)數(shù)據(jù)采集應用;16 位定時器具有捕獲、比較功能,大量的捕獲、比較寄存器,可用于事件計數(shù)、時序發(fā)生、pwm 等;有的器件更具有可實現(xiàn)異步、同步及多址訪問串行通信的接口,可方便實現(xiàn)多機通信等應用;具有較多的i/o 端口,達48條i/o 口線;p1、p2端口能夠接收外部上升沿或下降沿的中斷輸入;能直接驅(qū)動液晶多達160 段;硬件iic串行總線接口實現(xiàn)存儲器串行擴展;以及為了增加數(shù)據(jù)傳輸速度,而采用直接數(shù)據(jù)傳輸(dma

14、)模塊。msp430 系列單片機的這些片內(nèi)外設為系統(tǒng)的單片解決方案提供了極大的方便4。(2) 超低功耗msp430 單片機之所以有超低的功耗,是因為其在降低芯片的電源電壓和靈活而可控的運行時鐘方面都有其獨到之處。首先,msp430 系列單片機的電源電壓采用的是1.83.6v 電壓。因而可使其在1mhz的時鐘條件下運行時芯片的電流最低會在165a左右,ram保持模式下的最低功耗只有0.1a。其次,獨特的時鐘系統(tǒng)設計。在msp430 系列中有兩個不同的時鐘系統(tǒng):基本時鐘系統(tǒng)、鎖頻環(huán)(fll和fll+)時鐘系統(tǒng)和dco數(shù)字振蕩器時鐘系統(tǒng)??梢灾皇褂靡粋€晶體振蕩器(32768hz),也可以使用兩個晶體

15、振蕩器。由系統(tǒng)時鐘產(chǎn)生cpu和各功能所需的時鐘,并且這些時鐘可以在指令的控制下,打開和關閉,從而實現(xiàn)對總體功耗的控制5。由于系統(tǒng)運行時開啟的功能模塊不同,即采用不同的工作模式,芯片的功耗有著顯著的不同。在系統(tǒng)中共有一種活動模式(am)和五種低功耗模式(lpm0lpm4)。在實時時鐘模式下,可達2.5a,在ram保持模式下,最低可達0.1a 。(3) 處理能力強、運算速度快相比于8位的51系列單片機,msp430系列單片機是一個16位的單片機,數(shù)據(jù)處理更為有效。它采用了精簡指令集(risc)結(jié)構(gòu),具有豐富的尋址方式(7 種源操作數(shù)尋址、4 種目的操作數(shù)尋址)、簡潔的27條內(nèi)核指令以及大量的模擬指

16、令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算;還有高效的查表處理指令。這些特點保證了可編出高效率的源程序。msp430 系列單片機能在25mhz晶體的驅(qū)動下,實現(xiàn)40ns的指令周期,以及多功能的硬件乘法器(片內(nèi)硬件乘法器支持四種乘法運算,能實現(xiàn)乘加運算)相配合,能實現(xiàn)數(shù)字信號處理的某些算法(如fft等)。(4) 適應能力強msp430f149單片機的具有超寬電源電壓范圍:1.83.6v。功耗特別省,一顆電池可工作10年,在液晶顯示時也能達到0.8a的低電源消耗。溫度范圍使用范圍廣:4085。 1.3.2 msp430單片機的iar開發(fā)環(huán)境msp430 系列有opt 型、flash 型和r

17、om 型三種類型的器件,這些器件的開發(fā)手段不同。對于opt 型和rom 型的器件是使用仿真器開發(fā)成功之后燒寫或掩膜芯片;對于 flash 型則有十分方便的開發(fā)調(diào)試環(huán)境,因為器件片內(nèi)有jtag調(diào)試接口,還有可電擦寫的 flash 存儲器,因此采用先下載程序到 flash 內(nèi),再在器件內(nèi)通過軟件控制程序的運行,由jtag 接口讀取片內(nèi)信息供設計者調(diào)試使用 5。而本設計中msp430f149是flash型器件,采用iar軟件開發(fā)環(huán)境,結(jié)合jtag 接口技術(shù),為本設計軟件開發(fā)提供了方便。1.4 cc1101概述cc1100是全球首款可同時實現(xiàn)收發(fā)的射頻芯片,以其獨特的無線電喚醒技術(shù)而具有20ua的超低

18、功耗,應用十分廣泛。cc1100是一種低成本真正單片的uhf收發(fā)器,電路主要設計為315,433,868和915mhz的ism(工業(yè),科學和醫(yī)學)和srd(短距離設備)頻率波段,也可以通過軟件設置為300-348mhz, 400-464 mhz和800-928 mhz的其他頻率。cc1101收發(fā)器集成了一個高度可配置的調(diào)制解調(diào)器,這個調(diào)制解調(diào)器支持不同的調(diào)制格式,cc1100數(shù)據(jù)速率支持1.2kbps500kbps的可編程控制,最高可達500kbps。通過開啟集成在調(diào)制解調(diào)器上的前向誤差校正選項,能使性能得到提升。cc1100工作電壓范圍寬,在1.83.6 v之間均可正常工作,完全可以采用電池

19、供電,功耗極低,發(fā)送模式時,僅需20ma(視發(fā)射功率而定),接收狀態(tài)時僅需15ma。同時有很高的接收靈敏度(-110dbm/1.2kbps),cc1100在所有頻段提供10dbm的輸出功率,.輸出功率多級可調(diào),可以選擇多種調(diào)試方式,鏈接性能較好,傳輸距離長。并且具有許多有用的功能:數(shù)據(jù)的自動組包與拆包、獨立的發(fā)送/接收fifo、空閑信道評估功能、自動喚醒功能、rssi功能、自動的前向糾錯(fec), crc校驗、交織以及白化功能。高效的spi接口:所有的寄存器能用一個“突發(fā)”轉(zhuǎn)換器控制,可編程前導質(zhì)量指示器及在隨機噪聲下改進的針對同步詞匯偵測的保護,支持傳輸前自動清理信道訪問(cca),即載波

20、偵聽系統(tǒng),這些功能非常適用于無線數(shù)據(jù)傳輸。cc1100的主要應用有:極低功率uhf無線收發(fā)器,315/433/868和915mhz ism/srd波段系統(tǒng),amr-自動儀表讀數(shù),電子消費產(chǎn)品,rke-兩路遠程無鍵登錄,低功率遙感勘測,住宅和建筑自動控制,無線警報和安全系統(tǒng),工業(yè)監(jiān)測和控制以及無線傳感器網(wǎng)絡2。本設計選用cc1101,cc1101在cc1100的基礎上性能的主要改善部分有:改善雜散響應;更緊密的相位噪聲,更好的改善鄰道功率(acp)的性能;飽和電平輸入更高;更高效能的功率輸出;連續(xù)頻率波段的擴展。1.5 本課題任務與意義本課題的任務是通過msp430f149單片機控制cc1101

21、無線通信模塊實現(xiàn)遠距離溫度傳輸,并且在接收端用1602液晶顯示溫度。基于無線傳感網(wǎng)絡技術(shù)向低功耗、微型化、智能化發(fā)展趨勢的考慮,選用業(yè)界公認的低功耗器件msp430f149單片機和cc1101芯片,合理利用了msp430單片機的中斷、運算等功能,借助于c語言編程,對耗能較低的cc1101模塊進行收發(fā)控制,提高了電池的壽命,增加了系統(tǒng)可靠運行的時間。本設計完成的運程測溫系統(tǒng),經(jīng)過進一步改善,能廣泛應用于工業(yè)生產(chǎn)、物流運輸、倉庫管理、農(nóng)業(yè)現(xiàn)代化管理等眾多領域,因此本設計的研究具有十分重要的意義。第二章 硬件設計2.1 硬件系統(tǒng)的總體結(jié)構(gòu)液晶顯示cc1101通信模塊模塊cc1101通信模塊模塊msp

22、430單片機msp430單片機溫度傳感器圖2.1 系統(tǒng)結(jié)構(gòu)圖如圖2.1是系統(tǒng)的結(jié)構(gòu)方框圖,系統(tǒng)由四個模塊組成:溫度傳感模塊、微處理器模塊、無線通信模塊、電源模塊。溫度傳感器采集溫度數(shù)據(jù)送至msp430單片機處理,單片機將數(shù)據(jù)傳送至cc1101發(fā)射模塊并控制其發(fā)射,接收端通信模塊將接收到的數(shù)據(jù)送至單片機,單片機經(jīng)處理控制1602液晶顯示溫度數(shù)據(jù)。以下是發(fā)射接收模塊電路原理圖:圖2.2 發(fā)射模塊電路原理圖圖2.3 接收模塊電路原理圖2.2 電源設計本設計采用5v電池,而msp430f149單片機與cc1101芯片的供電電壓為1.83.6v,所以需要電平轉(zhuǎn)換,采用8位的雙向電平轉(zhuǎn)換器件sn74lvc

23、4245,支持3.3v與5v電平之間的雙向轉(zhuǎn)換。mcu與sn74lvc4245的連接關系示意圖如圖所示圖2.4 電平轉(zhuǎn)換電路2.3 溫度傳感電路2.3.1 ds18b20概述溫度傳感器正從模擬式向數(shù)字式、從集成化向智能化、網(wǎng)絡化的方向發(fā)展。本設計采用的溫度傳感器是一線式數(shù)字溫度傳感器ds18b20,它具有以下特點:獨特的單線接口方式: 如圖所示是ds18b20的引腳圖,ds18b20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊。圖2.5 ds18b20的引腳圖不需要任何外圍元件:與傳統(tǒng)的熱敏電阻相比,ds18b20能夠直接讀出被側(cè)溫度,因此不需要ad轉(zhuǎn)換電路??捎脭?shù)

24、據(jù)線供電,電壓范圍: +3.05.5v側(cè)溫范圍:一55十125。固有測溫分辨率為0.5。并且可根據(jù)實際要求通過簡單的編實現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93. 75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量。支持多點組網(wǎng)功能:多個ds18b20可以并聯(lián)在惟一的三線上,實現(xiàn)多點側(cè)溫。負壓特性:電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。2.3.2 溫度傳感電路設計圖2.6為ds18b20與單片機的連接電路圖,將msp430f149單片機的p2.4端口與ds18b20的dq端連接,通過在單片機的io端口模擬1-wire協(xié)議的時序?qū)崿F(xiàn)對ds18b20的讀寫,硬件電路非常簡潔。圖

25、2.6 ds18b20與單片機連接電路圖ds18b20供電方法有兩種,第一種是采用寄生電源的方法,即通過dq引腳在i/o或vdd引腳處于高電平時“偷”能量,向ds18b20提供電源。寄生電源有兩個好處:(1) 進行遠距離測溫時,無需本地電源,可以在沒有常規(guī)電源的條件下讀rom。但是要想使ds1820能夠進行精確的溫度轉(zhuǎn)換,i/o線必須在轉(zhuǎn)換期間保證供電。由于ds1820的工作電流達到1ma,所以僅靠上拉電阻提供電源是不行的,當幾只ds18b20掛在同一根i/o線上并想同時進行溫度轉(zhuǎn)換時,這個問題變得更加尖銳。另外,溫度高于100 時不推薦使用寄生電源,因為ds18b20在這種溫度下表現(xiàn)出的漏電

26、流比較大,通訊可能無法進行。所以本設計采用的供電方法是從vdd引腳接入一個外部電源,見圖2.6。由于ds18b20的單總線端口(i/o引腳)是漏極開路式的,單線總線上還需要一個約5k歐姆的上拉電阻。采用這種方法的好處是總線控制器不用在溫度轉(zhuǎn)換期間總保持高電平,這樣在轉(zhuǎn)換期間可以允許在單線總線上進行其他數(shù)據(jù)往來。另外,在單線總線上可以掛任意多片ds18b20,而且如果它們都使用外部電源的話,就可以先發(fā)一個skip rom命令,再接一個convert t命令(見3.1節(jié)),讓它們同時進行溫度轉(zhuǎn)換。2.4 通信模塊電路圖2.7為cc1101內(nèi)部結(jié)構(gòu)圖,cc1101處在接收模式時,接收的rf信號先通過

27、低噪聲放大器(lna)放大,然后通過混頻器把輸入信號轉(zhuǎn)換為中頻信號,中頻信號被adc轉(zhuǎn)化為數(shù)字信號送入解調(diào)器,解調(diào)之后再進行前向糾錯與數(shù)據(jù)包處理,然后再把收到的數(shù)據(jù)存入接收fifo。cc1101的發(fā)送方式下的工作原理與接收類似,數(shù)據(jù)經(jīng)過調(diào)制后被送到頻率合成器,再經(jīng)過90度的相移裝置直接發(fā)送給信號放大器。圖2.7 cc1101簡化框圖如圖2.8是cc1101通信模塊的電路原理圖,其中偏阻器r171用來設置一個精確的偏電流。c131, c121, l121和l131形成一個平衡轉(zhuǎn)換器,將cc1101上的微分rf端口轉(zhuǎn)換成單端rf信號(c124也用在直流模塊上)。信號在傳輸過程中,為實現(xiàn)信號的無反射

28、傳輸或最大功率傳輸,要求電路連接實現(xiàn)阻抗匹配。阻抗匹配關系著系統(tǒng)的整體性能,尤其是高頻電路中,要實現(xiàn)負載與傳輸線之間的匹配,使負載無反射。本設計阻抗匹配的方法是接入一個合適的lc網(wǎng)絡,使輸入阻抗與特性阻抗相等。lc網(wǎng)絡由l123,c122,c123組成。 在實際應用中,為提高抗干擾能力必須在靠近電源引腳處加恰當?shù)赝伺弘娙荨?圖2.8 cc1101模塊電路原理圖第三章 軟件設計msp430單片機可以采用匯編語言或c語言進行程序設計。本設計用c語言來開發(fā)單片機系統(tǒng),其最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護升級方便、代碼的重復利用率高、便于跨平臺的代碼移植等等。本設計硬件開發(fā)工具采用利爾達公

29、司的usb型仿真器lsd-fet430 uif,它支持jtag調(diào)試,并且適用于所有的flash型msp430單片機,大大降低了開發(fā)成本,也相對縮短了開發(fā)周期。軟件采用iar公司提供的embedded workbench 集成開發(fā)環(huán)境。此軟件人機界面友好,易學易懂,能在線編程,單步調(diào)試,能很好地支持c語言開發(fā)。3.1 溫度傳感器與430單片機之間軟件編程由圖2.5知溫度傳感器ds18b20只通過一根接線與單片機通信,數(shù)據(jù)通過單線接口p2.4以串行方式傳輸。通過單線總線端口訪問ds1820的協(xié)議如下: (1) 初始化通過單線總線的所有執(zhí)行(處理)都從一個初始化序列開始。初始化序列包括一個由總線控制

30、器發(fā)出的復位脈沖和跟在其后由從機發(fā)出的存在脈沖。存在脈沖讓總線控制器知道ds18b20在總線上且己準備好操作。時序見圖3.1,主機總線to時刻發(fā)送一復位脈沖(最短為480s的低電平信號),接著在t1時刻釋放總線并進入接收狀態(tài),ds18b20在檢測到總線的上升沿之后,等待15-60us,接著ds18b20在t2時刻發(fā)出存在脈沖(低電平,持續(xù)60-240s),如圖中虛線所示。圖3.1 ds18b20初始化時序圖以下為初始化子函數(shù),返回參數(shù)error=0則初始化成功:uchar init_18b20(void) uchar error; dq_out; /p2.4為輸出 _dint(); /關中斷

31、dq0; /p2.4輸出為0 delaynus(500); /延時500us dq1; /p2.4輸出1 delaynus(55); /延時55us dq_in; /p2.4為輸入 _nop(); if(dq_val) /若dq_val為高電平則初始化失敗 error = 1; /初始化失敗 else error = 0; /初始化成功 dq_val為高電平,發(fā)出了存在脈沖 dq_out; dq1; _eint(); delaynus(400); return error;(2) rom操作命令一旦總線控制器探測到一個存在脈沖,它就可以發(fā)出5個rom命令中的任一個。所有rom操作命令都是8位長

32、度。下面是這些命令:read rom 33h:允許總線控制器讀到ds1820的8位系列編碼、唯一的序列號和8位crc碼。match rom 55h:匹配rom命令,后跟64位rom序列,讓總線控制器在多點總線上定位一只特定的ds18b20。skip rom cch:這條命令允許總線控制器不用提供64位rom編碼就使用存儲器操作命令,在單點總線情況下用以節(jié)省時間。如果總線上不止一個從機,在skip rom命令之后跟著發(fā)一條讀命令,由于多個從機同時傳送信號,總線上就會發(fā)生數(shù)據(jù)沖突。search rom foh:搜索rom命令允許總線控制器用排除法識別總線上的所有從機的64位編碼,從而知道單線總線上

33、有多少器件或它們的64位rom編碼。alarm search ech:只有在最近一次測溫后遇到符合報警條件的情況,ds1820才會響應這條命令。報警條件定義為溫度高于th或低于tl。只要ds1820不掉電,報警狀態(tài)將一直保持,直到再一次測得的溫度值達不到報警條件。(3) 存儲器操作命令write scratchpad 4e:向暫存器的地址位置2和3寫入數(shù)據(jù)(th和tl溫度報警觸發(fā))。read scratchpad beh:讀取暫存器和crc字節(jié)。讀取將從字節(jié)0開始,一直進行下去,直到第9(字節(jié)8, crc)字節(jié)讀完。convert t 44h:啟動一次溫度轉(zhuǎn)換。溫度轉(zhuǎn)換命令被執(zhí)行,而后ds18

34、20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而ds1820又忙于做時間轉(zhuǎn)換的話,ds1820將在總線上輸出“0,若溫度轉(zhuǎn)換完成,則輸出“1。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動強上拉,并保持500ms。copy scratchpad 48h:把暫存器的內(nèi)容拷貝到ds1820的e方存儲器里recall e b8h:把非易失性存儲器里的值拷回暫存器。read power supply b4h:標識ds18b20的供電模式。若把這條命令發(fā)給ds1820后發(fā)出讀時間隙,器件會返回它的電源模式:“0”=寄生電源,“1”=外部電源。(4) 執(zhí)行/數(shù)據(jù)所有時序都是將主

35、機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收,數(shù)據(jù)和命令的傳輸都是低位在先。ds18b20的數(shù)據(jù)讀寫是通過時間隙處理位和命令字來確認信息交換的。寫時間隙:當主機把數(shù)據(jù)線從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙:寫1時間隙和寫0時間隙。所有寫時間隙必須最少持續(xù)60s,包括兩個寫周期間,至少ls的恢復時間。i/o線電平變低后,ds18b20在一個15s到60s的時間內(nèi)對i/0線采樣。如果線上是高電平,就是寫1,如果線上是低電平,就是寫0。主機要生成一個寫0時間

36、隙必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15s,必須把數(shù)據(jù)線拉到低電平并保持60s。以下是向ds18b20寫入一個字節(jié)數(shù)據(jù)的程序:void write_18b20(uchar wdata) uchar i; _dint(); /關中斷 for(i = 0; i = 1; delaynus(50); /延時50s dq1; delaynus(10); /延時10s _eint(); /開中斷讀時間隙:當從ds1820讀取數(shù)據(jù)時,主機生成讀時間隙。當主機把數(shù)據(jù)線從高電平拉到低電平時,寫時間隙開始。數(shù)據(jù)線必須保持至少ls從ds18b20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15s內(nèi)有效。因此

37、,主機在讀時間隙開始后必須停止把i/0腳驅(qū)動為低電平15s,以讀取i/0腳狀態(tài)。在讀時間隙的結(jié)尾,i/0引腳將被外部上拉電阻拉到高電平。所有讀時間隙必須最少60s,包括兩個讀周期間至少ls的恢復時間。以下是從ds18b20讀取一個字節(jié)數(shù)據(jù)的程序:uchar read_18b20(void) uchar i; uchar temp = 0; _dint(); /關中斷 for(i = 0;i = 1; dq0; delaynus(6); /延時6us dq1; delaynus(8); /延時9us dq_in; _nop(); if(dq_val) temp |= 0x80; delaynus

38、(45); /延時45us dq_out; dq1; delaynus(10); /延時10s _eint(); return temp;按照ds1820的協(xié)議并且對照表進行命令設置,圖3.2為msp430控制ds18b20成一次溫度轉(zhuǎn)換的流程圖,首先對ds18b20進行初始化,再讀取16位的溫度數(shù)據(jù)。圖3.2 溫度轉(zhuǎn)換流程圖溫度以16bit帶符號位擴展的二進制補碼形式讀出,表3.1給出了溫度值和輸出數(shù)據(jù)的關系。對于串行接口上讀取的16bit數(shù)據(jù)需要轉(zhuǎn)換為實際溫度值,并將實際溫度值放在數(shù)組中。ds1820測溫范圍-55 +125,以0.5 遞增。表3.1 ds18b20的數(shù)據(jù)與實際溫度關系3.

39、2 msp430控制cc1101發(fā)送和接收cc1101需要與一個作為控制器件的單片機及若干被動組件一起使用,才能成為一個最簡單的無線通信系統(tǒng)。對于無線通信模塊,軟件設計主要包括msp430f149單片機的初始化和ccll01的初始化以及接收數(shù)據(jù)程序、發(fā)送數(shù)據(jù)程序,通過寄存器的配置實現(xiàn)其頻率、信道、通信速率等的設置。圖3.3 cc1101與單片機的接口電路如圖3.3所示是cc1101與msp430f149單片機的接口電路,cc1101通過4線spi兼容接口(si,so,sclk和csn)進行配置,這些接口用做寫和讀緩存數(shù)據(jù)。sclk是時鐘輸入引腳。si、so是數(shù)據(jù)輸入、輸出引腳。csn引腳主要用

40、來控制數(shù)據(jù)通信的同步性.。本設計采用軟件模擬spi接口技術(shù)的方式實現(xiàn)單片機對cc1101通信模塊的控制。3.2.1 寄存器配置cc1101配置寄存器位于spi地址從0x00到ox2f之間的47個,所有的配置寄存器均能讀和寫。配置寄存器:對配置寄存器寫入相應的設定值便可設定cc1101的工作狀態(tài)。比如工作頻率、波特率及通信帶寬等。狀態(tài)寄存器:讀0x300x3f地址,可獲得cc1101工作狀態(tài),如cca 信息,rx 是否溢出等。命令濾波:向spi 接口上寫0x300x3f 的地址就可命令通信模塊執(zhí)行某個任務,如:芯片的重啟、開啟并校準頻率合成器及設置工作模式等。cc1101有兩個專用的配置引腳和一

41、個共享引腳,能輸出對控制軟件有用的內(nèi)部狀態(tài)信息。專用引腳名為gdoo和gdo1。共享引腳為spi接口上的so腳。本設計使用了cc1101的通用數(shù)字輸出引腳gdo0,通過適當配置,該引腳電平會在cc1101發(fā)送/接收完前導碼時產(chǎn)生上升沿跳變,在整個發(fā)送/接收完成后產(chǎn)生下降沿跳變。可以通過查詢gdo0引腳電平來判斷數(shù)據(jù)報頭是否已經(jīng)發(fā)送以及數(shù)據(jù)報是否已經(jīng)發(fā)送完成。根據(jù)需要再發(fā)送命令把cc1101置于空閑或休眠狀態(tài)2。cc1101具有三種狀態(tài):idel(待機)、rx(接受)、tx(發(fā)送)。整體上看,它是一個具有三種狀態(tài)的狀態(tài)機,三種狀態(tài)之間的轉(zhuǎn)換,如圖3.4所示:圖3.4 cc1101狀態(tài)轉(zhuǎn)換圖為了節(jié)

42、約功耗,減少msp430f149的活動時間,本設計采用外部中斷方式,即使用gdo0引腳的電平跳變特點,當檢測到前導碼時,觸發(fā)msp430f149的p1.4端口(cc1101的gdo0引腳與單片機的p1.4相連)中斷,在中斷服務程序中進行了讀取接收緩存rxfifo等操作,從而讓msp430f149更多時間處于休眠狀態(tài),達到降低功耗的目的。3.2.2 讀寫操作在地址和數(shù)據(jù)轉(zhuǎn)換期間,csn腳(芯片選擇引腳,低電平有效)必須保持為低電平。如果在過程中csn變?yōu)楦唠娖剑瑒t轉(zhuǎn)換取消。當csn變低,在開始轉(zhuǎn)換頭字節(jié)之前,mcu必須等待,直到so腳變低。這表明電壓調(diào)制器已經(jīng)穩(wěn)定,晶體正在運作中。除非芯片處在s

43、leep或xoff狀態(tài),so腳在csn變低之后總會立即變低。對于突發(fā)訪問,不管是讀訪問還是寫訪問,必須通過設置csn為高來終止。如圖是配置寄存器的讀寫操作時序,當對寄存器進行寫操作時,每當一個待寫入的數(shù)據(jù)字節(jié)傳輸?shù)絪i腳時,狀態(tài)字節(jié)將被送至so腳。通過在地址頭設置突發(fā)位,連續(xù)地址的寄存器能高效地被訪問。這個地址在內(nèi)部計數(shù)器內(nèi)設置為起始地址,每增加一個新的字節(jié)(每8個時鐘脈沖),計數(shù)器值增加1。圖3.5 配置寄存器的讀寫操作時序以下是msp430f149通過spi接口與cc1101通信的代碼。(1) 往cc1101 指定寄存器寫入一個數(shù)值(8位)void spiwritereg(unsigned

44、 char addr, unsigned char value) p1out &=csn_pin; /cs=0 cs enable while (p1in & spi_somi); / wait for cc1101 ready spi_bitbang_out(addr); / send address spi_bitbang_out(value); / send data p1out |= csn_pin; /cs=1 cs disable (2) 讀單個寄存器值unsigned char spiread(unsigned char addr, unsigned char falg_read

45、) unsigned char rtemp; p1out &=csn_pin; /cs=0 cs enable while (p1in & spi_somi); / wait for cc1101 ready spi_bitbang_out(addr | falg_read); / send address rtemp = spi_bitbang_in(); / read data p1out |= csn_pin; /cs=1 cs disable return ( rtemp ); 3.2.3 控制cc1101發(fā)射接收過程如圖3.6是發(fā)射接收流程圖。系統(tǒng)上電后首先進行初始化配置,包括i/o

46、端口輸入、輸出狀態(tài)配置、串口配置、cc1101寄存器配置,以及無線傳輸數(shù)據(jù)格式的配置,使系統(tǒng)處于正常工作狀態(tài)。進入發(fā)射狀態(tài)時,調(diào)制器將根據(jù)寄存器mdmcfg2中的sync_mode決定是否啟動發(fā)送前導碼,若允許發(fā)送,則其長度由mdmcfg1中的num_preamble決定。如果按指定方式檢測到指定數(shù)量的前導碼,cc1101的gdo0引腳電平會產(chǎn)生一個上升沿跳變,觸發(fā)單片機產(chǎn)生外部中斷,如果tx fifo中有數(shù)據(jù),則立即發(fā)送同步字;否則,調(diào)制器將重復發(fā)送前導碼直到tx fifo中有數(shù)據(jù)。單片機再給發(fā)射模塊發(fā)送激活命令。cc1101立刻進入發(fā)送模式,并向其緩沖區(qū)中寫入發(fā)送數(shù)據(jù),然后無線發(fā)送出去。在

47、整個發(fā)送完成后gdo0產(chǎn)生下降沿跳變,表示發(fā)送完成。在接收端同樣也要初始化單片機與cc1101,使系統(tǒng)處于正常工作狀態(tài)。在接收端把數(shù)據(jù)包中的數(shù)據(jù)放入rx fifo之前,會自動進行前導碼、同步字過濾,對不滿足要求的包,會自動丟棄,這大大減輕了單片機的負荷。而對于滿足要求的數(shù)據(jù)包則會觸發(fā)gdo0引腳電平產(chǎn)生一個上升沿跳變,單片機開始讀取接收緩存,經(jīng)長度、地址(可選)和crc校驗(可選)校驗后把有用數(shù)據(jù)提取出來顯示在液晶屏上,再清除緩沖區(qū)數(shù)據(jù),等待下次接收。這里外部中斷被用作無線數(shù)據(jù)接收成功的標志。 本設計在發(fā)送端采取了低功耗軟件設計:將采集的溫度是數(shù)據(jù)與上一次的進行比較,如果相等則繼續(xù)處在空閑模式,如果不相等再發(fā)送數(shù)據(jù),從而讓msp430f149有更多時間處于休眠狀態(tài),達到降低功耗的目的。 本設計通過函數(shù)void spiwritereg(unsigned char addr, unsigned char value)即實現(xiàn)配置ccll00的寄存器的功能。發(fā)送數(shù)據(jù)通過函數(shù)void txdata(unsigned length)實現(xiàn),接收數(shù)據(jù)通過中斷函數(shù)#pragma vector=port1_vector _interrupt void p1_isr(void)實現(xiàn) 圖3.6 發(fā)送接收流程圖3.3 msp430控制液晶顯示如圖3.7是1602液晶與單片機的接口電路,通過調(diào)節(jié)r29來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論