1单片机常用接口芯片及接口技术介绍2计算机结构运算器存储器I/O接口控制器CPU外部设备3MCU基本结构地址总线I/O总线MCUSCM存储器输入/出接口外围设备控制总线数据总线控制CISC结构-冯.诺依曼结构:如8051,AT89系列RISC结构-哈佛结构:如PIC单片机根据片内程序空间和数据空间、控制总线和数据总线是否分开结构体系指令体系16进制-汇编语言-C语言4接口的基本概念什么是I/O接口?连接CPU与外设之间的逻辑电路称I/O接口电路,简称接口。为什么需要I/O接口?单片机IO端口只能接收和发送逻辑电平数字信号,而IO外设输入输出的信号种类、信号电平各异。如何以不变应万变?接口电路的主要功能:锁存功能缓冲功能速度匹配变换功能5数据锁存功能数据输出都是通过系统的数据总线进行的。但是由于CPU的工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速输出设备的需要。为此在接口电路中需设置数据锁存器,以保存输出数据直至为输出设备所接收。数据锁存就成为接口电路的一项重要功能。三态缓冲功能数据输入时,输入设备向CPU传送的数据也要通过数据总线,但数据总线是系统的公用数据通道,上面可能“挂”着许多数据源,工作十分繁忙。为了维护数据总线上数据传送的“秩序”,因此只允许当前时刻正在进行数据传送的数据源占用数据总线,其余数据源都必须与数据总线处于隔离状态。为此要求接口电路能为数据输入提供三态缓冲功能。6速度匹配功能由于速度上的差异,使得数据的I/O传送难以异步方式进行,即只能在确认外设已为数据传送作好准备的前提下才能进行I/O操作。而要知道外设是否准备好,就需要通过接口或产生或传送外设的状态信息,以此进行CPU与外设之间的速度协调。数据变换功能CPU只能输入和输出并行的电压数字信号,但是有些外部设备所提供或所需要的并不是这种信号形式。为此需要使用接口电路进行数据信号的转换,主要包括模→数转换、数→模转换、串→并转换和并→串转换等。7具体功能:(不同接口功能不同)寻址功能传递功能位功能中断功能联络功能变换功能可编程功能错误检测功能8典型I/O接口的结构控制REG状态REG数据输出REG数据输入REGCPU控制线数据线外设数据输入/输出寄存器:保存数据控制寄存器:保存控制信息,决定接口工作方式状态寄存器:存放状态信息,反映外设当前状态9MCU与外设信息交互方式无条件传送方式在进行I/O操作时,不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。只有那些一直为数据I/O传送作好准备的外部设备(如发光二极管、数码管、机械开关、ADC,DAC),才能使用无条件传送方式。查询方式中断方式DMA方式(超8位单片机)10查询方式查询输入查询输出读状态端口BUSY?输出数据NY准备输出数据输入状态信息Ready?输入数据YN在I/O操作之前,要先检测外设的状态,以了解外设是否已为数据输入输出作好了准备,只有在确认外设已“准备好”的情况下,CPU才能执行数据输入输出操作。硬件电路简单MCU速度高于外设通常处于等待状态效率很低118路模拟量输入采集MCU数据总线端口3端口2端口4A/D转换MUXA0A71个模拟量210启动8位1位状态8位数据数据READY48路模拟量多路开关控制ADC指示12缓存技术高速数据采集设备缓存器MCU缓存控制器缓存技术是高速数据采集和处理中的一项关键技术;在高速数据采集系统中,通常在存储设备的前端加一级缓存,可以使低速存储设备无丢失地记录高速数据;是CPU性能的一个重要指标;在实时视频数据处理系统中的应用非常广泛,特别是在图像帧率及分辨率要求比较高的场合。13乒乓缓冲结构CMOSImageSensorCPLD/FPGASRAM1SRAM2MCUY0…Y7HREFVSYNCPCLKnCEnOEnWEA[]D[]nCEnOEnWEA[]D[]R/WD[]A[]INT这种结构是将输入数据流通过输入数据选择单元等时地将数据流分配到两个数据缓冲区。在第1个缓冲周期,将输入的数据流缓存到数据缓冲模块1上,在第2个缓冲周期,通过输入数据选择单元的切换,将输入的数据流缓存到数据缓冲模块2,同时,将数据缓冲模块1缓存的第1个周期的数据通过输出数据选择单元的选择,送到运算处理单元进行处理,第3个缓冲周期,再次切换数据的输入与输出缓冲模块。如此循环,周而复始。(双缓冲技术)1414CMOSImageSensor乒乓缓冲控制器SRAM1SRAM2MCU第一周期CMOSImageSensor乒乓缓冲控制器SRAM1SRAM2MCU第二周期CMOSImageSensor乒乓缓冲控制器SRAM1SRAM2MCU第三周期CMOSImageSensor乒乓缓冲控制器SRAM1SRAM2MCU第四周期15中断技术中断方式与查询方式的主要区别:如何知道外设是否为数据传送作好了准备。查询方式是CPU的主动形式,中断方式是CPU等待中断请求的被动形式。采用中断方式进行数据传送时,当外设为数据传送作好准备之后,就向CPU发出中断请求。CPU接收到中断请求后即作出响应,暂停正在执行的原程序。而转去为外设的数据输入输出服务。待服务完成之后,程序返回,CPU再继续执行被中断的原程序。中断源的中断请求被CPU响应之后,CPU自动把中断源的中断入口地址(中断矢量地址,固定)装入PC,从中断矢量地址处获得中断服务程序的入口地址。一般在此地址单元中存放一条绝对跳转指令,可以跳至用户安排的任意地址空间。16中断处理流程中断请求中断响应中断处理保护现场+中断原服务中断返回中断请求撤销中断源发出中断请求中断响应条件是否满足?查找中断入口地址判断中断优先级当前指令执行完?执行下一条指令总中断标志EA=1?关中断,转中断入口NNYNYY主程序低级中断高级中断服务子程序断点1断点2服务子程序继续执行主程序响应低级中断请求响应高级中断请求返回低级中断返回主程序17中断技术程序中断方式,大大提高了系统的效率。中断可实现快速CPU与慢速外部设备之间的并行工作,实现实时处理和故障处理,不但速度快而且可以实现多道程序方式,所以在计算机中被广泛采用。但中断请求是一种随机事件,如果每传送一个字符都要中断消耗很大。为实现程序中断,对计算机的硬件和软件都有较高的要求。此外,由于中断处理常需现场保护和现场恢复。因此,对CPU来说仍有较大的无用开销。18中断类型外部中断类(INT0,INT1)由单片机的输入输出设备等外部原因引起的,可设置请求信号是电平触发还是边缘触发。计时中断类(TCON)由内部计时器计数产生计数溢出时所引起的中断,内部中断,计时器可由用户通过程序设定。串行端口中断类(SCON)当串行端口接收或发送完一帧数据时,修改SCON,向CPU申请中断。如何定义矢量地址和优先级参考具体的单片机。19外部中断源扩展利用计时器扩充外部中断源当计时器设置为计数方式时,一旦外部信号从计数器引脚输入一个负跳变信号,计数器+1;将计时器引脚作为外部中断请求相连,计时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。中断和软件查询相结合扩充外部中断源通过逻辑“或”的关系将多个外部中断源通过“线或”连接到INT0和INT1外部中断,利用输入端口作为各中断的识别线(发生中断请求时通过输入端口进行查询判别究竟是哪个中断)。矢量中断扩充外部中断源利用优先权编码器74LS148对较多的外部中断源进行排队。当多个中断同时发生时,编码器只对一个优先权最高的中断作为反应,并输出其矢量代码到单片机的端口(比如8个外部中断源需P1.0-P1.2)。当CPU响应中断请求后,CPU可以通过端口得到中断矢量。中断矢量处利用多分支转移程序实现程序引导,类似于指针作用。20中断处理系统的应用例:移动广告灯,要求通过单片机的控制实现以下功能:P1接8个LED,使8个LED闪烁。当奇数次按下S1时,8个LED每次同时点亮4个,点亮3次,即D0-D3与D4-D7交叉点亮3次。偶数次按下S1时,则D0-D7进行左移和右移2次。当按下S2,产生报警(优先)。51MCU反相三态缓冲/线驱动器74LS240LEDS1INT0INT1S2P1.0P1.7P3.0BUZZERP1.1P1.2P1.3P1.4P1.5P1.6INT1与S2相连,作为报警信号的输入端,因此需要将INT1设为高优先级,S1控制亮灯方式,因此需要判断S1按下次数的奇偶性。21DMA技术假如一外设一秒能传送100个字节,若用查询方式,这一秒内CPU全部用于查询和传送;采用中断方式,假定CPU每传送一个字节的服务程序需要100us,则传送100字节,CPU只需用10ms,即只占一秒的1/100。中断每次要保护断点,保护现场需用多条指令,每条指令要有取指和执行时间。DMA使得硬件直接在外设与内存之间进行数据交换,而不通过CPU,速度的上限取决于存储器的工作速度。DMA中断查询22DMA工作流程DMA控制器向MCU/CPU发出HOLD信号MCU/CPU发回HLDA信号,接管对总线的控制发存储器地址发读或写等控制信号传送结束否?传送数据DMA结束修改地址指针NYC8051MSP430ARMDSPSTM32……Memory-Copy23外围接口数字量IO总线接口扩展存储器扩展键盘接口显示接口A/D-D/A24I/O完整单片机系统:键盘输入、显示输出、打印输出、数据采集、伺服系统、数据存储、数据通信等众多功能,皆通过I/O端口实现与MCU的信息交互。复用性:地址、数据复用(当P0端口作为地址数据总线复用,就不能再作为IO口)驱动能力:不同端口的驱动能力K1+5V123J2D3CTL1LS1SPEAKERR61KQ1NPN9013VCCFMQGND25IO扩展方法总线扩展方法I/O扩展芯片的并行数据输入取自单片机接口。该扩展方法只分时占用P0口,不影响P0口与其它扩展芯片的连接操作,不会造成单片机硬件的额外开支。串行口扩展方法单片机串行口在方式0工作状态下所提供的I/O的扩展功能。接74LC164可扩展并行输出口,接74LC165可扩展并行输入。该扩展方法只占串行口,而且通过移位寄存器的级联方法可以扩展多数量的并行I/O。通过单片机内I/O的扩展方法扩展芯片输入输出的数据线不通过P0口而通过其他片内I/O口。26存储器扩展程序存储器EPROM:2716,2732,……,27512E2PROM:2816,2817A,2864……数据存储器SRAM:6116,6264,62256,……DRAMSDRAMiRAM越来越多的单片机片内集成Flash!就其本质而言,FlashMemory属于E2PROM(电擦除可编程只读存储器)类型,但也可扩展数据存储。27扩展方法线译码法将部分高位地址信号作为片选信号全译码法将其余所有的高位地址信号经译码后作片选信号(相对部分译码)28键盘扩展编码键盘——以硬件方式产生键码,价格昂贵非编码键盘——不需专用硬件电路,响应速度慢独立式键盘电路矩阵式键盘01+5vC0C1R0R1键盘I/O接口P1.0P1.1P1.7+5v每个按键单独占有一根I/O接口引线。29扫描法:列线输出,行线输入。列线逐行输出0,某行有按键,行线输入有0,若无按键,行线输入全部为1。反转法:行列线交换输入、输出,两步获取按键键号。串行I/O端口扩充键盘:使串口在工作方式0状态下,扩展并行输出口。将扩展的并口作为行列式键盘的列线,将P3口的两个端口线作为行线。通过串口的TXD产生移位脉冲,由RXD输出需移位的数据。所以每增加一根P3端口线,将增加8个按键。MCURXDTXD串入并出移位寄存器74LS164+5VP3.4P3.530键盘处理程序任务1)键输入检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。硬件电路消除抖动或软件消除抖动-双稳态触发器。2)键译码键号为键盘位置码,根据键号查表得出被按键的键