




已阅读5页,还剩186页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/6/6,国防科技大学计算机学院601室,1,主要内容,6.1引言6.2中断控制器6.3DMA控制器6.4GPIO接口6.5定时/计数器6.6UART接口6.7JTAG接口补充内容,2020/6/6,国防科技大学计算机学院601室,2,本讲简要说明,目的与要求掌握I/O接口电路的数据传送方式;熟悉I/O接口电路的基本组成、编址方式;了解DMA周期挪用方式、交替访问方式授课重点程序中断方式授课难点DMA数据传送方式阅读章节:第6.1节作业:无,2020/6/6,国防科技大学计算机学院601室,3,6.1引言,1、I/O接口电路的基本组成2、I/O接口电路的编址方式3、I/O接口电路的数据传送方式,2020/6/6,国防科技大学计算机学院601室,4,6.1引言(续),外设一般不能与CPU直接相连,必须经过中间电路再与系统相连,这些中间电路被称为I/O接口电路,简称I/O接口,2020/6/6,国防科技大学计算机学院601室,5,1、I/O接口电路的基本组成,数据缓冲功能接受和执行CPU命令的功能信号电平转换的功能数据格式变换功能串行与并行的转换8位与16位、32位数据格式的转换设备选择功能中断管理功能,2020/6/6,国防科技大学计算机学院601室,6,1、I/O接口电路的基本组成(续),2020/6/6,国防科技大学计算机学院601室,7,1、I/O接口电路的基本组成(续),数据寄存器寄存需要传输的数据数据输入、数据输出数据寄存器可以有一个或数个不等控制寄存器存放I/O设备、I/O接口电路的控制信息状态寄存器存放I/O设备、I/O接口电路的状态,2020/6/6,国防科技大学计算机学院601室,8,1、I/O接口电路的基本组成(续),I/O控制逻辑部件地址译码,决定是否被片选控制信息,如读、写等等在DMA方式时,需要将数据传送的地址发送给地址总线,以便指定数据在主存的缓存区外设接口逻辑一个I/O控制器可以带多个同类的外部设备显卡:DVI、VGA、S端子声卡:Linein/out、Speakout、Microphonein,2020/6/6,国防科技大学计算机学院601室,9,2、I/O接口电路的编址方式,I/O端口CPU(程序员)能看到的是数据寄存器、状态寄存器和控制寄存器I/O接口电路中能被CPU直接访问的寄存器或某些特定的器件称为I/O端口每一个端口都有一个地址一个端口地址可能对应几个内部(物理)寄存器与存储器不同,2020/6/6,国防科技大学计算机学院601室,10,2、I/O接口电路的编址方式(续),统一编址(存储器映像方式)从存储器空间中划出一部分空间留给I/O端口基于ARM的处理器都是采用统一编址方式特点:编址简单,访问指令类型多,占用存储空间。独立编址端口地址与存储器的编址完全分开Intel的X86CPU就采用这种编址方法特点:有专门I/O端口的指令,不占用存储器空间,指令类型少,只能进行简单操作,2020/6/6,国防科技大学计算机学院601室,11,2、I/O接口电路的编址方式(续),/UART寄存器定义#defineULCON0(*(volatileunsignedlong*)0 x01D00000)#defineUCON0(*(volatileunsignedlong*)0 x01D00004)#defineUFCON0(*(volatileunsignedlong*)0 x01D00008)#defineUMCON0(*(volatileunsignedlong*)0 x01D0000C)#defineUTRSTAT0(*(volatileunsignedlong*)0 x01D00010)#defineUERSTAT0(*(volatileunsignedlong*)0 x01D00014)#defineUFSTAT0(*(volatileunsignedlong*)0 x01D00018)#defineUMSTAT0(*(volatileunsignedlong*)0 x01D0001C)#defineUTXH0(*(volatileunsignedlong*)0 x01D00020)#defineURXH0(*(volatileunsignedlong*)0 x01D00024)#defineUBRDIV0(*(volatileunsignedlong*)0 x01D00028),2020/6/6,国防科技大学计算机学院601室,12,2、I/O接口电路的编址方式(续),关键字volatile阻止编译器优化一个定义为volatile的变量是说这变量可能会被意想不到地改变精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份volatile变量使用的几种情况并行设备的硬件寄存器(如:状态寄存器)中断服务子程序中会访问到的非自动变量多线程应用中被几个任务共享的变量,2020/6/6,国防科技大学计算机学院601室,13,2、I/O接口电路的编址方式(续),举例volatileconstunsignedchareventI2C;声明只读的无符号字符变量eventI2Cconst:本程序不应该试图去修改它volatile:可能被外界(硬件、其他进程)改变求平方函数intsquare(volatileint*ptr)return(*ptr)*(*ptr);,2020/6/6,国防科技大学计算机学院601室,14,3、I/O接口电路的数据传送方式,I/O的数据传送方式程序查询、程序中断、直接内存访问(DMA)、I/O通道、I/O处理机方式发展趋势:I/O的自治性逐渐增强数据传送方式比较程序查询方式工作可靠,适用面宽,但传送效率低,适应于字符传送,速度比较低,占用CPU资源程序中断方式CPU工作效率高,传送灵活,CPU可为多个外设提供更多的服务,但不适宜批量数据传送DMA方式适应于成批数据的传送,用于高速设备,但其启动、传送、结束都需要CPU进行控制处理,2020/6/6,国防科技大学计算机学院601室,15,程序查询方式,工作原理CPU运行I/O程序循环对I/O接口的状态寄存器进行查询,看是否准备就绪,是则处理这个输入或输出,否则循环等待或查询其他设备基本特点何时对何设备进行输入或输出操作完全受CPU控制外设与CPU是异步工作关系,CPU本身的工作与外设的输入输出工作不能同步进行数据的输入和输出都要经过CPU(寄存器)用于连接低速外设,2020/6/6,国防科技大学计算机学院601室,16,程序查询方式读数据,2020/6/6,国防科技大学计算机学院601室,17,程序查询方式(续),2020/6/6,国防科技大学计算机学院601室,18,程序中断方式,工作原理外设主动向CPU发出服务请求CPU每执行完一条指令后都要测试是否有外设的中断服务请求,如果有,则暂停当前正在执行的程序,先去为外设服务,等服务完成后再继续执行原来的程序基本特点CPU与外设能够并行工作能够处理例外事件,例接收数据准备就绪、发送缓冲区空等数据的输入和输出都要经过CPU(寄存器)用于连接低速外设,2020/6/6,国防科技大学计算机学院601室,19,程序中断方式读数据,2020/6/6,国防科技大学计算机学院601室,20,程序中断方式(续),2020/6/6,国防科技大学计算机学院601室,21,直接内存访问(DMA)方式,DMA方式的特点内存可以被CPU访问,也可以被DMA控制器访问DMAC为主设备外设与内存之间传送数据不需要执行程序,也不用CPU资源,外设与内存之间的整个数据交换过程全部在DMA控制器控制下完成前后处理在DMA方式开始之前CPU要对DMA控制器进行初始化;在DMA方式结束之后,要向CPU申请中断,对内存缓冲区进行后处理,2020/6/6,国防科技大学计算机学院601室,22,直接内存访问(DMA)方式(续),数据块传送方式在I/O接口电路中设置一个比较大的数据缓冲区I/O接口电路与内存之间的数据交换以数据块为单位DMA控制器与CPU通过总线仲裁器争用总线的使用权常用方式,2020/6/6,国防科技大学计算机学院601室,23,直接内存访问(DMA)方式(续),周期挪用方式当I/O接口没有DMA请求时,CPU按程序要求访问内存当I/O接口有DMA请求,则I/O接口挪用一个或几个周期缺点是在数据输入或输出过程中实际上占用了CPU时间交替访存方式CPU与DMA控制器交替访问内存,不需要总线使用权的申请、建立和归还过程这种方式效率很高,但实现起来有困难,基本上不用,2020/6/6,国防科技大学计算机学院601室,24,2020/6/6,国防科技大学计算机学院601室,25,本讲简要说明,目的与要求掌握S3C44B0 x的中断源、向量表、寄存器;熟悉DMAC的寄存器、中断控制器的基本情况;了解DMAC的基本情况授课重点S3C44B0 x的中断源、向量表、寄存器授课难点中断向量表入口地址阅读章节:第6.2、6.3节作业:无,2020/6/6,国防科技大学计算机学院601室,26,6.2中断控制器,6.2.1概述6.2.2S3C44B0 x的中断控制器,2020/6/6,国防科技大学计算机学院601室,27,6.2.1概述,中断过程CPU在程序运行中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务子程序;服务结束后,又返回原来的断点,继续执行原来的程序中断过程实现:中断子系统+中断服务子程序中断控制器计算机中负责CPU外部事件处理的中断子系统中断控制器的基本功能有:中断源的识别、中断源的屏蔽、中断优先级处理等,2020/6/6,国防科技大学计算机学院601室,28,6.2.1概述(续),2020/6/6,国防科技大学计算机学院601室,29,6.2.2S3C44B0 x的中断控制器,1、中断源2、中断向量表3、中断控制器的寄存器,2020/6/6,国防科技大学计算机学院601室,30,1、中断源,S3C44B0 x中断控制器的中断源有30个中断请求线只有26个其中外部中断4、5、6、7共用一根中断请求线UART0、UART1接收错误共用一根中断请求线中断源查询,2020/6/6,国防科技大学计算机学院601室,31,2020/6/6,国防科技大学计算机学院601室,32,2020/6/6,国防科技大学计算机学院601室,33,2、中断向量表,S3C44B0 x采用硬件决定中断优先级的方式在多个中断源同时申请中断时,由硬件优先级逻辑确定哪个中断应该得到响应中断向量表地址位于:0 x000000200 x000000C3处放一条跳转指令,跳到中相应中断源的中断服务程序入口地址处也可采用软件查询方式,但延迟比较大注意只有IRQ(普通中断请求)支持中断向量表FIQ(快速中断请求)不支持中断向量表,2020/6/6,国防科技大学计算机学院601室,34,2020/6/6,国防科技大学计算机学院601室,35,2020/6/6,国防科技大学计算机学院601室,36,ENTRY;以下为ARM的异常向量表bResetHandler;0 x00bHandlerUndef;0 x04bHandlerSWI;0 x08bHandlerPabort;0 x0cbHandlerDabort;0 x10b.;0 x14bHandlerIRQ;0 x18bHandlerFIQ;0 x1c,;以下为S3C44b0 x的中断向量表ldrpc,=HandlerEINT0;0 x20ldrpc,=HandlerEINT1ldrpc,=HandlerEINT2ldrpc,=HandlerEINT3ldrpc,=HandlerEINT4567ldrpc,=HandlerTICK;0 x34,2020/6/6,国防科技大学计算机学院601室,37,3、中断控制器的寄存器,作用通过读取和设置这些寄存器来对中断进行控制和响应一共有11个寄存器,2020/6/6,国防科技大学计算机学院601室,38,2020/6/6,国防科技大学计算机学院601室,39,中断控制寄存器INTCON,2020/6/6,国防科技大学计算机学院601室,40,中断请求寄存器INTPND,2020/6/6,国防科技大学计算机学院601室,41,中断模式寄存器INTMOD,2020/6/6,国防科技大学计算机学院601室,42,中断屏蔽寄存器INTMSK,2020/6/6,国防科技大学计算机学院601室,43,IRQ中断服务请求寄存器I_ISPR,2020/6/6,国防科技大学计算机学院601室,44,中断服务清除寄存器I_ISPC/F_ISPC,2020/6/6,国防科技大学计算机学院601室,45,6.3DMA控制器,6.3.1概述6.3.2S3C44B0 x的DMA控制器,2020/6/6,国防科技大学计算机学院601室,46,6.3.1概述,DMA(DirectMemoryAccess)一种快速传送数据的机制不需要CPU的参与(主设备)数据传递从I/O接口到内存从内存到I/O接口从一段内存到另一段内存从I/O接口到I/O接口,2020/6/6,国防科技大学计算机学院601室,47,DMA控制器与从设备的关系,2020/6/6,国防科技大学计算机学院601室,48,DMA、CPU及总线之间的关系,2020/6/6,国防科技大学计算机学院601室,49,6.3.2S3C44B0 x的DMA控制器,ZDMA控制器两个DMA通道称作ZDMA(通用DMA),连接在SSB总线(三星系统总线)上用于从存储器到存储器、从存储器到I/O接口以及从I/O接口到存储器之间进行数据传输BDMA控制器两个DMA通道称作BDMA(桥接DMA)连接于SSB总线和SPB总线(三星外围接口总线)之间的接口层用于从存储器到I/O接口或者I/O接口到存储器或者I/O接口到I/O接口之间进行传输数据I/O接口有:SIO、Timer、IIS和UART,2020/6/6,国防科技大学计算机学院601室,50,BDMA结构框图,2020/6/6,国防科技大学计算机学院601室,51,BDMA寄存器,2020/6/6,国防科技大学计算机学院601室,52,BDMA控制寄存器,2020/6/6,国防科技大学计算机学院601室,53,BDMA初始/当前源地址寄存器,2020/6/6,国防科技大学计算机学院601室,54,BDMA初始/当前目标地址寄存器,2020/6/6,国防科技大学计算机学院601室,55,BDMA初始/当前计数寄存器,2020/6/6,国防科技大学计算机学院601室,56,本讲简要说明,目的与要求掌握S3C44B0 x的GPIO外接键盘和LED设计;熟悉GPIO接口的基本构成,S3C44B0 x的GPIO寄存器授课重点S3C44B0 x的GPIO外接键盘和LED设计授课难点键盘去抖动、LED限流阅读章节:第6.4节作业:无,2020/6/6,国防科技大学计算机学院601室,57,6.4GPIO接口,6.4.1概述6.4.2S3C44B0 x的GPIO接口6.4.3GPIO应用,2020/6/6,国防科技大学计算机学院601室,58,6.4.1概述,通用I/O接口(GPIO,GeneralPurposeI/O)可编程的输入、输出或者双向通信功能嵌入式处理器基本上都包含有GPIO接口,只是GPIO端口的数量不同为了减少引脚数量,降低芯片成本,大多数嵌入式处理器的GPIO端口与其它功能端口复用引脚GPIO接口都包含有控制寄存器,用来配置GPIO端口的功能输入、输出或者其它功能,2020/6/6,国防科技大学计算机学院601室,59,6.4.1概述(续),输出部分作为通用I/O方式用来输出数据处于第二功能用来输出其他信号数据、地址、定时器溢出信号、外部总线应答、外部DMA应答等输入部分作为通用I/O方式用来输入数据处于第二功能用来输入其他信号数据、外部计数信号、外部总线请求、外部DMA请求、外部中断等,2020/6/6,国防科技大学计算机学院601室,60,2020/6/6,国防科技大学计算机学院601室,61,6.4.2S3C44B0 x的GPIO接口,S3C44B0X有71个具有复合功能的I/O口引脚,分成7个端口端口A(PA)为10位I/O口端口B(PB)为11位I/O口端口C(PC)为16位I/O口端口D(PD)和G(PG)都为8位I/O口端口E(PE)和F(PF)都为9位I/O口,2020/6/6,国防科技大学计算机学院601室,62,6.4.2S3C44B0 x的GPIO接口(续),多功能端口在主程序开始前,必须定义每个I/O口的功能通用I/O功能、特殊功能端口控制寄存器PCONAPCONG配置引脚功能:输入、输出和第二功能、第三功能上拉配置端口PC、PD、PE、PF、PG内部上拉电阻配置寄存器(PUPCPUPG)引脚是否内部配置上拉电阻,2020/6/6,国防科技大学计算机学院601室,63,S3C44B0 xGPIO的寄存器,2020/6/6,国防科技大学计算机学院601室,64,S3C44B0 xGPIO的寄存器(续),2020/6/6,国防科技大学计算机学院601室,65,配置寄存器PCONA,2020/6/6,国防科技大学计算机学院601室,66,配置寄存器PCONB,2020/6/6,国防科技大学计算机学院601室,67,2020/6/6,国防科技大学计算机学院601室,68,配置寄存器PCOND,2020/6/6,国防科技大学计算机学院601室,69,配置寄存器PCONE,2020/6/6,国防科技大学计算机学院601室,70,6.4.3GPIO应用,1GPIO接口键盘2GPIO接口LED3GPIO接口跑马灯,2020/6/6,国防科技大学计算机学院601室,71,1GPIO接口键盘,2020/6/6,国防科技大学计算机学院601室,72,1GPIO接口键盘(续),抖动机械键盘:抖动时间510ms去抖动方法:硬件、软件双稳态消抖RC滤波消抖软件消抖,2020/6/6,国防科技大学计算机学院601室,73,2GPIO接口LED,接LED,用于测试,PD0PD1PD2PD3,2020/6/6,国防科技大学计算机学院601室,74,2GPIO接口LED(续),发光二极管驱动技术额定压降:1.02.5V额定电流:10mA40mA限流电阻R计算,2020/6/6,国防科技大学计算机学院601室,75,3GPIO接口跑马灯,2020/6/6,国防科技大学计算机学院601室,76,/*Description:PD(07)口中的某一位循环输出低电平*/GPIOPD口寄存器#definePCOND(*(volatileunsignedlong*)0 x1d2001c)#definePDATD(*(volatileunsignedlong*)0 x1d20020)#definePUPD(*(volatileunsignedlong*)0 x1d20024)voidDelay(unsignedint);intmain(void)unsignedcharmLED;PCOND=0 x5555;/将GPIOPD口置为输出模式mLED=0 x80;while(1)PDATD=mLED;/读内存取反输出到端口PDDelay(10);/延时mLED=(mLED1);/右移if(!(mLED)mLED=0 x80;,2020/6/6,国防科技大学计算机学院601室,77,/延时程序voidDelay(unsignedintx)unsignedinti,j,k;for(i=0;i=x;i+)for(j=0;jPDATE=0 xFB;/TurnLEDOn(PE.2)wait(1000);/Wait1000ms,2020/6/6,国防科技大学计算机学院601室,102,/初始化Timer5以及开定时中断voidinit_timer(void)pPWM-TCNTB5=TCNT;/加载Timer5计数初值pPWM-TCON=T5_UPDATE;/手动更新TCNTB5pPWM-TCON=T5_START|/启动定时器5,清除手动更新位T5_AUTOREL;/自动重装pIC-INTMSK/IRQ采用中断向量模式,2020/6/6,国防科技大学计算机学院601室,103,/1ms产生一次定时中断/Timer5InterruptHandler_irqvoidHandlerTIMER5(void)pIC-I_ISPC=INT_TIMER5;/清除中断请求位timeval+;/当前时刻递增/*等待函数,以毫秒为单位*/voidwait(unsignedlongtime)unsignedlongtick;tick=timeval;while(timeval-tick)time);/等待指定的时间,2020/6/6,国防科技大学计算机学院601室,104,本讲简要说明,目的与要求掌握S3C44B0 x的UART内部结构、寄存器;熟悉串口通信的基本原理授课重点S3C44B0 x的UART内部结构、寄存器授课难点无阅读章节:第6.6节作业:补充作业,2020/6/6,国防科技大学计算机学院601室,105,6.6UART接口,6.6.1概述6.6.2工作原理6.6.3S3C44B0 x的UART,2020/6/6,国防科技大学计算机学院601室,106,6.6.1概述,串口通信是计算机之间一种常见的通信手段使用方便,编程简单,成本低廉几乎所有的微控制器都提供串行通信接口UART(UniversalAsynchronousReceiverandTransmitter)通用异步收发器UART属于I/O接口电路连接系统总线和RS232C/RS485的桥梁能够完成串行通信接口的功能,2020/6/6,国防科技大学计算机学院601室,107,系统总线和RS232C/RS485的桥梁,2020/6/6,国防科技大学计算机学院601室,108,2020/6/6,国防科技大学计算机学院601室,109,6.6.2工作原理,协议规定空闲位、停止位都为高电平,起始位为低电平数据发送过程比较简单首先发送起始位,接着发送数据位数据位按照规定的发送波特率先低位后高位逐位移出最后是停止位,2020/6/6,国防科技大学计算机学院601室,110,6.6.2工作原理(续),数据接收过程由于是异步通信,需要高倍频本地采样时钟一般来说,接收方UART采样时钟为接收波特率的16倍当连续采样8次都为低电平时,则确认接收到起始位然后每间隔16个采样时钟(正好处于数据位的中间)接收一次数据位,直到规定的数据位都接收完毕奇偶校验位和停止位接收过程与数据位相同当停止位接收完毕,接收线进入空闲状态,直到新的起始位到来,2020/6/6,国防科技大学计算机学院601室,111,UART的接收原理,2020/6/6,国防科技大学计算机学院601室,112,UART的数据流图,2020/6/6,国防科技大学计算机学院601室,113,6.6.3S3C44B0 x的UART,1、UART内部结构2、UART寄存器3、部件编程4、硬件设计,2020/6/6,国防科技大学计算机学院601室,114,1、UART内部结构,S3C44B0X包含两个独立的UART单元每个UART都可以在中断模式或者DMA模式下工作每个UART都包含一个波特率发生器、发送器、接收器和控制单元波特率发生器以处理器主时钟MCLK作为时钟源,支持的最高波特率为115.2kbps发送缓冲区和接收缓冲区各包含16字节的FIFO和移位寄存器UART可以设置的参数有可编程的波特率、红外收/发模式、5、6、7、8位数据位宽度、1、2位停止位和奇偶校验位,2020/6/6,国防科技大学计算机学院601室,115,2020/6/6,国防科技大学计算机学院601室,116,2、UART寄存器,S3C44B0X包含两个UART通道UART0和UART1每一个UART有11个寄存器描述了两个UART通道的22个寄存器的名称、偏移地址、操作特性、功能描述和复位之后的值,2020/6/6,国防科技大学计算机学院601室,117,2020/6/6,国防科技大学计算机学院601室,118,2020/6/6,国防科技大学计算机学院601室,119,UART线路控制寄存器ULCON0/1,2020/6/6,国防科技大学计算机学院601室,120,UART控制寄存器UCON0/1,2020/6/6,国防科技大学计算机学院601室,121,FIFO控制寄存器UFCON0/1,2020/6/6,国防科技大学计算机学院601室,122,Modem控制寄存器UMCON0/1,2020/6/6,国防科技大学计算机学院601室,123,收发状态寄存器URTSTAT0/1,2020/6/6,国防科技大学计算机学院601室,124,错误状态寄存器UERSTAT0/1,2020/6/6,国防科技大学计算机学院601室,125,FIFO状态寄存器UFSTAT0/1,2020/6/6,国防科技大学计算机学院601室,126,Modem状态寄存器UMSTAT0/1,2020/6/6,国防科技大学计算机学院601室,127,UTXH0/1,URXH0/1,2020/6/6,国防科技大学计算机学院601室,128,波特率除数因子寄存器UBRDIV0/1,2020/6/6,国防科技大学计算机学院601室,129,波特率与波特率除数因子的关系,2020/6/6,国防科技大学计算机学院601室,130,3、部件编程,串口初始化查询通信方式中断通信方式DMA通信方式,2020/6/6,国防科技大学计算机学院601室,131,串口初始化,串口初始化的操作步骤一般步骤第一步:设置波特率除数因子寄存器(UBRDIV0/1)以确定发送/接收波特率第二步:设定通信的数据格式(ULCON0/1),即数据位长度、奇偶校验位、停止位个数第三步:启用FIFO使能,并分别设置发送/接收FIFO触发中断级别第四步:设置MODEM控制(UMCON0/1),是否使用自动流控第五步:设置查询/中断/DMA的使用方式(UCON0/1),是采用查询方式、中断方式还是DMA方式,2020/6/6,国防科技大学计算机学院601室,132,串口初始化(续),voiduart_init(void)/串口初始化UBRDIV0=BRD;/19200bpsULCON0=0 x03;/帧长度8位,停止位1位,无校验UFCON0=0 x21;/启用FIFO,发送FIFO触发级别为空,/接收FIFO触发级别为12字节UCON0=0 x0C5;/接收中断/查询允许,发送中断/允许/允许接收错误中断,允许接收超时中断,2020/6/6,国防科技大学计算机学院601室,133,查询通信方式,查询通信的思想循环读取串口状态,以决定收发发送数据(以UART0为例)发送过程CPU写字符到发送保持寄存器UTXH0,则此时发送保持寄存器非空,因此发送接收状态寄存器UTRSTAT0.b1=0当发送保持寄存器空时(数据发送出去),则UTRSTAT0.b1=1,CPU可以写入新的字符发送程序设计发送时不断检测UTRSTAT0.b1即可,2020/6/6,国防科技大学计算机学院601室,134,查询通信方式(续),接收数据(以UART0为例)接收过程首先,数据串入接收移位寄存器然后,去掉奇偶校验、起始位和停止位最后,数据进入接收保持寄存器URXH0,同时UTRSTAT0.b0=1,若出错,则UERSTAT0(反映错误的原因)相应位会置1接收程序设计接收时先检测UTRSTAT0.b0(是否有数据)然后检测UERSTAT0(是否存在错误),2020/6/6,国防科技大学计算机学院601室,135,#defineMCLK60000000/*MasterClock*/#defineBR19200/*BaudRate*/#defineBRD(int)(MCLK/16.0/BR+0.5)-1)/*BaudRateDivisor*/voiduart_init(void);voiduart_send(char*s);/主程序intmain(void)uart_init();/Uart初始化while(1)/死循环uart_send(CommuncationTestting!rn);,2020/6/6,国防科技大学计算机学院601室,136,voiduart_init(void)/UART初始化UBRDIV0=BRD;/19200bpsULCON0=0 x03;/帧长度8位,停止位1位,无校验UCON0=0 x004;/发送中断/查询允许voiduart_send(char*s)/UART发送子程序while(*s!=0)while(!(UTRSTAT0,2020/6/6,国防科技大学计算机学院601室,137,本讲简要说明,目的与要求掌握UART接口的部件编程;熟悉UART接口的硬件设计;了解JTAG接口授课重点UART接口的部件编程和硬件设计授课难点UART接口的部件编程阅读章节:第6.6、6.7节作业:补充作业,2020/6/6,国防科技大学计算机学院601室,138,中断通信方式,中断初始化设置接收/发送中断允许,一般应设置接收数据就绪、接收错误、发送保持寄存器空三种中断如果启用FIFO,则要设置好接收/发送FIFO触发中断级别以及接收超时中断中断服务子程序出错中断,应查询UERSTAT0/1以获得出错原因接收数据就绪(超时)中断发送中断,2020/6/6,国防科技大学计算机学院601室,139,#defineMCLK60000000/*MasterClock*/#defineBR19200/*BaudRate*/#defineBRD(int)(MCLK/16.0/BR+0.5)-1)/*BaudRateDivisor*/voiduart_init(void);/Uart初始化voidisr_init(void);/中断控制器初始化charrxdata17=CommTestting!n;/不能超过16个+1,/FIFO限制/主程序voidmain()uart_init();/Uart初始化isr_init();/中断控制器初始化while(1)/死循环,等待中断,2020/6/6,国防科技大学计算机学院601室,140,voiduart_init(void)/串口初始化UBRDIV0=BRD;/19200bpsULCON0=0 x03;/帧长度8位,停止位1位,无校验UFCON0=0 x21;/启用FIFO,发送FIFO触发级别为空,/接收FIFO触发级别为12字节UCON0=0 x0C5;/接收中断/查询允许,发送中断允许/允许接收错误中断,允许接收超时中断voidisr_init(void)/中断控制器初始化INTMSK/DisableFIQ,EnableIRQ/IRQVectoredInterruptMode,2020/6/6,国防科技大学计算机学院601室,141,_irqvoidHandlerUERR01(void)/如果UART0接收(超时)中断,则引起接收中断,就会执行下面/HandlerURXD0中断服务子程序,从UART0接收缓冲区读走数据/*UART0RxInterruptHandler(包括超时中断)*/_irqvoidHandlerURXD0(void)intrxcount,k;I_ISPC=(17);/清除UART0RxInterruptrxcount=UFSTAT0/添加字符串结束符_irqvoidHandlerUTXD0(void),2020/6/6,国防科技大学计算机学院601室,142,DMA通信方式,注意设置接收/发送DMA允许,一般应设置接收错误、接收超时两种中断,无需设置发送和接收中断(由DMA完成)接收错误出错处理接收超时读取剩余的字节如果启用FIFO,则要设置好接收/发送FIFO触发DMA请求级别,2020/6/6,国防科技大学计算机学院601室,143,voiduart_init(void);/Uart初始化voidisr_init(void);/中断控制器初始化voiddmac_init(void);/DMA控制器初始化unsignedchartxdataTXDATA_SIZE;/发送缓冲区intmain(void)unsignedintk;/初始化发送缓冲区for(k=0;kTXDATA_SIZE;k+)txdatak=(unsignedchar)k;uart_init();/Uart初始化isr_init();/中断控制器初始化dmac_init();/DMA控制器初始化while(1)/死循环,等待中断,2020/6/6,国防科技大学计算机学院601室,144,/串口初始化voiduart_init(void)UBRDIV0=BRD;/19200bpsULCON0=0 x03;/帧长度8位,停止位1位,无校验UFCON0=0 x21;/启用FIFO,发送FIFO触发级别为空UCON0=0 x008;/发送BDMA0允许/中断控制器初始化voidisr_init(void)INTMSK/DisableFIQ,EnableIRQ,/IRQVectoredInterruptMode,2020/6/6,国防科技大学计算机学院601室,145,voiddmac_init(void)/DMA控制器初始化BDISRC0=(unsignedint)0 x030)/字节传送+(unsignedint)0 x128)/内存地址递增+(unsignedint)(txdata);/txdataBDIDES0=(unsignedint)0 x130)/存储器到I/O端口+(unsignedint)0 x328)/I/O端口固定+(unsignedint)(pUTXH0);/UTXH0BDICNT0=(unsignedint)0 x230)/UART+(unsignedint)0 x126)/保留+(unsignedint)0 x322)/TC到0产生中断+(0 x021)/不自动重装+(0 x020)/DMA禁止+TXDATA_SIZE;/传送计数BDICNT0|=(unsignedint)0 x120);/DMA允许BDCON0=0 x02;/允许DMA请求,2020/6/6,国防科技大学计算机学院601室,146,/终止计数(DMA传输结束),引起BDMA0中断,执行下面/HandlerBDMA0中断服务子程序,BDMA0重新初始化,/UART接着重新发送数据(可以准备新的数据)/*BDMA0InterruptHandler*/_irqvoidHandlerBDMA0(void)I_ISPC=(11,则CPU会完成如下三个功能:BDICNT0|=(unsignedint)0 x120);/DMA允许/重装初值/启动DMA传输,2020/6/6,国防科技大学计算机学院601室,147,4、硬件设计,UART接口电路用于TTL电平与RS232电平之间的转换常用接口芯片MAXIM公司MAX232(5V)MAX3232(3.3v),2020/6/6,国防科技大学计算机学院601室,148,4、硬件设计(续),2020/6/6,国防科技大学计算机学院601室,149,4、硬件设计(续),2020/6/6,国防科技大学计算机学院601室,150,4、硬件设计(续),RS485接口芯片,2020/6/6,国防科技大学计算机学院601室,151,6.7JTAG接口,6.7.1概述6.7.2ARM的JTAG接口,2020/6/6,国防科技大学计算机学院601室,152,6.7.1概述,IEEE1149.1边界扫描测试标准通常称为JTAG(JointTestActionGroup,联合测试行动小组)用来对复杂IC与印制电路板上的特性进行测试的工业标准方法4线串行通信接口TDI(测试数据输入)、TDO(测试数据输出)TMS(测试模式选择)、TCK(测试时钟)第5条线为可选的复位线TRST,2020/6/6,国防科技大学计算机学院601室,153,6.7.1概述(续),作用边界扫描接口(硬件测试)基于JTAG的硬件调试方案利用ARM处理器中调试模块的功能,通过JTAG接口来监控芯片内部的工作状态JTAG接口同JTAG仿真器硬件连接调试工具可以检查和控制CPU的运行基于JTAG的代码下载方案编程,2020/6/6,国防科技大学计算机学院601室,154,6.7.1概述(续),2020/6/6,国防科技大学计算机学院601室,155,6.7.2ARM的JTAG接口调试架构,2020/6/6,国防科技大学计算机学院601室,156,6.7.2ARM的JTAG接口调试架构,2020/6/6,国防科技大学计算机学院601室,157,6.7.2ARM的JTAG接口仿真器,JTAG,并口,2020/6/6,国防科技大学计算机学院601室,158,6.7.2ARM的JTAG接口仿真器,USB,JTAG,2020/6/6,国防科技大学计算机学院601室,159,6.7.2ARM的JTAG接口仿真器,JTAG,以太网,2020/6/6,国防科技大学计算机学院601室,160,6.7.2ARM的JTAG接口并口模拟,2020/6/6,国防科技大学计算机学院601室,161,6.7.2ARM的JTAG接口并口模拟,2020/6/6,国防科技大学计算机学院601室,162,6.7.2ARM的JTAG接口并口模拟,2020/6/6,国防科技大学计算机学院601室,163,6.7.2ARM的JTAG接口并口模拟,2020/6/6,国防科技大学计算机学院601室,164,6.7.2ARM的JTAG接口硬件设计,20针接口,2020/6/6,国防科技大学计算机学院601室,165,6.7.2ARM的JTAG接口硬件设计,14针接口,2020/6/6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 想象的力量课件
- 2026届江西省宜春市昌黎实验学校化学高二上期中学业质量监测模拟试题含解析
- 情景与影视剧冲突的课件
- 四川省乐山市高中2026届化学高二第一学期期中监测试题含解析
- 幼儿园班级庆元旦迎新年活动方案
- 社区最优的国庆节活动方案
- 高中毕业联欢会策划方案
- 停车场收费及管理方案
- 工会劳模活动方案
- 安检货车考试题及答案
- 税务师事务所内部管理制度
- 房屋建筑工程竣工验收技术资料统一用表(2024 版)
- 《企业研发费用税前加计扣除政策解读与应用课件》
- 蓝桥杯-科学素养考试题库(含答案)
- OptiStruct结构分析与工程应用
- HRM4800原料立式磨使用手册
- 辽宁中考英语2022-2024真题汇编-教师版-专题05 阅读还原之五选四等
- 钢构彩瓦施工合同范本
- 广东省深圳市2024-2025学年高一上学期期中考试数学试卷(含答案)
- 第6讲立体几何(2022-2023年高考真题)(原卷版)
- 安宁疗护舒适照护
评论
0/150
提交评论