2012微机原理及接口技术课件-CH10_第1页
2012微机原理及接口技术课件-CH10_第2页
2012微机原理及接口技术课件-CH10_第3页
2012微机原理及接口技术课件-CH10_第4页
2012微机原理及接口技术课件-CH10_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、第十章 基于ARM的硬件系统设计1、 ARM嵌入式系统的开发过程(裸机系统、OS)2、ARM微处理器最小硬件系统电源、时钟、复位、存储器、调试接口3、人机交互接口键盘与LED接口、LCD显示接口、触摸屏接口4、通信接口串行通信接口、其他通信接口JTAG/USB/网络线目标机宿主机在嵌入式开发过程中有宿主机和目标机的角色之分 宿主机是开发嵌入式软件的计算机 目标机是运行嵌入式软件的硬件平台ARM选型确定开发模式建议ARM初学者先学裸机系统的开发需求(功能)分析明确性能参数、外设接口、开发复杂性总体方案设计(硬、软件)基于ARM的硬件电路设计(最小系统【第10章】 + 功能电路)软件设计【第11章

2、】(裸机模式、OS模式)编写程序(集成开发环境ADS、RVDS、MDK等等)编译、调试(软件仿真,或J-link硬件仿真器,或编写调试代码)下载通过USB直接下载(Flash内自带烧录程序)或利用FlashPGM、H-JTAG等烧写工具将可执行映像烧写至Flash存储器脱离开发环境,上电运行!裸机系统的开发建立交叉编译环境(arm-linux-gcc)操作系统裁剪(内核配置和编译)编写程序( linux开发环境下,启动程序、驱动、用户程序)编译、调试下载脱离开发环境,上电运行!基于OS的开发嵌入式开发流程多通道高精度数据采集系统设计功能要求: 采集被测设备数据,并显示处理结果。指标要求: 通道

3、数:8 路(由键盘选择当前采集通道); 信号幅度范围:-15V+15V; A/D 分辨率:16Bit; 满量程精度:0.1%; 最高采样速率:100KSa/s。 通信接口:RS232接口及10Mbps以太网, 实现与上位机通信。设计要求最小系统(CPU板)AD采集模块LCD显示模块通信模块键盘、LED模块被测对象ARM 芯片选型原则性能参数的考虑ARM核版本工作频率内部存储器容量电源控制DSP协处理器功耗外设接口的考虑USB接口RTCGPIO数量其他因素芯片封装的选择芯片的封装有很多种类型,如:DIP、QFP、PGA、BGA等在散热性能、信号完整性特性、体积大小等方面的要求三星公司的 S3C2

4、440A 芯片采用 ARM920T 内核:内核运行速度最高达533MHz,满足系统需要;LCD 控制器(支持可达到 4K 色的 STN 和 256K 色的 TFT),并配有一个 LCD 专用 DMA;S3C2440A芯片参考资料非常丰富,开发难度小;同时 S3C2440A价格合适(原装正品30-45RMB)。 综合考虑上述因素,本数据采集装置选用 S3C2440A为主控 CPU。一些主流的ARM9处理器芯片如:飞思卡尔:MC9328MX27三星:S3C2440A Atmel公司:AT91SAM9263 意法半导体:STR91x 恩智浦半导体:LPC2000 系列硬件设计方案核心板的设计(CPU

5、板的设计)自行设计开发(价格便宜,设计灵活) ARM微处理器 + 存储器模块 + 电源模块 + 时钟模块 + 复位模块 + JTAG调试接口模块。【最小系统 】购买成品(开发板)功能电路设计AD采集模块LCD显示模块网络模块最小系统(CPU板)AD采集模块LCD显示模块通信模块键盘、LED模块核心板(CPU板)的设计 最小系统的设计最小系统设计内容对应课本P311-P317最小系统的设计ARM微处理器;存储器模块,包括程序保存存储器(FLASH)和程序运行存储器(SDRAM);电源模块,包括CPU内核和I/O接口电源电源;时钟模块,包括系统主时钟和实时时钟;复位模块,包括外部复位和内部复位;J

