freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[信息與通信]基于嵌入式webserer的溫度采集系統(tǒng)的設(shè)計(jì)(參考版)

2025-01-21 12:21本頁(yè)面
  

【正文】 l 地址空間:每個(gè)存儲(chǔ)塊32M字節(jié)(共256M字節(jié))l 支持每個(gè)可編程的存儲(chǔ)塊具有8/16/32bit數(shù)據(jù)總線寬度l 固定存儲(chǔ)塊開始地址和可編程存儲(chǔ)塊尺寸為7個(gè)存儲(chǔ)塊l 可編程存儲(chǔ)塊開始地址和存儲(chǔ)塊尺寸為1存儲(chǔ)塊l 8個(gè)記憶存儲(chǔ)塊6記憶存儲(chǔ)塊作為ROM,SRAM等2記憶存儲(chǔ)塊作為ROM/SRAM/DRAM(快頁(yè),EDO,和同步DRAM)l 所有。 l 2通道通用DMAs /帶外部要求引腳的2通道周邊DMAs l 2通道同步交換UART(, 16byte FIFO) / 1ch SIOl 1通道多主控IIC總線控制器l 1通道IIS總線控制器l 5通道PWM定時(shí)器和1通道內(nèi)部定時(shí)器l 看門狗定時(shí)器l 71個(gè)通用輸入/輸出端口/8路外部中斷源l 電源控制:正常,慢速,閑置,和停止模式l 8通道10位模數(shù)轉(zhuǎn)換 l 實(shí)時(shí)時(shí)鐘與日歷功能 l 帶鎖相環(huán)的片上時(shí)鐘發(fā)生器特點(diǎn)構(gòu)架l 為手持式設(shè)備和一般嵌入式應(yīng)用設(shè)計(jì)的集成系統(tǒng)l 16/32位RISC架構(gòu)和強(qiáng)大的ARM7TDMI的CPU核指令集l Thumb depressor保持性能的同時(shí)實(shí)現(xiàn)代碼密度最大化l 片上ICEbreaker調(diào)試支持基于JTAG調(diào)試解決方案l 32x8位的硬件乘法器l 新的總線架構(gòu)實(shí)現(xiàn)低功率耗SAMBA II(SAMSUNG39。(高達(dá)66 MHz的SAMBA II總線架構(gòu)) l 外部存儲(chǔ)器控制器。 通過(guò)提供一套完整的通用系統(tǒng)外設(shè),S3C44B0X將整體系統(tǒng)成本最小化并無(wú)需配置額外的組件。 S3C44B0X的一個(gè)突出特點(diǎn)是它的CPU核,一個(gè)由先進(jìn)RISC機(jī)器,Ltd設(shè)計(jì)的16/32位ARM7TDMI的RISC處理器(66MH)。其低功耗,簡(jiǎn)潔,美觀和全靜態(tài)設(shè)計(jì)是特別適合對(duì)成本和功耗敏感的應(yīng)用。為了降低整體系統(tǒng)成本,S3C44B0X還提供了以下內(nèi)容:8 KB的高速緩存,可選內(nèi)部SRAM,LCD控制器,2通道同步交換UART,4通道DMA ,系統(tǒng)管理器(芯片選擇邏輯,F(xiàn)P/EDO/ SDRAM控制器),5通道PWM定時(shí)器,輸入/輸出端口,實(shí)時(shí)時(shí)鐘, 8通道10位ADC,IIC總線接口,IIS總線接口,Sync. SIO接口和PLL時(shí)鐘。最后還要感謝在設(shè)計(jì)過(guò)程中參閱的大量資料和文獻(xiàn)的作者們。同時(shí)我做設(shè)計(jì)用的開發(fā)板是楊老師借給我的,給我提供了良好的設(shè)計(jì)條件。本設(shè)計(jì)將嵌入式與網(wǎng)絡(luò)技術(shù)結(jié)合起來(lái),可以應(yīng)用于工業(yè)控制和智能家居系統(tǒng)。該webserver具有CGI功能,能動(dòng)態(tài)顯示網(wǎng)頁(yè)。隨著網(wǎng)絡(luò)與通信技術(shù)的發(fā)展,要求嵌入式產(chǎn)品能夠接入互聯(lián)網(wǎng)成為必然趨勢(shì)。而且,還可以在webserver中加入數(shù)據(jù)存儲(chǔ),將不同地點(diǎn)不同時(shí)間的溫度存起來(lái),供用戶調(diào)用。例如,雖然該webserver能根據(jù)用戶要求實(shí)時(shí)顯示現(xiàn)場(chǎng)的溫度,但是還未實(shí)現(xiàn)與用戶的完全交互。這樣,用戶可以通過(guò)網(wǎng)絡(luò)很方便地獲得遠(yuǎn)程現(xiàn)場(chǎng)溫度,不但減少了外出成本,而且將本設(shè)計(jì)應(yīng)用于高溫、高壓等危險(xiǎn)環(huán)境,可以大大降低對(duì)人生命安全的威脅。其中,圖a為主頁(yè),圖b為返回含有圖片的網(wǎng)頁(yè),圖c為與用戶交互的網(wǎng)頁(yè),通過(guò)該網(wǎng)頁(yè),webserver可以根據(jù)用戶的請(qǐng)求返回不同的結(jié)果,如圖d、e所示。而且,它能夠驅(qū)動(dòng)開發(fā)板上的硬件資源,包括溫度采集電路,實(shí)現(xiàn)溫度采集。//讀取溫度數(shù)據(jù) b=readbyte()。 //跳過(guò)ROM writeb(0xbe)。 } else flag=init()。延時(shí)5微秒 flag=init()。//P2設(shè)置為輸出 PDATC=0x04。//跳過(guò)ROM writeb(0x44)。 } else flag=init()。DS18B20的控制程序中主要部分如下:flag=init()。然后總線上的主機(jī)可提供六個(gè)存儲(chǔ)器和控制功能命令之一。DS18B20單線總線上的所有處理均從初始化序列開始,初始化序列包括主機(jī)發(fā)出一復(fù)位脈沖,接著有DS18B20發(fā)出存在脈沖。 } }......, Webserver程序流程圖 處理連接請(qǐng)求流程圖 溫度采集模塊溫度采集模塊作為Webserver父進(jìn)程的子進(jìn)程來(lái)處理客戶端傳來(lái)的CGI請(qǐng)求,主要是控制數(shù)字溫度計(jì)DS18B20,使其正常工作。 } strcpy(sendbuf,度.)。 } else { bytesSent=send(socket_fd,sendbuf,strlen(sendbuf),0)。 if((rd=read(pipe_fd[0],sendbuf,2048))==1) { printf(read error!\n)。 } else //如果是父進(jìn)程,讀取管道中的數(shù)據(jù)并發(fā)送給用戶 { strcpy(sendbuf,HTTP/ 200 OK\n\r\n\r當(dāng)前溫度:)。 exit(0)。 exit(1)。 } pid=vfork()。處理連接請(qǐng)求線程中產(chǎn)生子進(jìn)程來(lái)驅(qū)動(dòng)溫度采集電路的部分程序代碼如下:......else if(strcmp(j+1,\/temperator)==0){ if(pipe(pipe_fd)0) { printf(pipe create error\n)。當(dāng)用戶傳來(lái)CGI請(qǐng)求后,webserver守護(hù)進(jìn)程會(huì)生成子進(jìn)程來(lái)處理CGI請(qǐng)求。}pthread_join(id,NULL)。if(ret!=0){ printf(Creat pthread error\n)。}//調(diào)用線程函數(shù),thread為線程處理函數(shù)的函數(shù)名,accept_fd為thread函數(shù)的參數(shù)ret=pthread_create(amp。sin_size))==1){ perror(accept)。主線程中產(chǎn)生子線程的部分實(shí)現(xiàn)代碼如下:/*調(diào)用accept函數(shù),等待客戶端的連接*/if((accept_fd=accept(sockfd,(struct sockaddr*)amp。 Webserver模塊程序流程圖webserver模塊采用多線程來(lái)處理客戶端的連接請(qǐng)求,Webserver的主線程處于監(jiān)聽狀態(tài),只要有客戶端發(fā)出連接請(qǐng)求,該線程便產(chǎn)生一個(gè)子線程來(lái)處理連接請(qǐng)求,同時(shí),主線程繼續(xù)監(jiān)聽。如果試圖從管道寫端讀取數(shù)據(jù),或者向管道讀端寫入數(shù)據(jù)都將導(dǎo)致錯(cuò)誤發(fā)生。管道的創(chuàng)建需要使用pipe函數(shù),用法如下:include int pipe(int fd[2])管道兩端可分別用描述字fd[0]以及fd[1]來(lái)描述,需要注意的是,管道的兩端是固定了任務(wù)的。在webserver模塊中的難點(diǎn)是進(jìn)程間的通信,本設(shè)計(jì)中采用管道進(jìn)行進(jìn)程間通信。這樣,即使與FIFO的創(chuàng)建進(jìn)程不存在親緣關(guān)系的進(jìn)程,只要可以訪問(wèn)該路徑,就能夠彼此通過(guò)FIFO相互通信(能夠訪問(wèn)該路徑的進(jìn)程以及FIFO的創(chuàng)建進(jìn)程之間),因此,通過(guò)FIFO不相關(guān)的進(jìn)程也能交換數(shù)據(jù)。管道應(yīng)用的一個(gè)重大限制是它沒有名字,因此,只能用于具有親緣關(guān)系的進(jìn)程間通信,在有名管道(named pipe或FIFO)提出后,該限制得到了克服。管道是半雙工的,數(shù)據(jù)只能向一個(gè)方向流動(dòng);需要雙方通信時(shí),需要建立起兩個(gè)管道;只能用于父子進(jìn)程或者兄弟進(jìn)程之間(具有親緣關(guān)系的進(jìn)程);單獨(dú)構(gòu)成一種獨(dú)立的文件系統(tǒng):管道對(duì)于管道兩端的進(jìn)程而言,就是一個(gè)文件,但它不是普通的文件,它不屬于某種文件系統(tǒng),而是自立門戶,單獨(dú)構(gòu)成一種文件系統(tǒng),并且只存在與內(nèi)存中;數(shù)據(jù)的讀出和寫入:一個(gè)進(jìn)程向管道中寫的內(nèi)容被管道另一端的進(jìn)程讀出。 進(jìn)程間通信和管道Linux的進(jìn)程間通信方法有管道、消息隊(duì)列、共享內(nèi)存、信號(hào)量、套接口等。線程則不然,由于同一進(jìn)程下的線程之間共享數(shù)據(jù)空間,所以一個(gè)線程的數(shù)據(jù)可以直接為其它線程所用,這不僅快捷,而且方便。使用多線程的理由之二是線程間方便的通信機(jī)制。2)多線程在Linux系統(tǒng)下,啟動(dòng)一個(gè)新的進(jìn)程必須分配給它獨(dú)立的地址空間,建立眾多的數(shù)據(jù)表來(lái)維護(hù)它的代碼段、堆棧段和數(shù)據(jù)段,這是一種昂貴的多任務(wù)工作方式。與代碼段不同,如果系統(tǒng)中同時(shí)運(yùn)行多個(gè)相同的程序,它們不能使用同一堆棧段和數(shù)據(jù)段。堆棧段存放的是子程序(函數(shù))的返回地址、子程序的參數(shù)及程序的局部變量。代碼段存放了程序的代碼。進(jìn)程的task_struct數(shù)據(jù)結(jié)構(gòu)包括了進(jìn)程的狀態(tài)、調(diào)度信息、進(jìn)程標(biāo)識(shí)符等信息。多個(gè)進(jìn)程可以并發(fā)的調(diào)用同一個(gè)程序。當(dāng)用在TCP時(shí),后面的幾個(gè)與地址有關(guān)的參數(shù)不起作用,函數(shù)作用等同于send和recv;當(dāng)用在UDP時(shí),可以用在之前沒有使用connect的情況,這兩個(gè)函數(shù)可以自動(dòng)尋找指定地址并進(jìn)行連接。216。 send和recv:這兩個(gè)函數(shù)用于接收和發(fā)送數(shù)據(jù),可以在TCP中,也可以在UDP中。 connect:該函數(shù)在TCP中是用于bind之后的client端,用于與服務(wù)器端建立連接,在UDP中由于沒有了bind函數(shù),因此用connect有點(diǎn)類似bind函數(shù)的作用。另外,它主要用于TCP的連接,二在UDP的連接中則無(wú)必要。216。 socket:該函數(shù)用于建立一個(gè)socket連接,可指定socket類型等信息。在進(jìn)行網(wǎng)絡(luò)編程時(shí)要用到socket,進(jìn)行socket編程的基本函數(shù)有socket、bind、listen、accept、send、sendto、recv、recvfrom。常見的socket有流式socket、數(shù)據(jù)報(bào)socket,流式socket提供可靠的、面向連接的通信流,它使用TCP協(xié)議,從而保證了數(shù)據(jù)傳輸?shù)恼_性和順序性。這個(gè)文件可能是一個(gè)網(wǎng)絡(luò)連接,F(xiàn)IFO,管道,終端,磁盤上的文件。Unix 程序在執(zhí)行任何形式的 I/O 的時(shí)候,程序是在讀或者寫一個(gè)文件描述符。子進(jìn)程通過(guò)標(biāo)準(zhǔn)輸出流將處理結(jié)果傳輸給服務(wù)器守護(hù)進(jìn)程,守護(hù)進(jìn)程在將處理結(jié)果作為應(yīng)答消息回送到客戶端。服務(wù)器守護(hù)進(jìn)程接收到該請(qǐng)求后,就創(chuàng)建一個(gè)子進(jìn)程將CGI請(qǐng)求的有關(guān)數(shù)據(jù)設(shè)置成環(huán)境變量。服務(wù)器是客戶端與擴(kuò)展程序之間的通道。按照CGI標(biāo)準(zhǔn)編寫的外部擴(kuò)展應(yīng)用程序可以處理客戶端輸入的協(xié)同工作數(shù)據(jù),完成客戶端與服務(wù)器的交互操作。通過(guò)將CGI嵌入超文本標(biāo)記語(yǔ)言HTML實(shí)現(xiàn)信息網(wǎng)關(guān)、反饋機(jī)制、訪問(wèn)數(shù)據(jù)庫(kù)和查詢等操作。 CGI(Common Gateway Interface)最初Web上的信息是靜止的,信息內(nèi)容只有在站點(diǎn)管理員的更新后再發(fā)生變化,用戶能夠獲取的信息由信息提供者決定,用戶是被動(dòng)的,用戶之間、用戶與提供者之間缺少交互性。每個(gè)頭域由一個(gè)域名、冒號(hào)和值域3部分組成。這兩種的消息由一個(gè)起始行,一個(gè)或者多個(gè)頭域,一個(gè)只是頭域結(jié)束的空行和可選的消息體組成。服務(wù)器以一個(gè)狀態(tài)行作為響應(yīng),相應(yīng)的內(nèi)容包括信息協(xié)議的版本,成功或者錯(cuò)誤編碼加上包含服務(wù)器信息,實(shí)體元信息以及可能的實(shí)體內(nèi)容。HTTP協(xié)議采用了請(qǐng)求/響應(yīng)模型。它于1990年提出,經(jīng)過(guò)幾年的使用與發(fā)展,得到不斷地完善和擴(kuò)展。 HTTP協(xié)議WWW服務(wù)器使用的主要協(xié)議是HTTP協(xié)議,即超文體傳輸協(xié)議。用戶連接到服務(wù)器后發(fā)送請(qǐng)求,然后服務(wù)器處理返回客戶請(qǐng)求的信息。二者均是在linux下用C語(yǔ)言編寫的,其中溫度采集控制程序就是根據(jù)DS18B20的工作時(shí)序編寫程序,使其正常工作;webserver程序較為復(fù)雜,使用了linux socket編程、多進(jìn)程和多線程及進(jìn)程間通信等技術(shù)。本設(shè)計(jì)中使用第一種供電方式。當(dāng)使用這種寄生電源方式時(shí)VDD引腳必須連接到地。DS18B20有兩種供電方式,第一種方法是發(fā)生溫度變換時(shí),在I/O線上提供一強(qiáng)的上拉。所有讀時(shí)間片的最短持續(xù)期位60微秒,各個(gè)讀時(shí)間片之間必須有最短為1微秒的恢復(fù)時(shí)間。數(shù)據(jù)線必須保持在低電平至少1微秒;來(lái)自DS18B20的輸出數(shù)據(jù)在讀時(shí)間片下降沿之后15微秒有效。當(dāng)從DS18B20讀數(shù)據(jù)時(shí),主機(jī)產(chǎn)生讀時(shí)間片。在I/O線由高電平變?yōu)榈碗娖街?,DS18B20在15us至60us的窗口之間對(duì)I/O線采樣。當(dāng)主機(jī)把數(shù)據(jù)線高電平拉至低電平時(shí),產(chǎn)生寫時(shí)間片。 初始化的復(fù)位和存在脈沖時(shí)間片是用于處理數(shù)據(jù)位和指定進(jìn)行何種操作的命令字的??偩€經(jīng)上拉電阻被拉至高電平。DS18B20單線總線上的所有處理均從初始化序列()開始,初始化序列包括主機(jī)發(fā)出一復(fù)位脈沖,接著有DS18B20發(fā)出存在脈沖。 DS18B20的延時(shí)要求和讀寫時(shí)間片DS18B20簡(jiǎn)單的硬件開銷是以復(fù)雜的軟件控制為代價(jià)。結(jié)果存入內(nèi)部9字節(jié)RAM中讀暫存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫暫存器4EH發(fā)出向內(nèi)部RAM的4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將RAM中第3 、4字節(jié)的內(nèi)容復(fù)制到EEPROM中重調(diào)EEPROM0B8H將EEPROM中內(nèi)容恢復(fù)到RAM中的第3 、4字節(jié)讀供電方式0B4H讀DS1820的供電模式。為操作各器件作好準(zhǔn)備跳過(guò)ROM0CCH忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號(hào)后等待16~60微秒左右,然后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。 (4)配置寄存器 。C1111 1100 1001 0000FC90H(3)DS18B20溫度傳感器的存儲(chǔ)器。C1111 1111 0101 1110FF5EH 176。C0000 0000 0000 00000000H 176。C
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1