糯米文學吧

位置:首頁 > 範文 > 工作報告

關於嵌入式系統實習報告3篇

隨着社會一步步向前發展,報告使用的次數愈發增長,報告成為了一種新興產業。那麼什麼樣的報告才是有效的呢?以下是小編為大家整理的嵌入式系統實習報告4篇,僅供參考,希望能夠幫助到大家。

關於嵌入式系統實習報告3篇

嵌入式系統實習報告 篇1

此次設計我們採用以LM3S2100為微控制器,並通過硬件和軟件兩方面設計,結合6位LED數碼管,放大整形電路,來實現頻率計在嵌入式系統中的開發與應用。

本次課程設計其主要目的是通過這學期所學的ARM知識,來實現頻率計的功能,本次設計我們利用了定時計數器的功能,對輸入的信號進行實時的、高精度的頻率測量,並通過6位LED數碼顯示管顯示測量結果。論文中闡述了相關的硬件原理與應用方案,並在此基礎上敍述了軟件設計最終結合硬件和軟件完成了本次設計。

關鍵詞:LM3S2100、頻率計、LED數碼顯示管

1 緒論

頻率計是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的測量儀器。它是一種用十進制數字顯示被測信號頻率的數字測量儀器。它的基本功能是測量正弦信號,方波信號及其他各種單位時間內變化的物理量。在進行模擬、數字電路的設計、安裝、調試過程中,由於其使用十進制數顯示,測量迅速,精確度高,顯示直觀,經常要用到頻率計。

本頻率計將採用定時、計數的方法測量頻率。測量範圍在9kHz以下的方波,時基寬度為1us,10us,100us,1ms。用ARM芯片實現自動測量功能。

基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量週期的方法對方波的頻率進行自動的測量。

1.1本次設計任務

一.設計題目:ARM為內核的頻率計

二.主要功能:用ARM的定時器/計數器的定時和計數功能,外部擴展6位數碼管,要

求累計每秒進入ARM的外部脈衝個數,用LED數碼管顯示出來,或是

用上位機顯示。

三.設計要求:用protel畫出最小系統和外圍擴展電路。顯示部分可用LED數碼管或是

上位機顯示。要求小組成員分工明確。

1.2設計基本原理

所謂頻率,就是週期性信號在單位時間(1s)內變化的次數,若在一定時間間隔T內測得這個週期性信號的重複變化次數為N,則其頻率可表示為

被測信號經放大整形電路變成計數器所要求的脈衝信號,其頻率與被測信號的頻率相同。當1s信號來到時,被測脈衝信號進入芯片相關的,計數器開始計數,直到1s信號結束時,停止計數。若在1s時間內計數器計得的脈衝數為N,則被測信號頻率fX?Nhz。

2 設計理念及設備

2.1設計理念

説到用單片機設計[2]的頻率計,這裏説一下單片頻率計ICM7216D。單片頻率計ICM7216D是美國Intersil公司首先研製的專用測頻大規模集成芯片。它是標準的28引腳的雙列直插式集成電路,採用單一的+5V穩壓電源工作。它內含高頻振盪器、10進制計數器、7段譯碼器、位多路複用器、能夠直接驅動LED顯示器的8段段碼驅動器、8位位碼驅動器。其基本的測頻範圍為DC至10MHz,若加預置的分頻電路,則上限頻率可達40MHz或100MHz,單片頻率計ICM7216D只要加上晶振、量程選擇、LED顯示器等少數器件即可構成一個DC至40MHz的微型頻率計,可用於頻率測量、機械轉速測量等方面的應用。還有,PTS2600是英國研製的一款微波頻率計,該頻率計可以測量頻率高達26GHz的信號,而價格才只有幾萬元,可謂是物美價廉。PTS2600雖然是一個低價格的微波頻率計,但它能在四個波段有很好的靈敏度測量40Hz到20GHz的頻率。也可以用它來測量高達26GHz的頻率,只是靈敏度稍稍低了一些。日常工作中,用它來測量

