基于ARM的串口通信系統(tǒng)的設(shè)計方案_第1頁
基于ARM的串口通信系統(tǒng)的設(shè)計方案_第2頁
基于ARM的串口通信系統(tǒng)的設(shè)計方案_第3頁
基于ARM的串口通信系統(tǒng)的設(shè)計方案_第4頁
基于ARM的串口通信系統(tǒng)的設(shè)計方案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、目 錄摘要11 設(shè)計目的12 設(shè)計要求13 設(shè)計內(nèi)容23.1 S3C2410與串口通信概述23.1.1S2C2410處理器概述23.1.2串口通信 33.2方案設(shè)計 43.3電路設(shè)計 4 3.3.1 電源設(shè)計 4 3.3.2晶振電路 5 3.3.3復(fù)位電路 6 3.3.5存儲器設(shè)計 6 JTAG接口 6 3.3.6串口電路 73.4軟件設(shè)計8 3.4.1 Boot loader 工作原理8 3.4.2第一階段9 3.4.1第二階段10總結(jié)與致謝11參考文獻(xiàn)12摘 要串口通信是目前單片機(jī)和 DSP 等嵌入式系統(tǒng)之間,以及嵌入式系統(tǒng)與 PC 機(jī)或無線模塊之間的一種非常重要且普遍使用的通信方式。在嵌

2、入式系統(tǒng)的硬件結(jié)構(gòu)中,通常只有一個8位或 16位的 CPU, 不僅要完成主流程的工作, 同時還要處理隨時發(fā)生的各種中斷, 因而嵌入式系統(tǒng)中的串口通信程序設(shè)計與 PC 機(jī)有很大的不同。串行端口的本質(zhì)功能是作為 CPU 和串行設(shè)備間的編碼轉(zhuǎn)換器,一般微機(jī)內(nèi)都配有通信適配器,使計算機(jī)能夠與其他具有RS 232 串口的計算機(jī)或設(shè)備進(jìn)行通信。本系統(tǒng)中目標(biāo)機(jī)開發(fā)板的內(nèi)核采用的是三星的 S3C2410 ,工作非??煽?可穩(wěn)定運行在 203 MHz 的時鐘頻率下。其外設(shè)非常豐富,功能強大,完全可以滿足設(shè)計需要。串口線采用常用的 RS 232 型接口模式,能實現(xiàn)計算機(jī)與開發(fā)板間的數(shù)據(jù)傳輸與控制。關(guān)鍵詞:ARM;

3、串口通信;串行端口;RS 232 1設(shè)計目的以嵌入式芯片S3C2410為核心的最小嵌入式系統(tǒng)構(gòu)建方法,給出了S3C2410的復(fù)位電路、電源電路、存儲器電路和串口電路等硬件組成。在ADS環(huán)境下自制的最小Boobt loader程序開發(fā)并調(diào)試。2設(shè)計要求串口通信是嵌入式設(shè)備必備的通信方式之一,選用ARM芯片和電平轉(zhuǎn)換芯片完成出口通信的設(shè)計,并設(shè)計完整物理接口。根據(jù)設(shè)計題目的要求,選擇確定ARM芯片型號、電平轉(zhuǎn)換芯片型號,完成系統(tǒng)硬件設(shè)計和程序設(shè)計。3 設(shè)計內(nèi)容3.1 S3C2410與串口通信概述3.1.1S3C2410處理器概述S3C2410是Samsung公司基于A RM 920T內(nèi)核的嵌入式微

4、處理器.本文以S3C2410為核心,配置了最基本外圍電路構(gòu)成了最小的嵌入式系統(tǒng),并在ADS上開發(fā)了啟動程序,完成硬件初始化,配置運行環(huán)境,串日調(diào)試功能。Samsung 公司推出的16/32位RISC處理器S3C2410A,為手持設(shè)備和一般類型應(yīng)用提 供了低價格、低功耗、高性能小型微控制器的解決方案。為了降低整個系統(tǒng)的成本, S3C2410A提供了以下豐富的內(nèi)部設(shè)備:分開的16KB的指令Cache和16KB數(shù)據(jù)Cache, MMU虛擬存儲器管理,LCD控制器(支持STN&TFT),支持NAND Flash系統(tǒng)引導(dǎo),系統(tǒng) 管理器(片選邏輯和SDRAM控制器),3通道UART,4通道DMA,4通道P

