你的位置: 首页 > 通信技术 > 嵌入式系统

接口技术与硬件设计片内外设

2016-10-24 13:09:25 | 人围观 | 评论:

     本文介绍LPC2000系列微控制器片内外设的接口设计,主要介绍以下几种:
     GPIO(通用I/O)
     UART、MODEM
     I2C
     SPI
     GPIO外设接口设计
     LPC2000系列的绝大多数GPIO为真正的全双向I/O口,可以独立控制每一根I/O口线的状态是输入还是输出,绝大多数GPIO的输出为推挽输出,可以独立控制每一根I/O口的输出状态。虽然LPC2000系列的I/O电压为3.3V,GPIO的输出最高为I/O口电源电压,但绝大多数GPIO能够承受5V电压的输入,绝大多数GPIO作为输入时是处于高阻状态。
     因为LPC2000系列的GPIO有以上特性,所以可以用它们(通过程序)模拟很多器件的时序达到控制相应器件的目的。
     GPIO外设接口设计
     ――按键
     GPIO外设接口设计
     ――LED控制
     GPIO外设接口设计
     ――蜂鸣器
     GPIO外设接口设计
     ――模拟总线
     LPC2000系列部分芯片没有外部总线,当它们需要外接总线设备时就必须用GPIO模拟总线了。因为总线需要大量的信号线,而LPC2000的GPIO资源是宝贵的,所以模拟总线的设计的首要任务是节省GPIO的使用量,这就需要地址、数据总线复用了。
     UART、MODEM外设接口设计
     UART简介:
     通用异步收发器UART(即Universal Asynchronous Receiver and Transmitter)是用硬件实现异步串行通信的通信接口电路。UART异步串行通信接口是嵌入式系统最常用的接口,可用来与上位机或其它外部设备进行数据通信。
     LPC2000系列ARM7微控制器均具有两个UART,它们的结构及寄存器符合16C550工业标准。
     UART:
     是通用异步串行通信接口的总称,UART允许在串行链路上进行全双工的通信,输出/输入的电平为TTL电平。一般来说,全双工UART定义了一个串行发送引脚(TXD)和一个串行接收引脚(RXD),可以在同一时刻发送和接收数据。
     16C500:
     是一种工业标准的UART,此类UART芯片内部集成了可编程的波特率发生器、发送/接收FIFO、处理器中断系统和各种总线状态错误检测电路等等,并具有完全的MODEM控制能力。
     RS232:
     是美国电子工业协会(EIA)制定的串行通讯标准,又称RS-232-C 。RS232是一个全双工的通讯标准,它可以同时进行数据接收和发送的工作。
     LPC2000系列ARM7微控制器包含有两个UART接口, 详细请参考5.10节。使用UART时,数据位的宽度是由波特率而定。
      如果要使用UART0与RS232接口的设备进行基本的通讯,那么就需要一个RS232转换器将TTL电平转换成RS232电平。
     LPC2000系列ARM7微控制器的UART1带有完整的调制解调器(MODEM)接口,只要使用SP3243ECA转换芯片将信号转换成RS232电平,即可与MODEM连接,控制MODEM拔号、通讯等等。
     2C总线接口
     I2C BUS(Inter IC BUS)是Philips推出的芯片间串行传输总线,它以2根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。详细信息请参看5.12节。
     ――名词解释
     发送器:本次传输中发送数据到总线的器件;
     接收器:本次传输中从总线接收数据的器件;
     主机:初始化发送、产生时钟信号和终止发送的器件,它可以是发送器或接收器。主机通常是微控制器;
     从机:被主机寻址的器件,可以是发送器或接收器。
     ――总线信号
     ――常用I2C器件
     随着I2C总线技术的推出。很多电子厂商都推出了许多带I2C总线接口的器件,大量应用于视频、音像及通讯等领域。表6.2给出了常用的通用I2C接口的种类、型号及寻址字节。
     ――ZLG7290
     ZLG7290为键盘和LED驱动器,它提供了I2C串行接口和键盘中断信号,方便与处理器连接;可驱动8位共阴数码管或64只独立LED和64个按键, 可控扫描位数以及可控任一数码管闪烁,提供数据译码和循环移位、段寻址等控制,8个功能键可检测任一键的连击次数,无需外接元件即可直接驱动LED即可扩展驱动电流和驱动电压。下图为ZLG7290的引脚排列。
     ――CAT24WC02
     CAT24WC02是一款I2C总线接口的E2PROM器件,其引脚如下图所示。
     CAT24WC02的I2C总线地址的高4位固定为1010,低四位由A2、A1和A0决定。当A2A1A0引脚悬空时,默认值为000。
     ――I2C应用示例
     LPC2000系列微控制器都提供了硬件I2C总线接口和I2C总线控制器。由于LPC2000微控制器的SDA和SCL端口为开漏输出,所以必须在SDA和SCL线上分别外接一个上拉电阻。
     该示例利用LPC2000微控制器作为I2C总线的主机,在总线上挂接着两个I2C器件作为从机,分别为E2PROM器件CAT24WC02和键盘和LED驱动器ZLG7290。R46和R48即为I2C总线上的两个上拉电阻。
     SPI总线接口
     SPI(Serial Peripheral Interface――串行外设接口)总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换。外围设备包FLASH、RAM、A/D转换器、网络控制器、MCU等。SPI系统可直接与各个厂家生产的多种标准外围器件直接接口,一般使用4条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SSEL(有的SPI接口芯片带有中断信号线INT,有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。详细信息参看5.13节。
     ――引脚描述
     SCK串行时钟,用于同步SPI接口间数据传输的时钟信号。该时钟总是由主机驱动并且从机接收;
     SSEL从机选择,SPI从机选择信号是一个低有效信号,用于指示被选择参与数据传输的从机。每个从机都有各自特定的从机选择输入信号。在数据处理之前,SSEL必须为低电平并在整个处理过程中保持低电平。如果在数据传输中SSEL信号变为高电平,传输中止;
     MISO主入从出,该信号是一个单向的信号,它将数据从从机传输到主机。当器件为从机时,串行数据从该端口输出;当器件为主机时,串行数据从该端口输入;当从机没有被选择时,将该信号驱动为高阻态;
      MOSI主出从入,该信号是一个单向的信号,它将数据从主机传输到从机。当器件为主机时,串行数据从该端口输出;当器件为从机时,串行数据从该端口输入。
     ――发送与接收
     将数据写到SPI发送缓冲区后,时钟信号SCK的1次作用对应一位数据的发送(MISO)和另一位数据的接收(MOSI);在主机中数据从移位寄存器中自左向右发出送到从机(MOSI),同时从机中的数据自右向左发到主机(MISO),经过8个时钟周期完成1个字节的发送。输入字节保留在移位寄存器中,然后从接收缓冲区中读出一个字节的数据。
     ――总线连接
     SPI总线可在软件的控制下构成各种简单的或复杂的系统,如:1个主MCU和几个从MCU;几个从MCU相互连接构成多主机系统(分布式系统);1个主MCU和1个或几个从I/O设备。
     大多数应用场合中,使用1个MCU作为主机,它控制数据向1个或几个从外围器件的传送。从器件只能在主机发命令时才能接收或向主机传送数据。其数据的传输格式通常是高位(MSB)在前,低位(LSB)在后,在一些增强型的MCU中高位在前或低位在前都是可通过软件设置的,如LPC2000系列微控制器。
     ――应用示例
     在把SPI与几种不同的串行I/O芯片相连时,应特别注意这些串行I/O芯片的输入输出特性。
     (1) 输入芯片的串行数据输出是否有三态控制端。平时未选中芯片的输出端应处于高阻态。若没有三态控制端,应外加三态门。否则MCU的MISO端只能连接1个输入芯片。
     (2) 输出芯片的串行数据输入是否有允许控制端。即应该只有在这片芯片允许时,SCK脉冲才把串行数据移入该芯片;芯片禁止时,SCK对芯片无影响。若没有允许控制端,应在外部用门电路 对SCK进行控制后,再加到芯片的时钟输入端,或者SPI只连接1个芯片,不能再连接其它输入或输出芯片。




标签:

相关内容推荐: