无线对讲机的软硬件设计分析
本文是基于HKT-80BK模块开发的无线对讲机。通过设计实现了对讲机的基本语言信号功能。在此研究基础上,给整套系统绘制PCB板,以增加系统的可靠性,降低外部对该系统的干扰。
【关键词】无线通讯 HKT-80BK 单片机 LCD PCB
本文介绍设计中所选用的兼容单片机C语言软件开发软件KeilC51,简单分析了各模块的软件设计思路并详细介绍了软件开发过程。深入研究了实际编写过程中遇到的相应错误和警告,解决了软硬件联调中遇到的各种困难。
1 无线对讲机硬件设计
设计电路板是指一个电子产品从功能分析、设计思路、可行性验证到电路原理图设计、印制电路板设计、调试测试一直到最后成形产品的全过程。整个电路板设计过程可以分为以下创建原理图,绘制原理图,创建封装库,绘制PCB以及装配清单。
1.1 创建一个新的电气原理图
对讲机的硬件设计,从原理图的绘制到出PCB图都是在Altium Designer平台上实现的。第一步先创建一个PCB工程,点击Altium Designer菜单File/New/Project/PCB Project,重新命名工程文件(扩展名为.PrjPCB),选择菜单File/Save Project As。在File Name栏中输入工程名“HKT-80BK对讲机.PrjPCB”并单击Save保存。然后在新建的PCB工程下新建一个原理图文件,单击File/New/Schematic,或者在Files菜单栏内里的New选项中单击Schematic Sheet。在设计窗口中将出现了一个命名为Sheet1.SchDoc的空白电路原理图文件并且该电路原理图将自动被添加到工程当中。该电路原理图会在工程的Source Documents目录下,通过文件菜单File>>Save As可以对新建的电路原理图文件进行重新命名。当用户打开该空白电路原理图文件时,此时就发现工程目录改变了。主工具条包括一系列的新建按钮,其中有新建工具条,包括新建条目的菜单工具条,和图表层面板。这样就可以设计电路原理图了。
1.2 设置原理图选项
在绘制电路原理图之前,第一件要做的事情就是对文档选项进行合适的设置。完成下面步骤:
(1)从menus菜单栏中选择Design/Document Options ,弹出文档选项设置对话框。通过设置向导,现在只需要将图表的尺寸设置唯一改变的设置只有将图层的大小设置为A4。在Sheet Options 选项中,找到Standard Styles 选项。点击到下一步将会列出许多图表层格式。
(2)选择A4格式,并且点击OK,关闭对话框并且更新图表层大小尺寸。
(3)调整可以让文档适合显示的大小,通过选择View/Fit Document,在Altium中,再通过设置热键的方法让菜单处于激活状态。任何子菜单都有自己的热键用来激活。
例如,前面提到的View/Fit Document ,可以通过按下V键跟D键来实现。许多子菜单,比如Eidt/DeSelect 能直接用一个热键来实现。激活Eid/DeSelect/All on Current Document,只需按下X热键,并且按下S热键即可。
下面介绍电路原理图的总体设置。
(1)选择Tools/Schematic Preferences ,来打开电路原理图偏好优先设置对话框。这个对话框允许用户设置适用于所有原理图定的为全局配置参数的偏好设置,适用于全部原理图。
(2)在对话框左边的树形选项中单击Schematic/Default Primitives,激活并使能Permanent选项。单击OK以关闭该对话框。
(3)在开始设计原理图前,保存此原理图,选择File/Save [快捷键:F,S]。
1.3 创建原理图库
在原理图的绘制过程中会发现,Altium Designer自带的原理图库往往不能满足设计的需求。例如本设计使用的HKT-80BK、7805等,库里并没有。这时候就需要创建原理图库,根据器件的规格书进行器件的原理图库的创建。
1.4 分模块绘制各功能
当完成所需器件在库中查找以及原理图库的绘制,会发现把所有的器件绘制在一起会现的非常杂乱,为方便绘制和查看,可以分四个模块绘制功能。
1.4.1 电源模块
使用三端稳压器7805来给对讲机提供+5V的稳压电源,排除不稳定的电源带来的故障和干扰。其中开关KG1为电源开关,发光二极管D1为电源指示灯。
1.4.2 信号输入模块
按键S6为对讲机的发射/接收控制键,当按键S6按下时,PPT引脚为低电平,对讲机为发射模式。此时使用MIC麦克风作为输入器件,将语音转换成音频信号通过HKT-80BK芯片的MIC_IN引脚输入。HKT-80BK内置高性能信号处理模块,将输入的音频信号转换成射频信号由ANT引脚输出,通过天线发射出去。
当按键S6开路时,PPT引脚为高电平,对讲机为接收模式。ANT引脚便作为射频信号的输入端,将天线接收到的射频信号输入HKT-80BK芯片。HKT-80BK芯片再将输入的射频信号处理,转换成音频信号,由AF_OUT引脚输出。
1.4.3 信号输出模块
使用运算放大器LM386配合扬声器LS1组成对讲机的音频信号输出模块。
功率运放电路为电压增益Av=20的功放电路。运算放大器LM386还起到缓冲、隔离、提高带载能力的作用。电位器RP2则用于调节输入电平的大小,即音量调整。AF_OUT引脚输出的音频信号经过电位器RP2转成电压信号,通过单位增益放大电路,最后由扬声器LS1输出。
1.4.4 控制和显示模块
使用AT89S52以及LCD1602分别进行对HKT-80BK的控制和状态的显示。
如图1.1所示,单片机AT89S52通过I/O口P2.0、P2.1、P2.2对HKT-80BK模块的工作模式进行控制,通过I/O口P2.5、P2.6、P2.7以及P0口驱动液晶显示模块LCD1602。通过按键S1、S2、S3分别对HKT-80BK模块的降噪模式、功率模式、睡眠模式进行切换控制。例如:HKT-80BK模块当前状态为静噪、0.5W、非睡眠模式,按一下S2后就会切换成静噪、1W、非睡眠模式,再按一下S2则会切回原状态。由于AT89S52的I/O口驱动电流过小,无法直接驱动LCD1602,需要为P0口加上拉电阻进行驱动。电位器RP1用于调节LCD显示的对比度。
1.5 创建器件封装库
原理图绘制结束后就要开始绘制PCB图了,这时会发现自己创建的器件是没有封装的,也就无法将器件导入PCB文件。我们需要新建一个封装库,按照器件厂家提供的规格书上的标准尺寸,在新建封装库文件中绘制尺寸一致的焊盘和丝印等。
将新建的封装库通过封装管理器(Footprint Manager)关联到相应的器件上。
完成以上步骤后,就可以将原理图导入PCB图,下面的任务就是绘制PCB图。
1.6 绘制PCB图
将导入到PCB文件中的器件合理的分布(这点很重要),器件摆放结束后,就开始绘制导线。因为器件比较少,线路不太复杂,考虑到成本,绘制了单面板,
1.7 整理装配清单
最后整理出定型的器件,按照规格和封装进行选购。将买回的器件根据装配表进行焊接。
2 无线对讲机系统软件设计
本设计使用的HKT-80BK芯片是内置高性能射频收发芯片、微控制器以及射频功放的模块化芯片,数据的输入、编码、发送、接受、校验与接收(发送)状态间来回转换等工作已经不需要过多的考虑。
软件设计的主要任务是完成对HKT-80BK模式切换的控制(降噪模式,睡眠模式,功率模式)和LCD的显示控制。
首先对LCD1602的显示初始化,以及HKT-80BK模块初始模式的选择。将LCD设置成16×2显示、字符模式、关光标,HKT-80BK模块设置成降噪、0.5W工作模式。
本程序由main.c,LCD1602.h和Delay.h三个文件构成,main.c完成按键处理与数字显示,LCD1602.h是1602液晶屏显示控制程序,Delay.h是延时子函数。
LCD1602是常用的16×2字符型液晶屏,这里就不多介绍硬件信息,主要介绍下LCD1602的控制方式。1602液晶模块内部的控制器共有11条控制指令。1602液晶模块的屏幕和光标的操作、读写操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清屏,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:高电平表示有效,低电平则无效。光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
查LCD1602命令集表可分析液晶初始化子程序的设计,如初始化子程序中的以下两行:
WriteCommand(0x38); DelayMS(1);//液晶模式设置为"16*2显示,5*7点阵,8位数据接口
WriteCommand(0x01);DelayMS(1);//清屏
WriteCommand(0x06);DelayMS(1); //字符进入模式:屏幕不动,字符后移
WriteCommand(0x0C);DelayMS(1); //显示开,关光标 0x0e--光标显示不闪烁 0x0f--光标显示并闪烁
相比较LCD控制程序的编写,主程序就相对简单,只需要在初始化结束后等待按键,对按下的键进行判断,并改变相应的状态和显示即可。
参考文献
[1][美]john G.Proakis著.数字通信(第四版)[M].2009.
[2]黄智伟.无线发射与接收电路设计[M].北京:北京航空航天大学出版社,2007.
[3]刘奕.无线电接收机数字前端的研究与分析[D].湖南:湖南大学硕士学文论文,2005.
[4]Petrovic R,Molisch A F.Multipath effects of FSK with frequency-discriminator detection[J].Vehicular Technology,IEEE Transactions on, 2000,49(3):856-862.
作者单位
University of Southampton (英国)