基于ARM的串口通信系统的课程设计说明书_第1页
基于ARM的串口通信系统的课程设计说明书_第2页
基于ARM的串口通信系统的课程设计说明书_第3页
基于ARM的串口通信系统的课程设计说明书_第4页
基于ARM的串口通信系统的课程设计说明书_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课 程 设 计 说 明 书题 目: 基于arm的串口通信系统的设计课 程: 嵌入式系统及应用课程设计院 (部): 信息与电气工程学院专 业: 电子信息工程班 级: 电信082学生姓名: 学 号: 2008081265指导教师: 完成日期: 2011年7月目 录摘要ii1 设计目的12 设计要求13 设计内容23.1 s3c2410与串口通信概述23.1.1s2c2410处理器概述23.1.2 串口通信 33.2方案设计 43.3电路设计 4 3.3.1 电源设计 4 3.3.2晶振电路 5 3.3.3复位电路 6 3.3.5存储器设计 6 3.3.4 jtag接口 6 3.3.6串口电路 7

2、3.4软件设计8 3.4.1 boot loader 工作原理8 3.4.2第一阶段9 3.4.1第二阶段10总结与致谢11参考文献12附录13摘 要串口通信是目前单片机和 dsp 等嵌入式系统之间,以及嵌入式系统与 pc 机或无线模块之间的一种非常重要且普遍使用的通信方式。在嵌入式系统的硬件结构中,通常只有一个8位或 16位的 cpu, 不仅要完成主流程的工作, 同时还要处理随时发生的各种中断, 因而嵌入式系统中的串口通信程序设计与 pc 机有很大的不同。串行端口的本质功能是作为 cpu 和串行设备间的编码转换器,一般微机内都配有通信适配器,使计算机能够与其他具有rs 232 串口的计算机或

3、设备进行通信。本系统中目标机开发板的内核采用的是三星的 s3c2410 ,工作非常可靠,可稳定运行在 203 mhz 的时钟频率下。其外设非常丰富,功能强大,完全可以满足设计需要。串口线采用常用的 rs 232 型接口模式,能实现计算机与开发板间的数据传输与控制。关键词:arm;串口通信;串行端口;rs 232 设计目的以嵌入式芯片s3c2410为核心的最小嵌入式系统构建方法,给出了s3c2410的复位电路、电源电路、存储器电路和串口电路等硬件组成。在ads环境下自制的最小boobt loader程序开发并调试。2 设计要求串口通信是嵌入式设备必备的通信方式之一,选用arm芯片和电平转换芯片完

4、成出口通信的设计,并设计完整物理接口。根据设计题目的要求,选择确定arm芯片型号、电平转换芯片型号,完成系统硬件设计和程序设计。3 设计内容3.1 s3c2410与串口通信概述3.1.1s3c2410处理器概述s3c2410是samsung公司基于a rm 920t内核的嵌入式微处理器.本文以s3c2410为核心,配置了最基本外围电路构成了最小的嵌入式系统,并在ads上开发了启动程序,完成硬件初始化,配置运行环境,串日调试功能。samsung 公司推出的16/32位risc处理器s3c2410a,为手持设备和一般类型应用提 供了低价格、低功耗、高性能小型微控制器的解决方案。为了降低整个系统的成

5、本, s3c2410a提供了以下丰富的内部设备:分开的16kb的指令cache和16kb数据cache, mmu虚拟存储器管理,lcd控制器(支持stn&tft),支持nand flash系统引导,系统 管理器(片选逻辑和sdram控制器),3通道uart,4通道dma,4通道pwm定时器,i/o 端口,rtc,8通道10位adc和触摸屏接口,iic-bus接口,iic-bus接口,usb主机,usb 设备,sd主卡&mmc卡接口,2通道的spi以及内部pll时钟倍频器。 s3c2410a采用了arm920t内核,0.18um工艺的cmos标准宏单元和存储器单元。 它的低功耗、精简和出色的全静

6、态设计特别适用于对成本和功耗敏感的应用。同样它还采用 一种叫做advanced microcontroller bus architecture(amba)新型总线结构。 s3c2410a的显著特性是它的cpu核心,是一个由advanced risc machines(arm) 有限公司设计的16/32位arm920t risc处理器。arm920t实现了mmu,amba bus和 harvard高速缓冲体系结构。这一结构具有独立的16kb指令cache和16kb数据cache,每 个都是由8字长的行(line)构成。 通过提供一系列完整的系统外围设备,s3c2410a大大减少了整个系统的成本

7、,消除了 为系统配置额外器件的需要。本文档将介绍s3c2410a中集成的以下片上功能: 1.8v/2.0v内核供电,3.3v存储器供电,3.3v外部i/o供电; 具备16kb的i-cache和16kb的d-cache/mmu; 外部存储控制器(sdram 控制和片选逻辑) lcd 控制器(大支持 4k 色 stn 和 256k 色 tft)提供 1 通道 lcd 专用 dma。4 通道 dma 并有外部请求引脚。3 通道 uart(irda1.0,16 字节 tx fifo,和 16 字节 rx fifo)/2 通道 spiz1 通道多主 iic-bus/1 通道 iis-bus 控制器。z

8、兼容 sd 主接口协议 1.0 版和 mmc 卡协议 2.11 兼容版。z2 端口 usb 主机/1 端口 usb 设备(1.1 版)z4 通道 pwm 定时器和 1 通道内部定时器z 看门狗定时器 z 117 个通用 i/o 口和 24 通道外部中断源。 z 功耗控制模式:具有普通,慢速,空闲和掉电模式。 z 8 通道 10 比特 adc 和触摸屏接口 z 具有日历功能的 rtc z 具有 pll 片上时钟发生器3.1.1串口通信串口通信的概念,即串口按位(bit)发送和接收字节 通信协议是指通信双方按照约定的数据格式、同步方式、传送速度、传送步骤等规程来进行数据传输 本次采用异步通信 ,其

9、特点是通信双方以一个字符(包括特定附加位)作为数据传输单位,且发送方传送字符的间隔时间是不定的。在传输一个字符时总是从起始位开始,以停止位结束。如图1所示: 图1 串行数据帧格式s3c2410的uart提供3个独立的异步串行通信端口,每个端口可以基于中断或者dma进行操作。换句话说,uart控制器可以在cpu和uart之间产生一个中断或者dma请求来传输数据。uart在系统时钟下运行可支持高达230.4k的波特率,如果使用外部设备提供的uextclk,uart的速度还可以更高。每个uart通道各含有两个16位的接收和发送fifo。s3c2410的uart包括可编程的波特率,红外 接收/发送,一

10、个或两个停止位插入,5-8位数据宽度和奇偶校验。每个uart包括一个波特率发生器、一个发送器、一个接收器和一个控制单元,如图11-1所示。波特率发生器的输入可以是pclk或者uextclk。发送器和接收器包含16位的fifo和移位寄存器,数据被送入fifo,然后被复制到发送移位寄存器准备发送,然后数据按位从发送数据引脚txdn输出。同时,接收数据从接收数据引脚rxdn按位移入接收移位寄存器,并复制到fifo。特性 rxd0, txd0, rxd1, txd1, rxd2, 和txd2基于中断或者dma操作 uart ch 0, 1, 和 2 具有 irda 1.0 & 16 字节 fifo u

11、art ch 0 和 1 具有 nrts0, ncts0, nrts1, 和 ncts1 支持发生/接收握手3.2 方案设计 图2 通信系统的组成框图本系统是以嵌入式芯片s3c2410为核心的最小嵌入式系统构建方法,给出了s3c2410的复位电路、调试接口、电源电路、存储器电路和串口电路等硬件组成。3.3 电路设计3.3.1 电源设计s3c2410工作时内核需要1. 8 v电压,i/ o端口和外设需要3. 3 v电压. vddi/vddiarm引脚口是供s3c2410内核的1. 8 v电压;vddalive引脚是功能复位和端口状态寄存器电压. m12引脚rtcvdd是rt c模块的1. 8 v