VF/VHF/UHF頻段的頻率,也十分方便和準確。PTS2600使用一個12位數字的LCD液晶顯示屏來顯示所測得的頻率、閘口時間(分辨率相關)、菜單功能以及頻率表的測量結果。所有這些數值都是同時顯示在一個屏幕上的。PTS2600的機箱採用高標準的鋁質材料製成,各模塊安裝在下方有鋼板支承的母板上。模塊相對獨立,維修方便,主要通過更換模塊進行。 我國利用相檢寬帶測頻技術設計的高精度頻率計也非常具有突破性和實用性。該項新技術及儀器是針對已有測頻技術的特點及存在問題,推出完全新穎的檢測精度高、便於實施且設備構成又比較經濟的一種新技術及儀器。

2.2設計所用設備和器材

(1)電源模塊

(2)放大整形電路(三極管9014和74LS00)

(3)ARM開發板LPC2131

(4)LED數碼顯示管

3 硬件設計方案

3.1設計系統原理框圖及介紹

圖1 原理框圖

由上圖知,一個被測信號經過放大整形再進入ARM開發板,然後經過1S的定時捕獲得出頻率值,再經由6位LED數碼顯示管顯示出數值。

3.2電源

電源模塊——參考電壓源為系統芯片如A/D、D/A轉換IC或外設提供參考電壓,電路如圖2。

嵌入式系統實習報告 篇2

ARM嵌入式系統綜合設計

一、實習時間和地點安排

1、實習時間:20xx年12月03 日 —— 20xx年12月14日,共兩週的時間。

2、每天的實習時間安排:

上午:8:30——11:30

下午:13:30——15:30

3、實習地點:校內。

二、實習目的

1、掌握電子元器件的焊接原理和方法。

2、掌握ARM7 LPC2132控制程序的編寫方法。

3、掌握調試軟件和硬件的方法。

三、實習內容與要求

1、根據設計要求焊接好電路板並測試焊接無誤。

2、繪製流程圖並編寫程序。

3、編譯通過後,將程序下載到LPC2132進行調試。

4、調試成功後編寫實習報告。

四、LPC2132芯片介紹

LPC2132最小系統圖及其介紹

概述

LPC2132是基於一個支持實時仿真和嵌入式跟蹤的32/16 位 ARM7TDMI-STM CPU 的微控制器,並帶有 32kB、64kB、512 kB 的嵌入的高速

Flash 存儲器。128 位寬度的.存儲器接口和獨特的加速結構使 32 位代碼能夠

在最大時鐘速率下運行。對代碼規模有嚴格控制的應用可使用 16 位 Thumb?

模式將代碼規模降低超過 30%,而性能的損失卻很小。

較小的封裝和極低的功耗使 LPC2131/2132/2138 可理想地用於小型系統中,如訪問控制和 POS 機。寬範圍的串行通信接口和片內 8/16/32kB 的 SRAM 使 LPC2131/2132/2138 非常適用於通信網關、協議轉換器、軟 modem 、聲音

辨別和低端成像,為它們提供巨大的緩衝區空間和強大的處理功能。多個 32 位定時器、1 個或 2 個 10 位 8 路 ADC 、10 位 DAC 、PWM 通道和 47 個 GPIO 以及多達9 個邊沿或電平觸發的外部中斷使它們特別適用於工業控制和醫療系統。

特性

1、小型 LQFP64 封裝的 16/32 位 ARM7TDMI-S 微控制器。

2、8/16/32kB 片內靜態 RAM 。

3、片內 Boot 裝載軟件實現在系統/在應用中編程(ISP/IAP )。扇區擦除

或整片擦除的時間為400ms ,1ms 可編程 256 字節。

4、EmbeddedICE?RT 和嵌入式跟蹤接口可實時調試(利用片內 RealMonitor

軟件)和高速跟蹤執行代碼。

5、1 個(LPC2132/2132 )或2 個(LPC2138 )8 路 10 位 A/D 轉換器共包含 16 個模擬輸入,每個通道的轉換時間低至 2.44us 。

6、1 個 10 位 D/A 轉換器,可提供不同的模擬輸出(LPC2132/2138 )。

7、 2 個 32 位定時器/計數器(帶 4 路捕獲和 4 路比較通道)、PWM 單元(6 路輸出)和看門狗。

8、實時時鐘具有獨立的電源和時鐘源,在節電模式下極大地降低了功耗。

