新型通用異步收發(fā)器MAX3100在單片機系統(tǒng)中的應用
在MCS-51單片機應用系統(tǒng)中,串行數(shù)據通信通常采用同步/異步接收發(fā)送器8251,但因8251的通信波特率不高,且芯片不能應用于晶振較高的系統(tǒng),這就使得要求高運行速度、高速收發(fā)數(shù)據的系統(tǒng)無法應用8251芯片收發(fā)數(shù)據,MAXIM公司推出的新型UART芯片MAX3100正好填補了這個空白。MAX3100具有以下幾個鮮明的特點:
l 支持高速通信,最高通信波特率可達230KBPS;
2 能工作在較高頻率的系統(tǒng)中,如可用在晶振為40MHZ的系統(tǒng)中;
3 支持低電壓,低功耗;
4 體積小,可節(jié)省印制版空間;
5 支持紅外通信。
一、引腳功能
MAX3100有DIP和QSOP兩種封裝形式,以DIP封裝為例,它的引腳排列如圖1所示,各引腳的功能簡述如下:
1) DIN:串行數(shù)據輸入端。串行時鐘的上升沿鎖存DIN數(shù)據。
2) DOUT:串行數(shù)據輸出端。數(shù)據由串行時鐘的下降沿同步輸出,當
3) SCLK:串行時鐘輸入端。
4)
5) IRQ:中斷請求信號。低電平有效。
6)
7) X1和X2:晶振引腳。
8)
9)
10) RX:接收輸入端
11)TX:發(fā)送輸出端
二、 讀寫控制指令及時序
1. 寫控制字
寫控制字各位含義如表1所示。控制字寫入后將清除FIFO寄存器以及R、T、RA/FE、D0r~ D7r、D0t~D7t、Pt、Pt等寄存器,而
2.讀控制字
從MAX3100讀回的控制字如表2所示,讀控制字同時還可以通過配置命令最低位TEST=1,使器件進入測試狀態(tài),此時TX和RX構成回路,完成自發(fā)自收的操作。
3.寫數(shù)據
寫數(shù)據格式如表3所示,要發(fā)送的數(shù)據由寫數(shù)據操作寫到數(shù)據寄存器,16位字中的最后7位或8位是實際發(fā)送的數(shù)據。如果只想改變
4.讀數(shù)據
從MAX3100讀得的數(shù)據如表4所示,在讀數(shù)據的同時將清除R和
三、 工作原理
MAX3100的工作原理如圖2所示,它包含一個簡單的UART和波特率發(fā)生器,以及SPI接口和中斷發(fā)生器,只須往一個內部寄存器寫入控制字,即可設置UART的波特率、數(shù)據字長、校驗使能。該“寫配置”寄存器包括四個中斷屏蔽位,并可選擇普通UART或IRDA定時兩種工作模式。可編程波特率發(fā)生器可被設置于300到230K波特間。通過寫配置寄存器的分頻比(BRD),對晶振頻率進行分頻。MAX3100的振蕩器可選用1.8432MHz或3.6864MHz的晶體,也可由X1端輸入占空比為45%到55%的外部時鐘。
SPI接口是與微控制芯片的同步串行口,和普通的I/O口相連,接受從微控制芯片發(fā)出的片選,數(shù)據及時鐘信號,并將其裝載到發(fā)送緩沖器,內部邏輯添加起始位和停止位,并按照選定的波特率進行移位,通過TX發(fā)送出去。在接收數(shù)據時,發(fā)出中斷請求,并把接收到的數(shù)據傳送給微控制芯片。波特率發(fā)生器根據寫入B0,B1,B2,B3的值,為UART提供時鐘信號。UART包括收/發(fā)緩沖區(qū),收/發(fā)移位寄存器,發(fā)送時,按設定的波特率,將數(shù)據轉換成串行異步通信格式,通過TX引腳發(fā)送出去。接收時,并根據由高到低的跳變自動檢測起始位,MAX3100以16倍頻的速率采集RX引腳,將采集到的數(shù)據放入8位的FIFO寄存器中。
在MAX3100中,可發(fā)出4種中斷請求信號:奇偶校驗中斷、接收中斷、幀錯誤/(待機接收)中斷、發(fā)送中斷??筛鶕枰瑢χ袛嗥帘挝唬?span style="TEXT-DECORATION: overline">TM、RM、PM
向MAX3100寫入數(shù)據時,在DIN寫入的是一個16位的字,其中高八位設置的內容是:寫入標志、允許TX輸出、RTS引腳設定以及傳送校驗位設定。低八位才是要傳送的數(shù)據。 從MAX3100讀出數(shù)據時,仍舊要在DIN寫入一個16位的字(0000H),再從DOUT讀入16位的字,其中的高八位是:接收/發(fā)送緩沖區(qū)的狀態(tài),數(shù)據錯/溢出狀態(tài),接收/校驗位狀態(tài)和CTS的狀態(tài),低八位才是接收到的數(shù)據。
值得注意的是:由于MAX3100采用的是全雙工通信,即DIN,DOUT引腳上同時有數(shù)據傳送。在SCLK時鐘的下降沿,將數(shù)據從DOUT引腳發(fā)送出去,在SCLK時鐘的上升沿,從DIN引腳接收數(shù)據。
[!--empirenews.page--]四、應用實例
1. 硬件設計
圖4所示為MAX3100與78E58單片機采用SPI接口方式,實現(xiàn)高速串行數(shù)據收發(fā)的應用實例,在電路中用MAX3100取代了以往常用的UART8251,以實現(xiàn)高性能的通信模式。78E58的P1.0~P1.3分別接MAX3100的DIN、DOUT、SCLK以及
78E58單片機接收時,上位機傳過來的數(shù)據通過串行口由RS-232轉換TTL電平后,MAX3100串行接收,串行輸入到MCU中。78E58單片機發(fā)送時,MCU將要發(fā)送的數(shù)據串行送入MAX3100,通過RS-232轉換成232電平后串行輸出。
圖4 MAX3100與78E58單片機應用實例
2. 軟件設計
上述電路相應的用C51編寫的參考程序如下:
在程序設計時,我們要注意的是:如果是大批量的數(shù)據的接收,要通過硬件設置分批發(fā)送。當接收完一批數(shù)據后,由于當TE為高電平時,只改變
同時我們還要考慮MAX3100在通知計算機不要發(fā)送數(shù)據后還有一批的數(shù)據在緩沖區(qū)內,這批數(shù)據要注意接收,而且這些數(shù)據應留有一個接收的時間余地。也就是說在通知計算機不要發(fā)送數(shù)據之后和開始執(zhí)行操作之前要延時一段時間,以保證數(shù)據的全部接收。
五: 結論
采用MAX3100作為擴展的UART,具有價格低廉,功耗小,實現(xiàn)容易的特點,而且比傳統(tǒng)的UART8251占用體積小,傳輸速度快,工作頻率高,具有比8251更優(yōu)越的性能。
前面所給程序是通過端口發(fā)送與接收數(shù)據的關鍵,對于任何一種基于MCS-51單片機采用MAX3100實現(xiàn)串行收發(fā)的應用系統(tǒng)來說都是非常有幫助的。經過實踐證明,該系統(tǒng)運行效果良好,數(shù)據傳送安全可靠,傳送快,應用廣泛。
在實踐中發(fā)現(xiàn)在系統(tǒng)晶振采用40MHZ,振蕩器晶振選用1.8432MHZ時,C語言編寫的MAX3100接收程序工作在115200波特率時有數(shù)據丟失的情況,最高只能到57600波特率,用匯編語言編寫的程序則可以達到115200波特率。如果MAX3100晶振選用3.6864MHZ時,用匯編語言編寫的程序可以達到其最高的波特率。