6、TAG调试接口模块。 最小系统(最小硬件系统)通常是指以嵌入式处理器为核心,包含电源、时钟和复位等保障处理器正常工作的基本硬件电路 。S3C2440A最小硬件系统:存储器模块存储器模块为系统程序的保存和运行提供空间,在系统设计中主要根据处理器的存储器接口选择合适的存储器芯片(存储类型、容量、速度和接口类型 )ARM最小系统中的存储器通常包括存放程序的NOR Flash、NAND Flash和用于程序运行的SDRAM。存储器模块通常挂接在ARM芯片的局部总线上(外部三总线)。使用16位存储芯片构造32位宽存储器系统12S3C2440A最小硬件系统:电源模块 电源模块是系统工作的能量来源,其电压、

7、纹波、内阻和驱动能力等性能直接影响到系统工作的稳定性,因此电源模块在系统设计中至关重要。电源电压一定要在系统需求的范围之内电源的驱动能力一定要能满足整个系统的功率需求电源纹波和电路干扰的处理在设计PCB时需要对模拟电源和数字电源进行物理上的隔离13IO端口供电电源3.3V(输入端大于4.75V)内核供电电源1.2V接至VDDOP(IO端口电源)引脚接至VDDi等引脚(内部模块核心逻辑电源)接至VDDA_ADC(ADC电源)引脚S3C2440A最小硬件系统:时钟模块 时钟模块为系统提供同步工作信号,其稳定性直接关系到系统的工作稳定性。 在ARM嵌入式系统中通常包括频率较高的系统主时钟16.934

8、4MHz和频率较低的实时时钟32.768KHz。时钟经内部锁相环后得到四组时钟信号:FCLK:ARM920T内核HCLK:AHB总线、存储器控制器、中断控制器、LCD控制器、DMA控制器和USB主机模块PCLK:访问APB总线的外设,如WDT,I2S,I2C,PWM定时器,MMC接口,ADC,UART,GPIO等模块UCLK:USB模块需要的48 MHz时钟S3C2440A最小硬件系统:复位模块系统外部复位和内部复位一般来说系统对外部复位信号波形有一定的要求(低电平至少持续4个FCLK),若不能满足要求(例如持续时间过短),则系统将不能正常工作。 低电平复位芯片 复位后内核执行的操作:1、PC

9、R14_svc,CPSR-SPSR_svc2、M4:0=10011,I,F置位,T清零3、PC=0 x000000004、恢复ARM工作状态S3C2440A最小硬件系统:调试接口 ARM微处理器一般都采用JTAG作为基本调试接口nTRST(测试复位信号),TMS(测试模式选择),TCK(测试时钟),TDI(测试数据输入)和TDO(测试数据输出) JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。 标准的JTAG接口是4线:

10、TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 功能电路的设计(AD模块、LCD显示、通信模块)LCD显示模块(人机交互接口)、通信模块设计内容对应课本P318-P333功能电路的设计AD模块多通道共享多通道并行本方案采用多通道共享方式,其 ADC 数据采集装置有如下两种常见方案:方案1:ARM 直接控制 AD 采样方案2:由单独的 ADC 控制逻辑控制 AD 采样,同时利用 FIFO 缓存采样数据。第一种方案:ARM 需要控制 AD 的整个采样过程,包括 AD 启动、通道切换、并使用中断方式读取转换结果,如果 AD 工作在连续转换模式下,会导致 ARM 频繁进入

11、中断,增大 ARM 负担,造成系统效率低下,降低系统可靠性。第二种方案:采用独立的 ADC 控制器控制 AD 采样,同时将采样结果使用 FIFO 缓存,当数据累积到一定量时再通知 ARM 进行中断处理。这种方案虽然增加了独立的 ADC 控制器和 FIFO 缓存,但是可以明显降低 ARM 负担,显著提高系统效率和可靠性。 本方案采用 FPGA 实现ADC 控制器和 FIFO功能,具体作用是地址译码、AD 时序控制、通道切换和数据缓冲。本模块选用的 AD 转换器 AD976 最高采样率 100KSa/s,满足系统采样速度要求;积分非线性最大为 3LSB=0.0000460.1%,满足系统精度要求。

12、考虑到成本及适用性等因素,可选用 Altera公司推出的 Cyclonen 系列芯片中 EP1C3T100FPGA 内部逻辑主要包括以下几个部分:1. 地址译码逻辑:这部分逻辑主要产生 ARM 访问 FPGA 内部逻辑各个寄存器的地址,2. 模拟开关切换时钟和 AD 采样控制时钟产生逻辑:这部分逻辑主要产生模拟开关的切换时钟 和 AD 转换器的转换信号。3. 模拟开关通道选通逻辑:用于当 SWITCH_CLK 有效时,将模拟开关切换到下一个预设通道。4. FIFO 缓冲逻辑:这部分逻辑主要实现 AD 采样数据的缓冲和 ARM对缓冲数据的读取.功能电路的设计人机交互接口 人机交互接口主要用于人与

