久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于ARMlinux的嵌入式遠程測控系統設計.

時間:2019-05-14 23:02:44下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《基于ARMlinux的嵌入式遠程測控系統設計.》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于ARMlinux的嵌入式遠程測控系統設計.》。

第一篇:基于ARMlinux的嵌入式遠程測控系統設計.

基于ARM linux的嵌入式遠程測控系統

設計

基于ARM linux的嵌入式遠程測控系統設計

類別:嵌入式系統

前言 目前,大多數遠程測控系統中,系統的硬件采用8/16位的單片機,軟件多采用匯編語言編程,該編程僅包含一個簡單的循環處理的控制流程;單片機與單片機(或上位機)之間的通信通過RS232、RS485或CAN總線來組成局域網,再用Pc機作為 Web服務器,與Internet進行通訊。這樣的遠程測控設備成本高、體積大、速度慢、功耗大。現在,32位嵌入式CPU價格已下降,性能指標也有提高,為嵌入式系統的廣泛應用提供了可能性。基于上述情況,我們將嵌入式系統應用于遠程測控系統,大大提高了測控系統的性能,同時降低了成本和功耗,體積也大大減小。

嵌入式系統一般應用嵌入式操作系統來開發。在嵌入式操作系統的選擇上,由于Linux有完整開放的源代碼,因而它具有修改和優化系統、內核穩定、適用于多種CPU和多種硬件平臺、支持網絡等特點,所以選擇Linux作為嵌入式操作系統較好。本文提出的基于 ARMlinux的嵌入式遠程測控系統不僅能夠實現本地數據采集與控制,還能實現遠程測控任務。

1、硬件系統

硬件系統如圖1。S3C2410包含一個16/32-bit的Risc(ARM920T)的CPU內核,主頻200Hz,內部含有8通道1O位AD轉換器和大量的I/O口、LCD控制器等豐富接口,能運行Ucosll、ARMlinux和Wince嵌入式操作系統,DM 9OOO是10M/100M以太網接口控制芯片。本硬件系統結構簡單,成本低,不需要Pc機就可直接接入Internet。

2、軟件系統

嵌入式操作系統是整個嵌入式系統的核心。本系統選擇ARMlinux系統。由于嵌入式系統的存儲容量很小,因此要把ARMLinux操作系統裝入有限的存儲器內,就要對它進行裁剪。很多資料對此都有論述,這里就不再累述。下面主要介紹基于操作系統上的遠程測控軟件設計。其體系結構如圖2。

2.1 基于Boa的Web服務器

嵌入式linux主要有三個web Server:Hapd、Thttpd和Boa。Httpd是最簡單的一個web Server。它的功能最弱,不支持認證,不支持CG1。Thttpd和Boa都支持認證、CGI等,功能都比較全。Boa是一個單任務的小型Httpd 服務器,源代碼開放、性能優秀,特別適合應用在嵌入式系統中。下面介紹Boa的移植與編譯。

對于有MMU嵌入式linux,把Boa下載到Redhat宿主機上后,解壓到任意目錄,再修改Boa/src/Makefde里面的編譯器。例如:

CC=/opfhosfarmv41/bin/armv41—unkllown—linux—gcc CPP=/opt/host/army41/bin/armv41—unknown—linux—g++ 此后直接在Boa/src目錄下執行make即可生成Boa可執行文件。將其復制到ramdisk加載mount的目錄的bin里面后,等一同加入配置文件和HTML/CGI文件后,重做ramdisk即可。

配置文件Boa.conf的編制見下。

需要說明的是,Linux下的應用程序的配置都是以配置文件的形式提供的,~般都是放在目標板/ete/目錄下或者/ctc/config目錄下,但Boa 的配置文件Boa.conf一般都放置在目標板/home/httpd/目錄下。本系統Boa.conf文件的編寫程序為:

Servername S A M S U N G—A R M DocumentRoot/home/httpd/cgi—bin/

ScfiptAlias/index.html/home/httpd/html/index.html 它指定了HTML頁面index.html必須放/home/httpd/html目錄下,CGI可執行文件必須放到/home/httpd/cgi~bin目錄下。

2.2 CGI程序技術原理

CGI(Common Gateway Interface)是外部擴展應用程序與WWW服務器交互的一個標準接口。按照CGI標準編寫的外部擴展應用程序可以處理客戶端瀏覽器輸入的數據,從而完成客戶端與服務器的交互操作。而CGI規范定義了Web服務器如何向擴展應用程序發送消息,在收到擴展應用程序的信息后又如何進行處理等內容。通過 CGI可以提供許多靜態的Html網頁無法實現的功能。其www與CGI的工作原理如下。

