




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計報告年級 09級 專業 集成電路設計與集成系統 班級 姓名 同組人姓名 無指導老師 周密 職稱 高工課程名稱 短距離無線通信實踐課程性質 專業選修設計項目 串口藍牙無線數據傳輸實驗要求 選開1 設計目的1.1 針對數據采集場合電纜連接復雜、易受電磁干擾等問題,設計了一種基于csr公司的藍牙芯片(bc417143)進行無線傳輸的單片機數據采集傳輸系統,實現對現場數據的采集和短距離內數據的無線傳輸;1.2 通過串口藍牙無線數據傳輸的設計,掌握藍牙無線通信的原理;1.3 通過串口藍牙無線數據傳輸的設計,掌握用protel軟件進行電路原理圖的設計及繪制pcb圖。2 設計要求2.1通過查閱相關
2、資料,制定出設計方案; 2.2設計電路原理圖、設計pcb、做出pcb板,安裝焊接硬件;2.3設計軟件,進行系統調試;2.4 通過設計出的串口藍牙數據傳輸系統,實現對現場數據的采集和短距離內數據的無線傳輸。3 課程設計的進度安排3.1第一周至第二周,聯系導師,與導師見面,了解課程設計任務;3.2第三周至第四周,查閱資料,制定計劃表,確定計劃方案,閱讀相關文件,撰寫開題報告;3.3第五周至第六周,繪制原理圖;3.4第七周至第八周,畫pcb板,購買元器件;3.5第九周至第十周,安裝、焊接硬件;3.6第十一周至第十二周,程序設計,系統調試;3.7第十三周至第十四周,撰寫論文設計報告。4 設計原理及結果
3、摘要:藍牙是一種低成本、低功耗的短距離無線通信標準,它的目的是取代現有個人電腦與外部設備之間的有線連接,實現設備之間低成本的無線互連通信。本文針對數據采集場合電纜連接復雜、易受電磁干擾等問題,設計了一種基于csr公司的藍牙芯片(bc417143)進行無線傳輸的單片機數據采集傳輸系統,整個裝置由前端數據采集、傳送部分以及末端的數據接收部分組成。前端數據采集部分由位于現場的溫度傳感器、信號放大電路、a/d轉換器、單片機、存儲器、串口通信等構成;傳送部分主要利用自帶微帶天線的藍牙模塊進行數據的無線傳輸;末端通過藍牙模塊、串口通信傳輸將數據送到上位pc機進一步處理。實現了對現場數據的采集和短距離內數據
4、的無線傳輸,解決復雜的電纜連接問題,使用方便,對于類似的數據采集傳輸系統的設計具有很好的借鑒意義。正文部分4.1藍牙技術概述藍牙技術(bluetooth)是近年來發展迅速,可以用來替代數字設備間有線電纜連接的短距離無線通信技術,是一種使用電波的、 近距離的無線數據通信技術。傳輸速度為1mbps,傳輸距離為10米左右,工作頻段為全球統一開放的2.4ghz工業、科學和醫學頻段。利用“藍牙”技術能夠有效地簡化臺式電腦、筆記本電腦和移動電話等移動通信終端設備之間的通信, 從而使這些現代通信設備之間的數據傳輸變得更加迅速高效,并為無線通信拓寬道路。利用藍牙技術構建數據采集無線傳輸模塊,與傳統的電線傳輸數
5、據相比,應用籃牙技術的優點主要有:(1)藍牙系統因采用了跳頻擴頻技術,故可以有效的提高數據傳輸的安全性和抗干擾能力。(2)采用全球統一開放的頻段,全球范圍適用。(3)無需鋪設線纜,降低了改造成本,方便了使用人員。(4)可以建立臨時性的對等連接,進行主從設備間一對一或一對多的連接,便于進行集中控制。4.2 藍牙協議規范 藍牙協議是藍牙設備間交換信息所應遵守的規則。與開放系統互聯(osi)模型一樣,藍牙技術的協議體系也采用了分層結構,從低層到高層形成了藍牙的協議棧,各層協議定義了所完成的功能和使用的數據分組格式。所有的藍牙設備制造廠商都必須嚴格遵守藍牙協議中的要求和規定,以保證藍牙產品間的互操作性
6、。4.2.1藍牙射頻協議藍牙技術誕生的初衷是以低功耗、低成本的無線接口取代現在紛繁復雜的有線接口。藍牙射頻部分不是重新開發的新技術,而是采用了在技術和市場上已經成熟的協議和算法。此部分介紹藍牙射頻協議規范,包括頻段和信道安排、射頻收發信機的性能、時隙與分組類型等。4.2.2 藍牙射頻協議規范4.2.2.1藍牙射頻概述射頻是指介于聲音頻率與紅外線頻率之間的電磁波頻率。對于無線通信系統而言,射頻部分就是通信系統的“空中接口”,不同廠商的設備要實現兼容或者互操作的基本要求就是射頻規范的統一,而且通信質量也是由射頻來決定。藍牙射頻規范規定了藍牙射頻頻段、調制方式、跳頻頻率、發射功率、接收機靈度等參數。
7、藍牙射頻部分在藍牙協議堆棧中的位置和基本功能如下圖4-1所示。藍牙主機應用程序高層協議主機控制器接口主機控制器鏈路管理器基帶與鏈路控制藍牙音頻射頻 藍牙模塊藍牙設備天線載波產生信號調制數據收發功率控制信號強度藍牙射頻圖4-1 藍牙射頻在藍牙協議堆棧中的位置4.2.2.2頻段和信道安排藍牙工作在無需許可證的2.4ghz ism頻段上。表4-1列出了目前世界上各個國家的藍牙頻段和信道頻率。藍牙采用了跳頻擴譜技術主動地去避免工作頻段受干擾(來自微波爐、無線局域網設備等)。表4-1 藍牙頻段分配地理位置ism頻段范圍射頻信道頻率中國、美國、歐洲2400.02483.5mhzf=(2402+k)mhz;
8、k在0、1-78中隨機取值法國2446.52483.5mhzf=(2454+k)mhz;k在0、1-22中隨機取值日本2471.02497.0mhzf=(2473+k)mhz;k在0、1-22中隨機取值西班牙2445.02475.0mhzf=(2449+k)mhz;k在0、1-22中隨機取值我國的藍牙射頻頻段最低頻率2.402ghz,最高頻率為2.48ghz。藍牙每個頻道帶寬為1mhz,相鄰頻道中心頻率間隔為1mhz。為減少帶外的輻射和干擾,保留的上、下保護頻帶分別為3.5mhz和2mhz。79個跳頻頻點中至少有75個應該偽隨機地進行跳變,在一個30秒的時間段內,任何一個頻點的使用時間不得超過
9、0.4s。4.2.2.3藍牙發射器性能根據藍牙發射器發射功率電平大小,藍牙設備有3個功率級別。1級功率的藍牙設備發射功率為100mw (20dbm);2級功率的藍牙設備反射功率為2.5mw(約4dbm);3級功率的藍牙設備發射功率為1mw(0dbm)。(1)藍牙射頻調制特性藍牙射頻采用的調制方式是高斯濾波的二進制頻移鍵控(gaussian frequency shift keying,gfsk),碼元帶寬積bt=0.5,調整指數(modulation index)h=0.280.35。藍牙射頻數據速率為1mbps,最小頻偏不小于115khz,過零誤差小于1/8碼元周期。二進制“1”用正頻偏表示
10、,“0”用負頻偏表示。符號定時(symbol timing)精度高于20ppm。發射序列1010的最小頻偏不小于發射序列00001111頻偏的80。(2)藍牙射頻的雜散輻射帶內雜散輻射藍牙發射器信號必須通過一個頻譜整形器(frequency mask),其頻譜必須與美國聯邦通信委員會的20db帶寬定義相一致,并且根據fcc的標準進行測量。除了fcc的要求,鄰信道功率也作了定義。發射功率在100khz帶寬上進行,發射器在信道m上發射一個偽隨機序列,鄰信道功率在信道n上測量。發送頻譜整形的要求如表4-2所示。表4-2發送頻譜整形的要求頻偏發送功率/dbm550khz-20|m-n|=2-20|m-
11、n|3-40帶外雜散輻射藍牙射頻的帶外雜散輻射功率的測試在100khz上進行,測試要求如表4-3所示。表4-3帶外雜散輻射要求頻段運行模式空閑模式301000mhz-36dbm-57dbm112.75ghz-30dbm-47dbm1.81.9ghz-47dbm-47dbm5.155.3ghz-47dbm-47dbm藍牙射頻的初始發送頻率在中心頻點fo附近75khz范圍內。表4-4是同一藍牙分組內的頻率漂移。 表4-4 同一個分組內的頻率漂移分組類型頻率漂移單時隙25khz三時隙40hz五時隙40hz最大偏移率400khz4.2.2.4藍牙接受器性能(1)測試接收器的參考信號 參考信號為gfsk
12、已調信號,調制指數h=0.32(11),碼元帶寬積bt=0.5(11),比特率=mbps,頻率偏移不大于,調制序列為偽隨機二進制序列(pseudo random binary sequence)prbs9,干擾調制序列為偽隨機二進制序列prbs15。(2)接收器的實際靈敏度實際靈敏度為藍牙通信系統誤比特率達到1時所需要的輸入電平,藍牙接收機靈敏度應該優于-70dbm。(3)干擾性能干擾性能測量的條件是:同信道及相鄰1mhz,2mhz信道上的信號比參考靈敏度高10dbm以上,其它頻率時信號比參考靈敏度高3db。表4-5列出了所要求的信干比。有用信號的2mhz之外允許存在5個不符合要求的雜散頻率,
13、它們應該滿足放寬的干擾性能(信干比c/i=-17db)。表4-5 要求的信噪比測試信道信噪比同信道干擾111mhz鄰信道干擾02mhz鄰信道干擾-303mhz鄰信道干擾-40鏡像信道干擾-901mhz鄰信道與帶內鏡像信道干擾-20(4)接收信號強度指示 通過對接收到的信號與兩個門限電平進行比較得到接收信號強度指示rssi。在這兩個門限之間是信號最佳接收范圍,如圖4-2所示。高門限低門限206db最大值= 56db最小值=高出實際接收機靈敏度6db圖4-2 rssi的動態范圍和精度發射器的功率和接收靈敏度可以決定無線設備的成本和便攜性。例如無線局域網設備的發射功率是2030dbm(約1w),設備
14、的體積和功耗都非常大,不適合于大多數功率受限的個人設備和便攜式設備,這些設備接收靈敏度也遠遠低于802.11的無線接收機。相對于無線局域網設備來說,藍牙設備能夠以較低的成本完成簡單的無線傳輸。4.2.3藍牙基帶收發定時藍牙射頻收發器采用時分雙工(tdd)機制,tdd定時的精確性取決于藍牙設備所處的模式(指理想的收發,忽略了定時抖動和時鐘頻率的不穩定性)。主設備發送分組的平均定時相對漂移(相對于理想的625us時隙)不能超過20ppm(百萬分之二十),瞬時定時不能偏離平均定時1us。4.2.3.1主從設備定時同步微微網使用主設備系統本地時鐘(clkn)進行同步。微微網存在期間,主設備時鐘不進行調
15、整。主設備發送(tx)定時嚴格依賴于主設備時鐘,因此主設備在連續的發送之間必須保持一個精確的m1250us間隔(m是自然數)。主設備接收(rx)定時依賴于主設備tx定時,rx偏移為n625us(n是正奇數)。對于主設備rx定時,主設備使用寬度為10us的漂移窗口。允許從設備有一定的tx定時偏差。主設備將在接收某一個特定分組之前調制rx定時,但不調整后續收發定時。從設備調整自身時鐘與主設備時鐘同步。從設備每收到一個分組,它與主設備的時鐘偏移量就進行更新,通過比較收到分組的rx時刻與自身估計rx時刻,從設備糾正時鐘偏移誤差。由于同步從設備的過程只需要信道接入碼(cac),所以從設備rx時鐘可以通過
16、主從時隙發送的任何分組進行調整。從設備tx定時必須基于最近一次從設備rx定時,rx定時基于主從時隙的最近一次成功的通信。對于acl鏈路,這次通信一定發生在當前從設備發送之前的主從時隙上;對于sco鏈路,該通信可能發生在幾個主從時隙之前,因為從設備允許即使在主從時隙之前沒有收到分組也發送一個sco分組。只要定時誤差在寬度為10us的漂移窗口內,從設備就能夠接收一個分組并能調整分組。若激活從設備在一段時間內無法接收到來自主設備的合法cac,它將增加漂移窗口寬度或使用預測定時漂移來增加接收主設備分組的概率。4.2.3.2 連接狀態藍牙收發器在連接狀態交替的進行收發操作,如圖4-3所示。圖4-3只給出
17、了單時隙分組的情況,根據分組類型和有效載荷,分組能夠占用至多366us(即單時隙分組最多366bit),每個rx和tx在不同的跳頻頻率上進行。1250us625us主設備從設備主tx時隙主rx時隙主tx時隙g(2m)10us g(2m+1)g(2m+2)=366us10us從rx時隙從rx時隙從tx時隙圖4-3 單時隙分組連接模式下主從設備收發定時在rx時隙的開始,接收相關器在不確定窗口中尋找正確的cac,如果沒有觸發事件發生,接收器進入休眠狀態,直到下一個rx事件發生;如果觸發事件發生,接收機保持接收狀態,并接收后面的分組。4.2.3.3 從保持模式返回到激活模式保持模式中的收發器即不發送也
18、不接收數據,當從保持模式返回到連接模式時,從設備在發送信息之前必須偵聽主設備,在這種情況下,查找窗口可以從20us增加到xus,如圖4-4所示。為了減少同步時間,當從保持模式返回激活模式時,建議使用單時隙分組,特別是當常時間保持后,查找窗口可以超過625us。xus625us預計主設備tx時刻圖4-4 設備由保持模式返回的接收定時4.2.3.4 解除休眠、呼吸模式休眠和呼吸這兩種模式與保持模式相似。處于休眠或者呼吸模式的從設備周期性地醒來,偵聽主設備信號以便重新調整自身時鐘。和由保持模式返回激活模式時相同,從設備從休眠或呼吸模式醒來時也要增加查詢窗口,從10us增加到xus。4.2.3.5 尋
19、呼狀態進行尋呼的主設備向要連接的從設備發送相應的接入碼(通過id分組),發送過程快且使用多個不同的頻率。因為id分組非常短,跳頻速率可以從1600跳/s增加到3200跳/s。一個tx時隙內進行尋呼的主設備使用兩個頻率,一個rx時隙從設備要在兩個頻點上進行接收,如圖4-5所示。f (k+1)10us625us312.5ustx時隙rx時隙f(k)f(k+1)ktx時隙f (k)68usf(k+2)f(k+3)圖4-5 尋呼模式的收發定時4.2.3.6 fhs分組在連接建立階段和在主從轉換時,主設備發送fhs分組到從設備,用于建立時間和頻率同步。當從設備收到尋呼信息,就在625us后立即發送一個包
20、括id分組的響應信息。主設備將在rx時隙后的tx時隙發送fhs分組,響應信息和fhs分組之間的時間差依賴于從設備收到的尋呼信息的定時。圖4-6是從設備在主從的第一個頻點收到尋呼信息的情況,圖4-7是在第二個頻點收到尋呼信息的情況。在第一個尋呼信息和fhs分組間有1250的延遲。fhs主到從時隙從到主時隙主到從時隙主設備從設備625us312.5usf(k)68usf(k+1)f (k)f (k+1)圖4-6 第一個半時隙成功尋呼fhs分組定時fhs主到從時隙從到主時隙主到從時隙主設備從設備312.5usf (k)68usf(k+1)f (k)f (k+1)f(k+2)625us圖4-7 第二個
21、半時隙成功尋呼fhs分組定時4.2.3.7 多個從設備的收發定時當有多個從設備時,從設備要分時地與主設備進行通信。從設備只有當收到帶有am_addr的分組時,才在下一個從主時隙中進行響應。在廣播信息的情況下,不允許返回響應分組。多個從設備的收發定時如圖4-8所示。 主設備主設備從設備1從設備1從設備2從設備2txtxtxtxrxrxrxrxtxtxrxrxrxrxrxrxrxrxrxtx11111121112222222221 圖4-8 多個從設備收發定時4.2.4 藍牙主機控制器接口傳輸層4.2.4.1 hci傳輸層概述hci傳輸層是指藍牙主機和藍牙主機控制器之間相連的物理接口。目前,藍牙h
22、ci傳輸層的物理接口有通用串行總線usb、串行端口(rs232)、通用異歩收發器uart和個人計算機存儲卡國際協會(pc卡),藍牙設備可以采用一種或幾種不同的物理接口來實現通信。本部分只介紹hci的rs232傳輸層。4.2.4.2 hci的rs232傳輸層與藍牙usb傳輸層比較 hci指令分組、事件分組和數據分組經過不同的usb端點傳輸,藍牙usb主機可以區分不同的hci分組類型,從而做出相應的處理。但是對于rs232來說,所有數據收發都是分別經過rx和tx兩條線,藍牙rs232主機無法區分接收到的hci分組究竟是哪一組分組,所以,通過藍牙rs232主機的hci分組必須附加特殊的標志用于區分其
23、分組類型。這一特殊標志就是藍牙hci rs232分組指示器,它附加于每一種對應的hci分組的最前面。rs232分組頭列于表4-6當中。表4-6 rs232分組指示器hci分組類型rs232分組指示器取值hci指令分組0x01hci acl數據分組0x02hci sco數據分組0x03hci事件分組0x04hci錯誤消息分組0x05hci協商分組0x06rs232的傳輸分組的結構如圖4-9所示。當一次發送一個以上的hci分組時,hci分組類型頭將8位的序列號增加1(除非該重發分組作為實現糾錯功能的一部分)。lsb msbrs232分組頭(8位)序列號(8位)hci分組/錯誤消息/協商分組的有效載
24、荷 圖4-9 rs232傳輸分組的結構利用rs232接口進行數據傳輸之前,在rs232接口兩端的設備應該雙方協商波特率、奇偶校驗類型等接口參數。實際應用中,主機最好采用主機控制器的默認值。4.2.5系統結構原理本課題以藍牙模塊csr 417143和單片機為主,設計了基于串口的藍牙無線數據傳輸系統,整個裝置由前端數據采集、傳送部分以及末端的數據接受部分組成(如pc機)。前端數據采集部分由位于現場的溫度傳感器18b20、信號放大電路、a/d轉換器、單片機、存儲器、串口通信等構成,傳送部分主要利用自帶微帶天線的藍牙模塊進行數據的無線傳輸;末端通過藍牙模塊、串口通信傳輸將數據送到上位pc機進一步處理。
25、整個系統結構框架圖如圖4-10所示。電源電路溫度傳感器信號放大器a/d轉換器下位機主控器at89c51數據存儲擴展通信電平轉換藍牙模塊1晶振電路上位機通信電平轉換藍牙模塊2圖4-10 基于藍牙無線傳輸的數據采集系統結構框架圖 藍牙模塊與at89c51串口之間采用藍牙模塊提供的rs232傳輸層接口實現通信,需要外接電路實現電平轉換。另外,為了將5v輸入電壓轉換為3.3v電壓,選用電源穩壓芯片1117為藍牙模塊供電。at89c51與藍牙模塊的接口示意圖如圖4-11所示。at89c51txd(p31)rxd(p30)csr417rxdtxd圖4-11 at89c51與藍牙模塊的接口示意圖4.2.5.
26、1 串口藍牙無線數據傳輸硬件電路方案(1)csr417143 藍牙模塊資料藍牙串口核心模塊采用csr公司的bluecore4-external藍牙芯片,v2.0協議標準,工業級標準26.9mm x 13 mm x 2.2mm,自帶高效板載天線,透明串口,可與各種藍牙適配器、藍牙手機配對使用,也可主從一對使用。如圖4-12所示。產品特點如下: 模塊中使用csr公司藍牙芯片bc417143 支持藍牙規范v2.0edr 支持piconect 和 scatternet 提供uart及全速usb v1.1/2.0標準接口 有效通訊速率到2.1mbps spi調試接口 可編程i/o口 13bit pcm語
27、音接口,用于外界codec芯片 用戶定制片內軟件,即對應各種應用的profiles 50歐姆天線接口 圖4-12 csr417143 藍牙模塊(2)電路接口rs232串行口(ttl電平)、電源接口、連接狀態信號口、主機模塊含“放棄原記憶的從機模塊地址重新搜尋模塊”信號引腳。應用方案如圖4-13所示。 圖4-13 rs232 串行口應用方案(3)狀態說明該模塊使用分兩種方式:成對使用,一主一從,分別接串口(配對后,上電給單個模塊,閃得慢的為主機,閃得快的為從機,注:當主模塊從未與從模塊配對過時為快閃)。主從成對使用不需要驅動程序,兩個模塊都上電就能傳輸;從機配合藍牙適配器使用,藍牙適配器需要驅動
28、程序。可配合筆記本電腦、pda 、藍牙手機等設備直接使用。 模塊上的led燈頻閃狀態時表示正在配對。 常亮表示配對完畢,此時串口功能已經啟動。 一主一從成對正常使用時燈不會滅。如主機和從機距離太遠而斷線,則主機和從機的燈一直閃,如果它們距離再靠近,則又會找在一起而自動連上。主機會記憶它配好的從機,一上電給主機就會找它記憶的從機地址,如果要主機配新的從機,則按下s2按鍵,則主機會放棄原來配的從機,重新尋找新的從機。(4)串口藍牙無線數據傳輸電路原理圖4-14和pcb圖4-15 圖4-14 藍牙應用電路原理圖 圖4-15 藍牙應用電路pcb圖(5)藍牙模塊應用電路原理圖4-16和pcb圖4-17
29、圖4-16 藍牙模塊應用電路原理圖圖4-17 藍牙模塊應用電路pcb圖(6)藍牙spi下載線原理圖4-18 圖4-18 藍牙spi下載線原理圖(5)硬件結構圖4-19 圖4-19 硬件結構4.2.5.2 藍牙主機與從機固件燒寫和參數的修改(1)通過藍牙開發工具bluelab中的blue flash給藍牙燒寫主機和從機的應用固件。過程如下圖4-20所示。圖4-20 燒寫主機和從機的應用固件(2)通過藍牙開發工具bluelab中的pstool修改藍牙參數,例如藍牙名稱,波特率等。過程如下圖4-21所示。 圖4-21 修改藍牙參數4.2.5.3 數據采集和藍牙通信軟件實現本課題的軟件主要包括兩部分:
30、數據采集和藍牙通信。為了保證數據采集的實時性,數據采集部分采用匯編語言編程,單片機采用定時采樣,具體選擇定時方式2,定時為100微秒,定時結束后,進行a/d轉換,單片機采用查詢的方式讀取18b20的轉換結果,然后將轉換后的數據存至外擴存儲器6264中。另外,串行口工作在方式1,波特率為2400bps。藍牙通信部分利用主機控制器接口hci層建立點對點的藍牙異步無鏈接數據傳輸通道,當兩個藍牙模塊鏈路建立成功后,就可以按照藍牙規范規定的hci數據分組格式收發數據。(1)溫度數據采集和顯示程序如下:;溫度傳感器18b20匯編程序,采用器件默認的12位轉化,最大轉化時間750微秒,將溫度數據通過串口發送
31、出去,波特率2400,適合12晶振dot equ 30hzhengshu equ 31hflag1 equ 38h ;是否檢測到ds18b20的標志位;定義溫度數據dis_1 equ 32h ;符號dis_2 equ 33h ;十位dis_3 equ 34h ;個位dis_4 equ 35h ;小數點后第一位dis_5 equ 36h ;小數點后第二位wddata bit p1.5 ;定義ds18b20的數據腳為p2.2端口 org 0000h;以下為主程序進行cpu中斷方式設置clr ea ;關閉總中斷mov scon,#50h ;設置成串口1方式mov tmod,#20h ;波特率發生器t
32、1工作在模式2上mov th1,#0f4h ;預置初值(按照波特率2400bps預置初值)mov tl1,#0f4h ;預置初值(按照波特率2400bps預置初值)setb tr1 ;啟動定時器t1;以上完成串口2400通訊初始化設置;-; 主程序;-main:lcall init_1820 ;調用復位ds18b20子程序main1:lcall get_temper;調用讀溫度子程序lcall formula ;通過公式計算,小數點后顯示兩位lcall bcdlcall display ;調用串口顯示子程序lcall delay500 ;延時0.5秒lcall delay500 ;延時0.5秒
33、lcall delay500 ;延時0.5秒ajmp main1;-; ds18b20復位初始化程序;-init_1820:setb wddatanopclr wddata;主機發出延時540微秒的復位低脈沖mov r0,#36lcall delaysetb wddata;然后拉高數據線nopnopmov r0,#36tsr2:jnb wddata,tsr3;等待ds18b20回應djnz r0,tsr2ljmp tsr4 ; 延時tsr3:clr flag1 ; 置標志位,表示ds1820存在 mov c,flag1 mov p0.0,c ;sjmp $ljmp tsr5tsr4:setb
34、flag1 ; 清標志位,表示ds1820不存在ljmp tsr7tsr5:mov r0,#06bhtsr6:djnz r0,tsr6 ;復位成功!時序要求延時一段時間tsr7:setb wddataret;-; 讀出轉換后的溫度值;-get_temper:setb wddata ; 定時入口lcall init_1820 ;先復位ds18b20jnb flag1,tss2ret ; 判斷ds1820是否存在?若ds18b20不存在則返回tss2:mov a,#0cch ; 跳過rom匹配lcall write_1820mov a,#44h ; 發出溫度轉換命令lcall write_1820
35、mov r0,#50 ;等待ad轉換結束,12位的話750微秒.lcall delaylcall init_1820 ;準備讀溫度前先復位mov a,#0cch ; 跳過rom匹配lcall write_1820mov a,#0beh ; 發出讀溫度命令lcall write_1820lcall read_18200; 將讀出的九個字節數據保存到60h-68hret;-;寫ds18b20的子程序(有具體的時序要求);-write_1820:mov r2,#8 ;一共8位數據clr c wr1:clr wddatamov r3,#6djnz r3,$rrc amov wddata,cmov r3
36、,#24djnz r3,$setb wddatanopdjnz r2,wr1setb wddataret;-; 讀ds18b20的程序,從ds18b20中讀出九個字節的數據;-read_18200:mov r4,#9mov r1,#60h ; 存入60h開始的九個單元re00:mov r2,#8re01:clr csetb wddatanopnopclr wddatanopnopnopsetb wddatamov r3,#09re10:djnz r3,re10mov c,wddatamov r3,#23re20:djnz r3,re20rrc adjnz r2,re01mov r1,ainc
37、r1djnz r4,re00ret;-;溫度計算子程序;-formula: ; 按公式:t實際=(t整數-0.25)+( m每度-m剩余)/ m每度;計算出實際溫度,整數部分和小數部分分別存于zhengshu單元和dot單元;將61h中的低4位移入60h中的高4位,得到溫度的整數部分,并存于zhengshu單元mov 29h,61hmov a,60hmov c,48hrrc amov c,49hrrc amov c,4ahrrc amov c,4bhrrc amov zhengshu,a; ( m每度-m剩余)/ m每度,小數值存于a中mov a,67hsubb a,66hmov b,#64h
38、mul abmov r4,bmov r5,amov r7,67hlcall div457mov a,r3;再減去0.25,實際應用中減去25subb a,#19hmov dot,a ;小數部分存于dot中mov a,zhengshusubb a,#00h ;整數部分減去來自小數部分的借位mov zhengshu,amov c,4bhjnc zheng ;是否為負數cpl ainc amov dis_1,#2dh ; 零度以下時,第一位顯示-號mov zhengshu,azheng:mov dis_1,#2bh ; 零度以上時,第一位顯示+號ret;-;雙字節除以單字節子程序;-div457:
39、clr cmov a,r4subb a,r7jc dv50setb ov ;商溢出retdv50: mov r6,#8 ;求平均值(r4r5r7r3)dv51: mov a,r5rlc amov r5,amov a,r4rlc amov r4,amov f0,cclr csubb a,r7anl c,/f0jc dv52mov r4,adv52: cpl cmov a,r3rlc amov r3,adjnz r6,dv51mov a,r4 ;四舍五入add a,r4jc dv53subb a,r7jc dv54dv53: inc r3dv54: clr ovret;-;轉換成非壓縮的bcd碼;
40、-bcd: mov a,zhengshumov b,#0ahdiv aborl a,#00110000b ;轉換成ascii碼mov dis_2,amov dis_3,bmov a,dis_3orl a,#00110000b ;轉換成ascii碼mov dis_3,amov a,dotmov b,#0ahdiv aborl a,#00110000b ;轉換成ascii碼mov dis_4,amov dis_5,bmov a,dis_5orl a,#00110000b ;轉換成ascii碼mov dis_5,aret;-;串口顯示數據子程序;-display:clr timov a,dis_1m
41、ov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示+/-clr timov a,dis_2mov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示整數第一位clr timov a,dis_3mov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示整數第二位clr timov a,#2ehmov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示小數點clr timov a,dis_4mov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示小數第一位clr timov a,dis_5mov sbuf,ajnb ti
42、,$ ;發送給pc,通過串口調試助手顯示小數第一位clr timov a,#0dh;回車mov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示clr timov a,#0ah;換行mov sbuf,ajnb ti,$ ;發送給pc,通過串口調試助手顯示ret;-;延時子程序;-;為保證ds18b20的嚴格i/o時序,需要做較精確的延時;在ds18b20操作中,用到的延時有15 s,90 s,270 s,540 s;因這些延時均為15 s的整數倍,因此可編寫一個delay15(n)函數delay: ;11.05962m晶振loop: mov r1,#06hloop1: djnz
43、 r1,loop1djnz r0,loopret;500毫秒延時子程序,占用r4、r5delay500:mov r4,#248da222:mov r5,#248djnz r5,$djnz r4,da222retend(2)兩個藍牙設備間進行數據通信是通過hci分組實現的,hci作為藍牙軟件協議堆棧中軟硬件之間的接口,為上層提供了訪問和控制藍牙硬件的統一接口。hci是通過分組(packet)的方式來進行信息交換的。hci分組有三種類型:指令分組(command packet)、事件分組(event packet)和數據分組(data packet)。主機與藍牙模塊用指令-應答方式進行通信,主機向
44、主機控制器發送指令分組;主機控制器執行某一指令后,大多數情況下會返回給主機一個指令完成事件分組(command complete event packet),該分組攜帶有指令完成的信息。有些分組不會返回指令完成事件,而返回指令狀態事件分組(command status event packet)用以說明主機發出的指令己經被主機控制器接收并開始處理。如果指令分組的參數有誤,返回的指令狀態事件分組就會給出相應的錯誤代碼;數據分組分為異步無連接(asynchronous connectionless, acl)數據分組和同步面向連接(synchronization connection oriented, sco)數據分組兩種。在本課題中,僅涉及到數據通信,而沒有涉及到語音通信,因此建立的是acl鏈路。單片機與藍牙模塊的軟件接口,就是指單片機如何通過軟件實現向藍牙模塊發送hci指令,藍牙模塊又如何通過軟件向單片機返回hci事件以及兩者之間如何實現數據傳輸。單片機和藍牙模塊間通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論