通用異步串口擴展芯片GM8123/25的原理和應用
作者Email: market@gticc.com
摘 要 本文介紹了一種新器件GM8123/25串口擴展芯片,利用該系列芯片實(shí)現的串口擴展方案具有成本低、速度快、控制簡(jiǎn)單等優(yōu)點(diǎn),可廣泛應用于數據采集、工業(yè)控制等需要串口通訊的場(chǎng)合。
一.同類(lèi)方案比較
目前比較通用的串口擴展方案有兩種,一是用硬件實(shí)現,使用多串口單片機或專(zhuān)用串口擴展芯片,可供選擇的串口擴展芯片有TI等公司開(kāi)發(fā)的16C554系列串口擴展芯片,該系列芯片實(shí)現的功能是通過(guò)并行口擴展串行口,功能比較強大、通訊速度高,但控制復雜,同時(shí)價(jià)格較高,主要的應用場(chǎng)合是PC機串口擴展產(chǎn)品。在僅使用單片機控制且不需要太高波特率通訊的系統中,使用16C554系列芯片不僅成本高而且還造成了資源的浪費。而多串口單片機也同樣存在價(jià)格高的缺點(diǎn)。另一種串口擴展方案就是用軟件實(shí)現,軟件模擬串口存在的缺點(diǎn)有:一是采樣次數低,一般只能做到2次/BIT,這樣數據的正確性就難以保證;二是不能實(shí)現高波特率通訊,軟件模擬串口一般不能實(shí)現高于4800 bps的波特率。
成都國騰微電子有限公司推出的GM8123/25系列串口擴展芯片全硬件實(shí)現串口擴展,保證了芯片工作的穩定性,設計的最高波特率完全能滿(mǎn)足一般系統需求,同時(shí)占用系統資源少,使用方法簡(jiǎn)單,通訊格式可設置,與標準串口通訊格式兼容,利用該系列芯片實(shí)現串口擴展是性?xún)r(jià)比較高的串口擴展方案。
二.GM8123/25介紹
2.1 產(chǎn)品特點(diǎn)
采用寫(xiě)控制字的方式對芯片進(jìn)行控制
兩種工作模式,用戶(hù)可根據自己的系統需求靈活選擇
各子串口波特率可調(統一調節)
數據幀長(cháng)10位或11位可選
子串口數:3個(gè)(GM8123)或5個(gè)(GM8125)
數據采樣率 16次/BIT,確保數據采樣的準確可靠
單通道模式下,最高波特率支持20Mbps;多通道模式下,子串口最高波特率38400bps
與標準串口通訊格式兼容
輸出波特率誤差小于0.2%,輸入波特率誤差要求小于2.8%
寬工作電壓:2.3~6.7V
工作溫度范圍:-40℃~85℃
工作穩定,抗干擾能力強,符合工業(yè)級標準
2.2 功能描述
GM8123可擴展3個(gè)標準串口,GM8125可擴展5個(gè)標準串口,芯片可以通過(guò)軟件設置工作波特率和數據幀長(cháng)。芯片通過(guò)外部引腳選擇串口擴展模式:?jiǎn)瓮ǖ拦ぷ髂J胶投嗤ǖ拦ぷ髂J?。單通道模式下,子串口最高波特率支?0Mbps;多通道模式下,子串口最高波特率支持38400bps。
單通道模式下,無(wú)需設置芯片的通訊格式,子串口和母串口以相同的波特率工作,一個(gè)時(shí)刻只允許一組子串口和母串口通訊,工作子串口由地址線(xiàn)選擇。單通道工作模式適用于所有從機不需要同時(shí)通訊并且通訊過(guò)程完全由主機控制的系統。
多通道模式下,允許所有子串口同時(shí)與母串口通訊,母串口以子串口波特率的4倍(GM8123)/6倍(GM8125)工作,發(fā)送時(shí)由地址線(xiàn)選擇發(fā)送數據的子串口,接收時(shí)子串口能主動(dòng)響應從機發(fā)送的數據,由母串口發(fā)送給主機,同時(shí)由地址線(xiàn)返回接收到數據的子串口地址,主機在接收到子串口送來(lái)的數據后可以根據地址線(xiàn)的狀態(tài)判斷數據是從哪一個(gè)從機送來(lái)的。多通道模式使每個(gè)從機的發(fā)送要求都能被及時(shí)地響應,即使所有從機同時(shí)有發(fā)送要求,數據也不會(huì )丟失,基本實(shí)現了主控單元和外設通訊的實(shí)時(shí)性。多通道模式適用于從機向主機發(fā)送數據的時(shí)間不可控并且有實(shí)時(shí)性要求的多機通訊系統。(詳細情況查看成都國騰微電子有限公司發(fā)布的GM8123/25數據手冊)
2.3 系統結構
圖1為GM8123/25的系統結構框圖:
三.應用說(shuō)明
以以下一個(gè)系統為例,用GM8125說(shuō)明該系列芯片實(shí)現串口擴展的方法:一個(gè)系統中有5個(gè)從機需要與主機進(jìn)行串行通訊,5個(gè)從機通訊波特率均為19200bps,主機首先向所有從機發(fā)送一個(gè)字節數據作為對從機的控制命令,從機收到數據并進(jìn)行處理后立即向主機返回相關(guān)數據。根據系統要求看出,從機發(fā)送數據的時(shí)間根據其處理時(shí)間而定,不受主機控制,所以GM8125要工作在多通道模式下,即允許所有子串口同時(shí)工作。圖2是單片機與GM8125的接口框圖,該系統利用GM8125為主機89C51擴展出5個(gè)串口。
圖2 GM8125與單片機的硬件接口框圖
GM8125引腳說(shuō)明:
RST:復位引腳,低電平有效。復位后默認子串口工作波特率為1200bps,數據長(cháng)度為11位(帶校驗位);
MS:模式選擇引腳,控制芯片工作在多通道模式下還是單通道模式下。多通道模式下兼做讀/寫(xiě)命令字選擇引腳;
SRADD0~2:接收子串口地址線(xiàn);
STADD0~2:發(fā)送子串口地址線(xiàn);
RXD0、TXD0:母串口收/發(fā)引腳;
RXD1~5、TXD1~5:子串口1~5收/發(fā)引腳;
下面給出主機發(fā)送和接收的控制程序,以C51為例:
#include reg51.h>
sbit MS=P3^6; //GM8125工作模式控制
sbit RESET=P3^7; //GM8125復位引腳控制
unsigned char SendBuff[5]={0xaa,0x45,0x67,0xbc,0xc9};
unsigned char ReceiveBuff0;
。。。。。。
unsigned char Contr_data;
unsigned char ADD;
unsigned char i=0;
。。。。。。
void main(void)
{
TMOD = 0x20; //指定定時(shí)器1工作在方式2
IE = 0x90; //開(kāi)串行口中斷
SCON=0xc0; //串行口工作在方式3
TH1 = 0xf8; //裝入定時(shí)器1初值,設置主機工作波特率為7200bps
TL1 = 0xf8;
PCON=0x00;
。。。。。。
RESET=0; //對GM8125進(jìn)行復位操作
Delay(); //延時(shí)子程序
RESET=1;
Delay();
Contr_data=0xfc; //裝入命令字初值
TR1=1; //啟動(dòng)定時(shí)器1
MS=0; //GM8125工作在寫(xiě)命令字模式下
P0=0x00; //置GM8125命令字地址
SBUF=Contr_data; //設置GM8125子串口波特率為19200bps,母串口波特率為115200bps
while(TI==0);
TI=0;
Delay();
(可讀取命令字的內容驗證寫(xiě)入結果是否正確)
TR1=0; //定時(shí)器1停止
TH1 = 0xff; //裝入定時(shí)器1初值,設置主控MCU工作波特率為115200bps
TL1 = 0xff;
PCON=0x80;
TR1=1; //啟動(dòng)定時(shí)器1
/*主控MCU發(fā)送/接收程序*/
ADD=0x1f; //子通道1發(fā)送地址
P1=ADD; //選擇GM8125子通道1發(fā)送
SBUF=SendBuff[i];
while(TI==0);
TI=0;
i++;
(以此方式分別向5個(gè)子串口發(fā)送數據)
REN = 1;
(等待接收處理)
}
void CommReceive(void) interrupt 4
{
if(RI)
{
switch(P10x07) //判斷SRADD0~2的狀態(tài)確定接收數據來(lái)自哪一個(gè)子串口
{
case 0:
{ReceiveBuff0=SBUF; //讀命令字存入ReceiveBuff0
}
break;
case 1:
{ReceiveBuff1=SBUF; //子通道1接收的數據存入ReceiveBuff1
}
break;
。。。。。。
default:
break;
}
RI = 0;
}
}
該芯片的單通道模式適用于各從機不需要同時(shí)工作的系統,具體應用方法在此不做詳述,請參考國騰微電子有限公司發(fā)布的《GM812X應用手冊》。
四.結束語(yǔ)
利用GM8123/25進(jìn)行串口擴展,有以下優(yōu)點(diǎn):
1、控制簡(jiǎn)單。該芯片利用軟件設置工作方式,最大限度地減少控制線(xiàn),不需要占用太多主機的系統資源,同時(shí)又保證使用的簡(jiǎn)便性。
2、應用靈活。該芯片具備兩種工作模式、多種工作波特率、10位或11位數據幀長(cháng)可選,用戶(hù)可根據自己的系統需求靈活選擇。
3、通用性強。該芯片設計時(shí)充分考慮各種用戶(hù)的需求,保證了芯片的通用性,與標準串口通訊格式完全兼容,同時(shí)提供多種可選設置,適用于大多數串口通訊系統。
4、工作波特率高。該芯片子串口在單通道模式下波特率支持20Mbps,多通道模式下支持38400bps,此波特率完全能滿(mǎn)足一般的串口通訊的需求。
5、性能穩定。硬件實(shí)現串口比軟件實(shí)現串口更能保證串行通訊的穩定性,同時(shí)每bit采樣16次,保證了數據的正確性。
6、波特率誤差小。輸出波特率誤差小于0.2%,輸入波特率誤差要求小于2.8%。
該芯片不足之處在于:不滿(mǎn)足超低功耗應用要求;多通道模式下,所有子串口工作波特率只能設置成統一值,不適用于各從機工作波特率不一致、又要求同時(shí)工作的系統。
評論