资 源 简 介
1 概述由于在某些通讯设计应用中,需要扩展更多的串口数量,比如车床监控、纺织仪器检测和网状连接的数据采集等应用。为此成都国腾微电子有限公司推出的GM814x 可以满足多个同类产品的并联扩展,并且能简单的实现电路连接和程序控制,主MCU 可以识别数据的来源和指定和某个GM814x 通信。2 应用说明2.1 CS 与SPI 的数据通信GM814x 的CS(片选)引脚可用于控制SPI 总线时钟有效性,CS 低电平有效,内部下拉。CS 有效时,允许芯片的时钟接收和数据收发;无效时,SCLK、DIN 和DOUT 均为高阻状态,GM814x 不响应SPI 上的数据收发,但能正常收发子串口数据和产生相应中断。2.2 应用建议当使用GM814x 的应用需要扩展4 个以上的串口数量时,就需要使用2 片以上的GM814x。扩展的方式也有多种。方式一:将多个GM814x 的SPI 接口接在主MCU 的SPI 总线上,然后将所有GM814x 的中断进行线与后连接到MCU 的IRQ 上,同时将各GM814x 的IRQ 输出又连接到MCU的IO,以便MCU响应中断后检测是具体哪一个GM814x 输出的中断,然后再拉低对应的CS,拉高其它GM814x的CS,并执行通信操作。方式二:如果扩展的GM814x 数量较多,采用上述扩展方式可能会占用MCU较多的IO 资源,则可以将GM814x 的中断输出连接到具有OC 输出的与门芯片上,再输出到MCU 的中断输入。同时又将所有的GM814x 的中断输出进行编码输入到MCU,以供其判断产生中断的是哪一个GM814x。方式三:将所有GM814x 的中断输出连接到优先编码器进行编码输出,同时编码器也能输出低电平信号给MCU 作为中断响应。MCU 检测编码数据以获知产生中断的GM814x,然后进行数据通信处理。这种方式电路最简单,占用MCU 的IO 资源也最少。
举例:使用MCS51 单片机扩展8 片GM814x。本电路中,采用了上述提到的第三种扩展方式。通过普通的MCS51 单片机扩展最多8 片GM814x,可扩展最多32 个标准串口。为了节省MCU的IO 资源,电路中增加了一片8-3 线优先编码器74LS348 和一片3-8 线译码器74HC138。8 片GM814x 的IRQ 中断通过一片74LS348 输出中断源向量,同时产生GS 低电平信号到MCS51 的外部中断0 上,MCS51 响应中断后,可查询A0~A2 的值确定产生中断的GM814x,然后MCU 使能74HC138,输出对应的ABC 信号选中产生IRQ 信号的GM814x,再进行SPI 总线上的数据通信。
示例程序:本示例程序使用C 语言描述,仅供参考。
由于74LS348 是优先编码器,多个中断同时产生的时候,74LS348 的编码只会指示输入编号上最高的IRQ,MCU 无法直接获知是否其它的GM814x 也产生了中断。同时GM814x 在自己的中断申请后,数据传输到第8bit 时会自动清除,所以数据接收完后如果MCU 的中断引脚仍然为低,则表示还有其它GM814x 的中断申请,故必须在处理完当前中断后继续查询新的中断向量。这就是上述示例程序中while 循环的目的。
以上应用建议仅供设计者参考,不代表最终实现方式,更可靠和实际的实现方式可由设计者根据自己的实际情况确定。l 示例中的数据、参数和标志字命名不代表实际产品的特性,请参考实际产品的数据手册来获取你所需要的数据。