- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
新型通用异步收发器MAX3100在单片机系统中的应用
在
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
、
R
M
、PM
向
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
以及
78E58
单片机接收时,上位机传过来的数据通过串行口由
RS-232
转换
TTL
电平后,
MAX3100
串行接收,串行输入到
MCU
中。
78E58
单片机发送时,
MCU
将要发送的数据串行送入
MAX3100
,通过
RS-232
转换成
232
电平后串行输出。
图4 MAX3100与78E58单片机应用实例
2.
软件设计
上述电路相应的用
C51
编写的参考程序如下:
在程序设计时,我们要注意的是:如果是
大批量的数据的接收
,
要通过硬件设置分批发送
。当接收完一批数据后,由于当
TE
为高电平时,只改变
同时我们还要考虑
MAX3100
在通知计算机不要发送数据后还有一批的数据在缓冲区内,这批数据要注意接收,而且这些数据应留有一个接收的时间余地。也就是说在通知计算机不要发送数据之后和开始执行操作之前要延时一段时间,以保证数据的全部接收。
五:
结论
采用
MAX3100
作为扩展的
UART
,具有价格低廉,功耗小,实现容易的特点,而且比传统的
UART8251
占用体积小,传输速度快,工作频率高,具有比
8251
更优越的性能。
前面所给程序是通过端口发送与接收数据的关键,对于任何一种基于
MCS-51
单片机采用
MAX3100
实现串行收发的应用系统来说都是非常有帮助的。经过实践证明,该系统运行效果良好,数据传送安全可靠,传送快,应用广泛。
在实践中发现在系统晶振采用
40MHZ
,
振荡器晶振选用
1.8432MHZ
时,
C
语言编写的
MAX3100
接收程序工作在
115200
波特率时有数据丢失的情况,最高只能到
57600
波特率,用汇编语言编写的程序则可以达到
115200
波特率。如果
MAX3100
晶振选用
3.6864MHZ
时
,
用汇编语言编写的程序可以达到其最高的波特率。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...