9、多個串行接口,包括 2 個 16C550 工業標準 UART 、2 個高速 I2C 接口(400 kbit/s )、SPITM 和 SSP(具有緩衝功能,數據長度可變)。

10、向量中斷控制器。可配置優先級和向量地址。

11、多達 47 個 5V 的通用I/O 口(LQFP64 封裝)。

12、 9 個邊沿或電平觸發的外部中斷引腳。

13、 通過片內 PLL 可實現最大為 60MHz 的 CPU 操作頻率,PLL 的穩定時間為 100us。

14、片內晶振頻率範圍:1~30 MHz。

15、2 個低功耗模式:空閒和掉電。

16、可通過個別使能/禁止外部功能和降低外部時鐘來優化功耗。

17、通過外部中斷將處理器從掉電模式中喚醒。

18、單個電源供電,含有上電覆位(POR )和掉電檢測(BOD )電路:-CPU

操作電壓範圍:3.0~3.6 V (3.3 V+/ - 10%) ,I/O 口可承受5V 的最大電壓。

結構概述

LPC2132包含一個支持仿真的 ARM7TDMI-S CPU 、與片內存儲器控制器接口

的 ARM7 局部總線、與中斷控制器接口的 AMBA 高性能總線 (AHB )和連接片內外設功能的 VLSI 外設總線 (VPB ,ARM AMBA 總線的兼容超集)。

LPC2131/2132/2138 將 ARM7TDMI-S 配置為小端(little-endian )字節順序。 AHB 外設分配了 2M 字節的地址範圍,它位於 4G 字節 ARM 存儲器空間的最頂端。每個 AHB 外設都 分配了 16k 字節的地址空間。LPC2131/2132/2138 的外設功能 (中斷控制器除外)都連接到 VPB 總線。AHB 到 VPB 的橋將 VPB 總線與 AHB 總線相連。VPB 外設也分配了 2M 字節的地址範圍,從 3.5GB 地址點開始。每個 VPB 外設在 VPB 地址空間內都分配了 16k 字節地址空間。

片內外設與器件管腳的連接由管腳連接模塊控制。該模塊必須由軟件進行控制以符合外設功能與管腳在特定應用中的需求。

ARM7TDMI-S 處理器

ARM7TDMI-S 是通用的 32 位微處理器,它具有高性能和低功耗的特性。ARM 結構是基於精簡指令集 計算機(RISC)原理而設計的。指令集和相關的譯碼機制比複雜指令集計算機要簡單得多。這樣使用一個小的、廉價的處理器核就可實現很高的指令吞吐量和實時的中斷響應。

由於使用了流水線技術,處理和存儲系統的所有部分都可連續工作。通常在執行一條指令的同時對下 ,一條指令進行譯碼,並將第三條指令從存儲器中取出。

ARM7TDMI-S 處理器使用了一個被稱為 THUMB 的獨特結構化策略,它非常適用於那些對存儲器有限制或者需要較高代碼密度的大批量產品的應用。

在 THUMB 後面一個關鍵的概念是“超精簡指令集”。基本上,ARM7TDMI-S 處理器具有兩個指令集:標準 32 位 ARM 指令集 、16 位 THUMB 指令集

THUMB 指令集的 16 位指令長度使其可以達到標準 ARM 代碼兩倍的密度,卻仍然保持 ARM 的大多 數性能上的優勢,這些優勢是使用 16 位寄存器的 16 位處理器所不具備的。因為 THUMB 代碼和 ARM 代碼一樣,在相同的 32 位寄存器上進行操作。THUMB 代碼僅為 ARM 代碼規模的 65%,但其性能卻相當於連接到 16 位存儲器系統的相同 ARM 處理器性能的 160%。

片內 FLASH 程序存儲器

LPC2131/2132/2138 分別含有 32kB、64kB 和 512kB 的FLASH 存儲器系統。該存儲器可用作代碼和數據的存儲。對 FLASH 存儲器的編程可通過幾種方法來實現:通過內置的串行 JTAG 接口,通過在系統編程(ISP )和 UART0 ,或通過在應用編程(IAP )。使用在應用編程的應用程序也可以在應用程序運行時對FLAH 進行擦除和/ 或編程,這樣就為數據存儲和現場固件的升級都帶來了極大的靈活性。如果LPC2131/2132/2138 使用了片內引導裝載程序(bootloader ),32/64/512kB 的 Flash 存儲器就可用來存放用户代碼。 LPC2131/2132/2138 的Flash 存儲器至少可擦除/編程 10,000 次,保存數據的時間長達 10 年。 片內靜態 RAM

