【正文】
90的零點(diǎn)調(diào)整在室溫點(diǎn)上,這樣就能使得測(cè)量結(jié)果更精確了。0. 5℃;(5) 較寬的工作電壓:+ 4~+ 30V。第三章 溫度監(jiān)測(cè)電路設(shè)計(jì)能夠把非電量轉(zhuǎn)換為電量的器件稱為傳感器,傳感器實(shí)質(zhì)上是一種功能塊,其作用是將來自外界的各種信號(hào)轉(zhuǎn)換成電信號(hào)。與JTAG 接口兼容的器件可以是微處理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、ASIC 規(guī)范的芯片。 相關(guān)JTAG引腳的定義為:TCK為測(cè)試時(shí)鐘輸入;TDI為測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI引腳輸入JTAG接口;TDO為測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO引腳從JTAG接口輸出;TMS為測(cè)試模式選擇,TMS用來設(shè)置JTAG接口處于某種特定的測(cè)試模式;TRST為測(cè)試復(fù)位,輸入引腳,低電平有效,GND。但是電容被利用的這個(gè)特性也是它的缺點(diǎn)。我們知道8bit可以組成1byte,而字節(jié)是內(nèi)存中最小的尋址單元。 SDRAM模塊SDRAM與Flash不同,它不具有掉電保護(hù)數(shù)據(jù)的特性,但其存取速度大大高于Flash存儲(chǔ)器,且有讀/寫的屬性,因此SDRAM在系統(tǒng)中主要用作程序的運(yùn)行空間,數(shù)據(jù)及堆棧區(qū)。Flash按結(jié)構(gòu)分為NOR和NAND兩大類。它是針對(duì)不要求運(yùn)行操作系統(tǒng)的應(yīng)用而設(shè)計(jì)的。在本設(shè)計(jì)中,我們用的是ARM9處理器。在目標(biāo)機(jī)上,一般會(huì)具備某種形式的調(diào)試代理與調(diào)試器共同配合對(duì)目標(biāo)機(jī)上的進(jìn)程進(jìn)行調(diào)試。由于編譯的過程包括編譯、鏈接等幾個(gè)階段,因此,嵌入式的交叉編譯也包括交叉編譯和交叉鏈接等過程,通常,ARM的交叉編譯器為armelfgcc,交叉鏈接器為armelfld,一般可執(zhí)行文件是ELF格式。這些嵌入式處理器運(yùn)行的必要條件的電路或者芯片與嵌入式處理器一起構(gòu)成了嵌入式處理器的最小系統(tǒng)。 嵌入式系統(tǒng)的結(jié)構(gòu)嵌入式系統(tǒng)一般由3個(gè)部分組成,:嵌入式系統(tǒng)硬件平臺(tái)、嵌入式操作系統(tǒng)及嵌入式系統(tǒng)應(yīng)用。s production and daily life. At present, the application of embedded system have been developed to the stage of bining embedded processor with operating system, and the design es true based on bining the ARM processor with linux operating system. Embedded temperature measurement system includes temperature monitoring hardware and software systems. Hardware system includes SBC2410 system development kit, temperature detection circuit, signal amplifier circuit and signal display terminal. This paper, in detail, introduces the hardware design according to modules. The process of the design of temperature measurement software system is as follows: First,the design construct Linux environment for temperature measurement the system .Secondly, the design piles and loads driver program in Linux。內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì)說明書(畢業(yè)論文)畢業(yè)設(shè)計(jì)說明書基于ARM的嵌入式溫度監(jiān)測(cè)系統(tǒng)摘 要隨著科技的發(fā)展,嵌入式系統(tǒng)的發(fā)展也異常迅速,同時(shí),嵌入式系統(tǒng)已經(jīng)應(yīng)用于各個(gè)方面,給人們的生產(chǎn)和生活帶來了極大的便利。 At last, the design writes, piles and downloads the application program to ARM development board. After repeated debugging, the design achieves the purpose of the temperature measurement.Key words: Linux 。其中,嵌入式系統(tǒng)硬件平臺(tái)指各種嵌入式器件、設(shè)備,嵌入式操作系統(tǒng)是指在嵌入式硬件平臺(tái)上運(yùn)行的操作系統(tǒng),目前主流的嵌入式操作系統(tǒng)有嵌入式linux、μC/OSII等,具體應(yīng)用那種嵌入式操作系統(tǒng)應(yīng)視具體情況而定。: 最小嵌入式系統(tǒng) 嵌入式系統(tǒng)與普通單片機(jī)開發(fā)的不同之處按照軟件工程的原理,嵌入式開發(fā)軟件的一般流程為需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和軟件測(cè)試。 交叉調(diào)試嵌入式軟件編譯和鏈接完成后即進(jìn)入調(diào)試階段。這種調(diào)試代理可能是某些支持調(diào)試功能的硬件設(shè)備,也可能是某些專門的調(diào)試軟件。下面對(duì)ARM9進(jìn)行相應(yīng)的介紹。ARM920T、ARM940T都執(zhí)型v4T架構(gòu)指令[13]。NAND器件執(zhí)行擦除操作十分簡(jiǎn)單,而NOR則要求在進(jìn)行擦出前,現(xiàn)將目標(biāo)塊內(nèi)所有的地址都寫0。當(dāng)系統(tǒng)初始化后,CPU首先從復(fù)位地址0x0處讀取啟動(dòng)代碼,在完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入SDRAM中運(yùn)行,以提高系統(tǒng)的運(yùn)行速度,同時(shí),系統(tǒng)及用戶堆棧、運(yùn)行數(shù)據(jù)也都放在SDRAM中。雖然內(nèi)存基本存儲(chǔ)單元具有唯一的地址,但是并不能進(jìn)行獨(dú)立的尋址,這將要求內(nèi)存芯片有數(shù)以百計(jì)的引腳同計(jì)算機(jī)通信,顯然這是不可能的。因?yàn)殡娙萜鞑荒艹志玫谋3执鎯?chǔ)的電荷,所以內(nèi)存需要不斷定時(shí)刷新,才能保持暫存的數(shù)據(jù)。 JTAG最初是用來對(duì)芯片進(jìn)行測(cè)試的,基本原理是在器件內(nèi)部定義一個(gè)TAP(Test Access Port測(cè)試訪問口)通過專用的JTAG測(cè)試工具對(duì)進(jìn)行內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。 標(biāo)準(zhǔn)中規(guī)定對(duì)應(yīng)于數(shù)字集成電路芯片的每個(gè)引腳都設(shè)有一個(gè)移位寄存單元,稱為邊界掃描單元BSC。隨著技術(shù)的不斷進(jìn)步,傳感器也有了飛速的發(fā)展,體積變得越來越小,精度越來越高,功能也越來越強(qiáng)大。 誤差校正經(jīng)過激光微調(diào)定標(biāo)的AD590 芯片,其靈敏度為1μA/K,輸出電流值(μA ) 可直接表征絕對(duì)溫度(K)。例如:室溫在一般情況下為25℃,那么我們就應(yīng)該調(diào)整電阻R2,使AD590的輸出為:V0=+25,單位為mv。 (32) 第二級(jí)放大倍數(shù),此級(jí)的作用是改變符號(hào)。熱電偶是工業(yè)上最常用的溫度檢測(cè)元件之一。熱電偶補(bǔ)償導(dǎo)線的作用只起延伸熱電極,使熱電偶的冷端移動(dòng)到控制室,它本身并不能消除冷端溫度變化對(duì)測(cè)溫的影響,不起補(bǔ)償作用。冷端溫度為,則有 (34) (35)兩式相加得 (36)所以, (37)各種熱電偶的分度表都是在冷端為0℃是制成的,如果在實(shí)際應(yīng)用熱電偶的冷端不是0℃,而是中間的某一溫度tn時(shí),則熱電偶輸出的熱電勢(shì)應(yīng)為。當(dāng)然,我們也可以多接幾個(gè)電容,那樣我們就可以濾除更多的有害因素,但是那樣就會(huì)增加我們的成本。由 得, (39)由 得, (310)由(39)式(310)式,得 (311) (312)到此為止,前面兩個(gè)運(yùn)算放大器是組成的放大器的放大倍數(shù)已經(jīng)證明完成。 設(shè)置共享文件夾,并解壓linux開發(fā)包此方法要求開機(jī)是進(jìn)入root用戶,按照以下步驟進(jìn)行:(1)在虛擬機(jī)的界面下,選擇菜單條的VM→setting,彈出一個(gè)畫面,點(diǎn)擊options,選擇shared folders,點(diǎn)擊右側(cè)窗口的內(nèi)的add,進(jìn)行共享文件設(shè)置。解壓/mnt/hgfs/mag/linux/ 的linux開發(fā)包:tar –xvzf /mnt/hgfs/mag/linux/ –C /另外,也可以把linux 開發(fā)包放在移動(dòng)存儲(chǔ)設(shè)備中,在linux系統(tǒng)下掛載移動(dòng)存儲(chǔ)設(shè)備后在解壓開發(fā)包。但這些專用操作系統(tǒng)都是商業(yè)化產(chǎn)品,其高昂的價(jià)格使許多低端產(chǎn)品的小公司望而卻步;而且,源代碼封閉性也大大限制了開發(fā)者的積極性。 嵌入式Linux系統(tǒng)從軟件的角度看通??梢苑譃?個(gè)層次:(1)引導(dǎo)加載程序。(4)用戶應(yīng)用程序。當(dāng)我們使用單片機(jī)或者像UCOS這樣的操作系統(tǒng)時(shí),一般只需要在初始化CPU和其它硬件設(shè)備后,直接加載程序即可,不需要單獨(dú)構(gòu)建一個(gè)引導(dǎo)加載程序。Bootloader是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的。用戶進(jìn)程可以并行運(yùn)行、公平地占用系統(tǒng)資源而互不干擾。在這里,點(diǎn)擊load an alternate configuration file,輸入config_ac2410_tp_nec35,保存后退出。 文件系統(tǒng)在系統(tǒng)啟動(dòng)后,操作系統(tǒng)要完成的最后一步操作是掛載根文件系統(tǒng)。用戶可用連接到FTP服務(wù)器上下載文件,也可以將自己的文件上傳到FTP服務(wù)器中。(2) 真實(shí)帳號(hào)登錄:就是以本地的真實(shí)用戶名和密碼進(jìn)行登錄,前提條件就是在FTP服務(wù)器上擁有該賬號(hào)。[3] 查看并口驅(qū)動(dòng)是否成功安裝右鍵點(diǎn)擊“我的電腦”,屬性→硬件→設(shè)備管理器→端口,看到giveio(COM3)。查看并卸載虛擬機(jī)的串口方法如下:打開虛擬機(jī)的主界面,先不進(jìn)入linux,點(diǎn)擊VM→Setting,在hardware窗口下,查看是否有Serial Using port COM1,若有則選中該項(xiàng)后,點(diǎn)擊Remove,OK即可完成虛擬機(jī)串口的卸載。同時(shí)在windows可以看到分區(qū)顯示。下一步應(yīng)下載文件系統(tǒng),重要提示:此時(shí)不能給ARM板斷電后上電或復(fù)位,不能拔下USB電纜,否則主機(jī)會(huì)出現(xiàn)錯(cuò)誤,重新插上USB電纜時(shí),主機(jī)將無法識(shí)別USB,也無法正常安裝,需要重新燒寫vivi及kernel。第五章 溫度監(jiān)測(cè)系統(tǒng)的軟件編程 編寫Linux下的ADC驅(qū)動(dòng)程序嵌入式應(yīng)用對(duì)成本和實(shí)時(shí)性比較敏感,而對(duì)linux的應(yīng)用要求主要體現(xiàn)在對(duì)硬件的驅(qū)動(dòng)程序的編寫和上層應(yīng)用程序的開發(fā)。但對(duì)嵌入式linux系統(tǒng)而言,一般不能夠像桌面linux那樣靈活地使用insmod/rmmod加載卸載設(shè)備驅(qū)動(dòng)程序,因?yàn)槌⒃O(shè)備驅(qū)動(dòng)程序靜態(tài)編譯進(jìn)內(nèi)核。某些字符設(shè)備可以每次傳遞一個(gè)字節(jié),傳完每個(gè)字節(jié)后產(chǎn)生一個(gè)中斷;另外一些字符設(shè)備可以在內(nèi)部緩存數(shù)據(jù),因此可以每次傳遞多個(gè)字節(jié)。網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)設(shè)備與字符設(shè)備和塊設(shè)備不同,通常不把網(wǎng)絡(luò)設(shè)備看成普通文件,因?yàn)槠胀ㄎ募膬?nèi)容是無結(jié)構(gòu)的,而網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)流是有結(jié)構(gòu)的數(shù)據(jù)包,是成塊的。對(duì)應(yīng)著設(shè)備的3種類型,設(shè)備文件也分為字符型設(shè)備文件(Character)、塊型設(shè)備文件(Block)和網(wǎng)絡(luò)插件型設(shè)備文件(Socket)。對(duì)于Block型和Character型設(shè)備。例如:創(chuàng)建設(shè)備文件和設(shè)備號(hào)并顯示。在linux操作系統(tǒng)寫有字符設(shè)備和塊設(shè)備兩類主要的設(shè)備文件類型。struct file_operations{ struct module *owner。 int(*open) (struct inode*, struct file *)。ssize_t(*sendpage) (struct file*, struct page*,int,size_t ,loff_t *,int)。(3) write向外部設(shè)備發(fā)送數(shù)據(jù)。(6) readdir一般用于文件系統(tǒng)的操作。(2)對(duì)初始化設(shè)備相關(guān)的參數(shù)。注冊(cè)終端使用的函數(shù)。(5)其它的一些初始化工作,比如給設(shè)備分配I/O,事情DMA通道等。其框圖如下: ADC驅(qū)動(dòng)程序框圖驅(qū)動(dòng)程序依靠注冊(cè)在file_operations 結(jié)構(gòu)中的函數(shù)實(shí)現(xiàn)設(shè)備的功能,這些函數(shù)被稱為“方法”。第一種情況是該硬件驅(qū)動(dòng)程序被多個(gè)應(yīng)用程序調(diào)用,造成在內(nèi)核中有多個(gè)file 類型的結(jié)構(gòu)實(shí)例。返回的ssize_t類型是有符號(hào)整型變量。它們?cè)趶?fù)制不對(duì)ptr做任何檢查,因此在調(diào)用它們之前需要使用access_ok()函數(shù)對(duì)ptr進(jìn)行檢查。下面將分別介紹這兩種加載的方法。在文件系統(tǒng)中cramfs中加上設(shè)備驅(qū)動(dòng)程序?qū)?yīng)的設(shè)備文件。設(shè)備文件都包含在/dev目錄下,linux使用的根文件系統(tǒng)是cramfs文件系統(tǒng)。(1)將ADC設(shè)備驅(qū)動(dòng)文件復(fù)制到kernel/drivers/char目錄下,該目錄保存了linux的字符型設(shè)備的設(shè)備的驅(qū)動(dòng)程序。 get_user(data,ptr)。copy_to_user將“from”地址處的“count”個(gè)字節(jié)傳遞到用戶空間中以“to”開頭的地址空間中。只用在計(jì)數(shù)器為0值時(shí)調(diào)用release方法,內(nèi)核才會(huì)真正釋放由open 分配的資源。下面將對(duì)進(jìn)行分析。int _init device_init (void)。其中,irq是中斷向量。(3)注冊(cè)設(shè)備。(8) ioctl 執(zhí)行設(shè)備專有的命令。如果返回值非負(fù),就表示成功地寫入的字節(jié)數(shù)。ifdef MAGIC_ROM_PTR int (*roptr) (struct file*,struct vm_area_struct *)。 int(*release) (struct inode*, struct file *)。 ssize_t (*read) (struct file *,char *,size_t,loff_t *)。塊設(shè)備是主要對(duì)針對(duì)磁盤等慢速設(shè)備設(shè)計(jì)的,一面耗費(fèi)過多的CPU時(shí)間來等待。如上例中,在當(dāng)前位置創(chuàng)建出一個(gè)與 /dev/had 一樣的、可以訪問的第