低成本串口擴(kuò)展方案在銀行柜臺密碼鍵盤設(shè)備中應(yīng)用
2004年5月A版
摘 要:本文介紹了應(yīng)用GM8123實(shí)現(xiàn)銀行柜臺密碼鍵盤設(shè)備中的擴(kuò)展多串口的方案。
關(guān)鍵詞:GM8123;多串口擴(kuò)展
引言
在銀行柜臺取款用的密碼鍵盤設(shè)備的開發(fā)中,為了和標(biāo)準(zhǔn)鍵盤、加密芯片和上位機(jī)這三部分模塊的接口通訊,就需要MCU具備三個標(biāo)準(zhǔn)的UART串口來和上述三個模塊的UART串口連接。而且通常各模塊的UART的波特率各不相同,設(shè)計也需要靈活的適應(yīng)需求。
MCU在整個設(shè)備里面的扮演的主從方會根據(jù)操作的階段發(fā)生變化。當(dāng)設(shè)備處于等待模式時,上位機(jī)是主方,而MCU是從方。MCU通過一個串口接收到主方的命令后再通過第二個串口啟動標(biāo)準(zhǔn)鍵盤,并控制相應(yīng)的聲光提示,然后等待標(biāo)準(zhǔn)鍵盤返回的按鍵數(shù)據(jù)(用戶密碼的明文),同時做相應(yīng)的超時處理。接收到按鍵數(shù)據(jù)后進(jìn)行一些基本的合理性判斷處理,然后通過另一個串口將密碼明文發(fā)送給加解密模塊,然后接收加密后的密碼密文。最后再通過和上位機(jī)連接的串口將密碼密文上傳,然后恢復(fù)到等待狀態(tài)。在對標(biāo)準(zhǔn)鍵盤和加解密模塊進(jìn)行操作的時候,MCU扮演了通訊的主方。在整個流程中,可以看作是個半雙工的通訊方式,讓操作和控制更簡單和更可靠。
現(xiàn)有方案
滿足上述應(yīng)用要求的方案有多種設(shè)計方式,各不相同,包括成本、可靠性、指標(biāo)都存在差異。根據(jù)目前的串口器件及設(shè)計原理歸納起來有以下幾種設(shè)計方案。
方案一是使用多串口的單片機(jī)。其中雙串口的單片機(jī)的價格在40~70元左右,三串口的單片機(jī)價格更加昂貴,直接增加了系統(tǒng)設(shè)計的成本。同時,由于各單片機(jī)的指令不同,以及由于串口功能的擴(kuò)展帶來的陌生寄存器的使用都增加了設(shè)計人員的工作量和難度。
方案二是使用普通的單片機(jī)擴(kuò)展16C55X這種通過并口擴(kuò)展串口的IC器件來實(shí)現(xiàn)。這類器件的優(yōu)點(diǎn)是串口速度高,響應(yīng)迅速。但缺點(diǎn)也是器件本身成本高,使用復(fù)雜,占用單片機(jī)的IO資源多,導(dǎo)致某些設(shè)計需控制外部聲光功能時還需要外擴(kuò)8255來擴(kuò)展并口資源,無形中又增加了PCB板面積、成本和設(shè)計難度。
方案三是軟件模擬串口功能。其優(yōu)點(diǎn)是成本低,但可靠性和串口指標(biāo)都無法控制。硬件串口工作中對每一個BIT的采樣是12次,而軟件模擬最多只能做到2次,大多只有1次,所以通訊的可靠性很難保證。同時軟件模擬的串口很難達(dá)到較高的波特率,所以限制了通訊的應(yīng)用。而且軟件編寫的難度高,程序工作量大,對研發(fā)人員的要求高,也局限了這種方案的推廣應(yīng)用。
其它方案還包括使用兩到三個普通單片機(jī)來達(dá)到需要的串口數(shù)量,然后相互之間通過自定義的并口或模擬的同步串口通訊協(xié)議來實(shí)現(xiàn)通訊等方案。
低成本應(yīng)用靈活的新方案
通過以上方案可以看出,現(xiàn)有的實(shí)現(xiàn)方案很難在成本和指標(biāo)上兩全齊美。成都國騰微電子有限公司推出的一種全新方式的串口擴(kuò)展芯片GM812X系列產(chǎn)品為上述設(shè)計帶來了一種新的、低成本和應(yīng)用簡單的串口擴(kuò)展方案。
GM812X系列串口擴(kuò)展芯片可為用戶提供最簡單和高性能的串口擴(kuò)展方案,將一個標(biāo)準(zhǔn)串口擴(kuò)展成3或5個標(biāo)準(zhǔn)串口。該系列芯片子串口最高波特率達(dá)38.4Kbps。該芯片提供兩種工作模式:單通道工作模式和多通道工作模式,即可以指定一個子串口和母串口以相同的波特率單一的工作,也可以讓所有子串口在母串口波特率基礎(chǔ)上分頻同時工作。用戶可根據(jù)需要靈活選擇。該芯片母串口和子串口的工作波特率可由軟件調(diào)節(jié),而不需要修改外部電路和晶振頻率。UART數(shù)據(jù)格式10位或11位可選。
GM8123可以將一個標(biāo)準(zhǔn)串口擴(kuò)展成3個標(biāo)準(zhǔn)串口,GM8125可擴(kuò)展5個標(biāo)準(zhǔn)串口。本文選擇GM8123作為串口擴(kuò)展的IC。圖1為GM8123的功能框圖。
在本設(shè)計中,GM8123即可滿足設(shè)計的需要。例如單片機(jī)采用最常用和便宜的AT89C52,將GM8123的母串口和單片機(jī)的串口相連接,再將標(biāo)準(zhǔn)鍵盤接口、加解密模塊的串口和上位機(jī)的串口分別連接到GM8123的三個擴(kuò)展串口上。圖2為方案的系統(tǒng)設(shè)計框圖。
假設(shè)上位機(jī)和加解密模塊的通訊波特率為9600bps,標(biāo)準(zhǔn)鍵盤的通訊波特率為1200bps。圖3為簡單的單片機(jī)程序設(shè)計中與通訊相關(guān)的狀態(tài)機(jī)流程圖。
該芯片的操作和編程應(yīng)用都很簡單,從圖3可以看出對GM8123的操作主要是通訊母串口的更改和波特率的設(shè)定,而且操作方式和編程基本相同。由于GM8123工作在單通道模式下,可以看作對母串口和子串口之間進(jìn)行透明傳輸處理,所以無須對GM8123進(jìn)行波特率的設(shè)置。
以下是在等待狀態(tài)下轉(zhuǎn)變到接收標(biāo)準(zhǔn)鍵盤按鍵數(shù)據(jù)的過程中指定子串口端口和從9600bps修改到1200bps的C51程序的部分示例代碼:
//GM8123地址控制線聲明
sbit SRADD0 = P3^4; // GM8123地址線SRADD0控制
sbit SRADD1 = P3^5; // GM8123地址線SRADD1控制
sbit STADD0 = P3^6; // GM8123地址線STADD0控制
sbit STADD1 = P3^7; // GM8123地址線STADD1控制
void main(void)
{
............
//初始化設(shè)置
SCON = 0xC0; //根據(jù)需要設(shè)置
TH1 = 0xFD; //裝入定時器1初值,設(shè)置MCU
工作波特率為9600bps
TL1 = 0xFD;
PCON = 0x00;
TR1 = 1; //啟動定時器1
............
//設(shè)置子串口三和上位機(jī)通訊
STADD0 = 1; //選擇子串口3發(fā)送
STADD1 = 1;
SRADD0 = 1; //選擇子串口3接收
SRADD1 = 1;
............ //接收上位機(jī)數(shù)據(jù)的相關(guān)處理
//切換到和串口一和標(biāo)準(zhǔn)鍵盤通訊
TR1 = 0;
TH1 = 0xE8; //裝入定時器1初值,設(shè)置MCU
工作波特率為1200bps
TL1 = 0xE8;
PCON = 0x00;
TR1 = 1;
STADD0 = 1; //選擇子串口1發(fā)送
STADD1 = 0;
SRADD0 = 1; //選擇子串口3發(fā)送
SRADD1 = 0;
............ //鍵盤控制和按鍵
}
結(jié)語
從上述內(nèi)容可以看出,通過GM8123實(shí)現(xiàn)3個串口的應(yīng)用非常簡單和靈活,程序工作量少,控制容易。并且以上設(shè)計只應(yīng)用到了GM8123的單通道模式,尚未發(fā)揮出該芯片的所有功能和靈活性。芯片的外部控制少,應(yīng)用靈活,編程使用簡單,適合于大多數(shù)需要多串口擴(kuò)展的應(yīng)用場合。比如:
但是應(yīng)用該芯片需要注意的是GM812X系列接口IC在多通道模式下不能將各個子串口的波特率設(shè)定的不同,不能滿足多串口同時進(jìn)行不同波特率數(shù)據(jù)通信的應(yīng)用設(shè)計。另外,GM812X系列現(xiàn)有的IC型號不能滿足手持設(shè)備的低功耗要求,以及有38.4Kbps的最高波特率限制?!?BR>
評論