• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 电子设计 > 电源技术 > 电源技术 > 新型通用异步收发器MAX3100在单片机系统中的应用

新型通用异步收发器MAX3100在单片机系统中的应用

录入:edatop.com    点击:

在 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 :串行数据输出端。数据由串行时钟的下降沿同步输出,当 CS 为高时为高阻态。
   3)   SCLK :串行时钟输入端。
   4)   CS :片选控制。 IRQ 、 RTS 、 TX 的输出不受 CS 的控制。
   5)   IRQ : 中断请求信号。低电平有效。
   6)   SHDN :待机模式的硬件控制端。 SHDN =0 ,进入待机模式,片内振荡器立即停振。
   7)   X1 和 X2 :晶振引脚。
   8)   CTS :输入端。低电平有效,用于 RS-232 作允许发输入端。
   9)   RTS :输出端。低电平有效,用于 RS-232 作请求发送输出端或 RS-485 驱动器使能端。
   10)   RX :接收输入端
   11)TX :发送输出端

二、 读写控制指令及时序


1.   写控制字
   写控制字各位含义如表 1 所示。控制字写入后将清除 FIFO 寄存器以及 R 、 T 、 RA/FE 、 D0r~ D7r 、 D0t~D7t 、 Pt 、 Pt 等寄存器,而 CTS   和 RTS 保持不变。屏蔽位 TM、RM、PM 和 RAM 在 SCLK 的第 16 个时钟的上升沿有效,而 FEN 、 SHDNi 、 IR 、 ST 、 PE 、 L 、 B0~B3 在完成写配置操作后有效。

 

2 .读控制字
   从 MAX3100 读回的控制字如表 2 所示,读控制字同时还可以通过配置命令最低位 TEST=1 ,使器件进入测试状态,此时 TX 和 RX 构成回路,完成自发自收的操作。
3 .写数据
   写数据格式如表 3 所示,要发送的数据由写数据操作写到数据寄存器, 16 位字中的最后 7 位或 8 位是实际发送的数据。如果只想改变 RTS 的状态而不发送数据,则可通过 TE 禁止数据的发送。

4 .读数据
   从 MAX3100 读得的数据如表 4 所示,在读数据的同时将清除 R 和 IRQ 。

三、   工作原理
   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 、 R M PM RAM )进行设置,选择相应的中断方式,如图 3 所示。

   向 MAX3100 写入数据时,在 DIN 写入的是一个 16 位的字,其中高八位设置的内容是:写入标志、允许 TX 输出、 RTS 引脚设定以及传送校验位设定。低八位才是要传送的数据。    从 MAX3100 读出数据时,仍旧要在 DIN 写入一个 16 位的字( 0000H ),再从 DOUT 读入 16 位的字,其中的高八位是:接收 / 发送缓冲区的状态,数据错 / 溢出状态,接收 / 校验位状态和 CTS 的状态,低八位才是接收到的数据。
   值得注意的是:由于 MAX3100 采用的是全双工通信,即 DIN , DOUT 引脚上同时有数据传送。在 SCLK 时钟的下降沿,将数据从 DOUT 引脚发送出去,在 SCLK 时钟的上升沿,从 DIN 引脚接收数据。

[p] 四、应用实例
1.   硬件设计
   图 4 所示为 MAX3100 与 78E58 单片机采用 SPI 接口方式,实现高速串行数据收发的应用实例,在电路中用 MAX3100 取代了以往常用的 UART8251 ,以实现高性能的通信模式。 78E58 的 P1.0~P1.3 分别接 MAX3100 的 DIN 、 DOUT 、 SCLK 以及 CS , 78E58 的 INTO 与 IRQ 相连, SHDN 连高电平,使之保持在工作模式, MAX3100 的 TX 和 RX 分别和 MAX232 的 T1I 以及 R1O 连接, RTS 与 CTS 相连,通过 MAX232 电平转换后与 9 针串行接口的第八脚相连用以控制计算机传送数据。
   78E58 单片机接收时,上位机传过来的数据通过串行口由 RS-232 转换 TTL 电平后, MAX3100 串行接收,串行输入到 MCU 中。 78E58 单片机发送时, MCU 将要发送的数据串行送入 MAX3100 ,通过 RS-232 转换成 232 电平后串行输出。

 

图4 MAX3100与78E58单片机应用实例

  2.   软件设计
   上述电路相应的用 C51 编写的参考程序如下:






 

    在程序设计时,我们要注意的是:如果是 大批量的数据的接收 , 要通过硬件设置分批发送 。当接收完一批数据后,由于当 TE 为高电平时,只改变 RTS 的状态而不发送数据,我们可以通过软件设置 TE 为高电平, RTS 为低电平,通过串行口通知计算机不要发送数据。在这批数据处理完之后,再设置 RTS 为高,允许计算机发送数据,继续接收数据。
   同时我们还要考虑 MAX3100 在通知计算机不要发送数据后还有一批的数据在缓冲区内,这批数据要注意接收,而且这些数据应留有一个接收的时间余地。也就是说在通知计算机不要发送数据之后和开始执行操作之前要延时一段时间,以保证数据的全部接收。

五: 结论
   采用 MAX3100 作为扩展的 UART ,具有价格低廉,功耗小,实现容易的特点,而且比传统的 UART8251 占用体积小,传输速度快,工作频率高,具有比 8251 更优越的性能。
   前面所给程序是通过端口发送与接收数据的关键,对于任何一种基于 MCS-51 单片机采用 MAX3100 实现串行收发的应用系统来说都是非常有帮助的。经过实践证明,该系统运行效果良好,数据传送安全可靠,传送快,应用广泛。
   在实践中发现在系统晶振采用 40MHZ , 振荡器晶振选用 1.8432MHZ 时, C 语言编写的 MAX3100 接收程序工作在 115200 波特率时有数据丢失的情况,最高只能到 57600 波特率,用汇编语言编写的程序则可以达到 115200 波特率。如果 MAX3100 晶振选用 3.6864MHZ 时 , 用汇编语言编写的程序可以达到其最高的波特率。


 

 

射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...

天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...

上一篇:AT89S51单片机并行I/O端口的扩展
下一篇:基于DSP Builder的Chirp信号源设计

射频和天线工程师培训课程详情>>

  网站地图