![物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2019-6/27/6902fff7-c7d9-46c0-b464-afd3f6f8263d/6902fff7-c7d9-46c0-b464-afd3f6f8263d1.gif)
![物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2019-6/27/6902fff7-c7d9-46c0-b464-afd3f6f8263d/6902fff7-c7d9-46c0-b464-afd3f6f8263d2.gif)
![物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2019-6/27/6902fff7-c7d9-46c0-b464-afd3f6f8263d/6902fff7-c7d9-46c0-b464-afd3f6f8263d3.gif)
![物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)](http://file.renrendoc.com/FileRoot1/2019-6/27/6902fff7-c7d9-46c0-b464-afd3f6f8263d/6902fff7-c7d9-46c0-b464-afd3f6f8263d4.gif)
![物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)](http://file.renrendoc.com/FileRoot1/2019-6/27/6902fff7-c7d9-46c0-b464-afd3f6f8263d/6902fff7-c7d9-46c0-b464-afd3f6f8263d5.gif)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南 陽(yáng) 理 工 學(xué) 院 本科生畢業(yè)設(shè)計(jì)(論文)學(xué) 院:電子與電氣工程學(xué)院專 業(yè): 自動(dòng)化 學(xué) 生: 張 真 指導(dǎo)教師: 曹 婷 完成日期 2014 年 5 月南陽(yáng)理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation of the Smart Home Terminal Based on the Internet of Things總 計(jì): 31 頁(yè)表 格: 1 個(gè)插 圖: 24 幅南 陽(yáng) 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation of the Smart Home Terminal Based on the Internet of Things學(xué) 院: 電子與電氣工程學(xué)院 專 業(yè): 自動(dòng)化 學(xué) 生 姓 名: 張 真 學(xué) 號(hào): 105090640038 指 導(dǎo) 教 師(職稱): 曹 婷(講師) 評(píng) 閱 教 師: 完 成 日 期: 南陽(yáng)理工學(xué)院Nanyang Institute of Technology物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)I物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)自動(dòng)化專業(yè) 張真摘要 智能家居又稱為數(shù)字家庭, 一般是指以計(jì)算機(jī)接口技術(shù)和網(wǎng)絡(luò)技術(shù)為基礎(chǔ),將各種家用數(shù)字化設(shè)備有機(jī)結(jié)合為一體的智能化的網(wǎng)絡(luò)系統(tǒng)。本課題以Web 技術(shù)為核心, 在基于S3C2440 微處理器和嵌入式Linux 操作系統(tǒng)的軟硬件平臺(tái)上構(gòu)建了Web服務(wù)器和視頻服務(wù)器,Web 服務(wù)器采用Boa,視頻服務(wù)器采用Mjpeg-Streamer,結(jié)合CGI技術(shù)處理HTML表單完成用戶認(rèn)證,視頻監(jiān)控,設(shè)備開關(guān)控制等家具監(jiān)控功能。關(guān)鍵詞 智能家居;Linux;網(wǎng)絡(luò)服務(wù)器;S3C2440;通用網(wǎng)關(guān)接口Design and Implementation of the Smart Home Terminal Based on the Internet of ThingsAutomation Specialty ZHANG ZhenAbstract: Also known as digital home, smart home generally refers to computer interface technology and network technology as the foundation,the combination of various kinds of household digital equipment for the integration of intelligent network system .These household devices includes digital telephone, computer, digital audio and video equipment, digital home appliances and security monitoring equipment,intelligent household terminal for home users to provide simple, safe, reliable,intelligent integrated services.This topic with Web technology as the core, based on S3C2440 microprocessor and embedded Linux operating system software and hardware platform to build a Web server and the video server, Web server USES the Boa, adopts Mjpeg video server - the streamer, HTML form with CGI technology processing,complete the user authentication, video monitoring, switch control equipment, household monitoring function.Key words: Smart Home; Linux;Web Server;S3C2440;CGI物聯(lián)網(wǎng)智能家居終端的設(shè)計(jì)與實(shí)現(xiàn)目 錄1 引言11.1 智能家居發(fā)展現(xiàn)狀11.2 智能家居系統(tǒng)概述11.3 研究目的及意義22 系統(tǒng)主要設(shè)計(jì)任務(wù)32.1 Linux系統(tǒng)移植42.1.1 Bootloader編譯與移植42.1.2 修改U-Boot文件62.2 Mjpeg-streamer視頻服務(wù)器移植72.3 Boa服務(wù)器移植72.2 CGI程序設(shè)計(jì)與實(shí)現(xiàn)73 硬件開發(fā)平臺(tái)83.1 基于ARM920t的S3C2440處理器83.2 TQ2440開發(fā)板硬件資源94 智能家居終端軟件設(shè)計(jì)104.1 Linux系統(tǒng)移植配置與調(diào)試104.2 硬件驅(qū)動(dòng)程序的設(shè)計(jì)與加載134.2.1 LED驅(qū)動(dòng)的設(shè)計(jì)144.2.2 LCD驅(qū)動(dòng)程序設(shè)計(jì)144.2.3 USB攝像頭驅(qū)動(dòng)程序的設(shè)計(jì)164.3 Boa服務(wù)器移植方法與配置184.4 Mjpeg-streamer的編譯與配置194.5 QT應(yīng)用程序的設(shè)計(jì)205 整機(jī)系統(tǒng)調(diào)試及結(jié)果分析225.1 系統(tǒng)控制程序流程圖225.2 視頻監(jiān)控程序與調(diào)試23結(jié)束語(yǔ)25參考文獻(xiàn)26附錄27致謝31II1 引言1.1 智能家居發(fā)展現(xiàn)狀智能家居又稱智能住宅,是以住宅為平臺(tái),利用先進(jìn)的計(jì)算機(jī)、嵌入式系統(tǒng)和網(wǎng)絡(luò)通訊技術(shù),將家中的各種設(shè)備,包括照明系統(tǒng)、環(huán)境控制系統(tǒng)、網(wǎng)絡(luò)家電等通過(guò)家庭網(wǎng)絡(luò)連接到一起,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng)。與普通的家居相比,智能家居既具有傳統(tǒng)的居住功能,又提升了家居安全性、便利性、舒適性、藝術(shù)性,因此成為當(dāng)前人們家裝所關(guān)注的熱點(diǎn)。早在1995年比爾蓋茨在未來(lái)之路中提到了物聯(lián)網(wǎng)的概念,然而到了1998年的時(shí)候美國(guó)的麻省理工學(xué)院(MIT)的Kevin Ashton,把非接觸式無(wú)線識(shí)別技術(shù)(RFID)與傳感器技術(shù)應(yīng)用于日常物品中才形成一個(gè)真正所謂的“物聯(lián)網(wǎng)”。當(dāng)時(shí)的物聯(lián)網(wǎng)的概念就是利用產(chǎn)品電子代碼EPC,還有我們的射頻識(shí)別技術(shù),通過(guò)網(wǎng)絡(luò),當(dāng)時(shí)的網(wǎng)絡(luò)還僅限于互聯(lián)網(wǎng)來(lái)實(shí)現(xiàn)物品的互聯(lián)互通。在任何時(shí)候任何地點(diǎn)對(duì)任何物品識(shí)別和管理,這就是原來(lái)的物聯(lián)網(wǎng)。在1999年的時(shí)候EPC Global的Auto-ID中心提出:物聯(lián)網(wǎng)就是成千上萬(wàn)的物品采用無(wú)線方式接入了Internet的網(wǎng)絡(luò)。這是物聯(lián)網(wǎng)概念真正的提出。在2008年IBM提出:互聯(lián)網(wǎng)+物聯(lián)網(wǎng)=智慧地球,就是把傳感器設(shè)備安裝到電網(wǎng)、鐵路、橋梁、隧道、供水系統(tǒng)、大壩、油氣管道等各種物體中,并且普遍鏈接成網(wǎng)路,及“物聯(lián)網(wǎng)”。至此最新的物聯(lián)網(wǎng)概念形成了。網(wǎng)絡(luò)技術(shù)、傳感技術(shù)、數(shù)據(jù)庫(kù)技術(shù)、云計(jì)算、移動(dòng)計(jì)算等新技術(shù)使得物聯(lián)網(wǎng)發(fā)生了很大的變換,內(nèi)含增多增大。所謂的物不僅僅是物理實(shí)體,網(wǎng)絡(luò)不僅僅是各類信息的網(wǎng)絡(luò),還包括互聯(lián)網(wǎng)、傳感網(wǎng)、移動(dòng)網(wǎng),技術(shù)也把條碼、射頻、傳感器包含了進(jìn)來(lái)。廣義的物聯(lián)網(wǎng)概念就是利用自動(dòng)識(shí)別技術(shù),這里包括條碼、射頻、全球定位等按照標(biāo)準(zhǔn)的協(xié)議實(shí)現(xiàn)人與物、物與物在任何時(shí)候任何地點(diǎn)的鏈接,顯著的特點(diǎn)就是智能化、進(jìn)行信息交換和通信、以實(shí)現(xiàn)智能識(shí)別、定位、跟蹤、監(jiān)控、管理,構(gòu)建成為一個(gè)龐大的網(wǎng)絡(luò)體系。1.2 智能家居系統(tǒng)概述智能住宅強(qiáng)調(diào)的是人的主觀能動(dòng)性,要求重視人與居住環(huán)境的協(xié)調(diào),能夠隨心所欲地控制室內(nèi)居住環(huán)境。智能住宅的住戶可以在任何地方通過(guò)手機(jī)遙控家電,監(jiān)控住宅情況,如指示洗衣機(jī)工作;查看冰箱中食品儲(chǔ)存情況;監(jiān)視家中是否有人闖入等。因此,智能家居在生產(chǎn)設(shè)計(jì)方面,務(wù)必以實(shí)用為核心,力求實(shí)用、易用、人性化。隨著社會(huì)信息化的加快,人們的工作、生活和通訊、信息的關(guān)系日益緊密。信息化社會(huì)在改變?nèi)藗兩罘绞脚c工作習(xí)慣的同時(shí),也對(duì)傳統(tǒng)的住宅提出了挑戰(zhàn),社會(huì)、技術(shù)以及經(jīng)濟(jì)的進(jìn)步更使人們的觀念隨之巨變。人們對(duì)家居的要求早已不只是物理空間,更為關(guān)注的是一個(gè)安全、方便、舒適的居家環(huán)境。家居智能化技術(shù)起源于美國(guó),它是以家為平臺(tái)進(jìn)行設(shè)計(jì)的。智能家居控制系統(tǒng)是以HFC、以太網(wǎng)、現(xiàn)場(chǎng)總線、公共電話網(wǎng)、無(wú)線網(wǎng)的傳輸網(wǎng)絡(luò)為物理平臺(tái),計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)為技術(shù)平臺(tái),現(xiàn)場(chǎng)總線為應(yīng)用操作平臺(tái),構(gòu)成一個(gè)完整的集家庭通信、家庭設(shè)備自動(dòng)控制、家庭安全防范等功能的控制系統(tǒng)。智能家居控制系統(tǒng)的總體目標(biāo)是通過(guò)采用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、控制技術(shù)和集成技術(shù)建立一個(gè)由家庭到小區(qū)乃至整個(gè)城市的綜合信息服務(wù)和管理系統(tǒng),以此來(lái)提高住宅高新技術(shù)的含量和居民居住環(huán)境水平。大型的智能家居控制系統(tǒng)通常由系統(tǒng)服務(wù)器、家庭控制器(各種模塊)、各種路由器、電纜調(diào)制解調(diào)器頭端設(shè)備CMTS、交換機(jī)、通訊器、控制器、無(wú)線收發(fā)器、各種探測(cè)器、各種傳感器、各種執(zhí)行機(jī)構(gòu)、打印機(jī)等主要部分組成。1.3 研究的目的及意義智能家居控制系統(tǒng)可以定義為一個(gè)過(guò)程或者一個(gè)系統(tǒng)。利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、綜合布線技術(shù)、將與家居生活有關(guān)的各種子系統(tǒng),有機(jī)地結(jié)合在一起,通過(guò)統(tǒng)籌管理,讓家居生活更加舒適、安全、有效。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,提供舒適安全、高品位且宜人的家庭生活空間。還將原來(lái)的被動(dòng)靜止結(jié)構(gòu)轉(zhuǎn)變?yōu)榫哂心軇?dòng)智慧的工具,提供全方位的信息交換功能,幫助家庭與外部保持信息交換暢通,優(yōu)化人們的生活方式,幫助人們有效安排時(shí)間,增強(qiáng)家居生活的安全性,甚至為各種能源費(fèi)用節(jié)約資金。系統(tǒng)的網(wǎng)絡(luò)化功能可以提供遙控:家電(電視,空調(diào),熱水器等)控制、照明控制、室內(nèi)外遙控、窗簾自控、防盜報(bào)警、電話遠(yuǎn)程控制、可編程定時(shí)控制及計(jì)算機(jī)控制等多種功能和手段。使生活更加舒適、便利和安全。因智能家居控制系統(tǒng)簡(jiǎn)單、功能靈活,擴(kuò)展容易而被人們廣泛接受和應(yīng)用。家居生活的智能化是當(dāng)今計(jì)算機(jī)網(wǎng)絡(luò)與通訊技術(shù)最人性化的應(yīng)用,給人們的家居生活帶來(lái)了全新的感受。今天,借助電話控制或互聯(lián)網(wǎng),您幾乎可以在任何地方、任何時(shí)候監(jiān)控您的家居狀況,為您的家居生活帶來(lái)前所未有的方便。隨著社會(huì)全面的信息化、智能化和自動(dòng)化,家庭智能化必將成為未來(lái)家居裝飾潮流發(fā)展的最新方向!2 系統(tǒng)主要設(shè)計(jì)任務(wù)系統(tǒng)主要設(shè)計(jì)包含以下幾個(gè)部分,基于S3C2440的Linux系統(tǒng)移植,Boa服務(wù)器移植,Mjpeg視頻服務(wù)器移植,系統(tǒng)硬件設(shè)備驅(qū)動(dòng)程序編寫,模塊設(shè)計(jì)如圖1所示。圖1 智能家居系統(tǒng)控制框圖2.1 Linux內(nèi)核移植所謂嵌入式Linux,是指Linux在嵌入式系統(tǒng)中的應(yīng)用。在所有的操作系統(tǒng)中,Linux操作系統(tǒng)是一個(gè)發(fā)展最快,應(yīng)用最廣泛的操作系統(tǒng),由于Linux系統(tǒng)的優(yōu)良特性,使得其成為嵌入式開發(fā)中的首選。隨著嵌入式Linux的不斷成熟,以及其對(duì)更小尺寸和更多類型的處理器支持,使得嵌入式Linux操作系統(tǒng)邁入了嵌入式系統(tǒng)的主流,因此本系統(tǒng)采用Linux作為操作系統(tǒng)。關(guān)于Linux的移植分為四部分,Bootloade移植,Linux內(nèi)核的移植,內(nèi)核驅(qū)動(dòng)程序的移植以及根文件系統(tǒng)的掛載。內(nèi)核方面我們一般以2.6.xx及其以上的版本移植,因?yàn)槠渫ㄓ眯粤己?。根文件系統(tǒng)一般選用yaffs文件系統(tǒng),而內(nèi)核驅(qū)動(dòng)方面,Linux內(nèi)核一般有足夠的硬件驅(qū)動(dòng)供我們加載,所以其實(shí)我們主要工作就放到了移植方面。下面Bootloader的移植進(jìn)行演示。我們一般選用較好的U-Boot作為嵌入式系統(tǒng)中通用的Boot Loader,下面是幾種不同的Bootloader介紹。Bootloader 是嵌入式系統(tǒng)的引導(dǎo)加載程序,它是系統(tǒng)上電后運(yùn)行的第一段程序,其作用類似于 PC 機(jī)上的 BIOS。在完成對(duì)系統(tǒng)的初始化任務(wù)之后,它會(huì)將非易失性存儲(chǔ)器(通常是Flash或DOC等)中的Linux 內(nèi)核拷貝到 RAM 中去,然后跳轉(zhuǎn)到內(nèi)核的第一條指令處繼續(xù)執(zhí)行,從而啟動(dòng) Linux 內(nèi)核。2.1.1 Bootloade編譯與移植表1 開放源碼的Linux引導(dǎo)程序Boot LoaderMonitor描述X86ARMPowerLILO否Linux磁盤引導(dǎo)程序是否否GRUB否GNU的LILO替代程序是否否Loadin否從DOS引導(dǎo)Linux是否否ROLO否從ROM引導(dǎo)Linux而不需要BIOS是否否Etherboot否通過(guò)以太網(wǎng)卡啟動(dòng)Linux的固件是否否LinuxBIOS否完全替代BUIS的Linux引導(dǎo)程序是否否BLOB否LART等硬件平臺(tái)的引導(dǎo)程序否是否U-boot是通用引導(dǎo)程序是是是RedBoot是基于eCos的引導(dǎo)程序是是是(1) 首先,把下載下來(lái)的u-boot-1.1.6.tar.bz2包,復(fù)制到我們的工作目錄,這里我們把它復(fù)制到/home/work/目錄下邊,然后解壓,如圖2所示。圖2 Bootloader編譯與移植進(jìn)入U(xiǎn)-Boot目錄,然后修改頂層目錄的Makefile,如圖3所示。圖3 Bootloader編譯與移植找到smdk2410_config項(xiàng),仿照其模式為TQ2440建立編譯項(xiàng),如圖4所示。圖4 Bootloader編譯與移植此時(shí)要注意,“”符號(hào)前邊一定要加“TAB”而并非空格,否則會(huì)在測(cè)試編譯時(shí)報(bào)錯(cuò)。其中各項(xiàng)的意思如下:arm: CPU的架構(gòu)(ARCH)。 arm920t: CPU的類型(CPU),其對(duì)應(yīng)于cpu/arm920t子目錄。 tq2440: 開發(fā)板的型號(hào)(BOARD),對(duì)應(yīng)于board/smdk2440/tq2440目錄。 TQ2440: 開發(fā)者/或經(jīng)銷商(vender)。 s3c24x0: 片上系統(tǒng)(SOC)。然后找到ifndef CROSS_COMPILE,在這句話之前加入我們的交叉編譯器,這里分別安裝了cross-2.95.3和cross-3.4.1交叉編譯工具,在這里使用3.4.1版本有時(shí)候會(huì)報(bào)錯(cuò),所以推薦在這里使用cross-2.95.3,該工具的安裝目錄為/usr/local/arm/2.95.3,如圖5所示。圖5 Bootloader編譯與移植(2) 在/board子目錄中建立自己的開發(fā)板tq2440目錄,見圖6。圖6 Bootloader編譯與移植由于我在上一步板子的開發(fā)者/或經(jīng)銷商(vender)中填了friendlyarm,所以開發(fā)板tq2440目錄一定要建在/board子目錄中的tq2440目錄下 ,否則編譯會(huì)出錯(cuò),同時(shí)還要記得修改自己的開發(fā)板tq2440目錄下的Makefile文件,同樣用vi編輯器打開Makefile,并把COBJS變量值修改如下OBJS := tq2440.o flash.o(3) 在include/configs/中建立配置頭文件,即復(fù)制s3c2440.h到tq2440中,如圖7所示。圖7 Bootloader編譯與移植(4) make測(cè)試編譯如圖8所示。圖8 Bootloader編譯與移植可以看到,系統(tǒng)并沒(méi)有報(bào)錯(cuò),說(shuō)明編譯配置已經(jīng)沒(méi)問(wèn)題,接下來(lái)我們所要做的就是要根據(jù)開發(fā)板參數(shù),修改相應(yīng)的文件。2.1.2 修改UBoot文件(1) 修改/cpu/arm920t/start.S。start.S文件是整個(gè)Boot loader程序的入口點(diǎn),在這里我們需要對(duì)寄存器地址定義、中斷禁止部分、時(shí)鐘設(shè)置(2440的主頻為405MHz)等部分,按照s3c2440手冊(cè)或者vivi的源代碼,將從Flash啟動(dòng)改成從NAND Flash啟動(dòng)。(2) 在board/friendlyarm/qq2440加入NAND Flash讀函數(shù)文件,拷貝vivi中的nand_read.c文件到此文件夾即可。(3) 修改board/friendlyarm/qq2440/Makefile文件。OBJS := qq2440.o nand_read.o flash.o(4) 修改include/configs/qq2440.h文件。添加NAND FLASH、JFFS2、USB啟動(dòng)支持。(5) 修改board/friendlyarm/qq2440/lowlevel_init.S文件,依照開發(fā)板的內(nèi)存區(qū)的配置情況, 修改board/tekkaman/tekkaman2440/lowlevel_init.S文件,我們利用友善之臂提供的vivi源碼里的信息做一些簡(jiǎn)單的修改。(6) 修改/board/friendlyarm/qq2440/qq2440.c。修改其對(duì)GPIO和PLL的配置(需參閱開發(fā)板的硬件說(shuō)明和芯片手冊(cè)):(7) 在個(gè)文件中添加“CONFIG_S3C2440”,使得原來(lái)s3c2410的代碼可以編譯進(jìn)來(lái)。此外還需要對(duì)以下文件進(jìn)行一些修改include/linux/mtd/nand_ids.hinclude/linux/mtd/nand.h /lib_arm/board.ccommon/env_nand.c/board/EmbedSky/qq2440/tq2440.c在U-Boot根目錄下執(zhí)行如下命令# make clean;# make tq2400_config;# make編譯一段時(shí)間后,便會(huì)生成U-Boot映像的ELF格式。2.2 Mjpeg-streamer視頻服務(wù)器移植Mjpg-streamer是用于從攝像頭采集圖像的視頻服務(wù)器,它把圖像以流的形式通過(guò)基于IP的網(wǎng)絡(luò)傳輸?shù)綖g覽器如IE。并可以利用某些攝像頭的硬件壓縮功能來(lái)降低服務(wù)器CPU的開銷。它為嵌入式設(shè)備和一些常規(guī)服務(wù)器提供了一個(gè)輕量且更少CPU消耗的方案,因?yàn)闊o(wú)需為視頻幀壓縮浪費(fèi)大量的計(jì)算效率(這件事交給硬件了)。2.3 Boa服務(wù)器移植Boa是一個(gè)非常小巧的Web服務(wù)器,可執(zhí)行代碼只有約60KB。它是一個(gè)單任務(wù)Web服務(wù)器,只能依次完成用戶的請(qǐng)求,但Boa支持CGI,能夠?yàn)镃GI程序fork出一個(gè)進(jìn)程來(lái)執(zhí)行。Boa的設(shè)計(jì)目標(biāo)是速度和安全,在其站點(diǎn)公布的性能測(cè)試中,Boa的性能 要好于Apache服務(wù)器。與其他傳統(tǒng)的Web 服務(wù)器不同的是當(dāng)有連接請(qǐng)求到來(lái)時(shí), 它并不為每個(gè)連接單獨(dú)創(chuàng)建進(jìn)程, 也不通過(guò)復(fù)制自身進(jìn)程來(lái)處理多鏈接, 而是通過(guò)建立HTTP 請(qǐng)求列表來(lái)處理多路HTTP 連接請(qǐng)求, 同時(shí)它只為CGI 程序創(chuàng)建新的進(jìn)程, 這樣就在最大程度上節(jié)省了系統(tǒng)資源, 這對(duì)嵌入式系統(tǒng)來(lái)說(shuō)至關(guān)重要. 同時(shí)它還具有自動(dòng)生成目錄、自動(dòng)解壓文件等功能, 因此, Boa 具有很高的HTTP 請(qǐng)求處理速度和效率, 在嵌入式系統(tǒng)中具有很高的應(yīng)用價(jià)值。Boa服務(wù)器移植主要包括以下幾點(diǎn):(1) 修改配置文件。(2) 生成Makefile文件。(3) 執(zhí)行make命令編譯。2.4 CGI程序設(shè)計(jì)與實(shí)現(xiàn)CGI:通用網(wǎng)關(guān)接口(Common Gateway Interface)是一個(gè)Web服務(wù)器主機(jī)提供信息服務(wù)的標(biāo)準(zhǔn)接口。通過(guò)CGI接口,Web服務(wù)器就能夠獲取客戶端提交的信息,轉(zhuǎn)交給服務(wù)器端的CGI程序進(jìn)行處理,最后返回結(jié)果給客戶端。組成CGI通信系統(tǒng)的是兩部分:一部分是html頁(yè)面,就是在用戶端瀏覽器上顯示的頁(yè)面。另一部分則是運(yùn)行在服務(wù)器上的CGI程序。我們的CGI程序主要完成與網(wǎng)頁(yè)接口的連接,即主登陸窗口、LED顯示窗口、參數(shù)設(shè)置窗口、實(shí)時(shí)顯示參數(shù)窗口等網(wǎng)頁(yè)分別編寫文件,實(shí)現(xiàn)程序見附錄。圖9 CGI登錄流程圖3 硬件開發(fā)平臺(tái)簡(jiǎn)介3.1 基于ARM920t的S3C2440處理器S3C2440A是韓國(guó)三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T內(nèi)核。(1) 特點(diǎn): 具有PLL時(shí)鐘發(fā)生器,主頻最高可達(dá)533M。 內(nèi)核1.2V供電最高400M,1.3V供電最高533M。 存儲(chǔ)器支持1.8V、2.5V、3.0V、3.3V。 I/O均支持3.3V供電。 S3C2440為單機(jī)器周期執(zhí)行指令集。 具有電源管理功能,可以使系統(tǒng)以普通方式、空閑方式和掉電模式工作。(2) 內(nèi)核結(jié)構(gòu):采用ARM920T內(nèi)核,具有16KB指令Cache、16KB數(shù)據(jù)Cache和存儲(chǔ)器管理單元MMU,指令高速存儲(chǔ)緩沖器(I-Cache),數(shù)據(jù)高速存儲(chǔ)緩沖器(D-cache)提高指令執(zhí)行效率及數(shù)據(jù)存儲(chǔ)效率,減少主存帶寬和響應(yīng)性帶來(lái)的影響,加強(qiáng)的ARM體系結(jié)構(gòu)MMU,用于支持winCE、linux等操作系統(tǒng),內(nèi)部高級(jí)微控制總線(AMBA)體系結(jié)構(gòu)(AMB2.0,AHB/APB)。(3) 存儲(chǔ)器控制器特性: S3C2440采用總線結(jié)構(gòu)管理片上外設(shè)及內(nèi)存。 S3C2440的存儲(chǔ)器管理器提供訪問(wèn)外部存儲(chǔ)器的所有控制信號(hào)。27位地址號(hào)32位數(shù)據(jù)信號(hào)、8個(gè)片選信號(hào)、以及讀/寫控制信號(hào)等。 總共有8個(gè)存儲(chǔ)器Bank(Bank0Bank7),其中,Bank0-Bank5為固定128MB,Bank6和Bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB,最大共1GB。Bank0可以作為引導(dǎo)ROM,其數(shù)據(jù)線寬只能是16位和32位,其它存儲(chǔ)器的數(shù)據(jù)線寬可以是8位、16位和32位。 8個(gè)存儲(chǔ)器Bank: Bank0-Bank5:SRAM、ROM。 Bank6Bank7:SRAM、ROM SDRAM。 S3C2440支持兩種啟動(dòng)方式: NOR FLASH啟動(dòng),即代碼直接寫入NOR FLASH,運(yùn)行時(shí)直接在NOR FLASH上運(yùn)行。 NAND FLASH啟動(dòng)方式,即代碼燒到NAND FLASH中,借助片內(nèi)4K的sram,將代由NAND FLASH烤到SDRAM中,在SDRAM中運(yùn)行。3.2 TQ2440開發(fā)板硬件資源介紹(1) CPU處理器 Samsung S3C2440A,主頻400MHZ,最高533MHZ(2) SDRAM內(nèi)存 在板64M SDRAM(3) 32bit數(shù)據(jù)總線(4) SDRAM時(shí)鐘頻率高達(dá)100MHZ(5) FLASH存儲(chǔ) 在板256M Nand Flash,掉電非易失 在板2M Nor Flash,掉電非易失,已經(jīng)安裝BIOS(6) LCD顯示 板上集成4線電阻式觸摸屏接口,可以直接連接四線電阻觸摸屏 支持黑白、4級(jí)灰度、16級(jí)灰度、256色、4096色STN液晶屏, 板上引出一個(gè)12V電源接口,可以為大尺寸TFT液晶的12V CCFL背光模塊(7) 接口和資源 1個(gè)10M以太網(wǎng)RJ45接口(采用CS8900網(wǎng)絡(luò)芯片) 3個(gè)串行口 1個(gè)USB Host 1個(gè)USB Slave B型接口 1個(gè)SD卡存儲(chǔ)接口 1路立體聲音頻輸出接口,一路麥克風(fēng)接口; 1個(gè)2.0mm間距20針標(biāo)準(zhǔn)JTAG接口 1個(gè)PWM控制蜂鳴器 1個(gè)可調(diào)電阻,用于AD模數(shù)轉(zhuǎn)換測(cè)試 1個(gè)I2C總線AT24C08芯片,用于I2C總線測(cè)試 1個(gè)20pin攝像頭接口 板載實(shí)時(shí)時(shí)鐘電池 電源接口(12V),帶電源開關(guān)和指示燈(8) 系統(tǒng)時(shí)鐘源 12M無(wú)源晶振(9) 實(shí)時(shí)時(shí)鐘 內(nèi)部實(shí)時(shí)時(shí)鐘(帶后備鋰電池)(10) 擴(kuò)展接口 1個(gè)34 pin 2.0mmGPIO接口 1個(gè)44 pin 2.0mm 系統(tǒng)總線接口(11) 指示燈 4個(gè)LED指示燈,可模擬做演示設(shè)備(12) 操作系統(tǒng)支持 Linux2.6.x WindowsCE.NET 4.24 智能家居終端軟件設(shè)計(jì)4.1 Linux系統(tǒng)移植配置與調(diào)試(1) Linux開發(fā)板硬件平臺(tái)配置,應(yīng)該配置支持TQ2440。其中包括板載資源的配置,主要目的是芯片廠商的啟動(dòng)文件加載,如圖10所示。圖10 Linux開發(fā)平臺(tái)配置(2) Linux yaffs文件系統(tǒng)配置,這是開發(fā)板的根文件系統(tǒng),我們的應(yīng)用程序都放在了NANDFlash中,要想對(duì)其讀取,必須加載根文件系統(tǒng)其中包括Linux的內(nèi)核鏡像也被燒錄到NANDFlash中。具體配置如圖11所示。圖11 Linux文件系統(tǒng)掛載配置(4) S3C2440開發(fā)板使用的Nandflash容量為256M,大頁(yè)(2K)Nand,內(nèi)核中NandFlash驅(qū)動(dòng)的位置為:drivers/mtd/nand/目錄,該目錄下的s3c2410_nand.c文件為s3c2440的NAND控制器的驅(qū)動(dòng),我們無(wú)需修改驅(qū)動(dòng),只需要讓內(nèi)核支持nand驅(qū)動(dòng),并創(chuàng)建nandflash分區(qū)表。開發(fā)板NANDFalsh配置,系統(tǒng)的應(yīng)用程序及內(nèi)核鏡像均被燒錄到NANDFlash中,開發(fā)板為支持256 NANDFlash,因此在添加了文件系統(tǒng)之后必須添加系統(tǒng)對(duì)NANDFlash的硬件驅(qū)動(dòng)支持,這樣系統(tǒng)才能正常的從NANDFlash向內(nèi)存中加載應(yīng)用程序,其編譯配置如圖12所示。圖12 Linux支持NANDFlash存儲(chǔ)配置(5) 在通常情況下,生產(chǎn)廠商把LCD驅(qū)動(dòng)器會(huì)以COF/COG的形式與LCD玻璃基板制作在一起,而LCD控制器則是由外部的電路來(lái)實(shí)現(xiàn),現(xiàn)在很多的MCU內(nèi)部都集成了LCD控制器,如S3C2410/2440等。通過(guò)LCD控制器就可以產(chǎn)生LCD驅(qū)動(dòng)器所需要的控制信號(hào)來(lái)控制STN/TFT屏了。 S3C2440內(nèi)部有LCD顯示控制器在驅(qū)動(dòng)設(shè)備文件夾已經(jīng)有關(guān)于驅(qū)動(dòng)控制器的驅(qū)動(dòng)文件,這些驅(qū)動(dòng)文件是可以直接調(diào)用的,注意,系統(tǒng)并沒(méi)有建立S3C2440的LCD配置文件,但是由于S3C2410與2440驅(qū)動(dòng)兼容,因此只需添加配置S3C2410的驅(qū)動(dòng)即可,添加S3C2410存儲(chǔ)配置幀緩沖支持如圖13所示。圖13 LinuxLCD顯示器存配置(6) EABI即嵌入式應(yīng)用二進(jìn)制接口,他描述了可連接目標(biāo)代碼,庫(kù)目標(biāo)代碼,可執(zhí)行文件鏡像的編譯。連接執(zhí)行調(diào)試以及目標(biāo)代碼的生成過(guò)程。這里我們選著ARM EABI,具體如圖14所示。圖14 配置Linux支持EABI4.2 硬件驅(qū)動(dòng)程序設(shè)計(jì)與加載在Linux系統(tǒng)中所有的設(shè)備都被看成文件,因此我們對(duì)驅(qū)動(dòng)的編寫實(shí)際上是對(duì)文件的操作。在程序運(yùn)行過(guò)程中,系統(tǒng)涉及到了以下幾個(gè)模塊:GPIO、USB攝像頭,顯示設(shè)備TFTLCD,輸入設(shè)備觸摸屏,在Linux設(shè)備驅(qū)動(dòng)屬于內(nèi)核的一部分,Linux內(nèi)核的一個(gè)模塊可以以兩種方式被編譯和加載:(1) 直接編譯進(jìn)Linux內(nèi)核,隨同Linux啟動(dòng)時(shí)加載。(2) 編譯成一個(gè)可加載和刪除的模塊,使用insmod加載(modprobe和insmod命令類似,但依賴于相關(guān)的配置文件),rmmod刪除。這種方式控制了內(nèi)核的大小,而模塊一旦被插入內(nèi)核,它就和內(nèi)核其他部分一樣。4.2.1 LED驅(qū)動(dòng)的設(shè)計(jì) 建立LED設(shè)備文件int led_no;int fd;if (argc != 3 | sscanf(argv1, %d, &led_no) != 1 | sscanf(argv2,%d, &on) != 1 | on 1 | led_no 4) fprintf(stderr, Usage: leds led_no 0|1n);exit(1);fd = open(/dev/GPIO-Control, 0);if (fd par; void _iomem *regs = fbi-io; int type = fbi-regs.lcdcon1 & S3C2410_LCDCON1_TFT; struct fb_var_screeninfo *var = &info-var; struct s3c2410fb_mach_info *mach_info = fbi-dev-platform_data; struct s3c2410fb_display *default_display = mach_info-displays + mach_info-default_display; int clkdiv = s3c2410fb_calc_pixclk(fbi, var-pixclock) / 2; dprintk(%s: var-xres = %dn, _func_, var-xres); dprintk(%s: var-yres = %dn, _func_, var-yres); dprintk(%s: var-bpp = %dn, _func_, var-bits_per_pixel); if (type = S3C2410_LCDCON1_TFT) s3c2410fb_calculate_tft_lcd_regs(info, &fbi-regs); -clkdiv; if (clkdiv regs); if (clkdiv support for frame buffer devices -* Enable frameware EDID* Enable Vidoe Mode Handling Helpers S3C24X0 LCD framebuffer supportConsole display driver support - Framebuffer Console Support* Bootup Logo - Standard 224-color Linux logo啟動(dòng)時(shí)輸出:Console: switching to colour frame buffer device 40x30fb0: s3c2410fb frame buffer device即證明移植成功。4.2.1 USB攝像頭驅(qū)動(dòng)的設(shè)計(jì)LIBUSB是一種高級(jí)別的API,它封裝了低級(jí)別的內(nèi)核與USB模塊的交互,并提供了一系列適合在用戶空間進(jìn)行USB驅(qū)動(dòng)開發(fā)的函數(shù)。libusb基于USB文件系統(tǒng)提供的USB接口、端點(diǎn)等信息,與USB設(shè)備進(jìn)行通信。顯然,只要開發(fā)平臺(tái)上的內(nèi)核支持USB文件系統(tǒng),我們就可以利用libusb進(jìn)行USB驅(qū)動(dòng)開發(fā)。(1) 有了Libusb提供的這些API應(yīng)用程序,利用libusb的驅(qū)動(dòng)框架,開發(fā)USB驅(qū)動(dòng)程序的時(shí)候就會(huì)很方便。一般的驅(qū)動(dòng)應(yīng)該都包含如下接口:Device_Find(); /* 尋找設(shè)備接口 */Device_Open(); /* 打開設(shè)備接口 */Device_Write(); /* 寫設(shè)備接口 */Device_Read(); /* 讀設(shè)備接口 */Device_Close(); /* 關(guān)閉設(shè)備接口 */(2)初始化設(shè)備接口void usb_init(void);int usb_find_busses(void);int usb_find_devices(void);struct usb_bus *usb_get_busses(void);這些接口也可以稱為核心函數(shù),它們主要用來(lái)初始化并尋找相關(guān)設(shè)備。整個(gè)初始化的主要過(guò)程是先初始化相關(guān)數(shù)據(jù),然后尋找系統(tǒng)上的usb總線,任何usb設(shè)備都通過(guò)usb總線和計(jì)算機(jī)總線通信,進(jìn)而和其他設(shè)備通信,最后尋找總線上的usb設(shè)備。(3)操作設(shè)備接口usb_dev_handle *usb_open(struct *usb_device dev);int usb_close(usb_dev_handle *dev);usb_detach_kernel_driver_np(usb_dev_handle *dev, int interface);int usb_clear_halt (usb_dev_handle *dev, unsigned int ep);int usb_claim_interface(usb_dev_handle *dev, int interface);int usb_release_interface(usb_dev_handle *dev, int interface);初始化完成后是對(duì)設(shè)備的操作。利用Libusb提供的接口,對(duì)設(shè)備進(jìn)行打開、關(guān)閉操作,設(shè)置當(dāng)前設(shè)備使用的configuration,設(shè)置當(dāng)前設(shè)備配置的interface descriptor,以及復(fù)位指定的endpoint和設(shè)備,注冊(cè)、注銷與操作系統(tǒng)通信的接口??刂苽鬏斀涌?、批傳輸接口。int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, int value, int index, char *bytes, int size, int timeout);int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, size_t buflen);int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout);int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout);這些接口的主要功能是從默認(rèn)的管道發(fā)送和接受數(shù)據(jù),只是不同的傳輸方式對(duì)應(yīng)不同的接口。4.3 Boa服務(wù)器實(shí)現(xiàn)與調(diào)試Boa服務(wù)器和普通Web 服務(wù)器一樣, 能夠完成接收客戶端請(qǐng)求、分析請(qǐng)求、響應(yīng)請(qǐng)求、向客戶端返回請(qǐng)求結(jié)果等任務(wù). 它的工作過(guò)程主要包括:(1) 完成Web 服務(wù)器的初始化工作, 如創(chuàng)建環(huán)境變量、創(chuàng)建TCP 套接字、綁定端口、開始偵聽、進(jìn)入循環(huán)結(jié)構(gòu), 以及等待接收客戶瀏覽器的連接請(qǐng)求;(2) 當(dāng)有客戶端連接請(qǐng)求時(shí),Web 服務(wù)器負(fù)責(zé)接收客戶端請(qǐng)求, 并保存相關(guān)請(qǐng)求信息;(3) 在接收到客戶端的連接請(qǐng)求之后,分析客戶端請(qǐng)求, 解析出請(qǐng)求的方法、URL 目標(biāo)、可選的查詢信息及表單信息, 同時(shí)根據(jù)請(qǐng)求做出相應(yīng)的處理;(4) Web 服務(wù)器完成相應(yīng)處理后, 向客戶端瀏覽器發(fā)送響應(yīng)信息, 關(guān)閉與客戶機(jī)的TCP 連接。Boa服務(wù)器根據(jù)請(qǐng)求方法的不同, 做出不同的響應(yīng). 如果請(qǐng)求方法為HEAD, 則直接向?yàn)g覽器返回響應(yīng)首部; 如果請(qǐng)求方法為GET, 則在返回響應(yīng)首部的同時(shí), 將客戶端請(qǐng)求的URL 目標(biāo)文件從服務(wù)器上讀出, 并且發(fā)送給客戶端瀏覽器; 如果請(qǐng)求方法為POST, 則將客戶發(fā)送過(guò)來(lái)的表單信息傳送給相應(yīng)的CGI 程序, 作為CGI 的參數(shù)來(lái)執(zhí)行CGI 程序, 并將執(zhí)行結(jié)果發(fā)送給客戶端瀏覽器。 Boa 的功能實(shí)現(xiàn)也是通過(guò)建立連接、綁定端口、進(jìn)行偵聽、請(qǐng)求處理等來(lái)實(shí)現(xiàn)的。其過(guò)程如圖16所示。 boa源碼移植boa下載到目標(biāo)板中目標(biāo)板驗(yàn)證boa移植成功Linux下web庫(kù)源碼修改運(yùn)用標(biāo)準(zhǔn)庫(kù)進(jìn)行開發(fā)調(diào)試、驗(yàn)證、測(cè)試完成圖16 Boa服務(wù)器移植流程圖(5) Boa服務(wù)器配置腳本: # Boa v0.94 configuration file# File format has not changed from 0.93# File format has changed little from 0.92# version changes are noted in the commentsPort 80User nobodyGroup nogroupErrorLog /var/log/boa/error_logAccessLog /var/log/boa/access_logDocumentRoot /var/wwwUserDir public_htmlDirectoryIndex index.htmlDirectoryMaker /usr/lib/boa/boa_indexerKeepAliveMax 1000KeepAliveTimeout 10MimeTypes /etc/mime.typesDefaultType text/plainCGIPath /bin:/usr/bin:/usr/local/binAlias /doc /usr/docScriptAlias /cgi-bin/ /usr/lib/cgi-bin/4.4 Mjpeg-streamer編譯與配置(1) 重新配置內(nèi)核使內(nèi)核支持所用的攝像頭,用make menuconfig。(2) 重新編譯內(nèi)核 make zImage.bin。(3) Mjpg-stream 的移植。(4) 需要安裝J2SE RuntimeEnviroment 5.0 Update 22插件才能播放視頻流。(5) Mjpeg-streamer服務(wù)器配置腳本:export LD_LIBRARY_PATH=$(pwd)CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared fPICsudo ./mjpg_streamer -i ./input_uvc.so -f 15 -r 960x720 -o ./output_http.so -w ./www4.5 QT應(yīng)用程序的設(shè)計(jì)QT是一個(gè)跨平臺(tái)的C+應(yīng)用程序開發(fā)框架,有時(shí)又被稱為C+部件工具箱。Qt被用在KDE桌面環(huán)境、Opera、GoogleEarth、Skype、AdobePhotoshopAlbum和VirtualBox的開發(fā)中。它是諾基亞(Nokia)的QtDevelopmentworks部門的產(chǎn)品。使用Qt,只需一次性開發(fā)應(yīng)用程序和用戶界面,無(wú)須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序。而Nokia公司又為QT開發(fā)研發(fā)了一系類工具,如QTdesigner,QT Debuger,QT仿真工具等。所以開發(fā)起來(lái)非常方便。Qt 包括多達(dá) 250 個(gè)以上的 C+ 類,豐富的 API,還提供基于模板的 collections,serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達(dá)式的處理 功能。支持 2D/3D 圖形渲染,支持 OpenGL,大量的開發(fā)文檔,XML 支持。下面只列出LED的QT設(shè)計(jì)方法。設(shè)計(jì)思路:控制LED燈亮和滅是通過(guò)S3C2440的GPIO的低電平來(lái)實(shí)現(xiàn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 系泊絞車行業(yè)深度研究報(bào)告
- 氣相沉積設(shè)備項(xiàng)目可行性研究報(bào)告
- 2024年安全準(zhǔn)入考試復(fù)習(xí)測(cè)試卷附答案
- 2025年中國(guó)亮丙瑞林市場(chǎng)供需格局及投資規(guī)劃研究報(bào)告
- MCN解除合同范本
- 客運(yùn)線路租賃承包合同范本
- 2025年中國(guó)螺桿式壓縮機(jī)行業(yè)市場(chǎng)深度分析及投資潛力預(yù)測(cè)報(bào)告
- 買二手車付定金合同范本
- 廣告加工制作合同范本
- 公會(huì)運(yùn)營(yíng)合作合同范本
- 2024-2025學(xué)年中小學(xué)校第二學(xué)期師德師風(fēng)工作計(jì)劃:必看!新學(xué)期師德師風(fēng)建設(shè)秘籍大公開(附2月-7月工作安排表)
- 《急性心力衰竭的急救處理》課件
- 小學(xué)六年級(jí)數(shù)學(xué)上冊(cè)《簡(jiǎn)便計(jì)算》練習(xí)題(310題-附答案)
- 青海省西寧市海湖中學(xué)2025屆中考生物仿真試卷含解析
- 2024年河南省《輔警招聘考試必刷500題》考試題庫(kù)及答案【全優(yōu)】
- -情景交際-中考英語(yǔ)復(fù)習(xí)考點(diǎn)
- 安全隱患報(bào)告和舉報(bào)獎(jiǎng)勵(lì)制度
- 地理標(biāo)志培訓(xùn)課件
- 2023行政主管年終工作報(bào)告五篇
- 2024年中國(guó)養(yǎng)老產(chǎn)業(yè)商學(xué)研究報(bào)告-銀發(fā)經(jīng)濟(jì)專題
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論