5、WM定時器,I/O 端口,RTC,8通道10位ADC和觸摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主機(jī),USB 設(shè)備,SD主卡&MMC卡接口,2通道的SPI以及內(nèi)部PLL時鐘倍頻器。 S3C2410A采用了ARM920T內(nèi)核,0.18um工藝的CMOS標(biāo)準(zhǔn)宏單元和存儲器單元。 它的低功耗、精簡和出色的全靜態(tài)設(shè)計特別適用于對成本和功耗敏感的應(yīng)用。同樣它還采用 一種叫做Advanced Microcontroller Bus Architecture(AMBA)新型總線結(jié)構(gòu)。 S3C2410A的顯著特性是它的CPU核心,是一個由Advanced RISC Machines(ARM)

6、有限公司設(shè)計的16/32位ARM920T RISC處理器。ARM920T實現(xiàn)了MMU,AMBA BUS和 Harvard高速緩沖體系結(jié)構(gòu)。這一結(jié)構(gòu)具有獨立的16KB指令Cache和16KB數(shù)據(jù)Cache,每 個都是由8字長的行(line)構(gòu)成。 通過提供一系列完整的系統(tǒng)外圍設(shè)備,S3C2410A大大減少了整個系統(tǒng)的成本,消除了 為系統(tǒng)配置額外器件的需要。本文檔將介紹S3C2410A中集成的以下片上功能: 1.8V/2.0V內(nèi)核供電,3.3V存儲器供電,3.3V外部I/O供電; 具備16KB的I-Cache和16KB的D-Cache/MMU; 外部存儲控制器(SDRAM 控制和片選邏輯) LCD

7、 控制器(大支持 4K 色 STN 和 256K 色 TFT)提供 1 通道 LCD 專用 DMA。4 通道 DMA 并有外部請求引腳。3 通道 UART(IrDA1.0,16 字節(jié) Tx FIFO,和 16 字節(jié) Rx FIFO)/2 通道 SPI1 通道多主 IIC-BUS/1 通道 IIS-BUS 控制器。兼容 SD 主接口協(xié)議 1.0 版和 MMC 卡協(xié)議 2.11 兼容版。2 端口 USB 主機(jī)/1 端口 USB 設(shè)備(1.1 版)4 通道 PWM 定時器和 1 通道內(nèi)部定時器 看門狗定時器 117 個通用 I/O 口和 24 通道外部中斷源。 功耗控制模式:具有普通,慢速,空閑和掉

8、電模式。 z 8 通道 10 比特 ADC 和觸摸屏接口 具有日歷功能的 RTC 具有 PLL 片上時鐘發(fā)生器3.1.1串口通信串口通信的概念,即串口按位(bit)發(fā)送和接收字節(jié) 通信協(xié)議是指通信雙方按照約定的數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟等規(guī)程來進(jìn)行數(shù)據(jù)傳輸 本次采用異步通信 ,其特點是通信雙方以一個字符(包括特定附加位)作為數(shù)據(jù)傳輸單位,且發(fā)送方傳送字符的間隔時間是不定的。在傳輸一個字符時總是從起始位開始,以停止位結(jié)束。如圖1所示: 圖1 串行數(shù)據(jù)幀格式S3C2410的UART提供3個獨立的異步串行通信端口,每個端口可以基于中斷或者DMA進(jìn)行操作。換句話說,UART控制器可以在CP

9、U和UART之間產(chǎn)生一個中斷或者DMA請求來傳輸數(shù)據(jù)。UART在系統(tǒng)時鐘下運行可支持高達(dá)230.4K的波特率,如果使用外部設(shè)備提供的UEXTCLK,UART的速度還可以更高。每個UART通道各含有兩個16位的接收和發(fā)送FIFO。S3C2410的UART包括可編程的波特率,紅外 接收/發(fā)送,一個或兩個停止位插入,5-8位數(shù)據(jù)寬度和奇偶校驗。每個UART包括一個波特率發(fā)生器、一個發(fā)送器、一個接收器和一個控制單元,如圖11-1所示。波特率發(fā)生器的輸入可以是PCLK或者UEXTCLK。發(fā)送器和接收器包含16位的FIFO和移位寄存器,數(shù)據(jù)被送入FIFO,然后被復(fù)制到發(fā)送移位寄存器準(zhǔn)備發(fā)送,然后數(shù)據(jù)按位從