HTTP協議是WWW的基礎,它基于客戶/服務器模型。一個服務器可以為分布在網絡各處的客戶提供服務。它是建立在TCP/IP協議之上的“無連接”協議。每次連接只處理一個請求。當一個請求到來時,便創建一個子進程為用戶的連接服務。根據請求的不同,服務器會返回HTML文件或通過CGI凋用外部應用程序,返回處理結果。服務器通過CGI與外部程序和腳本之問進行交互,根據客戶端在進行請求時所采取的方法,服務器會收集客戶所提供的信息,并將該部分信息發送給指定的CGI擴展程序。CGI擴展程序對信息進行處理并將結果返回服務器。服務器對信息進行分析后,將結果發送網客戶端。

外部CGI程序與www服務器進行通信、傳遞有關參數和處理結果是通過環境變量、命令行參數和標準輸入來進行的。服務器提供了客戶端(瀏覽器)與CGI擴展程序之問的信息交換的通道。客戶的請求通過服務器的標準輸出傳送給CGI的標準輸入。CGI對信息進行處理后,會將結果發回到它的標準輸入,然后由眼務器將處理結果發送給客戶端。

2.3 CGI外部擴展程序的編制

服務器程序可以通過三種途徑接收信息:環境變量、命令行和標準輸入。具體使用哪一種方法要由標簽的Method屬性來決定。在“Method=GET”時,向CGI程序傳遞表單編碼信息的正常做法是通過命令來進行的。

大多數表單編碼信息都是通過Qucry-String的環境變量來傳遞的。如果“Method=POST”,表單信息將通過標準輸入來讀取。還有一種不使用表單就可以向CGI傳送信息的方法。那就是把信息直接追回在URL地址后面,信息和URL之間用問號(?)來分隔。本測控系統采用的是GET方法。下面是遠程控制LED閃爍快慢的程序。其網頁如下頁圖3,其程序如下。

;LED測試

<input type=“radio”name=“speed”value=“show”checked>慢速

<input type=“radio”name=“speed”value=“normal”>中速 <input type=“radio”name=“speed”value=“rast”>高速

<input type=“submit”value=確定“name=”submit>

其中leds.cgi程序如下:

#!/bin/sh Period=1+case $QUERY-STRING in slow)

period=0.25 ;;

normal)period = 0.125 ;;

fast period=0.0625+;;

fast)+ period =0.0626 ;;

esac /bin/echo $ period ? /tmp/led-control//通過Query_String的環境變量傳遞給應用程序。

echo “Content-type:texe/html;charset=gb2312”

echo /bin/cat led =result.template exit 0 led—control是編譯好的可執行的應用程序,通過led驅動來實現對LED的控制。因為S3C2410有MMU,所以通過操作系統來對硬件控制需要驅動程序來實現。其數據采集部分也類似,不再單獨說明。

圖3 實驗結果

3、測試結果

首先建立好基于S3C2410嵌入式開發環境,把編譯好的booloader、嵌入式linux內核和ramdisk燒人Flash中,然后起動Boa服務器,在PC機的瀏覽器上輸人嵌入式系統的IP地址,即顯示出如圖3的網頁。通過點擊慢速、中速和高速,再點擊確定,測控板上LED的閃爍由慢變快,圓滿實現了設計目標。

4、結論

找們開發的基于ARMLinux的遠程測控系統,在真正意義上實現了通過互聯網進行遠程測控。它具有一般通用平臺性能,特別適合實時性要求不很強的家電網絡監控和遠程工業控制。當然隨著硬件和網絡速度提高及操作系統實時性的改善,將會大大提高此測控系統的性能,因此有很好的應用前景。

第二篇:基于ARM嵌入式的遠程監控系統設計

基于ARM嵌入式的遠程監控系統設計

摘要:基于ARM 內核的嵌入式系統在遠程監控報警系統中的設計實現與應用。核心部分主要包 括 ARM 嵌入式平臺設計及 μC-OS 嵌入式實時操作系統移植;人機交互界面 μCGUI 的設計與實現;遠程通訊及自動報警等;系統的設計還考慮到了擴展性和通用性以及與其他監控設備無縫連接等問題。

關鍵詞: ARM;μC/OS-II;μCGUI;遠程監控 引言