12、电压,用电池供电保证系统的掉电后保持实时时钟.vddop引脚是i/ o端口3. 3v电压;v ddm op引脚是存储器i/ o端口电压;还有一系列vss引脚需要接到电源地上.3. 3 v电压从sv用a m s 1117- 3. 3转换得到如图3所示;1.8v从3. 3 v通过mic5207-1. 8转换得到。如图3所示。 图 3 电源电路3.3.2晶振电路s3c2410内部有时钟管理模块,有2个锁相环,其中m pll能够产生cpu卞频fclk,ahb总线外设时钟hclk和apb总线外设时钟pclk; upll产生usb模块的时钟。om3,om2都接地时,主时钟源和u sb模块时钟源都由外接晶振

13、产生。在xtipll和xtopll之间连接主晶振,可以选择12 mhz品振,通过内部寄存器的设置产生不同频率的folk, h clk和pclk;在xt irtc和xtortc上需要接32.768 khz的晶振供rtc模块使用.同时在mpllcap和upllcap上也要外接5pf的环路滤波电容。晶振电路如图4所示。 图 4 晶振电路3.3.3 复位电路s3c2410的j12引脚为nreset复位引脚,nreset上给4个folk时间的低电平后就可以复位.可以设计如图5所小的复位电路,其中上电复位是靠rc电路特性完成,开关二极管1n4148在手动复位时对电容起快速放电的作用,因此可以把复位电平快速

14、拉到ov。反响门74h c 14可以起到延时作用,保证有足够的复位时间。 图5 复位电路3.3.4 jtag接口 s3c2410有标准的jtag接口,tci(h6)为测试时钟输入;tdi(j1)为测试数据输入;tdo(js)为测试数据输出;tms(j3)为测试模式选择,tms用来设置jta g接日处于某种特定的测试式;ntrst ( h 5)为测试复位,输入引脚,低电平有效。其ntrst,tms,tck,tdi需要接10k的上拉电阻。通过,jtag日可以完成芯片测试或在线编程。3.3.5 存储器设计s3c2410有32根数据线和27根地址线,因此地址线的寻址范围为128 m;但是s3c2410

15、还有8根存储器芯片片选信号线ngcso- ngcs7,因此总的寻址空间为128m * 8= 1g。nand flash启动模式下复位时s3c2410的存储器映射如图6所示。如当访问物理地址ox08000000- 0x10000000内的地址则ngcsl自动为低电平,以此类推。通过图6可知sdram只能连接在ngcs6和ngcs7片选引脚上。s3c2410提供了sdram的接口,其中包括nsras:行信号锁存;nscas:列信号锁存;nscs(就是ngcs 6 ):片选信号; 图 6dqm3:0:数据屏蔽 ; scli 1: 0;时钟;scke:时钟有效;nbe 3: 0:高/低字节有效;nwb

16、e 3:0:写有效。mt48lc16m16a2p是4块16位32m的sdram存储器。mt48lc16m16a2p的行地址13位为a 0-a 12,列地址9位为cao- ca8,行和列地址是复用的。mt48lc16m16a2p包括4个块,通过ba0,ba1的组合选择块。mt48lc16m16a2p是16位存储器,因此数据线为 dqo-dq15,还有cs片选,clk时钟,cke时钟使能,ras行锁存,cas列锁存,we写使能等引脚.图7表示mt48lc16m16a2p和s3c2410的连接方法,其中ba0, ba1需要连接add24和 a ddr25,通过s3c2410的说明可知,因为内存总大小

17、是64m因此块选择信号必须使用a ddr24和addr25。s3c2410内部有nand flash控制器,支持从nadn flash启动.图7是k9f1208 64m flash芯片和s3c2410的连接方式.s3c2410采用一组内部寄存器来完成nand flash的操作. 图 7 存储器连接电路3.3.6串口电路s3c2410的dart提供了二个同步串行io日,图8是como的连接方式。串口数据的收发有查询方式、中断方式和dma方式等,这些可以在ucono寄存器中设置。utxh0把要发送的数据写入此寄存器。urxh0读此寄存器获得串日接收的数据。串日一般可以用程序运行信息的输出和程序调试