10、發(fā)送數(shù)據(jù)引腳TxDn輸出。同時,接收數(shù)據(jù)從接收數(shù)據(jù)引腳RxDn按位移入接收移位寄存器,并復(fù)制到FIFO。特性 RxD0, TxD0, RxD1, TxD1, RxD2, 和TxD2基于中斷或者DMA操作 UART Ch 0, 1, 和 2 具有 IrDA 1.0 & 16 字節(jié) FIFO UART Ch 0 和 1 具有 nRTS0, nCTS0, nRTS1, 和 nCTS1 支持發(fā)生/接收握手 3.2 方案設(shè)計 圖2 通信系統(tǒng)的組成框圖本系統(tǒng)是以嵌入式芯片S3C2410為核心的最小嵌入式系統(tǒng)構(gòu)建方法,給出了S3C2410的復(fù)位電路、調(diào)試接口、電源電路、存儲器電路和串口電路等硬件組成。3.3

11、 電路設(shè)計 3.3.1 電源設(shè)計S3C2410工作時內(nèi)核需要1. 8 V電壓,I/ O端口和外設(shè)需要3. 3 V電壓. VDDi/VDDiarm引腳口是供S3C2410內(nèi)核的1. 8 V電壓;VDDalive引腳是功能復(fù)位和端口狀態(tài)寄存器電壓. M12引腳RTCVDD是RT C模塊的1. 8 V電壓,用電池供電保證系統(tǒng)的掉電后保持實時時鐘.VDDOP引腳是I/ O端口3. 3V電壓;V DDM OP引腳是存儲器I/ O端口電壓;還有一系列VSS引腳需要接到電源地上.3. 3 V電壓從SV用A M S 1117- 3. 3轉(zhuǎn)換得到如圖3所示;1.8V從3. 3 V通過MIC5207-1. 8轉(zhuǎn)換

12、得到。如圖3所示。 圖 3 電源電路3.3.2晶振電路S3C2410內(nèi)部有時鐘管理模塊,有2個鎖相環(huán),其中M PLL能夠產(chǎn)生CPU卞頻FCLK,AHB總線外設(shè)時鐘HCLK和APB總線外設(shè)時鐘PCLK; UPLL產(chǎn)生USB模塊的時鐘。OM3,OM2都接地時,主時鐘源和U SB模塊時鐘源都由外接晶振產(chǎn)生。在XTIpll和XTOpll之間連接主晶振,可以選擇12 MHz品振,通過內(nèi)部寄存器的設(shè)置產(chǎn)生不同頻率的FOLK, H CLK和PCLK;在XT Irtc和XTOrtc上需要接32.768 kHz的晶振供RTC模塊使用.同時在MPLLCAP和UPLLCAP上也要外接5pF的環(huán)路濾波電容。晶振電路如

13、圖4所示。 圖 4 晶振電路3.3.3 復(fù)位電路S3C2410的J12引腳為nRESET復(fù)位引腳,nRESET上給4個FOLK時間的低電平后就可以復(fù)位.可以設(shè)計如圖5所小的復(fù)位電路,其中上電復(fù)位是靠RC電路特性完成,開關(guān)二極管1N4148在手動復(fù)位時對電容起快速放電的作用,因此可以把復(fù)位電平快速拉到OV。反響門74H C 14可以起到延時作用,保證有足夠的復(fù)位時間。 圖5 復(fù)位電路 JTAG接口 S3C2410有標(biāo)準(zhǔn)的JTAG接口,TCI(H6)為測試時鐘輸入;TDI(J1)為測試數(shù)據(jù)輸入;TDO(JS)為測試數(shù)據(jù)輸出;TMS(J3)為測試模式選擇,TMS用來設(shè)置JTA G接日處于某種特定的測

14、試式;nTRST ( H 5)為測試復(fù)位,輸入引腳,低電平有效。其nTRST,TMS,TCK,TDI需要接10K的上拉電阻。通過,JTAG日可以完成芯片測試或在線編程。3.3.5 存儲器設(shè)計S3C2410有32根數(shù)據(jù)線和27根地址線,因此地址線的尋址范圍為128 M;但是S3C2410還有8根存儲器芯片片選信號線nGCSO- nGCS7,因此總的尋址空間為128M * 8= 1G。Nand Flash啟動模式下復(fù)位時S3C2410的存儲器映射如圖6所示。如當(dāng)訪問物理地址Ox08000000- 0x10000000內(nèi)的地址則nGCSl自動為低電平,以此類推。通過圖6可知SDRAM只能連接在nGC

15、S6和nGCS7片選引腳上。S3C2410提供了SDRAM的接口,其中包括nSRAS:行信號鎖存;nSCAS:列信號鎖存;nSCS(就是nGCS 6 ):片選信號; 圖 6DQM3:0:數(shù)據(jù)屏蔽 ; SCLI 1: 0;時鐘;SCKE:時鐘有效;nBE 3: 0:高/低字節(jié)有效;nWBE 3:0:寫有效。MT48LC16M16A2P是4塊16位32M的SDRAM存儲器。MT48LC16M16A2P的行地址13位為A 0-A 12,列地址9位為CAO- CA8,行和列地址是復(fù)用的。MT48LC16M16A2P包括4個塊,通過BA0,BA1的組合選擇塊。MT48LC16M16A2P是16位存儲器,

16、因此數(shù)據(jù)線為 DQO-DQ15,還有CS片選,CLK時鐘,CKE時鐘使能,RAS行鎖存,CAS列鎖存,WE寫使能等引腳.圖7表示MT48LC16M16A2P和S3C2410的連接方法,其中BA0, BA1需要連接ADD24和 A DDR25,通過S3C2410的說明可知,因為內(nèi)存總大小是64M因此塊選擇信號必須使用A DDR24和ADDR25。S3C2410內(nèi)部有NAND Flash控制器,支持從NADN Flash啟動.圖7是K9F1208 64M Flash芯片和S3C2410的連接方式.S3C2410采用一組內(nèi)部寄存器來完成NAND Flash的操作. 圖 7 存儲器連接電路3.3.6串

17、口電路S3C2410的DART提供了二個同步串行IO日,圖8是COMO的連接方式。串口數(shù)據(jù)的收發(fā)有查詢方式、中斷方式和DMA方式等,這些可以在UCONO寄存器中設(shè)置。UTXH0把要發(fā)送的數(shù)據(jù)寫入此寄存器。URXH0讀此寄存器獲得串日接收的數(shù)據(jù)。串日一般可以用程序運行信息的輸出和程序調(diào)試。 圖 8 串口連接電路3.4 軟件設(shè)計在本系統(tǒng)中,指紋圖像識別部分的算法主要通過S3C2410芯片來完成。 當(dāng)S3C2410的OM0,OM1引腳接低電平時S3C2410就從NADN Flash啟動.在NAND Flash啟動模式下上電后NAND Flash控制器自動將NAND Flash的最前面的4k區(qū)域拷貝到

18、所謂的 steppingstone單面.這一過程完全由硬件自動實現(xiàn). steppingstone”實際上是S3C2410內(nèi)部的一個SRA M,因為NADN Flash不支持程序片內(nèi)運行,因此必須把NAND Flash內(nèi)的指令拷貝到SRAM或SDRAM中才可以運行.在拷貝完前4k代碼后,NAND Flash控制器自動將“steppingstone”映射到arm地址空間0x00000000開始的前4k區(qū)域.在映射過程完成后NAND Flash控制器將pc指針直接指向arm地址空間的0x00000000位置,準(zhǔn)備開始執(zhí)行“steppingstone”上的代碼。而“steppingstone”上從NA

19、ND Flash拷貝過來的4k代碼,是程序員寫的boot loader的前4k代碼。 boot loader之前寫好,并己經(jīng)被燒寫到NAND Flash的。x00000000開始區(qū)域。3.4.1Boot loader 工作原理 Boot loader是引導(dǎo)操作系統(tǒng)的程序,也是開發(fā)階段目標(biāo)板和 PC機(jī)的通信工具。Boot loader一般都放在NAND Flash的起始位置,這樣上電后Bootbader的第一個指令被自動執(zhí)行。由于Boot Loader的實現(xiàn)依賴于CPU的體系結(jié)構(gòu),因此大多數(shù)Boot Loader都分為stage1和stage2兩大部分.依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化

20、代碼等,通常都放在stagel中,而目通常都用匯編語言來實現(xiàn),以達(dá)到短小精悍的目的。而stage2則通常用C語言來實現(xiàn),這樣可以實現(xiàn)復(fù)雜的功能,而目代碼會具有更好的可讀性和可移植性。階段1和階段2的工作流程如圖9。 圖 9 程序流程圖3.4.2第一階段第一階段的卞要工作是硬件設(shè)備初始化,加載Boot Loader的stage2,準(zhǔn)備RAM空;拷貝Boot Loader的stage2到RAM空間中;設(shè)置好堆棧;跳轉(zhuǎn)到stage2的C入日點下面介紹ADS環(huán)境下開始制作簡單Bootloader的方法. 先建立工程命名為myBoot,定義出程序的基本結(jié)構(gòu)如下: AREA mvBoot, CODE, R

21、EADONLY;聲明一個代碼段,名稱為mvBooL ENTRY ;程序入口聲明,程序的開始執(zhí)行位置 _ ENTRY ;入口名稱為_ENTRY ;中間寫主要代碼 END ;程序結(jié)束在myBoot工程的Settings中做一些設(shè)置.首先設(shè)置Target/ Target Settings/post Link 中選擇“ARM fromELF。Linker/Arm Linker/0utput/Link Type選Simple簡單連接方式;RO Base設(shè)置為0x30008000代碼段連接地址。實際上RO BA SE指定了程序的靜態(tài)連接地址。程序真正被執(zhí)行時所在的內(nèi)存地址叫做運行地址。如果連接時用到絕對地

22、址的話運行地址和鏈接地址保持一致時程序才能正常運行,這種代碼叫做與位置有關(guān)代碼。如果連接時沒有涉及到絕對地址那么連接地址和運行地址不一樣程序也可以正常運行,這種代碼叫做位置無關(guān)的代碼.但是Bootloader一開始時被加載在0x00位置開始運行,這會不會和RO Bas。設(shè)置地址沖突呢?實際上是會沖突的,解決沖突的辦法就采用位置無關(guān)代碼( PIC)。實際上Boodloader的絕大部分代4i最后想讓它運行在0x30000800開始的SDRAM單,只有第一階段代碼運行在0x00開始的SRAM單,因此把階段1用位置無關(guān)的匯編代碼實現(xiàn)整個程序就正常運行了。RW Base是數(shù)據(jù)段的開始位置,如果不指定數(shù)

23、據(jù)段,就緊接著代碼段放置。在Options-Image entry point指定代碼的入口_ENT RY。 程序的第一步要設(shè)置中斷向量表。S3C2410有7種中斷,中斷入日地址在0x00開始處,每個中斷占用4個字節(jié),正好可以放一個跳轉(zhuǎn)指令.程序如下: b ResetH andler;復(fù)位中斷,也是整個程序的入口,b指令是根據(jù)當(dāng)前PC進(jìn)行跳轉(zhuǎn),因此可以實現(xiàn)位置無關(guān)代碼引.在ResetH andler中需要做的工作有:關(guān)閉看門狗、關(guān)閉所有中斷、設(shè)置主頻、初始化SDRAM、設(shè)置中斷堆棧,最后搬移代碼到SDRAM中。最后一步跳轉(zhuǎn)到C程序的入口函數(shù)m ain中。3. 4. 3第二階段這階段代碼用C語言編寫,從m ain函數(shù)開始.這個階段的卞要任務(wù)有串日初始化、MMU的初始化、USB初始化、以太網(wǎng)初始化等.Bootloader工作時顯示屏可能還沒有工作,或者日標(biāo)板根本就沒有顯示屏或鍵盤等設(shè)備,因此人機(jī)交勻_一般通過串日來實現(xiàn).因此必須初始化串口,通過串日打印運行信息或者接收用戶輸入.用串日連接到PC上,用專用或通用的串口軟件來接收信息或輸入信

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論