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