18、。 图 8 串口连接电路3.4 软件设计在本系统中,指纹图像识别部分的算法主要通过s3c2410芯片来完成。 当s3c2410的om0,om1引脚接低电平时s3c2410就从nadn flash启动.在nand flash启动模式下上电后nand flash控制器自动将nand flash的最前面的4k区域拷贝到所谓的 steppingstone单面.这一过程完全由硬件自动实现. steppingstone”实际上是s3c2410内部的一个sra m,因为nadn flash不支持程序片内运行,因此必须把nand flash内的指令拷贝到sram或sdram中才可以运行.在拷贝完前4k代码后,

19、nand flash控制器自动将“steppingstone”映射到arm地址空间0x00000000开始的前4k区域.在映射过程完成后nand flash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行“steppingstone”上的代码。而“steppingstone”上从nand flash拷贝过来的4k代码,是程序员写的boot loader的前4k代码。 boot loader之前写好,并己经被烧写到nand flash的。x00000000开始区域。3.4.1boot loader 工作原理 boot loader是引导操作系统的程序,也是开发阶段目

20、标板和 pc机的通信工具。boot loader一般都放在nand flash的起始位置,这样上电后bootbader的第一个指令被自动执行。由于boot loader的实现依赖于cpu的体系结构,因此大多数boot loader都分为stage1和stage2两大部分.依赖于cpu体系结构的代码,比如设备初始化代码等,通常都放在stagel中,而目通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用c语言来实现,这样可以实现复杂的功能,而目代码会具有更好的可读性和可移植性。阶段1和阶段2的工作流程如图9。 图 9 程序流程图3.4.2第一阶段第一阶段的卞要工作是硬件设备初始化

21、,加载boot loader的stage2,准备ram空;拷贝boot loader的stage2到ram空间中;设置好堆栈;跳转到stage2的c入日点下面介绍ads环境下开始制作简单bootloader的方法. 先建立工程命名为myboot,定义出程序的基本结构如下: area mvboot, code, readonly;声明一个代码段,名称为mvbool entry ;程序入口声明,程序的开始执行位置 _ entry ;入口名称为_entry ;中间写主要代码 end ;程序结束在myboot工程的settings中做一些设置.首先设置target/ target settings/p

22、ost link 中选择“arm fromelf。linker/arm linker/0utput/link type选simple简单连接方式;ro base设置为0x30008000代码段连接地址。实际上ro ba se指定了程序的静态连接地址。程序真正被执行时所在的内存地址叫做运行地址。如果连接时用到绝对地址的话运行地址和链接地址保持一致时程序才能正常运行,这种代码叫做与位置有关代码。如果连接时没有涉及到绝对地址那么连接地址和运行地址不一样程序也可以正常运行,这种代码叫做位置无关的代码.但是bootloader一开始时被加载在0x00位置开始运行,这会不会和ro bas。设置地址冲突呢?

23、实际上是会冲突的,解决冲突的办法就采用位置无关代码( pic)。实际上boodloader的绝大部分代4i最后想让它运行在0x30000800开始的sdram单,只有第一阶段代码运行在0x00开始的sram单,因此把阶段1用位置无关的汇编代码实现整个程序就正常运行了。rw base是数据段的开始位置,如果不指定数据段,就紧接着代码段放置。在options-image entry point指定代码的入口_ent ry。 程序的第一步要设置中断向量表。s3c2410有7种中断,中断入日地址在0x00开始处,每个中断占用4个字节,正好可以放一个跳转指令.程序如下: b reseth andler;

24、复位中断,也是整个程序的入口,b指令是根据当前pc进行跳转,因此可以实现位置无关代码引.在reseth andler中需要做的工作有:关闭看门狗、关闭所有中断、设置主频、初始化sdram、设置中断堆栈,最后搬移代码到sdram中。最后一步跳转到c程序的入口函数m ain中。3. 4. 3第二阶段这阶段代码用c语言编写,从m ain函数开始.这个阶段的卞要任务有串日初始化、mmu的初始化、usb初始化、以太网初始化等.bootloader工作时显示屏可能还没有工作,或者日标板根本就没有显示屏或键盘等设备,因此人机交匀_一般通过串日来实现.因此必须初始化串口,通过串日打印运行信息或者接收用户输入.用串日连接到pc上,用专用或通用的串口软件来接收信息或输入信息。总结与致谢本次设计设计的系统具有成本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论