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

正文內(nèi)容

基于arm平臺的智能溫控系統(tǒng)設(shè)計-預(yù)覽頁

2025-07-16 12:57 上一頁面

下一頁面
 

【正文】 的一種特殊形式,所以在理解嵌入式系統(tǒng)概念前,必須先明確計算機的基本概念。嵌入式系統(tǒng)是以應(yīng)用為中心、計算機技術(shù)為基礎(chǔ),軟、硬件可剪裁,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。 嵌入式系統(tǒng)的特點(1)是“專用’’的計算機系統(tǒng)嵌入式系統(tǒng)微處理器大多非常適合于工作在為特定用戶群所設(shè)計的系統(tǒng)中,稱為“專用微處理器,它專用于某個特定的任務(wù),或者很少的幾個任務(wù)。而嵌入式處理器結(jié)構(gòu)簡單,資源較少。針對外部聯(lián)網(wǎng)要求,嵌入式設(shè)備必須配有通訊接口,以及相應(yīng)的TCP/IP協(xié)議棧支持。(3)提供精巧的多媒體人機界面嵌入式設(shè)備之所以為億萬用戶樂于接受,其中重要的因素之一就是他們與使用者之間的親和力以及自然的人機交互界面。而嵌入式工業(yè)控制系統(tǒng)其具有功耗小,集成度高,專用性強,速度快,編程方便,價格低等優(yōu)點逐漸成為當今工業(yè)控制的首選。利用嵌入式系統(tǒng)帶來的良好機遇,采取特色產(chǎn)品戰(zhàn)略,大力發(fā)展各種具有自主知識產(chǎn)權(quán)的IP(Intelligence Property)核H1,形成技術(shù)積累和IC產(chǎn)品特色,滿足工業(yè)控制的市場需求,縮短技術(shù)差距,使我國不僅僅是一個制造大國,而且成為一個制造強國。由于爐子的種類,用途,實現(xiàn)手段的不同,各種加熱方法也不盡相同,比如煤氣、天然氣、油、電力等等,但就其控制系統(tǒng)本身的動態(tài)性而言,基本屬于大慣性,純滯后環(huán)節(jié)。本文的工作主要分為3個部分:一是溫度控制系統(tǒng)的硬件設(shè)計,二是嵌入式linux操作系統(tǒng)的建立,三是溫度控制系統(tǒng)應(yīng)用程序的設(shè)計。 系統(tǒng)的總體架構(gòu) 硬件系統(tǒng)的設(shè)計原則硬件系統(tǒng)設(shè)計必須遵循一下原則:(1)穩(wěn)定性和可靠性:工業(yè)現(xiàn)場環(huán)境比較惡劣,模擬量參數(shù)處理的性能直接影響系統(tǒng)的技術(shù)指標,必須從一開始就充分考慮應(yīng)用現(xiàn)場的各種環(huán)境狀況,采取抗干擾措施,選擇適當?shù)脑骷愋秃蛥?shù),防止串擾和誤差積累。采用低功耗器件和貼片封裝元器件,可有效降低功耗,減小PCB面積,提高電路本身的抗干擾性能。(2)模擬電路:主要包括信號處理電路和信號輸出電路。其中,NorFlash用來存儲系統(tǒng)啟動程序和系統(tǒng)內(nèi)核;SDRAM是操作系統(tǒng)和應(yīng)用程序的運行空間;NandFlash主要存儲采集的數(shù)據(jù)以及應(yīng)用程序。BootLoader相當于PC的BIOS,在硬件板一加電后就開始運行,主要完成硬件初始化,同時設(shè)置Linux啟動時所需要的參數(shù),然后跳到Linux內(nèi)核啟動代碼的第一個字節(jié)開始引導(dǎo)Linux。為實現(xiàn)Linux內(nèi)核的移植,需要把編譯生成的Bootloader、KernelImage(內(nèi)核)、Root Filesystem(根文件系統(tǒng))燒寫到Flash中。主要是針對采集的數(shù)據(jù)類型,進行相應(yīng)的數(shù)據(jù)處理,以完成溫度控制和數(shù)據(jù)通訊的目的。 AT91RM9200芯片介紹Atmel公司的AT9lRM9200是完全圍繞ARM920T ARM Thumb處理器構(gòu)建的系統(tǒng)。ARM9TDMI處理器是哈佛結(jié)構(gòu),包括取指、譯碼、執(zhí)行、存儲和回寫5級流水線。高級中斷控制器(AIC)通過多向量、中斷源優(yōu)先級劃分和縮短終端處理器傳輸時間來提高ARM920T處理器的中斷處理性能。每條口線上包含有一個輸入變化中斷、開漏能力和可編程上拉電阻。此外,它還提供了一系列符合工業(yè)標準的外設(shè),可在頻、電信、Flash卡、紅外及智能卡中使用。從O字節(jié)到3字節(jié)放置第一個存儲的字數(shù)據(jù),從4字節(jié)到7字節(jié)放置第二個存儲的字數(shù)據(jù),依次排列。 外圍電路設(shè)計. 1 AT91RM9200相關(guān)接口和控制器AT91RM9200的第一級譯碼由存儲控制器執(zhí)行,即由具有附加功能的高級系統(tǒng)總線執(zhí)行。區(qū)域15為外設(shè)地址,并且提供了對高級外設(shè)總線(APB)的訪問其他區(qū)域未使用,使用它們進行訪問時,需要向發(fā)出訪問請求的主機發(fā)出異常中斷。EBI通過集成電路支持CompactFlash與SmartMedia協(xié)議,從而大大降低了對外部組件的需求。靜態(tài)存儲控制器(SMC)產(chǎn)生信號來控制外部靜態(tài)存儲器或外設(shè)的訪問。獨立的讀寫控制信號允許存儲器與外設(shè)直接連接。 低功耗,高速率以及自身的多路復(fù)用器使得ADS7842成為體積小重量輕的需要多路數(shù)據(jù)轉(zhuǎn)換和測量的嵌入式系統(tǒng)的理想選擇。這里以常見的4~20mA電流信號為例,16路標準電壓信號連接多路開關(guān)DG506,為了穩(wěn)定輸入電壓和電流以保護元器件或者預(yù)設(shè)缺省電位,應(yīng)在每路輸入電壓進入多路開關(guān)之前外加470Ω的下拉電阻。本設(shè)計中選用ADS7842的通道l,所以A[1:0]接地。10v的電壓輸出,并帶有+10V的參考電壓精確溫度補償。12V,數(shù)字量輸入高電平是+2V~,低電平是0V~8V,而AT91RM9200的工作電壓是+,所以要完成兩者的數(shù)據(jù)通信必須進行電平的轉(zhuǎn)換。作為一種非易失性存儲器,F(xiàn)lash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。Flash分成71個扇區(qū),通過對其內(nèi)部的命令寄存器寫入標準的命令序列,可對Flash完成編程、整片擦除、按扇區(qū)擦除以及其他操作。AT91RM9200的NCS0連接/CE端,起始地址為0xl0000000;AT91RM9200的NRD接/OE端;NWRO接/VIE端;地址總線A[20:1]連接地址端口A[l9:0],數(shù)據(jù)總線DB[15:0]連接數(shù)據(jù)端口DQ[15:0]。因此要在系統(tǒng)中使用SDRAM,就要求微處理器具有刷新控制邏輯,或是在系統(tǒng)中另外加入刷新控制邏輯電路。AT91RM9200的NCSl分別接兩片的/CS端;AT91RM9200的SDWE分別接兩片的/WE端;HY57V281620H的DQML和AQMH是高低字節(jié)選擇信號,AT91RM9200的A0/NBS0接片1的DQML,NwRl肘BSl/CFIOw接片1的DQMH,同理,A1/NBS2接片2的DQML,NwR3/NBs3/CFIOw接DQMH。在本設(shè)計中,采用Samsung公司的K9F1208UOM存儲數(shù)據(jù),容量為64M8位。對頁的分區(qū)命令為00H,01H,50H,其中00H選擇A區(qū),01H選擇B區(qū),50H選擇c區(qū)。 通訊模塊設(shè)計串行通信模塊設(shè)計幾乎所有的微控制器、PC都提供串行接口,使用電子工業(yè)協(xié)會(EIA)推薦的RS.232C標準,這是一種很常用的串行數(shù)據(jù)傳輸總線標準。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM,DSP,F(xiàn)PGA等。以太網(wǎng)控制器根據(jù)引腳輸出配置不同,可使用獨立媒體接口(MII)或簡化獨立媒體接口(RMH)來傳輸數(shù)據(jù)。4 嵌入式Linux操作系統(tǒng)的建立 交叉編譯環(huán)境的建立登錄://,或者更高的版本。armlinuxgcc hellofile hellohello:ELF 32bit LSB executable,ARM,version l(ARM),for GNU/Linux ,dynamically linked(uses shared libs),not stripped說明生成的hello是可以工作在ARM平臺上的,也證明了交叉編譯工具鏈是有效并且是可用的[18]。檢測機器的系統(tǒng)結(jié)構(gòu),BootLoader探測機器類型傳遞給內(nèi)核MACH TYPE值。BootLoader通常分為兩級,依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常放在一級BootLoader中,而且通常都用ARM匯編語言來實現(xiàn),以達到短小精悍的目的。系統(tǒng)上電后檢測BMS的電平,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動,如果為低,則從片外Flash啟動。AT91RM9200按照連接在SPI上的DataFlash、連接在兩線接(TWI)的EEPROM和連接在外部總線接口(EBI)上的8位存儲器的順序依次查找合法的Boot程序。當Boot程序完成了把合法的映像搬到SRAM以后,需要對存儲器重映射。系統(tǒng)上電后,并打開超級終端,由于Flash中沒有引導(dǎo)程序,在超級終端界面下會出現(xiàn)“CCCCCC……”,此時AT91RM9200片內(nèi)ROM的Boot程序已經(jīng)運行,等待下一步操作。 (1)修改include/。Extem int deampress_image(void+$rC,void‘dst,unsigned im len):和Extem void Jump0。(3),修改hand_init()部。(6)修改makefile修改OBJS:=。在linux交叉編譯環(huán)境下編譯uboot,生成uboot的bin文件,壓縮成gz格式后,移植uboot所需的文件已經(jīng)全部編譯完畢。裁剪配置完成后,對內(nèi)核重新編譯,生成內(nèi)核映像文件。但是對于ARM體系結(jié)構(gòu),這個內(nèi)核的源碼需要打補丁才能正確運行。然后執(zhí)行make menuconfig命令進入內(nèi)核配置界面,在這里可以根據(jù)實際需要對內(nèi)核裁剪在配置工作完成后,就可以進行內(nèi)核的編譯了。這種壓縮方式編譯出來的內(nèi)核映像文件小,非常適合嵌入式系統(tǒng)使用。在生成uboot的二進制文件的同時,rnkimage命令會同時編譯生成,無需另外編譯。目前Linux支持多種文件系統(tǒng),主要包括Romfs(只讀文件系統(tǒng))、Cramfs、JFFS和JFFS2等。要包括下列基本的設(shè)備文件:/dev/eonsole、/dev/null、/dev/ram0、/dev/rty、/dev/tty0。*//*將ramdisk轉(zhuǎn)換為ext2格式的文件系統(tǒng)*/mountt ext2/dev/loop2/mnt/*用mount命令將ramdisk掛載至lJ/nmt目錄下。這樣不但占用空間小,而且可以方便地定制所需要的命令。(4)制作映像文件拷貝完畢后,生成jffs2映像文件:/./mnto 然后執(zhí)行如下命令,卸載并壓縮ramdisk。 NorFlash分區(qū)信息 分區(qū)號 名稱 大小 /dev/mid/1 BootLoader 0x20000 /dev/mid/2 ulmage 0xe0000 /dev/mid/3 Jffs2disk 0x100000 分區(qū)號 掛載點 大小 /dev/mid/4 /mnt/Nand1 16M /dev/mid/5 /mnt/Nand2 16M /dev/mid/6 /mnt/Nand3 32M本設(shè)計也將片外64MB的NandFlash分成3個分區(qū),并通過yaffs系統(tǒng)將3個mtd分區(qū)掛載到不同目錄上。設(shè)備驅(qū)動程序是內(nèi)核的一部分,它具有以下功能。所以進行嵌入式Linux系統(tǒng)的開發(fā),很大的工作量是為各種設(shè)備編寫驅(qū)動程序。(2)定義設(shè)備號。(3)實現(xiàn)初始化函數(shù)。 (5)實現(xiàn)所需的文件操作調(diào)用。(8)測試該設(shè)備,編寫應(yīng)用程序,對驅(qū)動程序進行測試[17]。init module()的任務(wù)就是為以后調(diào)用模塊的函數(shù)做準備。SMC可編程地址可達512M字節(jié)。SMC支持不同的允許單時鐘周期存儲器訪問的訪問協(xié)議,同時也提供了外部等待請求能力。2. ADS7842驅(qū)動程序的編寫。linuxgccKERNELDIR=/home/CFLAGS=D_KERNEL_DMODULE I$(KERNELDIR)/include O Wallmarch=armv4 mtune=arm9tdmi:$(CC)$(CFLAGSlc$clean:Rm rf*.o對Makefile文件執(zhí)行make命令后。[14]。 相關(guān)概念 進程進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次可以并發(fā)執(zhí)行的程序活動,是處于活動狀態(tài)的計算機程序,進程作為構(gòu)成系統(tǒng)的基本細胞和分配資源的最小單位,不僅是系統(tǒng)內(nèi)部獨立運行的實體,也是獨立競爭資源的基本實體。(1)進程的上下文,它表示進程執(zhí)行的狀態(tài);(2)程序當前的執(zhí)行目錄;(3)程序服務(wù)的文件和目錄;(4)程序的訪問權(quán)限;(5)內(nèi)存和其他分配給進程的系統(tǒng)資源。進程的task struct數(shù)據(jù)結(jié)構(gòu)包括了進程的狀態(tài)、調(diào)度信息、進程標識符等信息。進程執(zhí)行完之前,要經(jīng)過這樣多次反饋循環(huán)。 共享內(nèi)存共享內(nèi)存(Shared Memory)為內(nèi)存塊方式的數(shù)據(jù)段,其數(shù)據(jù)長度可為系統(tǒng)參數(shù)限制內(nèi)的任意長度,對它的訪問與通常的數(shù)組類似,在取得共享內(nèi)存標識符并將共享內(nèi)存與進程數(shù)據(jù)段連接后即可開始對之進行讀寫操作,在所有操作完成需要解除共享內(nèi)存和進程數(shù)據(jù)段的關(guān)系。共享內(nèi)存處理函數(shù)主要有4個,分別是shmat()、shmdt()、shmget()和shmctl(),說明如下。shmdt0的函數(shù)原型是void*shmdt(void‘shmaddr),該函數(shù)用于解除shmaddr地址指定的共享內(nèi)存與調(diào)用進程數(shù)據(jù)段的聯(lián)系。IPC_CPEAT)值為真。 信號量信號量(Semaphore)相當于一個計數(shù)器,可用于同步多進程對共享數(shù)據(jù)對象的訪問。(3)若此信號量的值為0,則進程進入睡眠狀態(tài),直至信號量大于0。為了正確地實現(xiàn)信號量,信號量值的測試及減1操作應(yīng)當是原子操作。Semctl()的函數(shù)原型是int semctl(int semid,int semnum,int cmd,union$emunarg),其中:union semun{int val; /*for SETVAL*/Struct semid_ds *buf。semoparray是一個指針,它指向一個信號量操作數(shù)組。如果信號量值非0,若指定了IFC_NOWAIT,則出錯返回EAGAIN,若未指定IPC NOWAIT,則該信號量的semnt加l,然后調(diào)用進程被掛起,直至信號量變成0?;咎捉幼窒到y(tǒng)調(diào)用主要有以下這些函數(shù);socket()的函數(shù)原型是int socket(int domain,int type,int protoc01),成功返回socket處理代碼,失敗返回1。acceptO的函數(shù)原型是int accept(int sockfd.,void。Recv()的函數(shù)原型是int recv(int sockfd,void+bur,int len,unsigned int flags),參數(shù)len為可接收數(shù)據(jù)的最大長度,一般設(shè)為0
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1