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

下载本文档

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

文档简介

.z---..--总结资料题目基于ARM的串口通信系统的设计系〔院〕信息科学与工程学院专业电子与通信工程班级2012学生*****学号***二〇一三年二月二十八日基于ARM的串口通信系统的设计摘要串口通信是目前单片机和DSP等嵌入式系统之间,以及嵌入式系统与PC机或无线模块之间的一种非常重要且普遍使用的通信方式。在嵌入式系统的硬件构造中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同时还要处理随时发生的各种中断,因而嵌入式系统中的串口通信程序设计与PC机有很大的不同。串行端口的本质功能是作为CPU和串行设备间的编码转换器,一般微机内都配有通信适配器,使计算机能够与其他具有RS232串口的计算机或设备进展通信。本系统中目标机开发板的内核采用的是三星的S3C2410,工作非常可靠,可稳定运行在203MHz的时钟频率下。其外设非常丰富,功能强大,完全可以满足设计需要。串口线采用常用的RS232型接口模式,能实现计算机与开发板间的数据传输与控制。关键词:ARM;串口通信;串行端口;RS232-.zTheDesignOfSerialmunicationSystembasedonARMAbstractSerialmunicationbetweentheSCMandDSPembeddedsystems,aswellasbetweentheembeddedsystemandaPCorwirelessmoduleisaveryimportantandwidelyusedmeansofmunication.Inthehardwarestructureoftheembeddedsystem,thereisusuallyonlyan8-bitor16-bitCPU,whichnotonlypletestheworkofthemainflow,butalsodealswithvariousinterruptsoccuratanytime.ThusembeddedsystemserialmunicationprogramdesignhasabigdifferencefromPC.TheessentialfunctionoftheserialportisencodingconverterbetweentheCPUandserialdevices,andthegeneralmicroputerisequippedwithamunicationadapter,whichenablesaputertomunicatewithtaputerwithRS232serialportorotherequipment.Thedevelopmentboardofthetargetmachine'skernelusesinthissystemistheSamsungS3C2410.Itworksveryreliable,andhasstableoperationinthe203MHzclockfrequency.Itsperipheralsareveryrich,powerful,andcanfullymeetthedesignneeds.SeriallineusesRS232interfacemode,andcanrealizesdatatransferandcontrolbetweentheputerandthedevelopmentboard.Keywords:ARM;Serialmunication;Serialport;RS232目录TOC\o"1-3"\h\u91101设计目的3320672设计要求3217513设计内容4294013.1S3C2410与串口通信概述4288373.1.1S3C2410处理器概述4239593.1.2串口通信5239833.2方案设计232443.3电路设计7134973.3.1电源设计758423.3.2晶振电路7137823.3.3复位电路825763.3.4JTAG接口9138293.3.5存储器设计9171343.3.6串口电路1025083.4软件设计11196013.4.1Bootloader工作原理11239523.4.2第一阶段12943.4.3第二阶段131设计目的以嵌入式芯片S3C2410为核心的最小嵌入式系统构建方法,给出了S3C2410的复位电路、电源电路、存储器电路和串口电路等硬件组成。在ADS环境下自制的最小Boobtloader程序开发并调试。2设计要求串口通信是嵌入式设备必备的通信方式之一,选用ARM芯片和电平转换芯片完成出口通信的设计,并设计完整物理接口。根据设计题目的要求,选择确定ARM芯片型号、电平转换芯片型号,完成系统硬件设计和程序设计。3设计内容3.1S3C2410与串口通信概述3.1.1S3C2410处理器概述S3C2410是Samsung公司基于ARM920T内核的嵌入式微处理器.本文以S3C2410为核心,配置了最根本外围电路构成了最小的嵌入式系统,并在ADS上开发了启动程序,完成硬件初始化,配置运行环境,串日调试功能。Samsung公司推出的16/32位RISC处理器S3C2410A,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。为了降低整个系统的本钱,S3C2410A提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器〔支持STN&TFT〕,支持NANDFlash系统引导,系统管理器〔片选逻辑和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标准宏单元和存储器单元。它的低功耗、精简和出色的全静态设计特别适用于对本钱和功耗敏感的应用。同样它还采用一种叫做AdvancedMicrocontrollerBusArchitecture(AMBA)新型总线构造。S3C2410A的显著特性是它的CPU核心,是一个由AdvancedRISCMachines〔ARM〕**设计的16/32位ARM920TRISC处理器。ARM920T实现了MMU,AMBABUS和Harvard高速缓冲体系构造。这一构造具有独立的16KB指令Cache和16KB数据Cache,每个都是由8字长的行〔line〕构成。通过提供一系列完整的系统外围设备,S3C2410A大大减少了整个系统的本钱,消除了为系统配置额外器件的需要。本文档将介绍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字节T*FIFO,和16字节R*FIFO)/2通道SPI●1通道多主IIC-BUS/1通道IIS-BUS控制器。●兼容SD主接口协议1.0版和MMC卡协议2.11兼容版。●2端口USB主机/1端口USB设备〔1.1版〕●4通道PWM定时器和1通道内部定时器●看门狗定时器●117个通用I/O口和24通道外部中断源。●功耗控制模式:具有普通,慢速,空闲和掉电模式。●8通道10比特ADC和触摸屏接口●具有日历功能的RTC●具有PLL片上时钟发生器3.1.2串口通信串口通信的概念,即串口按位〔bit〕发送和接收字节通信协议是指通信双方按照约定的数据格式、同步方式、传送速度、传送步骤等规程来进展数据传输本次采用异步通信,其特点是通信双方以一个字符(包括特定附加位)作为数据传输单位,且发送方传送字符的间隔时间是不定的。在传输一个字符时总是从起始位开场,以停顿位完毕。如图1所示:图1串行数据帧格式S3C2410的UART提供3个独立的异步串行通信端口,每个端口可以基于中断或者DMA进展操作。换句话说,UART控制器可以在CPU和UART之间产生一个中断或者DMA请求来传输数据。UART在系统时钟下运行可支持高达230.4K的波特率,如果使用外部设备提供的UE*TCLK,UART的速度还可以更高。每个UART通道各含有两个16位的接收和发送FIFO。S3C2410的UART包括可编程的波特率,红外接收/发送,一个或两个停顿位插入,5-8位数据宽度和奇偶校验。每个UART包括一个波特率发生器、一个发送器、一个接收器和一个控制单元,如图11-1所示。波特率发生器的输入可以是PCLK或者UE*TCLK。发送器和接收器包含16位的FIFO和移位存放器,数据被送入FIFO,然后被复制到发送移位存放器准备发送,然后数据按位从发送数据引脚T*Dn输出。同时,接收数据从接收数据引脚R*Dn按位移入接收移位存放器,并复制到FIFO。特性R*D0,T*D0,R*D1,T*D1,R*D2,和T*D2基于中断或者DMA操作UARTCh0,1,和2具有IrDA1.0&16字节FIFOUARTCh0和1具有nRTS0,nCTS0,nRTS1,和nCTS1支持发生/接收握手3.2方案设计本系统是以嵌入式芯片S3C2410为核心的最小嵌入式系统构建方法,给出了S3C2410的复位电路、调试接口、电源电路、存储器电路和串口电路等硬件组成。 图2通信系统的组成框图3.3电路设计3.3.1电源设计S3C2410工作时内核需要1.8V电压,I/O端口和外设需要3.3V电压.VDDi/VDDiarm引脚口是供S3C2410内核的1.8V电压;VDDalive引脚是功能复位和端口状态存放器电压.M12引脚RTCVDD是RTC模块的1.8V电压,用电池供电保证系统的掉电后保持实时时钟.VDDOP引脚是I/O端口3.3V电压;VDDMOP引脚是存储器I/O端口电压;还有一系列VSS引脚需要接到电源地上.3.3V电压从SV用AMS1117-3.3转换得到如图3所示;1.8V从3.3V通过MIC5207-1.8转换得到。如图3所示。图3电源电路3.3.2晶振电路S3C2410内部有时钟管理模块,有2个锁相环,其中MPLL能够产生CPU卞频FCLK,AHB总线外设时钟HCLK和APB总线外设时钟PCLK;UPLL产生USB模块的时钟。OM3,OM2都接地时,主时钟源和USB模块时钟源都由外接晶振产生。在*TIpll和*TOpll之间连接主晶振,可以选择12MHz品振,通过内部存放器的设置产生不同频率的FOLK,HCLK和PCLK;在*TIrtc和*TOrtc上需要接32.768kHz的晶振供RTC模块使用.同时在MPLLCAP和UPLLCAP上也要外接5pF的环路滤波电容。晶振电路如图4所示。图4晶振电路3.3.3复位电路S3C2410的J12引脚为nRESET复位引脚,nRESET上给4个FOLK时间的低电平后就可以复位.可以设计如图5所小的复位电路,其中上电复位是靠RC电路特性完成,开关二极管1N4148在手动复位时对电容起快速放电的作用,因此可以把复位电平快速拉到OV。反响门74HC14可以起到延时作用,保证有足够的复位时间。图5复位电路3.3.4JTAG接口S3C2410有标准的JTAG接口,TCI(H6)为测试时钟输入;TDI(J1)为测试数据输入;TDO(JS)为测试数据输出;TMS(J3)为测试模式选择,TMS用来设置JTAG接日处于*种特定的测试式;nTRST(H5)为测试复位,输入引脚,低电平有效。其nTRST,TMS,TCK,TDI需要接10K的上拉电阻。通过,JTAG日可以完成芯片测试或在线编程。3.3.5存储器设计S3C2410有32根数据线和27根地址线,因此地址线的寻址*围为128M;但是S3C2410还有8根存储器芯片片选信号线nGCSO--nGCS7,因此总的寻址空间为128M*8=1G。NandFlash启动模式下复位时S3C2410的存储器映射如图6所示。如当物理地址O*08000000-0*10000000内的地址则nGCSl自动为低电平,以此类推。通过图6可知SDRAM只能连接在nGCS6和nGCS7片选引脚上。S3C2410提供了SDRAM的接口,其中包括nSRAS:行信号锁存;nSCAS:列信号锁存;nSCS(就是nGCS6):片选信号;图6DQM[3:0]:数据屏蔽;SCLI[1:0];时钟;SCKE:时钟有效;nBE[3:0]:高/低字节有效;nWBE[3:0]:写有效。MT48LC16M16A2P是4块16位32M的SDRAM存储器。MT48LC16M16A2P的行地址13位为A0--A12,列地址9位为CAO-CA8,行和列地址是复用的。MT48LC16M16A2P包括4个块,通过BA0,BA1的组合选择块。MT48LC16M16A2P是16位存储器,因此数据线为DQO--DQ15,还有CS片选,CLK时钟,CKE时钟使能,RAS行锁存,CAS列锁存,WE写使能等引脚.图7表示MT48LC16M16A2P和S3C2410的连接方法,其中BA0,BA1需要连接ADD24和ADDR25,通过S3C2410的说明可知,因为内存总大小是64M因此块选择信号必须使用ADDR24和ADDR25。S3C2410内部有NANDFlash控制器,支持从NADNFlash启动.图7是K9F120864MFlash芯片和S3C2410的连接方式.S3C2410采用一组内部存放器来完成NANDFlash的操作.图7存储器连接电路3.3.6串口电路S3C2410的DART提供了二个同步串行IO日,图8是O的连接方式。串口数据的收发有查询方式、中断方式和DMA方式等,这些可以在UCONO存放器中设置。UT*H0把要发送的数据写入此存放器。UR*H0读此存放器获得串日接收的数据。串日一般可以用程序运行信息的输出和程序调试。图8串口连接电路3.4软件设计在本系统中,指纹图像识别局部的算法主要通过S3C2410芯片来完成。当S3C2410的OM0,OM1引脚接低电平时S3C2410就从NADNFlash启动.在NANDFlash启动模式下上电后NANDFlash控制器自动将NANDFlash的最前面的4k区域拷贝到所谓的"steppingstone"单面.这一过程完全由硬件自动实现."steppingstone〞实际上是S3C2410内部的一个SRAM,因为NADNFlash不支持程序片内运行,因此必须把NANDFlash内的指令拷贝到SRAM或SDRAM中才可以运行.在拷贝完前4k代码后,NANDFlash控制器自动将“steppingstone〞映射到arm地址空间0*00000000开场的前4k区域.在映射过程完成后NANDFlash控制器将pc指针直接指向arm地址空间的0*00000000位置,准备开场执行“steppingstone〞上的代码。而“steppingstone〞上从NANDFlash拷贝过来的4k代码,是程序员写的bootloader的前4k代码。bootloader之前写好,并己经被烧写到NANDFlash的。*00000000开场区域。3.4.1Bootloader工作原理Bootloader是引导操作系统的程序,也是开发阶段目标板和PC机的通信工具。Bootloader一般都放在NANDFlash的起始位置,这样上电后Bootbader的第一个指令被自动执行。由于BootLoader的实现依赖于CPU的体系构造,因此大多数BootLoader都分为stage1和stage2两大局部.依赖于CPU体系构造的代码,比方设备初始化代码等,通常都放在stagel中,而目通常都用汇编语言来实现,以到达短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现复杂的功能,而目代码会具有更好的可读性和可移植性。阶段1和阶段2的工作流程如图9。图9程序流程图3.4.2第一阶段第一阶段的卞要工作是硬件设备初始化,加载BootLoader的stage2,准备RAM空;拷贝BootLoader的stage2到RAM空间中;设置好堆栈;跳转到stage2的C入日点下面介绍ADS环境下开场制作简单Bootloader的方法.先建立工程命名为myBoot,定义出程序的根本构造如下:AREAmvBoot,CODE,READONLY;声明一个代码段,名称为mvBooLENTRY;程序入口声明,程序的开场执行位置__ENTRY;入口名称为_ENTRY…………;中间写主要代码END;程序完毕在myBoot工程的Settings中做一些设置.首先设置Target/TargetSettings/postLink中选择“ARMfromELF"。Linker/ArmLinker/0utput/LinkType选Simple简单连接方式;ROBase设置为0*30008000代码段连接地址。实际上ROBASE指定了程序的静态连接地址。程序真正被执行时所在的内存地址叫做运行地址。如果连接时用到绝对地址的话运行地址和地址保持一致时程序才能正常运行,这种代码叫做与位置有关代码。如果连接时没有涉及到绝对地址则连接地址和运行地址不一样程序也可以正常运行,这种代码叫做位置无关的代码.但是Bootloader一开场时被加载在0*00位置开场运行,这会不会和ROBas。设置地址冲突呢?实际上是会冲突的,解决冲突的方法就采用位置无关代码(PIC)。实际上Boodloader的绝大局部代4i最后想让它运行在0*30000800开场的SDRA

温馨提示

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

评论

0/150

提交评论