監控系統現已成為現代化生產、生活中不可缺少的重要組成部分。目前,監控系列產品 種類繁多,大部分廣泛應用于交通、醫院、銀行、家居、學校等安防領域。

隨著嵌入式系統的出現,尤其是基于 ARM 內核芯片的嵌入式系統的出現,使得監控系統的應用領域更為廣泛。本文設計的遠程監控報警系統除了作為安防功能外,還可以應用于以下領域:通訊領域:遠程通訊、視頻會議和視頻點播、證券、遠程教育等。醫療領域:病房監護、遠程診斷等。工業領域:遠程設備診斷、維護、維修,遠程生產監控等。家用領域:家用電器遠程維護;電、氣、火等重大事故自動報警等。

系統設計

2.1系統組成

本文設計的遠程監控系統主要由中心控制器、數據終端、傳感器模塊、通訊模塊、接口模塊等幾部分組成。系統組成圖(如圖 1)。

2.2中心控制器 系統核心負責數據采集判斷處理。為了提高系統工作效率,這里使用的是三星公司的 S3C2410芯片作為處理器。S3C2410 芯片是一款高性價比的 ARM 芯片,非常適合作手機、PDA 等手持設備。主要特性包括: ARM920T 內核,最高工作頻率 203MHz,LCD 控制器:可直接驅動真彩液晶屏,最高支持 2048×1024 真彩液晶屏,2 個 USB Host端口,1 個USB Device端口,支持 Nand flash 啟動模式,SD 卡接口,UART、IIC、SPI、IIS 等多種類 型串行接口,4 通道DMA。

本文的監控系統的 CPU 核心部分使用的是標準的 SO-DIMM200 金手指接口,便于后期維護和升級。如果該監控系統的使用環境較為苛刻,可以將 CPU替換為S3C2440芯片。S3C2440完全兼容S3C2410全部特性(注意:芯片引腳不完全兼容)。與S3C2410芯片相比,S3C2440的性能更為優越:最高工作頻率可達500MHz,內部集成CMOS攝像頭接口,但價格較昂貴。

圖1 監控系統組成框圖

2.3數據終端 數據終端的主要功能是對監控數據進行分析、處理,及時將數據匯報給監控人員。同時,監控人員可以根據現場情況,使用數據終端對監控的設備進行遠程控制。數據終端最大優勢 就是安全、可靠、便于攜帶。一般情況下為了節約成本,可以將手機、PDA 等移動通訊設備作為數據終端使用。但是如果作為對高危環境或精密儀器的監控系統,數據終端需要專業定制。這里使用的是中心控制器的作為數據終端,即中心控制器既作為數據采集發送中心,也可數據接收處理中心使用。

2.4通訊模塊

通訊模塊主要負責遠程數據通訊。帶有 RS232/485、GPRS、CDMA 等一種或多種通訊 方式。需要根據現場環境和用戶需要進行定制。通訊模塊與控制器通過接口總線連接,連接 方式為 TTL/RS232/RS485 等。

2.5傳感器模塊

傳感器模塊的主要功能是感知外部環境,對外部環境進行實時監測。由人體紅外傳感器、振動傳感器、超聲波傳感器、可燃氣體傳感器、溫度傳感器、濕度傳感器等一種或多種傳感 器組成。可根據現場監測環境不同進行定制。

2.6接口模塊

接口模塊主要作為系統擴展功能使用,將控制器的 A/D 轉換、I2C、SPI 等多種接口進行 外部擴展。接口模塊沒有特定的功能,但可以根據需要與其他設備連接,例如可以與工業儀 器儀表或設備連接,實時對儀器或設備進行監控。

接口模塊雖然不是監控系統的主要部分,但是對于整個系統來說卻是不可缺少。因為本文的監控系統主要考慮到了系統的可擴展性和與其它系統無縫連接。通過接口模塊可以很方 便的對監控系統進行升級,并且可以實現與其他系統或設備的無縫連接。這也是本系統區優 于其他監控系統的主要功能。軟件設計

3.1工作軟件

系統的軟件設計較為復雜,這里只給出了整個工作軟件流程(如圖 2)。

圖2 軟件流程圖

3.2操作系統移植

