用MC68HC05PD6设计低成本寻呼机 Low Cost Pager's Solution with MC68HC05PD6 摘要:Motorola公司在单片机MC68HC05PD6内部集成了POCSAG协议寻呼解码器和144段LCD驱动器,特别适合于设计数字寻呼机。由于该芯片内集成了非常丰富的资源,因此,如果用来设计中文寻呼信息机,也能获得很高的性能价格比。针对该芯片的基本特性,本文介绍了用MC68HC05PD6设计寻呼机的电路构成和一些实际经验。 关键词:无线寻呼; Motorla单片机; POCSAG编码; MC68HC05 PD6 随着公众寻呼网的飞速发展,寻呼接收机的设计制造技术日臻完善,特别是集成电路技术的进步,使寻呼机不断朝着多功能、高性能和低成本等方向发展。以基带信号处理的控制部分为例,过去,寻呼机最少需要1片基带信号解码器、1片MCU(Micro-Controller Unit,单片机)和1片LCD(Liquid Crystal Display,液晶显示器)驱动芯片,即“3片机”方案;现在许多MCU能够把LCD驱动器集成进去。如MC68HC05L16、KS88C2148等可构成“2片机”方案。而Motorola公司在MC68HC05PD6(以下简称PD6)内部集成了POCSAG协议寻呼解码器(P-Decoder)和144段LCD驱动器,即把三者都集成在一片芯片中,从而提供了数字显示型寻呼接收机的一种最简单的解决方案。
1. 基本特点
PD6内含工业标准M68HC05的8位CPU内核,是HCMOS单片机MC68HC05家族成员之一。其指令系统与M68HC05兼容。 PD6采取多种手段以降低芯片功耗,它可在低至3V电压下工作,具有运行、等待、休眠等3种工作模式。双振荡器支持4MHz/76.8kHz频率。程序运行时可选择4MHz振荡源以获得1MHz高速内部操作时钟,而在休眠状态时,关闭4MHz振荡器,停止MCU内部进程(包括定时器)以降低电耗。76.8kHz振荡器永不停止,它给解码器提供工作时钟,使解码器在MCU休眠时仍能工作。PD6运行时供电电流为2.5mA,休眠时仅250μA。 片内带有可供使用的16kByte用户ROM,这使得设计的寻呼机功能更多,也不用担心程序空间不够,即使存储多首音乐数据也不会捉襟见肘。可提供OTP(One-Time Programmable,可一次编程)、EPROM、掩膜等多种ROM的版本。便于开发和批量生产。 片内有512Byte可用RAM(其中64Byte用于堆栈),在满足用户程序运行之余,还有足够的空间存储寻呼消息,可以存储20条数字寻呼消息而不用外扩RAM。 该芯片内有8个8位I/O口PA~PH,包括48根双向I/O线,16根单向输出线。所有I/O的访问均采用片内RAM映射方式(映射到片内64Byte RAM),I/O功能可灵活设置。芯片的引脚可作为内部特定资源的I/O,也可当作通用I/O线使用。例如:PD~PH等5个8位I/O口既可设置成LCD驱动器输出以满足数字显示型寻呼机的需要;也能设置成24根双向I/O线加上16根单向输出线使用,以便于设计汉字显示型寻呼机。所有I/O线的最大高电平输出能力均为0.4mA,PA~PC最大低电平输出能力为0.8mA,PD~PH为5.0mA。 PD6内部有1个14位加法计数/分频器、1个具有输入捕捉和输出比较功能的16位定时器、1个8位外部事件计数/定时器,以及用“看门狗”定时器和14位加法计数/分频器构成时基电路,它们由振荡源128分频后驱动,可提供LCD时钟、上电复位时钟和“看门狗”时钟。“看门狗”定时器用于监视CPU运行是否正常,程序跑飞或锁死时能自动复位MCU。外,MCU在RESET引脚输入低电平时,在初始化上电、发生非法地址访问等情况下也能可靠复位。 具有独立的24小时制实时时钟,由76.8kHz振荡器分频后计数。休眠状态实时时钟不停止,因而能方便地实现24/12小时制时间显示。 芯片具有独立的144段LCD驱动器,支持(3或4线背板电极)×(1~36线前板电极)。除了能满足12个8段数字显示外,剩余48段还可驱动多个小数字或形象化操作图标,美化显示界面。各LCD段映射在内部RAM区内,具有自动扫描输出,无需复杂时序操作。LCD时钟由时基电路产生,如果时基电路的时钟来自76.8kHz低频振荡器,在休眠状态也能正常显示。复位时LCD驱动器各引脚输出高电平,令LCD无显示,避免开机时屏幕杂乱无章。 内含独立的寻呼解码器。完全兼容CCIR第1号寻呼协议(POCSAG协议)。该解码器与CPU接口通过功能寄存器实现,从而使数据传送更快捷。解码器可接收只鸣型、数字型、字符型等格式消息数据。支持512bps、1200bps、2400bps等速率;可用软件控制适配基带信号极性并可提供多达6个用户地址;有自动节电控制和运行功能,支持宽带锁相环控制;能纠正地址码字或消息码字的2位错误。 中断源包括不可屏蔽软件中断、解码器中断、外部中断、按键唤醒中断、定时器中断、串行通信口中断和实时时钟中断等。复位、解码器中断、外部中断、按键唤醒中断和实时时钟中断都能轻松唤醒休眠模式。 采用80引脚四方形扁平(QFP)封装,其引脚距离为0.65mm或0.50mm 2种规格,体积小巧。
2. 寻呼接收机的电路构成
2.1 数字显示型寻呼机 图1是典型的数字显示型寻呼接收机的电路构成图。 图中PD6与宽带处理电路的接口线包括DIN、BS1~BS3等4根。它们连通着U2内部解码器,控制时序由解码器自动产生,不需程序操作。DIN是前级基带信号输出,BS1~BS3分别对应射频电路开关、射频电路电容放电、锁相环电路开关等控制。设计扫频式寻呼接收机时,宽带电路应有锁相控制。也就是说MCU应有与宽带电路的锁相接口,图1电路中PA口的PA4~PA7是空闲的,可以连至射频电路充当此任。 寻呼机在电池电压不足或电池临时取出时应具有检测与显示功能。图1中BL是宽带处理电路输出的电池电压不足信号,当电池电压不足时,BL输出一低电平,使得连接于U2的45脚IRQ2产生外部中断,及时通知MCU。若前端输出的BL信号为高电平有效时(譬如TA31142宽带接收器等),则应将该信号反相。在用户更换寻呼机电池时,MCU应关闭寻呼机所有功能模块以减小电耗,从而使C3中储存的电能可保持RAM中的寻呼信息在更换电池期间丢失。图中D2、C5、R4等元件起检测是否有电池的作用。U1及其外围元件构成DC-DC变换电路,将1.5V电池电压变换至3.0V以供给寻呼机主电源。若寻呼用户取出电池时,C1中储能很快消耗掉,使得D2的阳极电压为零,这样,U2的46脚被R4拉至低电平,令IRQ1引脚产生MCU外部中断而达到通知MCU的目的。当电池装上时,U1正常工作,并在2脚产生约3.5V脉冲电压,D2为一肖特基二极管,它的工作原理和D1一样,任务是将此高电压脉冲调整到3V,经C5平滑后将U2的45脚升至高电平,使IRQ1无效。电池取出期间,IRQ1引脚总是低电平,因此IRQ1产生中断后,程序应关闭这一中断源,以免它重新唤醒MCU的休眠。 EVO是PD6的8位定时/计数器(定时器2)的输出端,它将系统时钟分频后在44脚输出,改变定时器2的分频系数,能使其输出频率适配蜂鸣器B1的谐振频率。当然也可以将此引脚当作普通I/O线使用,程序控制输出高、低电平。在T1截止瞬间,B1中电流不能突变,它将在T1集电极产生一很高的负电压尖峰,图中并联在B1两端的二极管D3是一肖特基二极管,起阻尼作用,能将这一负电压尖峰箝位在0.3~0.5V左右。但D3的接入将使B1通电时间延长,若要使B1得到对称波形的电流,T1基极的脉冲占空比最好降至30%。 PD6的输出低电平电流最大为0.8mA(输出0.4V时测量),要使它驱动三极管T1~T3工作于开关状态,那么,T1~T3的β值、集电极最大容许电流ICM均应足够大,并且饱和压降较低。一般地,它们的β值应达到200~500,集电极最大容许电流ICM应在300mA左右。图1中电路只能保证电池电压为1.2V时T1~T3可靠驱动80mA负载,若某些负载元件(譬如B1)的瞬态电流超过这一数值,建议再加一级电流放大。图2给出改进后的蜂鸣器驱动电路。 D1、D2和D3均建议使用肖特基二极管,因为这种类型的二极管的导通压降较低,如果用IN4148之类的PN结开关二极管虽能正常工作,但会带来更大的损耗,特别是D1。 U3用来记录寻呼机用户的标识码(包括6个地址)。除了图中93LC46外,还可以选择诸如24LC01等通用的EEPROM。它们的连线及程序根据具体情况来考虑。其它的文献介绍得较多,这里不再赘述。 PD6的LCD驱动器输出的背极与前极之间交变电压峰峰值为2VDD,在3V电压供电时,能产生6V的交变输出,应据此来选择合适的LCD。第10脚外接一个约100kΩ的电阻到地可以调整LCD的对比度。具体参数应通过实验来确定。 2.2 中文信息寻呼机 中文机需要内置一寻址空间达256kByte的16×16点阵国标汉字显示字库(存储在ROM中)。为保存更多的信息,通常还需扩充容量为8k~32kByte的RAM。通常8位MCU的寻址空间最多能达到64kByte,PD6也不例外。所以,对字库的点阵数据的读取要通过I/O线完成寻址操作。另外,汉字是以图形方式显示的,以显示2行共14个汉字为例,需要驱动14×16×16=3584点象素,除专用于LCD驱动的MCU外,大多数MCU都具备这样的驱动能力。因此,目前生产的中文机无一例外地采用专门的图形LCD模块。 PD6虽是针对数字寻呼机而设计的,然而用来设计中文寻呼机也能获得良好的性能价格比。用于中文机时,PD6内部LCD驱动器发挥不了作用。这样PD6的PD~PH等5个8位I/O口共40根I/O线可全部空出来作为普通I/O使用。把LCD显示模块、字库ROM、扩充RAM等的地址线和数据线分别连在一起,通过片选信号选择不同的数据传送对象,这样可以大大减少I/O操作线的数目。这些操作最多只需20~24根I/O线,PD6的资源完全能满足要求,并能空出最少20根线。另外,PD6内部集成了解码器,价格与其它的不含该单元的MCU差不多,故而性能价格比很高。另外,PD~PH口驱动能力为5.0mA,比其它的I/O口(0.8mA)大得多,T1~T3改用这些I/O线驱动时,驱动能力更强。这样就用不着类似图2中的电流放大电路了。 中文机往往需要更多的操作按键,图1中用了3个键,KWI口还有5根输入线空闲,能轻松扩充多个按键输入。 解码器可支持6个用户地址,每个地址信息有2位功能位区别。当解码器接收到寻呼消息后,能给出所对应地址的功能位。于是,可以利用这些功能位提供多达4×6=24个消息箱。并且最少可提供20个公用消息信箱,大大增强了寻呼机的信息功能。解码器与CPU接口非常简单,这是一个得天独厚的条件,可以利用这些功能位扩充用户地址,使POCSAG协议寻呼系统的用户地址数达到800万,便于构成全国网。
3. 程序设计注意事项
由于PD6内部I/O映射RAM为双映射方式,加上MCU内部功能较多,而且控制寄存器相互之间存在关联,因此,这些映射RAM的访问比较繁琐,故要谨慎细致。 3.1 时基电路的时钟源 时基电路的输出提供给LCD和“看门狗”等电路使用,它的时钟源可选取高频时钟,也可选取低频时钟。但应注意,高频振荡器在MCU休眠状态时被关闭,选择这一时钟源将使LCD在休眠期间无显示,这不符合数字寻呼机的习惯。如选择低频时钟源,“看门狗”定时器在休眠期间仍然在计数,从而频繁产生系统中断复位MCU,这又是我们所不希望的。故而,要使用“看门狗”功能,则应在进入休眠之前用程序控制关闭“看门狗”定时器。 3.2 解码器响应 解码器接收到信息后,只有5位地址寄存器和20位消息寄存器作缓冲。换句话说,它只能保存一个码字的信息。如果接收到解码器的中断信号不作及时响应的话,很容易丢失消息。特别是当MCU在休眠状态时,高频时钟振荡源已关闭,系统时钟只能用19.2kHz的低频时钟,解码器中断唤醒休眠后,应首先取空接收信息寄存器RAIR、RMIRx的内容,再启动高频振荡器。由于高频振荡器有一个起振和稳定的过程,通常这一时间约在数毫秒至数十毫秒之间。在它稳定之前,切不可将主时钟切换到这一时钟源上,否则可能失步而丢掉寻呼信息。 3.3 群呼消息的静音 通常每个寻呼接收只有1个私人消息地址,解码器的其它地址常作群呼公众信息地址。如果接收群呼消息(如天气预报)时,寻呼机频繁告警常令用户头痛,中文机尤其如此。因此,设计可以考虑提供用户操作接口,设置是否需要群呼消息告警。解码器能返回所接收消息的匹配地址和消息内容,设计消息存储数据结构时应注意到这一点。
4. 结束语
POCSAG协议码字采用BCH编码,这种编码除能纠正2位随机错外,还能纠正4位突发错。但是,Motorola发布的PD6手册中还没有提及解码器对突发错的纠正能力,也没有提及倍频采样、数字滤波的措施。幸好我国POCSAG寻呼网大多数使用150MHz频段,对突发错不太敏感。我们当然不能要求PD6的解码器的性能超过昂贵的专用寻呼解码器。如果宽带电路的灵敏度提高2~3dB,再配合PD6作基带处理,性能会更好些。 Motorola公司作为当今世界上最大的单片机制造商和寻呼系统制造商之一,在这两方面都有先进的技术。因而PD6与其它公司同期推出的类似芯片相比,具有灵敏度高、耗电省、性能稳定、编程简单等诸多优点,无论用于构成数字显示型还是中文显示型POCSAG寻呼机均能获得良好的性能价格比,其应用前景非常广阔。件和升压电感L1、PFC功率开关Q1、升压二极管D1等组成平均电流型连续传导模式(CCM)PFC预变换器。R1为电流检测电阻,UCC38500的18脚用于检测AC输入电流,在19脚通过IAC流入外部的单极点滤波器产生一个AC输入电压前馈信号VFF。有源PFC升压变换器DC输出电压(385V)被U1的3脚检测,通过调节12脚(GT1)输出驱动PWM占空比,可保证PFC变换器DC输出电压的恒定。U1脚4通过检测PFC变换器DC输出电压和第二级输出驱动器电压来实现过电压保护功能。U1脚14为PFC峰值电流输入,用来完成PFC峰值电流的限制功能。 R3与C10为U1的VCC启动元件。只要PFC变换器开始工作,由L1的副绕组、D6与D7、C12与C20及R10等组成的泵电源即可为VCC脚提供工作电压和电流。 U1的脚10(GT2)输出的占空比被限制在50%以下,该脚输出PWM脉冲通过变压器T2耦合后用来驱动Q3、Q4开关。PFC变换器跟随的第二极DC-DC正向变换器通过T1进行隔离。次边DC输出电压经R28、R29和R30分压采样后输入到U2的脚7。经过U2内部的误差放大器后由脚3输出驱动信号,再经U3隔离放大,馈送到U1的脚7。通过调节U1输出的PWM占空比,可使SMPS的DC输出电压保持稳定。 Q4源极串联电阻R25为电流检测元件,U1在接收到R25上的检测信号后,可实现第二级DC-DC变换器的峰值电流控制功能。
|