基于ARM的串行通信系统设计.docx
- 文档编号:16257541
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:27
- 大小:655.13KB
基于ARM的串行通信系统设计.docx
《基于ARM的串行通信系统设计.docx》由会员分享,可在线阅读,更多相关《基于ARM的串行通信系统设计.docx(27页珍藏版)》请在冰点文库上搜索。
基于ARM的串行通信系统设计
目录
1引言(或绪论).....................................................................................................................................1
2系统的主要功能.....................................................................................................................................1
3硬件电路设计及描述.............................................................................................................................2
3.1S3C2410与串口通信概述..................................................................................................................2
3.1.1S3C2410处理器概述......................................................................................................................2
3.2方案设计...........................................................................................................................................6
3.3电路设计.........................................................................................................................................7
3.3.1电源设计...................................................................................................................................7
3.3.2晶振电路....................................................................................................................................8
3.3.3复位电路.................................................................................................................................8
3.3.4JTAG接口............................................................................................................................9
3.3.5存储器设计.............................................................................................................................9
3.3.6串口电路..................................................................................................................................11
4软件设计流程及描述...........................................................................................................................12
5实验步骤...............................................................................................................................................14
6源程序代码...........................................................................................................................................15
7课程设计体会.......................................................................................................................................36
8参考文献...............................................................................................................................................36
一引言(或绪论)
本课题以嵌入式系统设计原理和实际应用为核心,从理论上和技术方法上开展了一系列研究。
主要工作有:
1、全面系统地概述了嵌入式系统的发展过程和分类,及其在各个领域内的应用,以及嵌入式系统的发展方向;
2、基于嵌入式系统设计原理的嵌入式开发平台的设计的总体方案,从硬件和软件两个方面讲述了嵌入式系统的设计思想和方法,及其可行性的论证;
3、嵌入式系统硬件平台的设计与调试,着重叙述了硬件平台的整体设计方案,包括模块的选型与接口电路的设计;
总之,本文完成了嵌入式系统的硬件平台构架、实时嵌入式操作系统的移植,为今后嵌入式系统的后继开发提供了一个嵌入式平台。
基于嵌入式系统设计原理的嵌入式开发平台的设计的总体方案,从硬件和软件两个方面讲述了嵌入式系统的设计思想和方法,及其可行性的论证。
嵌入式系统硬件平台的设计与调试,着重叙述了硬件平台的整体设计方案,包括各个设计模块的选型与接口电路的设计。
随着世界科技水平的发展,嵌入式系统以其小型、专用、易携带、可靠性高的特点,已经在各个领域得到了广泛的应用,如军事国防、消费电子、通信设备、工业控制等。
随着嵌入式系统软硬件技术的飞速发展,其应用领域必将更为广阔,嵌入式系统的研究将会有非常广泛的前景。
本课题既可以使电子专业学生对ARM920T的嵌入式串口通信系统的实际应用有深入的了解,更重要的是培养了学生的软硬件动手能力,是对学生所学专业知识、理论、技能和培养学生独立完成基本科研任务能力的一个综合检验,具有一定的效果和意义。
二系统的主要功能
2.1串行数据的输入和输出、显示、存储;
2.2显示当前时间日期、输入和输出数据的显示和存储、串行传输;
2.3参数设置:
传输字符长度、存储位置;
2.4菜单功能:
如开始、结束、暂停、设置环境参数等;
2.5文件操作:
读文件、写文件等
1
实验周说明书
三硬件电路设计及描述
3.1S3C2410与串口通信概述
3.1.1S3C2410处理器概述
ARM微处理器结构
1)RISC体系结构
RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。
到目前为止,RISC体系结构也还没有严格的定义,一般认为,RISC体系结构应具采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率等特点。
2)ARM微处理器的寄存器结构
ARM处理器共有37个寄存器,被分为若干个组(BANK),同时,ARM处理器又有7种不同的处理器模式,如下表2~2在每一种处理器模式下均有一组相应的寄存器与之对应。
表1ARM处理器的7种处理器模式
3)ARM微处理器的指令结构
ARM微处理器的在较新的体系结构中支持两种指令集:
ARM指令集和Thumb指令集。
其中,ARM指令为32位的长度,Thumb指令为16位长度。
Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所
2
实验周说明书
有优点。
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)构成。
3.1.2串口通信
串口通信的概念,即串口按位(bit)发送和接收字节
通信协议是指通信双方按照约定的数据格式、同步方式、传送速度、传送步骤等规程来进行数据传输
本次采用异步通信,其特点是通信双方以一个字符(包括特定附加位)作为数据传输单位,且发送方传送字符的间隔时间是不定的。
在传输一个字符时总是从起始位开始,以停止位结束。
如图1所示:
3
实验周说明书
图1.1串行数据帧格式
S3C2410的UART提供3个独立的异步串行通信端口,每个端口可以基于中断或者DMA进行操作。
换句话说,UART控制器可以在CPU和UART之间产生一个中断或者DMA请求来传输数据。
UART在系统时钟下运行可支持高达230.4K的波特率,如果使用外部设备提供的UEXTCLK,UART的速度还可以更高。
每个UART通道各含有两个16位的接收和发送FIFO。
S3C2410的UART包括可编程的波特率,红外接收/发送,一个或两个停止位插入,5-8位数据宽度和奇偶校验。
每个UART包括一个波特率发生器、一个发送器、一个接收器和一个控制单元,如图11-1所示。
波特率发生器的输入可以是PCLK或者UEXTCLK。
发送器和接收器包含16位的FIFO和移位寄存器,数据被送入FIFO,然后被复制到发送移位寄存器准备发送,然后数据按位从发送数据引脚TxDn输出。
同时,接收数据从接收数据引脚RxDn按位移入接收移位寄存器,并复制到FIFO。
特性
—RxD0,TxD0,RxD1,TxD1,RxD2,和TxD2基于中断或者DMA操作
—UARTCh0,1,和2具有IrDA1.0&16字节FIFO
—UARTCh0和1具有nRTS0,nCTS0,nRTS1,和nCTS1
—支持发生/接收握手
2.串行接口的物理层标准
4
实验周说明书
1)EIARS232C
它在一种25针插件(DB-25)上定义了串行通信的有关信号。
在实际异步串行通信中,并不要求用全部的RS-232C信号,许多PC/XT兼容机仅用15针接插件(DB-15)来引出其异步串行I/O信号,而PC中更是大量采用9针接插件(DB-9)来担当此任。
图1.3DB-25和DB-9引脚定义
表2引脚说明
2)信号电平规定
RS-232C规定了双极性的信号逻辑电平,它是一套负逻辑定义:
-3V到-25V之间的电平表示逻辑“1”。
+3V到+25V之间的电平表示逻辑“0”。
以上标准称为EIA电平。
PC/XT系列使用的信号电平是-12V和+12V,符合EIA标准,但在计算机内部流动的信号都是TTL电平,因此这中间需要用电平转换电路。
常用专门的RS-232接口芯片,如SP3232、SP3220等,在TTL电平和EIA电平之间实现相互转换。
PC/XT系列以这种方式进行串行通信时,在波特率
5
实验周说明书
不高于9600bps的情况下,理论上通信线的长度限制为15米。
3.S3C2410串行口控制器
S3C2410自带3个异步串行口控制器,每个控制器有16字节的FIFO(先入先出寄存器),最大波特率115.2Kbps。
每个UART有7种状态:
溢出错误,校验错误,帧错误,暂停态,接收缓冲区准备好,发送缓冲区空,发送移位缓冲器空,这些状态可以由相应的UTRSTATn或UERSTATn寄存器表示,并且与发送接收缓冲区相对应的有错误缓冲区。
串行接口:
波特率
的大小由
一个专用
的UART波
特率分频
寄存器
(UBRDIV
n)控制,
计算公式
如下:
UBRDIVn=(int)[MCLK/(bps×16)]-1
其中:
MCLK是系统时钟,UBRDIVn的值必须在1~(216-1)之间.例如:
在40MHz的情况下,当波特率取115200时,
UBRDIVn=(int)[40000000/(115200×16)]-1
=(int)(21.7)-1=21-1=20
3.2方案设计
本系统是以嵌入式芯片S3C2410为核心的最小嵌入式系统构建方法,给出了S3C2410的复位电路、调试接口、电源电路、存储器电路和串口电路等硬件组成。
6
实验周说明书
图1.5通信系统的组成框图
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转换;1.8V从3.3V通过MIC5207-1.8转换得到。
7
实验周说明书
图1.6电源电路
3.3.2晶振电路
S3C2410内部有时钟管理模块,有2个锁相环,其中MPLL能够产生CPU卞频FCLK,AHB总线外设时钟HCLK和APB总线外设时钟PCLK;UPLL产生USB模块的时钟。
OM3,OM2都接地时,主时钟源和USB模块时钟源都由外接晶振产生。
在XTIpll和XTOpll之间连接主晶振,可以选择12MHz品振,通过内部寄存器的设置产生不同频率的FOLK,HCLK和PCLK;在XTIrtc和XTOrtc上需要接32.768kHz的晶振供RTC模块使用.同时在MPLLCAP和UPLLCAP上也要外接5pF的环路滤波电容
。
图1.7晶振电路
8
实验周说明书
3.3.3复位电路
S3C2410的J12引脚为nRESET复位引脚,nRESET上给4个FOLK时间的低电平后就可以复位.可以设计如图5所小的复位电路,其中上电复位是靠RC电路特性完成,开关二极管1N4148在手动复位时对电容起快速放电的作用,因此可以把复位电平快速拉到OV。
反响门74HC14可以起到延时作用,保证有足够的复位时间。
图1.8复位电路
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
9
实验周说明书
还有8根存储器芯片片选信号线nGCSO--nGCS7,因此总的寻址空间为128M*8=1G。
NandFlash启动模式下复位时S3C2410的存储器映射。
如当访问物理地址Ox08000000-0x10000000内的地址则nGCSl自动为低电平,以此类推。
可知SDRAM只能连接在nGCS6和nGCS7片选引脚上。
S3C2410提供了SDRAM的接口,其中包括nSRAS:
行信号锁存;nSCAS:
列信号锁存;nSCS(就是nGCS6):
片选信号;
表3
DQM[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写使能等引脚.MT48LC16M16A2P和S3C2410的连接方法,其中BA0,BA1需要连接ADD24和ADDR25,通过S3C2410的说明可知,因为内存总大小是64M因此块选择信号必须使用ADDR24和ADDR25。
S3C2410内部有NANDFlash控制器,支持从NADNFlash启动.K9F120864MFlash芯片和S3C2410的连接方式.S3C2410采用一组内部寄存器来完成NANDFlash的操作.
10
实验周说明书
图1.9存储器连接电路
3.3.6串口电路
S3C2410的DART提供了二个同步串行IO日,COMO的连接方式。
串口数据的收发有查询方式、中断方式和DMA方式等,这些可以在UCONO寄存器中设置。
UTXH0把要发送的数据写入此寄存器。
URXH0读此寄存器获得串日接收的数据。
串日一般可以用程序运行信息的输出和程序调试。
图1.10串口连接电路
11
实验周说明书
四软件设计流程及描述
串口在嵌入式系统中是一个重要的资源,常用来做输入输出设备,在后续的实验中也将使用串口的功能。
串口的基本操作有三个:
串口初始化、发送数据和接收数据,这些操作都是通过访问上节中描述的串口控制寄存器进行,下面将分别说明:
1)串口初始化程序
MMU_Init();//初始化内存管理单元
//设置系统时钟
ChangeClockDivider(1,1);//1:
2:
4
ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHz
Port_Init();//初始化I/O口
Uart_Init(0,115200);//初始化串口
Uart_Select(0);//选择串口0
2)发送数据
while(!
(rUTRSTAT0&0x2));//等待发送缓冲空
rUTXH0=data;//将数据写到数据端口
3)接收数据
while(rUTRSTAT0&0x1==0x0);//等待数据
data=rURXH0;//读取数据
(三)设计步骤
1.硬件连接;
2.新建工程UART.mcp,编辑并添加以下三类文件:
1).s文件:
2410init.s,2410slib.s;
2).h文件:
def.h,option.h,2410addr.h,2410lib.h,2410slib.h,mmu.h;
3).c(C)文件:
2410lib.c,Main.C,mmu.c;
************************************************************************文件说明:
2410init.s—初始化cpu、内存等状态,完成后跳转到C语言入口;
2410swis.s—软中断处理相关;
2410slib.s—库中内存管理等函数的调用;
def.h—宏定义;
option.h—定义时钟、地址、总线宽度等;
2410addr.h—寄存器地址状态定义;
12
实验周说明书
2410lib.h,2410lib.c—(C语言)前者声明函数库变量,后者定义库中常用函数(如串口函数);
2410slib.h,2410slib.s—(汇编语言)前者声明函数库变量,后者定义库中常用函数(如内存管理等);
mmu.h,mmu.c—内存管理单元的声明和函数定义;
test.c,Main.c,*.c—定义系统运行方式(*.c表示以工程名命名的c文件以及其他可能用到的c文件);
************************************************************************
3.修改工程设置,如图1.11、1.12所示:
图1.11
13
实验周说明书
图1.12
4.编译UART;
5.运行超级终端,选择正确的串口号,并将串口设置为:
波特率(115200)
6.运行程序,在超级终端中输入的数据将回显到超级终端上。
五实验步骤
1.本实验使用实验教学系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 串行 通信 系统 设计