13、设备之间的信息交换,通常包括用于信息输入的键盘、触摸屏,以及信息输出的各类显示设备。 以S3C2440A的相关接口为例介绍各类接口硬件结构与使用:键盘与LED接口LCD显示接口键盘与LED接口按键和LED是最常用的两种输入输出器件,使用它们可以实现简单的信号输入和输出,在嵌入式系统中有重要用途。这类简单外设与处理器进行连接时,通常有两种方式:一是使用处理器的GPIO直接控制,由处理器运行相应软件来实现所需功能;二是使用专用的控制芯片来获取按键信息以及驱动显示。GPIO(General Purpose Input)可以实现任何一般用途的信号输入/输出。ARM处理器芯片的大部分引脚都可以通过设定相

14、应的控制寄存器实现基本的GPIO功能,并可编程设置信号方向、电平上拉/下拉等功能。在S3C2440A中共有130个多功能I/O引脚,这些引脚除了可以作为某个特殊功能使用外,均可以配置成GPIO模式,并分为以下八组:Port A(GPA):25个输出端口Port B(GPB):11个输入/输出端口Port C(GPC):16个输入/输出端口Port D(GPD):16个输入/输出端口Port E(GPE):16个输入/输出端口Port F(GPF):8个输入/输出端口Port G(GPG):16个输入/输出端口Port H(GPH):9个输入/输出端口Port J(GPJ):13个输入/输出端口

15、GPIO 例10.1:使用S3C2440A的端口G的第47引脚驱动四个LED,并点亮GPG4引脚的LED。GPIO控制键盘或LED的内容必须掌握!每组GPIO端口均有各自的寄存器组,主要包括端口配置寄存器(GPxCON)、端口数据寄存器(GPxDAT)、端口上拉寄存器(GPxUP)。寄存器名地址读写属性功能复位值GPGCON0 x56000060可读可写配置引脚功能为输入/输出/其他0 x0000 0000GPGDAT0 x56000064可读可写G端口数据寄存器未定义GPGUP0 x56000068可读可写上拉配置寄存器低电平0有效0 xFC00G端口共有16个GPIO引脚,寄存器GPGCO

16、N宽度为32位,每个引脚的功能各由2位来选择控制,第47引脚的控制位如下:端口GGPGCON寄存器位功能选择GPG715:14 00=输入 01=输出10=EINT15 11=保留GPG613:12 00=输入 01=输出10=EINT14 11=保留GPG511:10 00=输入 01=输出10=EINT13 11=保留GPG49:8 00=输入 01=输出10=EINT12 11=保留寄存器GPGDAT和GPGUP宽度均为16位,各引脚按其编号与相应的寄存器位对应。GPGDAT中存放的即为需要输出的数据,根据硬件电路连接图可知,要将第4引脚LED点亮,则对应的引脚应输出低电平,所以寄存器G

17、PGDAT中的7:4位应设置为二进制值1110。本例中端口为输出功能,因此寄存器GPGUP中对应各位均设置为1,将上拉电阻断开。GPGCONEQU0 x56000060GPGDATEQU0 x56000064GPUPEQU0 x56000068;配置GPGCON寄存器,设置相关引脚为输出功能LDRR0, =GPGCON LDRR1, R0 BICR1, R1, #0 x0000FF00 ORRR1, R1, #0 x00005500 STRR1, R0;配置GPGUP寄存器,断开各上拉电阻LDRR0, =GPGUPLDRR1, R0ORRR1, R1, #0 x00F0STRR1, R0;输出

18、驱动数据,点亮GPG4引脚对应的LEDLDRR2, =GPGDATLDRR3, R2ORRR3, R3, #0 x00F0BICR3, R3, #0 x0010STRR3, R2在嵌入式系统中常用的LCD产品主要有两种:一种是带有驱动电路的LCD显示模块;另一种则仅是LCD显示屏,没有驱动电路,需要与驱动电路配合使用。在常见的ARM处理器芯片中,通常都带有LCD控制器,可以直接驱动多种LCD显示屏。S3C2440A中的LCD控制器模块,可以直接与STN或TFT等多种不同分辨率的单色/彩色LCD连接,具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD 驱动电路的逻辑功能,驱动其完