S3C2410 芯片支持多種嵌入式操作系統,如 WINCE、uCLinux 等。但考慮到監控系統 的實時性要求,這里使用的是 μC/OS-II 嵌入式實時操作系統。μC/OS-II 是一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務操作系統。其絕大部分源碼是用 ANSI C 寫的。整個嵌入式系統分為兩大層:硬件層和軟件層。這里主要研究軟件層的架構。軟件層主要分為四個部分:實時操作系統內核,與處理器相關部分,與應用程序相關部分,用戶的應用程序。移植 μC/OS-II 系統需要修改的文件有:應用程序相關文件: OS_CFG.H INCLUDE.H; 處理器相關文件: OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。

3.2.1 與處理器相關的代碼

這是移植中最關鍵的部分。內核將應用系統和底層硬件有機的結合成一個實時系統,要 使同一個內核能適用于不同的硬件體系,就需要在內核和硬件之間有一個中間層,這就是與 處理器相關的代碼。處理器不同。這部分代碼也不同。我們在移植時需要自己移植這部分代 碼。

a)OS_CPU.H

包括了用#define 定義的與處理器相關的常量,宏和類型定義,有系統數據類型定義,棧 增長方向定義,關中斷和開中斷定義,系統軟中斷的定義等等。

b)OS_CPU_A.ASM

這部分需要對處理器的寄存器進行操作,所以必須用匯編語言來編寫。包括四個子函數: OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任務系統啟動函數 OSStart()中調用。完成的功能是:設置系統運行標志位 OSRunning = TRUE;將就緒表中最高優先級任務的棧指針 Load 到 SP 中,并強制中斷返回。這樣就緒的最高優先級任務就如同從中斷里返回到運行態一樣,使得整個系統得以運轉。OSCtxSw()在任務級任 務切換函數中調用的。任務級切換是通過 SWI 或者 TRAP 人為制造的中斷來實現的。ISR 的向 量地址必須指向 OSCtxSw()。這一中斷完成的功能:保存任務的環境變量(主要是寄存器的值, 通過入棧來實現),將當前 SP 存入任務 TCB 中,載入就緒最高優先級任務的 SP,恢復就緒最高優先級任務的環境變量,中斷返回。這樣就完成了任務級的切換。OSIntCtxSw()在退出中斷 服務函數 OSIntExit()中調用,實現中斷級任務切換.由于是在中斷里調用,所以處理器的寄存器入棧工作已經做完,就不用作這部分工作了。具體完成的任務;調整棧指針(因為調用函數會使任務棧結構與系統任務切換時堆棧標準結構不一致),保存當前任務 SP,載入就緒 最高優先級任務的 SP,恢復就緒最高優先級任務的環境變量,中斷返回。這樣就完成了中斷級任務切換。OSTickISR()系統時鐘節拍中斷服務函數,這是一個周期性中斷,為內核提供

時鐘節拍。頻率越高系統負荷越重。其周期的大小決定了內核所能給應用系統提供的最小時 間間隔服務。一般只限于 ms 級(跟 MCU 有關),對于要求更加苛刻的任務需要用戶自己建立中斷來解決.該函數具體內容:保存寄存器(如果硬件自動完成就可以省略),調 OSIntEnter(),調用 OSTimeTick(),調用 OSIntExit(),恢復寄存器,中斷返回。

c)OS_CPU_C.C

該文件中共定義了 6 個函數,但是最重要的是 OSTaskStkInit().其他都是對系統內核的擴展 時用的.OSTaskStkInit()是在用戶建立任務時系統內部自己調用的,對用戶任務的堆棧進行初始化。使建立好的進入就緒態任務的堆棧與系統發生中斷并且將環境變量保存完畢時 的棧結構一致。這樣就可以用中斷返回指令使就緒的任務運行起來。

3.2.2與應用相關的代碼

這部分包括兩個文件:OS_CFG.H, INCLUDES.H。用戶根據自己的應用系統來定制合適 的內核服務功能。OS_CFG.H 來配置內核,用戶根據需要對內核進行定制,留下需要的部分,去掉不需要的部分,設置系統的基本情況。比如系統可提供的最大任務數量,是否定制郵箱服務,是否需要系統提供任務掛起功能,是否提供任務優先級動態改變功能等等。INCLUDES.H 系統頭文件,整個實時系統程序所需要的文件,包括了內核和用戶的頭文件。

3.3用戶圖形接口

