在MCS-51单片机应用系统中,串行数据通信通常采用同步/异步接收发送器8251,但因8251的通信波特率不高,且芯片不能应用于晶振较高的系统,这就使得要求高运行速度、高速收发数据的系统无法应用8251芯片收发数据,MAXIM公司推出的新型UART芯片MAX3100正好填补了这个空白。MAX3100具有以下几个鲜明的特点:
l 支持高速通信,最高通信波特率可达230KBPS;
2 能工作在较高频率的系统中,如可用在晶振为40MHZ的系统中;
3 支持低电压,低功耗;
4 体积小,可节省印制版空间;
5 支持红外通信。
一、引脚功能
MAX3100有DIP和QSOP两种封装形式,以DIP封装为例,它的引脚排列如图1所示,各引脚的功能简述如下:
1) DIN:串行数据输入端。串行时钟的上升沿锁存DIN数据。
2) DOUT:串行数据输出端。数据由串行时钟的下降沿同步输出,当
3) SCLK:串行时钟输入端。
4)
5) IRQ:中断请求信号。低电平有效。
6)
7) X1和X2:晶振引脚。
8)
9)
10) RX:接收输入端
11)TX:发送输出端
二、 读写控制指令及时序
1. 写控制字
写控制字各位含义如表1所示。控制字写入后将清除FIFO寄存器以及R、T、RA/FE、D0r~ D7r、D0t~D7t、Pt、Pt等寄存器,而
2.读控制字
从MAX3100读回的控制字如表2所示,读控制字同时还可以通过配置命令最低位TEST=1,使器件进入测试状态,此时TX和RX构成回路,完成自发自收的操作。
3.写数据
写数据格式如表3所示,要发送的数据由写数据操作写到数据寄存器,16位字中的最后7位或8位是实际发送的数据。如果只想改变
4.读数据
从MAX3100读得的数据如表4所示,在读数据的同时将清除R和
三、 工作原理
MAX3100的工作原理如图2所示,它包含一个简单的UART和波特率发生器,以及SPI接口和中断发生器,只须往一个内部寄存器写入控制字,即可设置UART的波特率、数据字长、校验使能。该“写配置”寄存器包括四个中断屏蔽位,并可选择普通UART或IRDA定时两种工作模式。可编程波特率发生器可被设置于300到230K波特间。通过写配置寄存器的分频比(BRD),对晶振频率进行分频。MAX3100的振荡器可选用1.8432MHz或3.6864MHz的晶体,也可由X1端输入占空比为45%到55%的外部时钟。
SPI接口是与微控制芯片的同步串行口,和普通的I/O口相连,接受从微控制芯片发出的片选,数据及时钟信号,并将其装载到发送缓冲器,内部逻辑添加起始位和停止位,并按照选定的波特率进行移位,通过TX发送出去。在接收数据时,发出中断请求,并把接收到的数据传送给微控制芯片。波特率发生器根据写入B0,B1,B2,B3的值,为UART提供时钟信号。UART包括收/发缓冲区,收/发移位寄存器,发送时,按设定的波特率,将数据转换成串行异步通信格式,通过TX引脚发送出去。接收时,并根据由高到低的跳变自动检测起始位,MAX3100以16倍频的速率采集RX引脚,将采集到的数据放入8位的FIFO寄存器中。
在MAX3100中,可发出4种中断请求信号:奇偶校验中断、接收中断、帧错误/(待机接收)中断、发送中断。可根据需要,对中断屏蔽位(TM、RM、PM
向MAX3100写入数据时,在DIN写入的是一个16位的字,其中高八位设置的内容是:写入标志、允许TX输出、RTS引脚设定以及传送校验位设定。低八位才是要传送的数据。 从MAX3100读出数据时,仍旧要在DIN写入一个16位的字(0000H),再从DOUT读入16位的字,其中的高八位是:接收/发送缓冲区的状态,数据错/溢出状态,接收/校验位状态和CTS的状态,低八位才是接收到的数据。
值得注意的是:由于MAX3100采用的是全双工通信,即DIN,DOUT引脚上同时有数据传送。在SCLK时钟的下降沿,将数据从DOUT引脚发送出去,在SCLK时钟的上升沿,从DIN引脚接收数据。