片內靜態 RAM (SRAM )可用作代碼和/ 或數據的存儲,支持 8位、16 位和32 位的訪問。LPC2131/2132/2138 含有 8/16/32kB 的靜態RAM 。 LPC2131/2132/2138 SRAM 是一個字節尋址的存儲器。對存儲器進行字和半字訪問時將忽略地址對準,訪問被尋址的自然對準值(因此,對存儲器進行字訪問時將忽略地址位 0 和 1,半字訪問時將忽略地址位 0 )。因此,有效的讀寫操作要求半字數據訪問的地址線0 為 0(地址以0、2 、4 、6、8、A 、C 和 E 結尾),字 數據訪問的地址線 0 和 1 都為 0 (地址以0、4 、8 和 C 結尾)。該原則同樣用於片外和片內存儲器。SRAM 控制器包含一個回寫緩衝區,它用於防止 CPU 在連續的寫操作時停止運行。回寫緩衝區總是保存着軟件發送到 SRAM

的最後一個字節。該數據只有在軟件請求下一次寫操作時才寫入 SRAM (數據只有 在軟件執行另外一次寫操作時被寫入 SRAM)。如果發生芯片復位,實際的SRAM 內容將不會反映最近一 次的寫請求(即:在一次“熱”芯片復位後,SRAM 不會反映最後一次寫入的內容)。任何在復位後檢查 SRAM 內容的程序都必須注意這一點。通過對一個單元執行兩次相同的寫操作可保證復位後數據的寫入。或者,也可通過在進入空閒或掉電模式前執行虛寫(dummy write )操作來保證最後的數據在復位後被真正寫入到 SRAM。

LPC2132管腳分佈

五、硬件原理圖

其中K1-K6為六個按鍵,分別對應清零鍵、減號鍵、第二個數字鍵、等號鍵、加號鍵和第一個數字鍵,接到I/O口的P0.08-P0.13腳。P0.00-P0.07號腳接段碼,分別是G、F、E、D、C、B、A、DP。三個數碼管的位選通端接到P0.28-P0.30三個管腳上,用於選通數碼管。

ULN2803應用電路介紹

ULN20xx、ULN2800是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、温度範圍寬、帶負載能力強等特點,適應於各類要求高速大功率驅動的系統。ULN20xxA電路是美國Texas Instruments公司和Sprague公司開發的高壓大電流達林頓晶體管陣列電路,文中介紹了它的電路構成、特徵參數及典型應用。

功率電子電路大多要求具有大電流輸出能力,以便於驅動各種類型的負載。功率驅動電路是功率電子設備輸出電路的一個重要組成部分。在大型儀器儀表系統中,經常要用到伺服電機、步進電機、各種電磁閥、泵等驅動電壓高且功率較大的器件。ULN20xx、ULN2800高壓大電流達林頓晶體管陣列系列產品就屬於這類可控大功率器件,由於這類器件功能強、應用範圍語廣。因此,許多公司都生產高壓大電流達林頓晶體管陣列產品,從而形成了各種系列產品,ULN20xx、ULN2800系列就是美國Texas Instruments公司、美國Sprague公司開發的高壓大電流達林頓晶體管陣列產品。它們的系列型號分類如表1所列,生產20xx、2800高壓大電流達林頓晶體管陣列系列產品的公司與型號對照表如表2所列。在上述系列產品中,ULN20xx系列能夠同時驅動7組高壓大電流負載,ULN2800系列則能夠同時驅動8組高壓大電流負載。美國Texas Instruments公司、美國Sprague公司生產的ULN20xxA由7組達林頓晶體管陣列和相應的電阻網絡以及鉗位二極管網絡構成,具有同時驅動7組負載的能力,為單片雙極型大功率高速集成電路。以下介紹該電路的構成、性能特徵、電參數以及典型應用。20xx、2800高壓大電流達林頓晶體管陣列系列中的其它產品的性能特性與應用可參考ULN20xxA。本設計的驅動電路如圖所示:

在本實習中的應用

嵌入式系統實習報告 篇3

通過嵌入式控制系統的實習,使我們瞭解並掌握根據嵌入式控制系統項目要求,如何設計符合控制邏輯的原理圖,複合原理圖及電子電氣EMC的PCB圖,學習電子元器件的焊接,PCB板的調試等,最終掌握嵌入式控制系統的設計及工藝等。

一、設計實習任務

1. 焊接ARM7(LPC2132)最小系統PCB。要求仔細認真焊接,並調試使其能正常工作(提供最簡易測試程序)。

2. 設計數碼管動態掃描顯示電路,三個按鍵的鍵盤電路,模擬電壓取樣電路等。要求原理圖設計合理,要求有與最小系統板的接口,正確焊接,調試後能正常工作。

3. 控制軟件設計

在嵌入式控制系統的設計中,系統控制軟件的設計是一項非常重要且艱鉅的工作,系統能否正常可靠的工作,成敗在此一舉。因此要求同學們認真仔細的設計、調試控制軟件。要求軟件語句精煉,整體健壯,有一定的抗干擾能力。

二、數碼管動態掃描顯示電路控制軟件設計

要求顯示電路能正常顯示數據,數碼管無閃爍,明亮,可隨時刷新顯示的數據,參考流程圖見圖1。

圖 1

三.鍵盤識別軟件設計

嵌入式控制系統一般的是配備簡易鍵盤,即根據需要設3~4按鍵基本能滿足使用要求,因此鍵盤控制軟件也是必須的,參考下圖

四、ADC控制軟件設計

五、 電路與程序

六、程序源代碼

#include "LPC2294.h" 圖 3

typedef unsigned int U32; //無符號32位整型變量

typedef unsigned char U8; //無符號8位整型變量

//typedef signed char int8; //有符號8位整型變量

typedef unsigned short U16; //有符號8位整型變量

#define Fpclk 11059200

#define DIS_1 0x06 //個位選通

#define DIS_2 0x05 //十位選通

#define DIS_3 0x03 //百位選通

#define KEY1 0x04 //+

#define KEY2 0x02 //-

#define KEY3 0x01 //ok

U16 cunt;

U16 data_dis,data_set;

U8 dis3=10,dis2=10,dis1=10;

U8 flag_dis,dis_n;

U8 timeout;

const U8 led_seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff,0x00}; //段嗎: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 all_l 關顯 void __irq Timer0_ISR(void);

void cpu_init(void)

{

PINSEL0 = 0x00;

IO0DIR = 0x3FF; //顯示分配在P000~P010 ,段碼P000~P007,位碼P008~P010 //健P016~P018

//定時器0

T0TC = 0;

T0PR = 0;

T0MCR = 0x03;

T0MR0 = Fpclk/1000; //定時1mS

T0TCR = 0x01;

VICIntSelect = VICIntSelect&(~(1<<4));

VICVectCntl0 = 0x20|4;

VICVectAddr0 = (U32)Timer0_ISR;

VICIntEnable = (1<<4);

}

void updata(void)

{

U16 temp;

// u8 temp1,temp2,temp3;

//WDT_CONTR=0x3c;

if(data_dis<=999)

{

dis3=temp/100; //百位

temp=temp%100;

dis2=temp/10; //十位

dis1=temp%10; //個位 }

}

//====================================== // Timer0_ISR

//====================================== void __irq Timer0_ISR(void)

{

cunt++; if(cunt%10==0) flag_dis=1; if(timeout > 0) timeout--;

}

//====================================== //display共陽極動態掃描顯示

//====================================== display()

{

//WDT_CONTR=0x3c;

dis_n++;

switch(dis_n)

{

case 1:

IO0PIN=led_seg[dis1] | DIS_1<<8; //顯示個位 break;

case 2:

IO0PIN=led_seg[dis2] | DIS_2<<8; //顯示十位 break;

case 3:

IO0PIN=led_seg[dis2] | DIS_3<<8; //顯示百位 break;

}

if(dis_n>=3)

dis_n=0;

}

//=========================

// key_do

//按鍵接於P0.16~18

//=========================

void key_do(void)

{

U8 key,key_d;