雖然 μC/OS-II 操作系統具有很高的實時性,但不像 WINCE、uCLinux 等操作系統那樣 有良好的圖形界面支持。所以,在使用液晶和觸摸屏的情況下需要移植用戶圖形接口程序。這里使用的是 μC/GUI。μC/GUI 是一個軟件模塊集合,通過該模塊可以在我們的嵌入式產品 中加入用戶圖形接口(GUI)。μC/GUI 具有很高的執行效率,并且與處理器和 LCD 控制器相 獨立。該模塊可以工作在單任務或者多任務環境,可以支持不同大小的顯示方式。

通過 μC/GUI 我們可以很方便的在液晶屏繪制圖形和界面。如果需要多種字體支持,必 須自己將相應的字體字庫加入到 μC/GUI 中。為了避免出現亂碼,盡量使用 GB2312 國標字庫。

3.4關于字庫的兼容性問題

我們國內通常使用的漢字字庫是 GB 碼,但國際上使用的是 UNICODE 碼,所以如果數據終端使用的是手機、PDA 等移動通信設備,那么在數據發送前必須進行字碼轉換,即 GB 碼 轉換為 UNICODE 碼或者 UNICODE 碼轉換為 GB 碼。由于 GB 碼與 UNICODE 碼在排列組合上沒有任何規律,所以通常字碼轉換的方法就是 查表法。

4結束語

基于 ARM9 嵌入式系統的遠程監控系統與以往的監控系統不同,高性能的處理器芯片大大提高了系統的性能。使監控系統能夠工作在比較惡劣的環境中。并且在設計上充分考慮到了系統的可擴展性和兼容性問題,實現了本系統與其他系統的無縫連接。以滿足不同工作環 境的需要。

作者創新觀點:本文設計的遠程監控系統應用范圍更廣,更靈活、方便。通過各個功能模塊 的不同組合,可以十分方便快速的應用于各個領系域,真正實現智能化、自動化且具有較高 的性價比。

第三篇:嵌入式遠程醫療監護系統(范文模版)

嵌入式遠程醫療監護系統

嵌入式醫療監護系統設計

一、整體設計