19、成各类数据的显示。LCD显示接口功能电路的设计通信接口 通信接口通常用于嵌入式设备与其他设备进行信息交换,由于各类设备性能指标差异巨大,要实现信息的传递需要进行速率、电平、时序、信息格式等多方面的转换和匹配,所以该类接口种类十分丰富。串行通信接口网络通信其他通信接口接口初始化:ULCON、UCON、UFCON、UMCON、UBRDIV数据传递:UTRSTAT、UFSTAT、UTXH、URXH接收错误状况:UERSTATS3C2440A中UART0的相关寄存器寄存器名 地址(大端存储) 地址(小端存储) 位宽 读写 功能例10.2:UART0采用查询方式进行数据通信,要求使用8位数据位,1位停止

20、位,奇校验,传输速率115200bps,不使用FIFO,关闭流控制,处理器外设时钟PCLK=66.68MHz。步骤1:接口初始化设置帧格式、时钟来源、收发模式、中断配置、FIFO的使用、波特率计算等步骤2:数据传递:可选择使用查询方式或中断方式传递UART0的内容必须掌握!主要用于帧格式配置ULCON0=0 x23步骤1:UART0的初始化配置ULCON0线路控制寄存器(配置数据帧格式)课本P329(中文手册P235有详细说明)应设置:UCON0=0 x0005步骤1:UART0的初始化配置UCON0控制寄存器(时钟来源、收发模式、中断配置等)主要用于使能FIFO及相关参数配置UFCON0=0

21、 x00步骤1:UART0的初始化配置UFCON0 FIFO控制寄存器主要用于设置与Modem相关参数UFCON0=0 x00步骤1:UART0的初始化配置UMCON0调制解调器控制寄存器步骤1:UART0的初始化配置UBRDIV0波特率控制寄存器UBRDIV= int (UART时钟频率/(波特率16) ) 1采用66.68MHz的PCLK作为时钟源,为得到115200bps的速率,则:UBRDIV= int (66.68M/(11520016) ) 1 =int(36.176) 1=35实际波特率=UART时钟频率/(UBRDIV+1)16) =66.68M/(35+1) 16)11576

22、4bps实际的工作速率与理论值之间存在偏差:(115764 115200)/115200100% = +0.49%初始化程序段ULCON0EQU0 x50000000UCON0EQU0 x50000004UFCON0EQU0 x50000008UMCON0EQU0 x5000000CUBRDIV0EQU0 x50000028LDRR2, =ULCON0;配置ULCON0寄存器MOVR3, #0 x23STRBR3, R2LDRR2, =UCON0;配置UCON0寄存器MOVR3, #0 x05STRHR3, R2LDRR2, =UFCON0;配置UFCON0寄存器MOVR3, #0 x00ST

23、RR3, R2LDRR2, =UMCON0 ;配置UMCON0寄存器MOVR3, #0 x00STRR3, R2LDRR2, =UBRDIV0;配置UBRDIV0寄存器MOVR3, #35STRHR3, R2步骤2:使用UART0进行数据收发使用UTRSTAT0、UTXH0、URXH0进行状态的判断并完成通信收/发示例程序段UTRSTAT0EQU0 x50000010UTXH0EQU0 x50000020;小端存储下对应的地址URXH0EQU0 x50000024;假设系统采用小端存储TLOOPLDRR0, =UTRSTAT0LDRR1, R0 ;读取UART0收发状态寄存器的值 TSTR1,

24、 #0 x02;判断发送缓冲区是否空闲BEQTLOOP;不空闲则继续查询LDRR0, =UTXH0STRBR2, R0;若空闲,则将R2寄存器中字节;传递至发送缓冲区,完成一字节;数据发送RLOOPLDRR0, =UTRSTAT0 LDRR1, R0 ;读取UART0收发状态寄存器的值TSTR1, #0 x01;判断接收缓冲区是否有数据BEQRLOOP;若没有数据则继续查询LDRR0, =URXH0LDRBR2, R0;若有数据则将数据收回至R2寄;存器完成一字节数据接收利用UART0进行RS232接口电路设计网络接口电路设计 本系统的以太网控制电路由以太网芯片、网络隔离变压器和RJ45 接口组成,选用的以太网芯片为DM9000,将 MAC 控制器和物理层接口集成到芯片内部,实现了网络的物理层和 MAC 层协议。它能提供10/100Mbps

温馨提示

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

最新文档

评论

0/150

提交评论