




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于arm的視頻圖像采集系統(tǒng)摘要:本系統(tǒng)采用了samsung公司生產(chǎn)的s3c2440芯片作為嵌入式處理器,再結(jié)合系統(tǒng)所需的外圍硬件構(gòu)成基本硬件電路。主要包括二大部分:處理器和存儲器部分;電源時鐘復(fù)位電路部分;外圍接口電路部分。在對各部分硬件進行詳細設(shè)計后,接下來詳細介紹了嵌入式軟件平臺的構(gòu)建,包括如何移植linux操作系統(tǒng):基于嵌入式linux下usb接口攝像頭視頻設(shè)備采集;移植h.264視頻壓縮庫和視頻傳輸程序的編寫。1 抓拍系統(tǒng)開發(fā)環(huán)境的構(gòu)建 本文所設(shè)計的采集系統(tǒng)按功能可劃分為嵌入式主控模塊、視頻采集模塊、網(wǎng)絡(luò)傳輸模塊、等三大部分。圖1-1為本系統(tǒng)的系統(tǒng)框架圖: 1. usb數(shù)字攝像頭采集
2、圖像數(shù)據(jù): 2.采集傳輸應(yīng)用程序通過攝像頭驅(qū)動從攝像頭獲取到采集的圖像數(shù)據(jù): 3.采集傳輸應(yīng)用程序調(diào)用h.264編碼庫對圖像數(shù)據(jù)進行壓縮: 4.采集傳輸應(yīng)用程序?qū)嚎s后的圖像數(shù)據(jù)通過網(wǎng)絡(luò)傳輸給windows pc上的顯示程序: 5. windows上的顯示程序?qū)D像數(shù)據(jù)進行解碼并顯示:圖1-1軟件架構(gòu)圖本系統(tǒng)的嵌入式主控模塊是基于samsung公司生產(chǎn)的s3c2440這款處理器,主要作用是實現(xiàn)對各模塊數(shù)據(jù)的響應(yīng)、處理以及控制。在硬件上,主控模塊包括電源、時鐘、復(fù)位電路、存儲模塊、以太網(wǎng)接口電路等。在軟件上,主控模塊上運行l(wèi)inux操作系統(tǒng),管理各應(yīng)用程序模塊進程并調(diào)度各進程。1.1采集系統(tǒng)的硬
3、件平臺設(shè)計 本系統(tǒng)的核心處理器為二星公司的s3c2440,外擴64m的sdram存儲器以及64m的flash存儲器,外圍接口電路模塊:包括usb接口電路,以太網(wǎng)網(wǎng)卡dm9000接口電路以及網(wǎng)眼3000的數(shù)字攝像頭等。本系統(tǒng)的硬件結(jié)構(gòu)如圖1-2所示。圖1-2系統(tǒng)硬件架構(gòu)圖1.1.1電源、時鐘模塊設(shè)計系統(tǒng)各部分硬件要求提供1.8v和3v的電壓。其中s3c2440處理器內(nèi)核需要提供1.8v電源,nandflash, sdram及dm9000等芯片需要提供3v電源,所以本系統(tǒng)采用了lm1117-3.3和lm1117-1.8電壓轉(zhuǎn)換芯片設(shè)計穩(wěn)壓電源,得到1.8v和3.3v的所需電壓。usb控制器需要提供
4、5v的電源。本文采用了5v直流電壓供電。lm1117是一個低壓差電壓調(diào)節(jié)器系列。其壓差在1.2v輸出,負載電流為800ma時為1.2v 。lm1117有5個固定電壓輸出(1.8v, 2.5v, 2.85v, 3.3v和5v)的型號。根據(jù)本系統(tǒng)的需要,這里選用了電壓輸出為1.8v和3.3v兩型號。時鐘電路為cpu和其它外圍電路提供精準的工作時鐘,按照電路中設(shè)計使用的器件特性分為有源和無源晶振,在本系統(tǒng)的設(shè)計電路中采用的是無源晶振。arm芯片均提供時鐘發(fā)生電路,結(jié)合一定的輔助電路的配合就可以得到所需要的時鐘信號?;產(chǎn)rms的這款s3c2440芯片的時鐘控制邏輯可以產(chǎn)生為cpu核供給時鐘信號的fc
5、lk、為ahb總線供給時鐘信號的hclk、為apb總線供給時鐘信號的pclk。1.1.2外部存儲器的擴展s3c2440微處理器存儲空間僅有32m,應(yīng)用于本系統(tǒng),需要外擴存儲器。本設(shè)計采用兩片二星公司的hy57v561620來擴展64m的sdram。它們均4m* 16bit*4bank的sdram芯片,這樣,兩片sdram實現(xiàn)了位擴展,數(shù)據(jù)總線達到了32bit,構(gòu)成64m尋址空間。圖1-3為s3c2440與nandflash的接口圖。圖1-3 s3c2440的存儲器擴展框圖1.1.3外圍接口電路設(shè)計s3c2440內(nèi)部集成了2個usb host和一個usb device接口。usb的分時處理機制實
6、現(xiàn)了外設(shè)的即插即用。在usb接口電路中的d+, d-均為數(shù)據(jù)輸入端。usb接口中其它兩根線接電源和地,設(shè)計電路中用到的電感、電阻、電容主要起濾波作用。其中還用到了起限流作用的電阻,主要是在短路時防止燒毀供電電路。抓拍系統(tǒng)將抓拍到的圖像數(shù)據(jù)通過以太網(wǎng)傳輸?shù)絧c機客戶端。由于微處理器s3c2440內(nèi)部沒有集成網(wǎng)絡(luò)控制器,應(yīng)本系統(tǒng)網(wǎng)絡(luò)的需求,這里使用dm9000網(wǎng)卡芯片進行擴展。dm9000快速以太網(wǎng)控制處理器是davicom公司推出的,合成了niniu, mac和phy。圖1-4為dm9000與s3c2440的連接示意圖。圖1-4以太網(wǎng)接口電路本設(shè)計采用了16位的連接模式。因為dm9000沒有專用
7、的地址線,是通過地址線與數(shù)據(jù)線復(fù)用來實現(xiàn)。其中的cmd是命令類型控制信號,如果cmd為高,傳送的為數(shù)據(jù):如果cmd為低,傳送就是地址。其中aen是地址使能信號線,即dm9000的片選信號線,通過把lngcs4設(shè)置為低電平控制選通dm9000。中斷信號線int占用s3c2440的7號中斷,使得s3c2440可以響應(yīng)dm9000的中斷。dm9000與網(wǎng)絡(luò)之間的連接由發(fā)送信號線tx+, tx-和i接受信號線rx+, rx一通過隔離變壓器e-2023與以太網(wǎng)水晶接口rj45相連。其中隔離變壓器的最主要的作用是將嵌入式系統(tǒng)和外部線路相隔離,防止干擾以及燒壞元器件,并實現(xiàn)帶電插拔功能。1.2終端系統(tǒng)軟件平
8、臺的構(gòu)建1.2.1交叉編譯環(huán)境的建立因為在嵌入式系統(tǒng)開發(fā)時,不可能有足夠的資源提供給開發(fā)系統(tǒng)直接運行開發(fā)工具以及調(diào)試工具等。通常,嵌入式系統(tǒng)軟件開發(fā)是采用一種交叉編譯調(diào)試的方式進行開發(fā)。開發(fā)時,先使用宿主機上的一些交叉編譯、匯編和鏈接工具等形成只能在目標板上執(zhí)行的可執(zhí)行代碼。1.2.2 bootloader的移植在交叉工具安裝完成以后,需要移植嵌入式操作系統(tǒng),它為應(yīng)用程序的開發(fā)提供良好的軟件平臺。嵌入式linux系統(tǒng)從上電到運行用戶的應(yīng)用程序,一般要經(jīng)歷三個過程:一是加載bootloader;二是啟動linux;三是掛載根文件系統(tǒng),為了使整個系統(tǒng)順利運行,接下來做下面三方面的工作:bootlo
9、ader移植;制作根文件系統(tǒng);裁剪內(nèi)核。下面詳細介紹bootloade移植。在基于arm的嵌入式系統(tǒng)中,當進行上電或復(fù)位操作時,執(zhí)行的第一段程序就是bootloader。它主要是初始化硬件、建立內(nèi)存地址映射表,建立合適的系統(tǒng)硬件環(huán)境,也為最后調(diào)用操作系統(tǒng)的內(nèi)核做好充分的準備。在嵌入式開發(fā)中,沒有一個標準的bootloader,因為它是依賴于實際的硬件和應(yīng)用環(huán)境。下面根據(jù)本系統(tǒng)的硬件修改通用的u-boot。1.選擇移植參考開發(fā)板:首先選擇mcu相同的開發(fā)板,在uboot-2008.10中不支持mcu為s3c2440芯片的開發(fā)板,如果mcu沒有找到參考開發(fā)板,則選擇mpu相同的作為參考,s3c24
10、40的mpu為arm920t, uboot-2008.10中smdk2410開發(fā)板其mpu也為arm920t,故選擇smdk2410作為參考開發(fā)板。 2.在頂層makefile中添加新的配置選項,使用smdk2410已有的配置項目為起點。 3.修改cpu/arm920t/start.s,修改編譯條件使其支持s3c2440、添加寄存器的定義、修改中斷禁止和對時鐘的設(shè)置(s3c2440主頻設(shè)置為405mhz)。 4.在cpu/arm920t/s3c24x0目錄下的文件interrupts. c , speed. c等添加對s3c2440的支持及對分頻的設(shè)置做些修改。 5.選擇板級配置:#make
11、mzy2440_ config,即選擇的board是mzy2440o 6.編譯uboot,#make cross compile=arm-linux-,編譯成功后會產(chǎn)生u-boot.bin文件,它將被自動復(fù)制到當前主目錄。1.2.3系統(tǒng)內(nèi)核移植 解壓內(nèi)核到/home/meizhaoyun/zhuapai,清理內(nèi)核中間文件、配置文件,選擇參考配置文件,#cp config-zhupai.config。下面對內(nèi)核的配置進行簡單的介紹:這里使用了網(wǎng)眼3000的usb攝像頭來采集視頻圖像,linux對該攝像頭使用的芯片為ov511芯片提供了很好的支持。linux操作系統(tǒng)下實現(xiàn)視頻圖像采集,必須在內(nèi)核中
12、加載二個模塊:usb設(shè)備驅(qū)動、ov511模塊和video4linux模塊。 在內(nèi)核源碼目錄下運行命令make menuconfig,具體步驟如下:1.在配置菜單中選擇“multimedia devices-video for linux”選項,這樣在內(nèi)核中加載了video4 linux驅(qū)動,為視頻采集設(shè)備提供了編程接口。2.在配置菜單中選擇“usb support-usb multimedia devices-usb ov511 camera support”選項,這樣就在內(nèi)核中加入了對采用ov511接口芯片的usb數(shù)字攝像頭的驅(qū)動支持。1.2.4根文件系統(tǒng)移植linux文件系統(tǒng)體系對復(fù)雜系統(tǒng)
13、進行抽象化,是linux系統(tǒng)的核心組成部分,可以做為linux系統(tǒng)文件和數(shù)據(jù)的存儲,也可以作為系統(tǒng)的配置文件或者應(yīng)用程序調(diào)用所需的庫文件。沒有根文件系統(tǒng)的linux系統(tǒng)不能正確啟動,所以為了存儲引導程序、內(nèi)核以及應(yīng)用程序,需要創(chuàng)建合適的根文件系統(tǒng)。mzy2440根義件系統(tǒng)的制作:1.創(chuàng)建根文件系統(tǒng)主目錄/nfsroot/rootfs:#make -p /nfsroot/rootfs#cd /nfsroot/rootfs#mkdir bin dev etc lib proc sbin sys usr mnt tmp var#mkdir usr/bin usr/lib usr/sbin lib/m
14、odules2.創(chuàng)建設(shè)備文件內(nèi)核在引導時,設(shè)備節(jié)點console、null必須存在 #cd /nfsroot/rootfs/dev/ #mknod -m 666 console c 5 1 #mknod -m 666 null c 1 3 3.編譯內(nèi)核模塊: #make module arch=arm cross compile=arm-linux一安裝內(nèi)核模塊到根文件系統(tǒng) #make modules install arch=arm install mod path=/nfsroot/rootfsbusybox為一個工具集合,根文件系統(tǒng)的許多命令均可以通過busybox編譯來獲得,像cd,
15、ls等。實際上,busybox是把許多工具集合到一個非常小可執(zhí)行文件中,用戶只要使用命令就可以運行其中相應(yīng)的服務(wù)。解壓busybox,配置busybox。進入busybox setting-build options-選中build busybox as a static binary靜態(tài)鏈接,本系統(tǒng)中目標板沒有這些庫,故采用靜態(tài)鏈接的方式。2 系統(tǒng)應(yīng)用程序設(shè)計 該系統(tǒng)由usb視頻采集模塊,數(shù)據(jù)處理模塊,圖像顯示模塊3大部分組成,其中usb視頻采集模塊由usb攝像頭,usb攝像頭驅(qū)動程序兩部分構(gòu)成。數(shù)據(jù)處理模塊由h.264編碼庫和采集傳輸應(yīng)用程序組成。圖像顯示模塊則由運行于windows之上的
16、解碼顯示程序充當。2.1基于video4 linux的usb設(shè)備視頻圖像采集video4 linux是linux內(nèi)核中支持影像設(shè)備的一組apis,它配合適當?shù)囊曨l采集設(shè)備和相應(yīng)的驅(qū)動程序,可以實現(xiàn)影像采集、am/fm廣播、頻道切換等功能,因此它在遠程會議、可視電話、視頻監(jiān)控系統(tǒng)中有著廣泛的應(yīng)用。圖2-1圖像采集流程圖2-1是linux下視頻圖像采集流程。下面對本系統(tǒng)的視頻圖像采集程序進行簡單的介紹。首先打開視頻設(shè)備,該攝像頭在本系統(tǒng)中對應(yīng)的設(shè)備文件為/dev/v41/video,采用系統(tǒng)接口函數(shù)open,其中cam_fd是設(shè)備打開后返回的文件描述符。打開視頻設(shè)備文件成功,則獲取相應(yīng)的文件描述符
17、;若打開失敗,則返回錯誤信息。接著,獲取視頻設(shè)備屬性,調(diào)用ioctl函數(shù)獲取video_capability中的信息,成功后讀取vd-capability的各分量;獲取video-picture中的信息,成功后讀取視頻設(shè)備中圖像各屬性。初始化channel ,最后調(diào)用系統(tǒng)調(diào)用函數(shù)close(vd-fd)關(guān)閉設(shè)備。2.2 h.264壓縮算法的移植與優(yōu)化攝像頭抓拍得到的圖像數(shù)據(jù)量很大,有必要對其壓縮,才能在網(wǎng)絡(luò)中順暢傳輸。本系統(tǒng)選用h.264編碼標準對采集的圖像進行壓縮。h.264標準是一個新的視頻編碼標準,具有高壓縮比、高圖像質(zhì)量、良好的網(wǎng)絡(luò)適應(yīng)性等特點。結(jié)合本系統(tǒng)平臺s3c2440處理器,采用
18、了交叉編譯器是cross-4.3.2, linux操作系統(tǒng)軟件開發(fā)平臺。h.264移植主要包括兩個方面的工作,一是函數(shù)庫的移植,二是makefile文件的修改。經(jīng)過代碼移植可以獲得在arm上初步運行的代碼庫,再結(jié)合arm自身的硬件特性,有必要對其進行進一步的優(yōu)化。對arm代碼可以有二個層次上的優(yōu)化:項目層次的優(yōu)化,算法層次的優(yōu)化以及指令層次的優(yōu)化。本文結(jié)合系統(tǒng)硬件軟件環(huán)境在項目層次上進行了優(yōu)化,它是對整個項目的整體優(yōu)化。第一,在編譯鏈接整個項目生成arm代碼的時候,可以對編譯選項進行優(yōu)化,比如-g為全符號調(diào)試。使用了這個選項調(diào)試生成的代碼有很多符號信息,這樣的程序效率比較低。-o選項后面跟的數(shù)
19、字越大,編譯時對代碼優(yōu)化的程度越高;第二,對程序中冗余的程序代碼進行適當刪除,比如與本方案無關(guān)的多參考幀以及運動估計這些部分;第二,可以合理使用循環(huán)和分支結(jié)構(gòu),固然循環(huán)可以減少代碼的存儲空間,但是程序本身也帶來了運行開銷,當循環(huán)體本身的運行開銷大于其內(nèi)部的運行開銷時,展開循環(huán)體將更使程序的得到一定程度的優(yōu)化。2.3視頻采集與編碼的同步要實現(xiàn)視頻采集,又要實現(xiàn)編碼、傳輸以及處理需要花費比較長的時間,采取單線程響應(yīng)會限制視頻采集性能及整個監(jiān)控的實時性。多線程程序作為一種多任務(wù)、并發(fā)的工作方式能夠提高應(yīng)用程序響應(yīng),改善程序的結(jié)構(gòu)。為了提高效率,實現(xiàn)實時監(jiān)測,本系統(tǒng)采用多線程機制來解決視頻采集模塊與編
20、碼模塊等的同步問題,提高系統(tǒng)的實時性。這里簡單介紹一下視頻采集和編碼同步問題。首先開辟來兩個緩存區(qū),創(chuàng)建圖像采集和圖像編碼(圖像處理)線程,當采集滿緩存區(qū)后,改變線程的等待條件,釋放被阻塞的編碼線程,編碼線程開始對緩存區(qū)的數(shù)據(jù)進行編碼。與此同時,采集線程程序把采集到的數(shù)據(jù)轉(zhuǎn)到另外一個緩存區(qū)。這樣,兩個線程交替使用兩個緩沖區(qū),達到采集和編碼同步,節(jié)省了等待時間,大大提高效率?;诒鞠到y(tǒng)的硬件平臺,兩片sdram為64m,設(shè)置每個緩存的大小為1omb。下面簡要介紹一下主要用的函數(shù)結(jié)構(gòu)以乃同步的實現(xiàn)過程:/*設(shè)置一塊緩存區(qū)*/struct cam_ data int cam_ mbufbuf_ si
21、ze ; /*緩存區(qū)數(shù)紹一*/ pthread-mutex_t lock; /*互斥鎖*/ int wpos,int rpos ; /*寫與讀的位置*/ pthread_cond_t notempty ; /*緩沖區(qū)非空時的標志*/ pthread_cond_t notfull ;/*緩沖區(qū)沒滿的標志*/ ;/*初始化緩存區(qū)*/void init(struct cam_ data * c) pthread_mutex_t_init(&c-lock,); /*以動態(tài)方式創(chuàng)建互斥鎖*/ pthread_cond_init(&c-notempty); /*初始化notempty條件變量*/ pthr
22、ead_cond_init(&c-notfull,);/*初始化notfull條件變量*/ c-rpos=0; c-wpos=0 ; 圖像采集線程read_video實現(xiàn)如下:void *read_video (struct cam_data * c , int data) pthread_mutex_ lock(&c-lock); /*獲取互斥鎖*/ while(c-wpos+l)%buf_size=c-rpos) /*等待緩存區(qū)非滿信/-*/ pthread_cond_wait(&c-notfull,&c-lock); capture(int data,); /*視頻采集,*/ c-cam
23、_mbufc-wpos=data ; c-wpos+; if (c-wpos=buf_size) c-wpos=0; pthread_ cond_ signal(&c-notempty); /*設(shè)置狀態(tài)信號*/ pthread_mutex_unlock(&c-lock); /*獲取互斥鎖*/*圖像處理線程*/void *process(struct cam_ data * c, int data)pthread_mutex_lock(&c-lock); /*獲取互斥鎖*/while(b-wpos=b-rpos) pthread_cond_wait(&c-notempty, &c-lock);/
24、*這里是一直詢問b-notempty,空則無數(shù)據(jù)可處理,否則跳出阻塞*/ t264_ encode(int data); /*h.264壓縮視頻編碼*/ data=c-bufb-rpos; c-rpos+; if (b-rpos=buf_ size) c-rpos=0; pthread_cond_signal (&c-notfull); /*釋放互斥鎖*/ pthread_mutex_unlock (&c-lock); 2.4傳輸模塊的設(shè)計流式傳輸?shù)膶崿F(xiàn)需要合適的傳輸協(xié)議。由于internet中的文件傳輸都是建立在tcp協(xié)議基礎(chǔ)上的,但是tcp的特點決定了它并不適合于傳輸實時數(shù)據(jù)。一般都采用建
25、立在udp (user data protocol,用戶數(shù)據(jù)報協(xié)議)協(xié)議之上的rtp來傳輸實時的視頻數(shù)據(jù)。在linux中,tcp/ip協(xié)議族包括運輸層、網(wǎng)絡(luò)層、鏈路層。socket是應(yīng)用層與tcp/ip協(xié)議族通信的中間軟件抽象層。它把復(fù)雜的tcp/ip協(xié)議族隱藏在socket接口后面,對用戶來說,一組簡單的接口就是全部,讓socket去組織數(shù)據(jù),以符合指定的協(xié)議。linux四層網(wǎng)絡(luò)模型如圖2-2所示。圖2-2 linux四層網(wǎng)絡(luò)模型udp是與tcp相對應(yīng)的協(xié)議。tcp和udp都處于網(wǎng)絡(luò)層之上,功能都屬于保證網(wǎng)絡(luò)層數(shù)據(jù)的傳輸。雙方的通信無論使用tcp還是udp都是要開放端口的。他們的關(guān)鍵區(qū)別在于:tcp的傳輸是可靠的不實時的,udp的傳輸是不可靠的但實時的。tcp在發(fā)送數(shù)據(jù)包前都在通信雙方有一個二次握手機制,確保雙方準備好,在傳輸數(shù)據(jù)包期間,tcp會根據(jù)鏈路中數(shù)據(jù)流量的大小來調(diào)節(jié)傳送的速率,傳輸時如果發(fā)現(xiàn)有丟包,會有嚴格的重傳機制,從而以保證數(shù)據(jù)包可靠的傳輸。udp就沒有傳輸校驗機制,發(fā)送端有數(shù)據(jù)包就發(fā)送,不會去理會對方的承受能力和鏈路狀況。所以說這里選擇實時性強的udp,而不選擇關(guān)注可靠性的tcp。圖2-3 socket通信流程服務(wù)器端首先初始化,用的函數(shù)是socket(),然后與客戶端綁定,用的函數(shù)是bind()接著用函數(shù)listen()對端口進行監(jiān)聽,并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供貨茶葉合同范本
- 包裝食品配送合同范例
- 合作擔保合同范例
- 合租合同范本
- 化肥合作協(xié)議合同范本
- 廠房使用合同范例
- 人工勞務(wù)合同范本封皮
- 個人汽車采購合同范本
- 企業(yè)業(yè)務(wù)合同范本
- 合同范本征求意見
- 《主題四 雞蛋撞地球》教學設(shè)計-2023-2024學年六年級下冊綜合實踐活動遼師大版
- 2025年北京控股集團招聘筆試參考題庫含答案
- 《物聯(lián)網(wǎng)中間件》課件
- 2025年中國建材集團所屬中建材聯(lián)合投資有限公司招聘筆試參考題庫附帶答案詳解
- 水幕噴淋系統(tǒng)的工作原理與應(yīng)用
- 門樓施工方案
- 全國職業(yè)院校技能大賽高職組(康復(fù)治療技術(shù)賽項)考試及答案
- 2024年08月河北唐山銀行第二批社會招考筆試歷年參考題庫附帶答案詳解
- 小學生拗九節(jié)課件
- 《智能制造技術(shù)基礎(chǔ)》課件-第2章 智能系統(tǒng)方案與設(shè)計
- 人教版PEP小學五年級英語下冊全冊教案(含計劃)
評論
0/150
提交評論