MSP430系列單片機是美國德州儀器(TI)1996年開始推向市場的一種16位超低耗(具有精簡指令集的混合信號處理器(Mixed Signal Processor)。稱之為混合信號處理器,是由于其針對實際應用需求,將多個不同功能的模擬電路、數字電路模塊和微處理器集成在一個芯片上,以提供“單片”解決方案。該系列單片機多應用于需要電池供電的便攜式儀器儀表中。MSP430特點

MSP430系列單片機是一個16位的單片機,采用了精簡指令集(RISC)結構,具有豐富的尋址方式(7 種源操作數尋址、4 種目的操作數尋址)、簡潔的 27 條內核指令以及大量的模擬指令;大量的寄存器以及片內數據存儲器都可參加多種運算;還有高效的查表處理指令。這些特點保證了可編制出高效率的源程序。

MSP430 系列單片機能在25MHz晶體的驅動下,實現40ns的指令周期。16位的數據寬度、40ns的指令周期以及多功能的硬件乘法器(能實現乘加運算)相配合,能實現數字信號處理的某些算法(如 FFT 等)。

MSP430 單片機之所以有超低的功耗,是因為其在降低芯片的電源電壓和靈活而可控的運行時鐘方面都有其獨到之處。

首先,MSP430 系列單片機的電源電壓采用的是1.8-3.6V 電壓。因而可使其在1MHz 的時鐘條件下運行時,芯片的電流最低會在165μA左右,RAM 保持模式下的最低功耗只有0.1μA。

其次,獨特的時鐘系統設計。在 MSP430 系列中有兩個不同的時鐘系統:基本時鐘系統、鎖頻環(FLL 和FLL+)時鐘系統和DCO數字振蕩器時鐘系統。可以只使用一個晶體振蕩器(32768Hz),也可以使用兩個晶體振蕩器。由系統時鐘系統產生 CPU 和各功能所需的時鐘。并且這些時鐘可以在指令的控制下,打開和關閉,從而實現對總體功耗的控制。

由于系統運行時開啟的功能模塊不同,即采用不同的工作模式,芯片的功耗有著顯著的不同。在系統中共有一種活動模式(AM)和五種低功耗模式(LPM0~LPM4)。在實時時鐘模式下,可達2.5μA,在RAM 保持模式下,最低可達0.1μA。

MSP430 系列單片機的各系列都集成了較豐富的片內外設。它們分別是看門狗(WDT)、模擬比較器A、定時器A0(Timer_A0)、定時器A1(Timer_A1)、定時器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驅動器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O端口、基本定時器(Basic Timer)、實時時鐘(RTC)和USB控制器等若干外圍模塊的不同組合。其中,看門狗可以使程序失控時迅速復位;模擬比較器進行模擬電壓的比較,配合定時器,可設計出 A/D 轉換器;16 位定時器(Timer_A 和 Timer_B)具有捕獲/比較功能,大量的捕獲/比較寄存器,可用于事件計數、時序發生、PWM 等;有的器件更具有可實現異步、同步及多址訪問串行通信接口可方便的實現多機通信等應用;具有較多的 I/O 端口,P0、P1、P2 端口能夠接收外部上升沿或下降沿的中斷輸入;10/12位硬件 A/D 轉換器有較高的轉換速率,嵌入式遠程醫療監護系統

最高可達200kbps,能夠滿足大多數數據采集應用;能直接驅動液晶多達 160 段;實現兩路的 12 位 D/A 轉換;硬件I2C串行總線接口實現存儲器串行擴展;以及為了增加數據傳輸速度,而采用的DMA模塊。MSP430 系列單片機的這些片內外設為系統的單片解決方案提供了極大的方便。

另外,MSP430 系列單片機的中斷源較多,并且可以任意嵌套,使用時靈活方便。當系統處于省電的低功耗狀態時,中斷喚醒只需5μs。

MSP430 系列有 OPT 型、FLASH 型和 ROM 型三種類型的器件,這些器件的開發手段不同。對于 OPT 型和 ROM 型的器件是使用仿真器開發成功之后燒寫或掩膜芯片;對于 FLASH 型則有十分方便的開發調試環境,因為器件片內有 JTAG 調試接口,還有可電擦寫的 FLASH 存儲器,因此采用先下載程序到 FLASH 內,再在器件內通過軟件控制程序的運行,由 JTAG 接口讀取片內信息供設計者調試使用的方法進行開發。這種方式只需要一臺 PC 機和一個 JTAG 調試器,而不需要仿真器和編程器。開發語言有匯編語言和 C 語言。

考慮以上原因,我們決定采用該型號單片機為本系統的微處理器。

二、溫度采集芯片 18B20 DS18B20數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。

1、DS18B20產品的特點

(1)、只要求一個端口即可實現通信。

(2)、在DS18B20中的每個器件上都有獨一無二的序列號。

(3)、實際應用中不需要外部任何元器件即可實現測溫。

(4)、測量溫度范圍在-55。C到+125。C之間。

(5)、數字溫度計的分辨率用戶可以從9位到12位選擇。(6)、內部有溫度上、下限告警設置。2. DS18B20的使用方法

由于DS18B20采用的是1-Wire總線協議方式,即在一根數據線實現數據的雙向傳輸,而對AT89S51單片機來說,硬件上并不支持單總線協議,因此,我們必須采用軟件的方法來模擬單總線的協議時序來完成對DS18B20芯片的訪問。

由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。

DS18B20的復位時序

DS18B20的讀時序

對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。

對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內就得釋放單總線,以讓DS18B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。

嵌入式遠程醫療監護系統

DS18B20的寫時序

對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內就得釋放單總線。

綜合各方原因我們采用該芯片模擬所有醫用傳感器,來完成整個系統設計。

三、無線模塊 NRF2401 nRF2401是單片射頻收發芯片,工作于2.4~2.5GHz ISM頻段,芯片內置頻率合成器、功率放大器、晶體振蕩器和調制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。芯片能耗非常低,以-5dBm的功率發射時,工作電流只有10.5mA,接收時工作電流只有18mA,多種低功率工作模式,節能設計更方便。其DuoCeiverTM技術使nRF2401可以使用同一天線,同時接收兩個不同頻道的數據。nRF2401適用于多種無線通信的場合,如無線數據傳輸系統、無線鼠標、遙控開鎖、遙控玩具等。nRF2401內置地址解碼器、先入先出堆棧區、解調處理器、時鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,需要很少的外圍元件,因此使用起來非常方便。QFN24引腳封裝,外形尺寸只有5×5mm。

nRF2401的收發模式有ShockBurstTM收發模式和直接收發模式兩種,收發模式由器件配置字決定,具體配置將在器件配置部分詳細介紹。

ShockBurstTM收發模式

ShockBurstTM收發模式下,使用片內的先入先出堆棧區,數據低速從微控制器送入,但高速(1Mbps)發射,這樣可以盡量節能,因此,使用低速的微控制器也能得到很高的射頻數據發射速率。與射頻協議相關的所有高速信號處理都在片內進行,這種做法有三大好處:盡量節能;低的系統費用(低速微處理器也能進行高速射頻發射);數據在空中停留時間短,抗干擾性高。nRF2401的ShockBurstTM技術同時也減小了整個系統的平均工作電流。

在ShockBurstTM收發模式下,nRF2401自動處理字頭和CRC校驗碼。在接收數據時,自動把字頭和CRC校驗碼移去。在發送數據時,自動加上字頭和CRC校驗碼,當發送過程完成后,數據準備好引腳通知微處理器數據發射完畢。

ShockBurstTM發射流程

接口引腳為CE,CLK1,DATA

A.當微控制器有數據要發送時,其把CE置高,使nRF2401工作;

B.把接收機的地址和要發送的數據按時序送入nRF2401;

C.微控制器把CE置低,激發nRF2401進行ShockBurstTM發射;

D.nRF2401的ShockBurstTM發射

給射頻前端供電;

射頻數據打包(加字頭、CRC校驗碼);

高速發射數據包;

發射完成,nRF2401進入空閑狀態。

嵌入式遠程醫療監護系統

ShockBurstTM接收流程

接口引腳CE、DR1、CLK1和DATA(接收通道1)

A.配置本機地址和要接收的數據包大小;

B.進入接收狀態,把CE置高;

C.200us后,nRF2401進入監視狀態,等待數據包的到來;

D.當接收到正確的數據包(正確的地址和CRC校驗碼),nRF2401自動把字頭、地址和CRC校驗位移去;

E.nRF2401通過把DR1(這個引腳一般引起微控制器中斷)置高通知微控制器;

F.微控制器把數據從nRF2401移出;

G.所有數據移完,nRF2401把DR1置低,此時,如果CE為高,則等待下一個數據包,如果CE為低,開始其它工作流程。

直接收發模式

在直接收發模式下,nRF2401如傳統的射頻收發器一樣工作。

直接發送模式

接口引腳為CE、DATA

A.當微控制器有數據要發送時,把CE置高;

B.nRF2401射頻前端被激活;

C.所有的射頻協議必須在微控制器程序中進行處理(包括字頭、地址和CRC校驗碼)。

直接接收模式

接口引腳為CE、CLK1和DATA

A.一旦nRF2401被配置為直接接收模式,DATA引腳將根據天線接收到的信號開始高低變化(由于噪聲的存在);

B.CLK1引腳也開始工作;

C.一旦接收到有效的字頭,CLK1引腳和DATA引腳將協調工作,把射頻數據包以其被發射時的數據從DATA引腳送給微控制器;

D.這頭必須是8位;

E.DR引腳沒用上,所有的地址和CRC校驗必須在微控制器內部進行。

配置模式

在配置模式,15字節的配置字被送到nRF2401,這通過CS、CLK1和DATA三個引腳完成,具體的配置方法請參考本文的器件配置部分。

空閑模式

nRF2401的空閑模式是為了減小平均工作電流而設計,其最大的優點是,實現節能的同時,縮短芯片的起動時間。在空閑模式下,部分片內晶振仍在工作,此時的工

嵌入式遠程醫療監護系統

作電流跟外部晶振的頻率有關,如外部晶振為4MHz時工作電流為12uA,外部晶振為16MHz時工作電流為32uA。在空閑模式下,配置字的內容保持在nRF2401片內。

關機模式

在關機模式下,為了得到最小的工作電流,一般此時的工作電流小于1uA。關機模式下,配置字的內容也會被保持在nRF2401片內,這是該模式與斷電狀態最大的區別。

nRF2401的所有配置工作都是通過CS、CLK1和DATA三個引腳完成,把其配置為ShockBurstTM收發模式需要15字節的配置字,而如把其配置為直接收發模式只需要2字節的配置字。由上文對nRF2401工作模式的介紹,我們可以知道,nRF2401一般工作于ShockBurstTM收發模式,這樣,系統的程序編制會更加簡單,并且穩定性也會更高,因此,下文著重介紹把nRF2401配置為ShockBurstTM收發模式的器件配置方法。

ShockBurstTM的配置字使nRF2401能夠處理射頻協議,在配置完成后,在nRF2401工作的過程中,只需改變其最低一個字節中的內容,以實現接收模式和發送模式之間切換。ShockBurstTM的配置字可以分為以下四個部分:

數據寬度:聲明射頻數據包中數據占用的位數。這使得nRF2401能夠區分接收數據包中的數據和CRC校驗碼;

地址寬度:聲明射頻數據包中地址占用的位數。這使得nRF2401能夠區分地址和數據;

地址:接收數據的地址,有通道1的地址和通道2的地址;

CRC:使nRF2401能夠生成CRC校驗碼和解碼。

當使用nRF2401片內的CRC技術時,要確保在配置字中CRC校驗被使能,并且發送和接收使用相同的協議。

在配置模式下,注意保證PWR_UP引腳為高電平,CE引腳為低電平。配置字從最高位開始,依次送入nRF2401。在CS引腳的下降沿,新送入的配置字開始工作。PCB設計

PCB設計對nRF2401的整體性能影響很大,所以PCB設計在nRF2401收發系統的開發過程中主要的工作之一,在PCB設計時,必須考慮到各種電磁干擾,注意調整電阻、電容和電感的位置,特別要注意電容的位置。

nRF2401的PCB一般都是雙層板,底層一般不放置元件,為地層,頂層的空余地方一般都敷上銅,這些敷銅通過過孔與底層的地相連。直流電源及電源濾波電容盡量靠近VDD引腳。nRF2401的供電電源應通過電容隔開,這樣有利于給nRF2401提供穩定的電源。在PCB中,盡量多打一些通孔,使頂層和底層的地能夠充分接觸。

nRF2401通過ShockBurstTM收發模式進行無線數據發送,收發可靠,其外形尺寸小,需要的外圍元器件也少,因此,使用方便,在工業控制、消費電子等各個領域都具有廣闊的應用前景。

由于2401的諸多優點,我們決定選用此芯片完成無線部分。至此我們已經完成整體設計。

嵌入式遠程醫療監護系統

二、軟件部分

接收程序:

#include “msp430.h” #include “cry1602.h” typedef unsigned char uchar;typedef unsigned intuint;

/**************宏定義***************/ #define DataDir P4DIR #define DataPort P4OUT

#define Busy 0x80 #define CtrlDir P3DIR #define CLR_RS P3OUT&=~BIT0;//RS = P3.0 #define SET_RS P3OUT|=BIT0;

#define CLR_RW P3OUT&=~BIT1;//RW = P3.1 #define SET_RW P3OUT|=BIT1;

#define CLR_EN P3OUT&=~BIT2;//EN = P3.2 #define SET_EN P3OUT|=BIT2;

/*********************************************** 函數名稱:DispStr 功 能:讓液晶從某個位置起連續顯示一個字符串 參 數:x--位置的列坐標 y--位置的行坐標 ptr--指向字符串存放位置的指針 返回值 :無

***********************************************/ voidDispStr(ucharx,uchary,uchar *ptr){ uchar *temp;uchari,n = 0;

temp = ptr;while(*ptr++!= '

主站蜘蛛池模板: 久久久久久无码精品人妻a片软件| 国产免费视频精品视频| 亚洲精品无码日韩国产不卡av| 无码熟妇人妻av在线电影| 国产在线精品一区二区不卡麻豆| 国产99视频精品免费视看9| 国产自产对白一区| 国产成人精品视频ⅴa片软件竹菊| 国产日韩精品一区二区三区在线| 国产亚洲精品aaaa片在线播放| 欧美私人情侣网站| 国内少妇偷人精品视频免费| 亚洲精品美女久久久久99| 无码一区二区三区亚洲人妻| 四川老熟妇乱子xx性bbw| 2018高清国产一区二区三区| 人妻少妇中文字幕久久| 四虎www永久在线精品| 女人天堂一区二区三区| 四虎国产精品免费久久| 中国女人和老外的毛片| 少妇人妻无码专区视频| 欧美变态另类zozo| 羞羞视频在线观看| 亚洲中文无码a∨在线观看| 国产69精品久久久久久久| 国产美女极度色诱视频www| 精品少妇人妻av一区二区三区| 国产成人a人亚洲精v品无码| 久久精品人妻一区二区三区| 精品无码久久久久国产电影| 高潮抽搐潮喷毛片在线播放| 亚洲国产成人精品女人久久久| 国产精品综合色区在线观看| 无遮挡粉嫩小泬久久久久久久| 国产午夜精品视频在线播放| 欧美人与动另类xxxx| 97国产精华最好的产品在线| 国产精品网站在线观看免费传媒| 国产真实偷乱视频| 精品一区二区三区四区五区六区|