用MC68HC05PD6設(shè)計(jì)低成本尋呼機(jī)
用MC68HC05PD6設(shè)計(jì)低成本尋呼機(jī) Low Cost Pager's Solution with MC68HC05PD6
摘要:Motorola公司在單片機(jī)MC68HC05PD6內(nèi)部集成了POCSAG協(xié)議尋呼解碼器和144段LCD驅(qū)動(dòng)器,特別適合于設(shè)計(jì)數(shù)字尋呼機(jī)。由于該芯片內(nèi)集成了非常豐富的資源,因此,如果用來(lái)設(shè)計(jì)中文尋呼信息機(jī),也能獲得很高的性能價(jià)格比。針對(duì)該芯片的基本特性,本文介紹了用MC68HC05PD6設(shè)計(jì)尋呼機(jī)的電路構(gòu)成和一些實(shí)際經(jīng)驗(yàn)。
關(guān)鍵詞:無(wú)線尋呼; Motorla單片機(jī); POCSAG編碼; MC68HC05 PD6
隨著公眾尋呼網(wǎng)的飛速發(fā)展,尋呼接收機(jī)的設(shè)計(jì)制造技術(shù)日臻完善,特別是集成電路技術(shù)的進(jìn)步,使尋呼機(jī)不斷朝著多功能、高性能和低成本等方向發(fā)展。以基帶信號(hào)處理的控制部分為例,過(guò)去,尋呼機(jī)最少需要1片基帶信號(hào)解碼器、1片MCU(Micro-Controller Unit,單片機(jī))和1片LCD(Liquid Crystal Display,液晶顯示器)驅(qū)動(dòng)芯片,即“3片機(jī)”方案;現(xiàn)在許多MCU能夠把LCD驅(qū)動(dòng)器集成進(jìn)去。如MC68HC05L16、KS88C2148等可構(gòu)成“2片機(jī)”方案。而Motorola公司在MC68HC05PD6(以下簡(jiǎn)稱(chēng)PD6)內(nèi)部集成了POCSAG協(xié)議尋呼解碼器(P-Decoder)和144段LCD驅(qū)動(dòng)器,即把三者都集成在一片芯片中,從而提供了數(shù)字顯示型尋呼接收機(jī)的一種最簡(jiǎn)單的解決方案。
1. 基本特點(diǎn)
PD6內(nèi)含工業(yè)標(biāo)準(zhǔn)M68HC05的8位CPU內(nèi)核,是HCMOS單片機(jī)MC68HC05家族成員之一。其指令系統(tǒng)與M68HC05兼容。
PD6采取多種手段以降低芯片功耗,它可在低至3V電壓下工作,具有運(yùn)行、等待、休眠等3種工作模式。雙振蕩器支持4MHz/76.8kHz頻率。程序運(yùn)行時(shí)可選擇4MHz振蕩源以獲得1MHz高速內(nèi)部操作時(shí)鐘,而在休眠狀態(tài)時(shí),關(guān)閉4MHz振蕩器,停止MCU內(nèi)部進(jìn)程(包括定時(shí)器)以降低電耗。76.8kHz振蕩器永不停止,它給解碼器提供工作時(shí)鐘,使解碼器在MCU休眠時(shí)仍能工作。PD6運(yùn)行時(shí)供電電流為2.5mA,休眠時(shí)僅250μA。
片內(nèi)帶有可供使用的16kByte用戶(hù)ROM,這使得設(shè)計(jì)的尋呼機(jī)功能更多,也不用擔(dān)心程序空間不夠,即使存儲(chǔ)多首音樂(lè)數(shù)據(jù)也不會(huì)捉襟見(jiàn)肘??商峁㎡TP(One-Time Programmable,可一次編程)、EPROM、掩膜等多種ROM的版本。便于開(kāi)發(fā)和批量生產(chǎn)。
片內(nèi)有512Byte可用RAM(其中64Byte用于堆棧),在滿(mǎn)足用戶(hù)程序運(yùn)行之余,還有足夠的空間存儲(chǔ)尋呼消息,可以存儲(chǔ)20條數(shù)字尋呼消息而不用外擴(kuò)RAM。
該芯片內(nèi)有8個(gè)8位I/O口PA~PH,包括48根雙向I/O線,16根單向輸出線。所有I/O的訪問(wèn)均采用片內(nèi)RAM映射方式(映射到片內(nèi)64Byte RAM),I/O功能可靈活設(shè)置。芯片的引腳可作為內(nèi)部特定資源的I/O,也可當(dāng)作通用I/O線使用。例如:PD~PH等5個(gè)8位I/O口既可設(shè)置成LCD驅(qū)動(dòng)器輸出以滿(mǎn)足數(shù)字顯示型尋呼機(jī)的需要;也能設(shè)置成24根雙向I/O線加上16根單向輸出線使用,以便于設(shè)計(jì)漢字顯示型尋呼機(jī)。所有I/O線的最大高電平輸出能力均為0.4mA,PA~PC最大低電平輸出能力為0.8mA,PD~PH為5.0mA。
PD6內(nèi)部有1個(gè)14位加法計(jì)數(shù)/分頻器、1個(gè)具有輸入捕捉和輸出比較功能的16位定時(shí)器、1個(gè)8位外部事件計(jì)數(shù)/定時(shí)器,以及用“看門(mén)狗”定時(shí)器和14位加法計(jì)數(shù)/分頻器構(gòu)成時(shí)基電路,它們由振蕩源128分頻后驅(qū)動(dòng),可提供LCD時(shí)鐘、上電復(fù)位時(shí)鐘和“看門(mén)狗”時(shí)鐘?!翱撮T(mén)狗”定時(shí)器用于監(jiān)視CPU運(yùn)行是否正常,程序跑飛或鎖死時(shí)能自動(dòng)復(fù)位MCU。外,MCU在RESET引腳輸入低電平時(shí),在初始化上電、發(fā)生非法地址訪問(wèn)等情況下也能可靠復(fù)位。
具有獨(dú)立的24小時(shí)制實(shí)時(shí)時(shí)鐘,由76.8kHz振蕩器分頻后計(jì)數(shù)。休眠狀態(tài)實(shí)時(shí)時(shí)鐘不停止,因而能方便地實(shí)現(xiàn)24/12小時(shí)制時(shí)間顯示。
芯片具有獨(dú)立的144段LCD驅(qū)動(dòng)器,支持(3或4線背板電極)×(1~36線前板電極)。除了能滿(mǎn)足12個(gè)8段數(shù)字顯示外,剩余48段還可驅(qū)動(dòng)多個(gè)小數(shù)字或形象化操作圖標(biāo),美化顯示界面。各LCD段映射在內(nèi)部RAM區(qū)內(nèi),具有自動(dòng)掃描輸出,無(wú)需復(fù)雜時(shí)序操作。LCD時(shí)鐘由時(shí)基電路產(chǎn)生,如果時(shí)基電路的時(shí)鐘來(lái)自76.8kHz低頻振蕩器,在休眠狀態(tài)也能正常顯示。復(fù)位時(shí)LCD驅(qū)動(dòng)器各引腳輸出高電平,令LCD無(wú)顯示,避免開(kāi)機(jī)時(shí)屏幕雜亂無(wú)章。
內(nèi)含獨(dú)立的尋呼解碼器。完全兼容CCIR第1號(hào)尋呼協(xié)議(POCSAG協(xié)議)。該解碼器與CPU接口通過(guò)功能寄存器實(shí)現(xiàn),從而使數(shù)據(jù)傳送更快捷。解碼器可接收只鳴型、數(shù)字型、字符型等格式消息數(shù)據(jù)。支持512bps、1200bps、2400bps等速率;可用軟件控制適配基帶信號(hào)極性并可提供多達(dá)6個(gè)用戶(hù)地址;有自動(dòng)節(jié)電控制和運(yùn)行功能,支持寬帶鎖相環(huán)控制;能糾正地址碼字或消息碼字的2位錯(cuò)誤。
中斷源包括不可屏蔽軟件中斷、解碼器中斷、外部中斷、按鍵喚醒中斷、定時(shí)器中斷、串行通信口中斷和實(shí)時(shí)時(shí)鐘中斷等。復(fù)位、解碼器中斷、外部中斷、按鍵喚醒中斷和實(shí)時(shí)時(shí)鐘中斷都能輕松喚醒休眠模式。
采用80引腳四方形扁平(QFP)封裝,其引腳距離為0.65mm或0.50mm 2種規(guī)格,體積小巧。
2. 尋呼接收機(jī)的電路構(gòu)成
2.1 數(shù)字顯示型尋呼機(jī)
圖1是典型的數(shù)字顯示型尋呼接收機(jī)的電路構(gòu)成圖。
圖中PD6與寬帶處理電路的接口線包括DIN、BS1~BS3等4根。它們連通著U2內(nèi)部解碼器,控制時(shí)序由解碼器自動(dòng)產(chǎn)生,不需程序操作。DIN是前級(jí)基帶信號(hào)輸出,BS1~BS3分別對(duì)應(yīng)射頻電路開(kāi)關(guān)、射頻電路電容放電、鎖相環(huán)電路開(kāi)關(guān)等控制。設(shè)計(jì)掃頻式尋呼接收機(jī)時(shí),寬帶電路應(yīng)有鎖相控制。也就是說(shuō)MCU應(yīng)有與寬帶電路的鎖相接口,圖1電路中PA口的PA4~PA7是空閑的,可以連至射頻電路充當(dāng)此任。
尋呼機(jī)在電池電壓不足或電池臨時(shí)取出時(shí)應(yīng)具有檢測(cè)與顯示功能。圖1中BL是寬帶處理電路輸出的電池電壓不足信號(hào),當(dāng)電池電壓不足時(shí),BL輸出一低電平,使得連接于U2的45腳IRQ2產(chǎn)生外部中斷,及時(shí)通知MCU。若前端輸出的BL信號(hào)為高電平有效時(shí)(譬如TA31142寬帶接收器等),則應(yīng)將該信號(hào)反相。在用戶(hù)更換尋呼機(jī)電池時(shí),MCU應(yīng)關(guān)閉尋呼機(jī)所有功能模塊以減小電耗,從而使C3中儲(chǔ)存的電能可保持RAM中的尋呼信息在更換電池期間丟失。圖中D2、C5、R4等元件起檢測(cè)是否有電池的作用。U1及其外圍元件構(gòu)成DC-DC變換電路,將1.5V電池電壓變換至3.0V以供給尋呼機(jī)主電源。若尋呼用戶(hù)取出電池時(shí),C1中儲(chǔ)能很快消耗掉,使得D2的陽(yáng)極電壓為零,這樣,U2的46腳被R4拉至低電平,令I(lǐng)RQ1引腳產(chǎn)生MCU外部中斷而達(dá)到通知MCU的目的。當(dāng)電池裝上時(shí),U1正常工作,并在2腳產(chǎn)生約3.5V脈沖電壓,D2為一肖特基二極管,它的工作原理和D1一樣,任務(wù)是將此高電壓脈沖調(diào)整到3V,經(jīng)C5平滑后將U2的45腳升至高電平,使IRQ1無(wú)效。電池取出期間,IRQ1引腳總是低電平,因此IRQ1產(chǎn)生中斷后,程序應(yīng)關(guān)閉這一中斷源,以免它重新喚醒MCU的休眠。
EVO是PD6的8位定時(shí)/計(jì)數(shù)器(定時(shí)器2)的輸出端,它將系統(tǒng)時(shí)鐘分頻后在44腳輸出,改變定時(shí)器2的分頻系數(shù),能使其輸出頻率適配蜂鳴器B1的諧振頻率。當(dāng)然也可以將此引腳當(dāng)作普通I/O線使用,程序控制輸出高、低電平。在T1截止瞬間,B1中電流不能突變,它將在T1集電極產(chǎn)生一很高的負(fù)電壓尖峰,圖中并聯(lián)在B1兩端的二極管D3是一肖特基二極管,起阻尼作用,能將這一負(fù)電壓尖峰箝位在0.3~0.5V左右。但D3的接入將使B1通電時(shí)間延長(zhǎng),若要使B1得到對(duì)稱(chēng)波形的電流,T1基極的脈沖占空比最好降至30%。
PD6的輸出低電平電流最大為0.8mA(輸出0.4V時(shí)測(cè)量),要使它驅(qū)動(dòng)三極管T1~T3工作于開(kāi)關(guān)狀態(tài),那么,T1~T3的β值、集電極最大容許電流ICM均應(yīng)足夠大,并且飽和壓降較低。一般地,它們的β值應(yīng)達(dá)到200~500,集電極最大容許電流ICM應(yīng)在300mA左右。圖1中電路只能保證電池電壓為1.2V時(shí)T1~T3可靠驅(qū)動(dòng)80mA負(fù)載,若某些負(fù)載元件(譬如B1)的瞬態(tài)電流超過(guò)這一數(shù)值,建議再加一級(jí)電流放大。圖2給出改進(jìn)后的蜂鳴器驅(qū)動(dòng)電路。
D1、D2和D3均建議使用肖特基二極管,因?yàn)檫@種類(lèi)型的二極管的導(dǎo)通壓降較低,如果用IN4148之類(lèi)的PN結(jié)開(kāi)關(guān)二極管雖能正常工作,但會(huì)帶來(lái)更大的損耗,特別是D1。
U3用來(lái)記錄尋呼機(jī)用戶(hù)的標(biāo)識(shí)碼(包括6個(gè)地址)。除了圖中93LC46外,還可以選擇諸如24LC01等通用的EEPROM。它們的連線及程序根據(jù)具體情況來(lái)考慮。其它的文獻(xiàn)介紹得較多,這里不再贅述。
PD6的LCD驅(qū)動(dòng)器輸出的背極與前極之間交變電壓峰峰值為2VDD,在3V電壓供電時(shí),能產(chǎn)生6V的交變輸出,應(yīng)據(jù)此來(lái)選擇合適的LCD。第10腳外接一個(gè)約100kΩ的電阻到地可以調(diào)整LCD的對(duì)比度。具體參數(shù)應(yīng)通過(guò)實(shí)驗(yàn)來(lái)確定。
2.2 中文信息尋呼機(jī)
中文機(jī)需要內(nèi)置一尋址空間達(dá)256kByte的16×16點(diǎn)陣國(guó)標(biāo)漢字顯示字庫(kù)(存儲(chǔ)在ROM中)。為保存更多的信息,通常還需擴(kuò)充容量為8k~32kByte的RAM。通常8位MCU的尋址空間最多能達(dá)到64kByte,PD6也不例外。所以,對(duì)字庫(kù)的點(diǎn)陣數(shù)據(jù)的讀取要通過(guò)I/O線完成尋址操作。另外,漢字是以圖形方式顯示的,以顯示2行共14個(gè)漢字為例,需要驅(qū)動(dòng)14×16×16=3584點(diǎn)象素,除專(zhuān)用于LCD驅(qū)動(dòng)的MCU外,大多數(shù)MCU都具備這樣的驅(qū)動(dòng)能力。因此,目前生產(chǎn)的中文機(jī)無(wú)一例外地采用專(zhuān)門(mén)的圖形LCD模塊。
PD6雖是針對(duì)數(shù)字尋呼機(jī)而設(shè)計(jì)的,然而用來(lái)設(shè)計(jì)中文尋呼機(jī)也能獲得良好的性能價(jià)格比。用于中文機(jī)時(shí),PD6內(nèi)部LCD驅(qū)動(dòng)器發(fā)揮不了作用。這樣PD6的PD~PH等5個(gè)8位I/O口共40根I/O線可全部空出來(lái)作為普通I/O使用。把LCD顯示模塊、字庫(kù)ROM、擴(kuò)充RAM等的地址線和數(shù)據(jù)線分別連在一起,通過(guò)片選信號(hào)選擇不同的數(shù)據(jù)傳送對(duì)象,這樣可以大大減少I(mǎi)/O操作線的數(shù)目。這些操作最多只需20~24根I/O線,PD6的資源完全能滿(mǎn)足要求,并能空出最少20根線。另外,PD6內(nèi)部集成了解碼器,價(jià)格與其它的不含該單元的MCU差不多,故而性能價(jià)格比很高。另外,PD~PH口驅(qū)動(dòng)能力為5.0mA,比其它的I/O口(0.8mA)大得多,T1~T3改用這些I/O線驅(qū)動(dòng)時(shí),驅(qū)動(dòng)能力更強(qiáng)。這樣就用不著類(lèi)似圖2中的電流放大電路了。
中文機(jī)往往需要更多的操作按鍵,圖1中用了3個(gè)鍵,KWI口還有5根輸入線空閑,能輕松擴(kuò)充多個(gè)按鍵輸入。
解碼器可支持6個(gè)用戶(hù)地址,每個(gè)地址信息有2位功能位區(qū)別。當(dāng)解碼器接收到尋呼消息后,能給出所對(duì)應(yīng)地址的功能位。于是,可以利用這些功能位提供多達(dá)4×6=24個(gè)消息箱。并且最少可提供20個(gè)公用消息信箱,大大增強(qiáng)了尋呼機(jī)的信息功能。解碼器與CPU接口非常簡(jiǎn)單,這是一個(gè)得天獨(dú)厚的條件,可以利用這些功能位擴(kuò)充用戶(hù)地址,使POCSAG協(xié)議尋呼系統(tǒng)的用戶(hù)地址數(shù)達(dá)到800萬(wàn),便于構(gòu)成全國(guó)網(wǎng)。
3. 程序設(shè)計(jì)注意事項(xiàng)
由于PD6內(nèi)部I/O映射RAM為雙映射方式,加上MCU內(nèi)部功能較多,而且控制寄存器相互之間存在關(guān)聯(lián),因此,這些映射RAM的訪問(wèn)比較繁瑣,故要謹(jǐn)慎細(xì)致。
3.1 時(shí)基電路的時(shí)鐘源
時(shí)基電路的輸出提供給LCD和“看門(mén)狗”等電路使用,它的時(shí)鐘源可選取高頻時(shí)鐘,也可選取低頻時(shí)鐘。但應(yīng)注意,高頻振蕩器在MCU休眠狀態(tài)時(shí)被關(guān)閉,選擇這一時(shí)鐘源將使LCD在休眠期間無(wú)顯示,這不符合數(shù)字尋呼機(jī)的習(xí)慣。如選擇低頻時(shí)鐘源,“看門(mén)狗”定時(shí)器在休眠期間仍然在計(jì)數(shù),從而頻繁產(chǎn)生系統(tǒng)中斷復(fù)位MCU,這又是我們所不希望的。故而,要使用“看門(mén)狗”功能,則應(yīng)在進(jìn)入休眠之前用程序控制關(guān)閉“看門(mén)狗”定時(shí)器。
3.2 解碼器響應(yīng)
解碼器接收到信息后,只有5位地址寄存器和20位消息寄存器作緩沖。換句話說(shuō),它只能保存一個(gè)碼字的信息。如果接收到解碼器的中斷信號(hào)不作及時(shí)響應(yīng)的話,很容易丟失消息。特別是當(dāng)MCU在休眠狀態(tài)時(shí),高頻時(shí)鐘振蕩源已關(guān)閉,系統(tǒng)時(shí)鐘只能用19.2kHz的低頻時(shí)鐘,解碼器中斷喚醒休眠后,應(yīng)首先取空接收信息寄存器RAIR、RMIRx的內(nèi)容,再啟動(dòng)高頻振蕩器。由于高頻振蕩器有一個(gè)起振和穩(wěn)定的過(guò)程,通常這一時(shí)間約在數(shù)毫秒至數(shù)十毫秒之間。在它穩(wěn)定之前,切不可將主時(shí)鐘切換到這一時(shí)鐘源上,否則可能失步而丟掉尋呼信息。
3.3 群呼消息的靜音
通常每個(gè)尋呼接收只有1個(gè)私人消息地址,解碼器的其它地址常作群呼公眾信息地址。如果接收群呼消息(如天氣預(yù)報(bào))時(shí),尋呼機(jī)頻繁告警常令用戶(hù)頭痛,中文機(jī)尤其如此。因此,設(shè)計(jì)可以考慮提供用戶(hù)操作接口,設(shè)置是否需要群呼消息告警。解碼器能返回所接收消息的匹配地址和消息內(nèi)容,設(shè)計(jì)消息存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)時(shí)應(yīng)注意到這一點(diǎn)。
4. 結(jié)束語(yǔ)
POCSAG協(xié)議碼字采用BCH編碼,這種編碼除能糾正2位隨機(jī)錯(cuò)外,還能糾正4位突發(fā)錯(cuò)。但是,Motorola發(fā)布的PD6手冊(cè)中還沒(méi)有提及解碼器對(duì)突發(fā)錯(cuò)的糾正能力,也沒(méi)有提及倍頻采樣、數(shù)字濾波的措施。幸好我國(guó)POCSAG尋呼網(wǎng)大多數(shù)使用150MHz頻段,對(duì)突發(fā)錯(cuò)不太敏感。我們當(dāng)然不能要求PD6的解碼器的性能超過(guò)昂貴的專(zhuān)用尋呼解碼器。如果寬帶電路的靈敏度提高2~3dB,再配合PD6作基帶處理,性能會(huì)更好些。
Motorola公司作為當(dāng)今世界上最大的單片機(jī)制造商和尋呼系統(tǒng)制造商之一,在這兩方面都有先進(jìn)的技術(shù)。因而PD6與其它公司同期推出的類(lèi)似芯片相比,具有靈敏度高、耗電省、性能穩(wěn)定、編程簡(jiǎn)單等諸多優(yōu)點(diǎn),無(wú)論用于構(gòu)成數(shù)字顯示型還是中文顯示型POCSAG尋呼機(jī)均能獲得良好的性能價(jià)格比,其應(yīng)用前景非常廣闊。件和升壓電感L1、PFC功率開(kāi)關(guān)Q1、升壓二極管D1等組成平均電流型連續(xù)傳導(dǎo)模式(CCM)PFC預(yù)變換器。R1為電流檢測(cè)電阻,UCC38500的18腳用于檢測(cè)AC輸入電流,在19腳通過(guò)IAC流入外部的單極點(diǎn)濾波器產(chǎn)生一個(gè)AC輸入電壓前饋信號(hào)VFF。有源PFC升壓變換器DC輸出電壓(385V)被U1的3腳檢測(cè),通過(guò)調(diào)節(jié)12腳(GT1)輸出驅(qū)動(dòng)PWM占空比,可保證PFC變換器DC輸出電壓的恒定。U1腳4通過(guò)檢測(cè)PFC變換器DC輸出電壓和第二級(jí)輸出驅(qū)動(dòng)器電壓來(lái)實(shí)現(xiàn)過(guò)電壓保護(hù)功能。U1腳14為PFC峰值電流輸入,用來(lái)完成PFC峰值電流的限制功能。
R3與C10為U1的VCC啟動(dòng)元件。只要PFC變換器開(kāi)始工作,由L1的副繞組、D6與D7、C12與C20及R10等組成的泵電源即可為VCC腳提供工作電壓和電流。
U1的腳10(GT2)輸出的占空比被限制在50%以下,該腳輸出PWM脈沖通過(guò)變壓器T2耦合后用來(lái)驅(qū)動(dòng)Q3、Q4開(kāi)關(guān)。PFC變換器跟隨的第二極DC-DC正向變換器通過(guò)T1進(jìn)行隔離。次邊DC輸出電壓經(jīng)R28、R29和R30分壓采樣后輸入到U2的腳7。經(jīng)過(guò)U2內(nèi)部的誤差放大器后由腳3輸出驅(qū)動(dòng)信號(hào),再經(jīng)U3隔離放大,饋送到U1的腳7。通過(guò)調(diào)節(jié)U1輸出的PWM占空比,可使SMPS的DC輸出電壓保持穩(wěn)定。
Q4源極串聯(lián)電阻R25為電流檢測(cè)元件,U1在接收到R25上的檢測(cè)信號(hào)后,可實(shí)現(xiàn)第二級(jí)DC-DC變換器的峰值電流控制功能。
評(píng)論