一种程控增益信号放大器的显控模块的制作方法

文档序号:19127295发布日期:2019-11-13 02:15阅读:249来源:国知局
一种程控增益信号放大器的显控模块的制作方法

本发明涉及程控增益信号放大器领域,具体为一种程控增益信号放大器的显控模块。



背景技术:

在使用电路放大器过程中,常常希望电路增益能够调整得到不同幅值的输出信号,以确保数据采样的精确性。因为程控增益放大器的放大倍数可以通过程序设定调整,因此程控自动增益信号放大器在测控系统、智能仪器仪表等许多领域都有重要应用。

例如,2018年11月出版的《电脑编程技术与维护》期刊的第15-18页公开了一种基于stc89c51单片机的程控增益放大器设计方法,其中也简要介绍了通过扫描按键获得参数设定,并通过液晶显示器显示完成用户进行操作的显控任务。但是方案介绍过于简略,未能披露按键功能、液晶屏类型等关键技术实现细节,而且显示控制部分与增益放大设置部分集中在一块51系列单片机上,又是扫描按键的方式获得参数设定,必然存在实时性低,可扩展性弱,维护性差等缺点。

又如,2017年1月出版的《电子测试》期刊的12,14页公开了一种基于stc89c52单片机为主控芯片,通过扫描按键在12864屏上显示的显控方案。12864屏属于微控制器(mcu)总线接口屏,显示速度是个比较大的瓶颈,大多数用户的mcu都是51内核或者stm32这样的arm7内核,驱动总线接口的屏速度不是很理想。除了速度瓶颈之外,界面的显示驱动对于大多数开发者来说比较困难,总线型接口的屏只提供点阵的操作,图片、字符等任何显示内容都是通过取模数据,在屏幕上相应的位置把点阵逐个显示出来。在此基础上再来实现人机界面的逻辑,工作量很大。通常情况下,比如做一个英文键盘可能开发者就得耗费几个星期的时间来制作。并且后期维护修改也会相当吃力。



技术实现要素:

为了解决上述技术问题,本发明提出了一种程控增益信号放大器的显控模块。

本发明所要解决的技术问题采用以下技术方案来实现:

一种程控增益信号放大器的显控模块,包括以s3c2416处理器为控制核心的最小系统电路、显示屏、与最小系统电路连接的串口0电路、串口2电路、串口3电路、按键、sd卡、带有指示灯功能的网口电路,还包括用于为不同器件提供不同电压的电源电路;其中:

串口0电路与显示屏连接以用于控制显示屏;

串口2电路与外界计算机连接以用于监控数据;

串口3电路与外界信号放大模块连接以用于交互通信数据;

按键以用于向放大器发送通道开关指令和设置增益放大倍数参数;

sd卡以用于启动模块;

网口电路与外界计算机连接以用于向模块加载程序;

电源电路具有供上述器件使用的5v和3.3v电压。

进一步地,所述最小系统电路包括以arm9为内核的s3c2416处理器、用于存放程序及数据的活存、用于固化模块程序代码的flash、用于网络串行信号与处理器并行信号的转换的网络数据转换芯片。

进一步地,所述最小系统电路还包括与电源电路连接用于将3.3v电压转换成1.2v和3.3v以供最小系统电路使用的电源转换模块。

进一步地,所述s3c2416处理器连接有通过按压贴片按钮产生复位信号的复位电路。

进一步地,所述显示屏上设有“状态”、“衰减”、“功率”、“内温”、“温一”、“温二”、“故障”、“本地/远程”显示内容。

进一步地,所述按键包括“本地/远程切换”、“设置”、“确认”、“取消”、“上”、“下”、“左”、“右”按键,且均具有外部中断功能。

进一步地,所述电源电路配有用于指示电源开通与否的发光二极管及用于控制通断的自锁按钮。

本发明的有益效果是:

与现有技术相比,本模块具有低功耗、高性能和低成本的特点,体积小重量轻,提供完整的系统对外接口,可以最大程度上减少系统额外组件以及成本;另外,还具有响应时间快、大大简化了开发过程、压缩开发周期、便于修改和维护以及大大提高了实时性;且具有良好的其通用性和扩展性,减少二次开发的重复劳动。

附图说明

下面结合附图和实施例对本发明进一步说明:

图1为本发明中模块结构框图;

图2为本发明中s3c2416最小系统框图;

图3为本发明中电源电路示意图;

图4为本发明中复位电路示意图;

图5为本发明中串口电路示意图;

图6为本发明中网口电路示意图;

图7为本发明中显示屏界面示意图;

图8为本发明中软件流程示意图;

图9为本发明中中断处理流程示意图;

图10为本发明中串口数据处理函数流程示意图;

图11为本发明中消抖程序流程示意图;

图12为本发明中闪烁程序流程示意图;

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合附图以及实施例对本发明进一步阐述。

如图1至图12所示,一种程控增益信号放大器的显控模块,包括硬件设计和软件设计。其中硬件如图1所示,包括以s3c2416处理器为控制核心的最小系统电路、显示屏、与最小系统电路连接的串口0电路、串口2电路、串口3电路、按键、sd卡、带有指示灯功能的网口电路,还包括用于为不同器件提供不同电压的电源电路。

其中,所述sd卡以用于启动模块;如图6所示,所述网口电路与外界计算机连接以用于向模块加载程序;具体地,所述网口电路采用标准rj-45接口。

如图3所示,所述电源电路使用5v输入,通过用于控制通断的自锁按钮

进行控制通断,同时采用ams1117-3.3进行电源转换得到3.3v电压,这样所述电源电路就会具有供上述器件使用的5v和3.3v电压,另外,所述电源电路配有用于指示电源开通与否的发光二极管。

如图2所示,所述最小系统电路包括以arm9为内核的s3c2416处理器、用于存放程序及数据的活存、用于固化模块程序代码的flash、用于网络串行信号与处理器并行信号的转换的网络数据转换芯片。具体地,所述活存采用k4t51163qjddr2sdram,容量32m×16bit;所述flash采用k9gag08,容量512m×8bit;所述网络数据转换芯片采用dm9000网络协议芯片。

如图4所示,所述s3c2416处理器连接有通过按压贴片按钮产生复位信号的复位电路,所述复位电路围绕max811t复位芯片设计,通过按压贴片按钮产生复位信号,将该信号与s3c2416处理器上的复位端口相连。

另外,所述最小系统电路还包括与电源电路连接用于将3.3v电压转换成1.2v和3.3v以供最小系统电路使用的电源转换模块。具体地,所述电源转换模块采用xc9216a33/13cm模块,其中1.2v的电压为处理器核供电,3.3v的电压为ddr2供电。

如图7所示,所述显示屏选用tcj4832k035_011串口显示屏,这种显示屏就在设备封装好底层功能后,通过串口(usart232)与处理器进行交互,处理器可以随时通过串口发送指令通知设备切换某个页面或者改变某个组件的属性,显示屏也可以随时通过串口通知处理器目前页面或组件的状态;所述显示屏上包括“状态”,用于显示功放主机的工作状态,例如:功放打开;“衰减”,用于显示功放主机的实际增益值,例如:1.00db;“功率”,用于显示功放主机的实时工作功率,例如:<20dbm;“内温”,用于显示功放主机的工作温度,例如:+028.5℃;“温一”,用于显示功放主机的第一功率放大器的工作温度,例如:+058.5℃;“温二”,用于显示功放主机的第二功率放大器的工作温度,例如:+058.5℃;“故障”,用于显示功放主机的故障状态,无故障时显示黑色,有故障时显示红色,并标明故障类型,例如:过反射;“本地/远程”,用于指示当前控制模式状态,设置为本地时该框内显示绿色“本地”字样,设置为远程时该框内显示蓝色“远程”字样。

如图5所示,串口0电路与显示屏连接以用于控制显示屏;串口2电路与外界计算机连接以用于监控数据;串口3电路与外界信号放大模块连接以用于交互通信数据;具体地,所述串口0电路使用ttl电平,所述串口2电路、串口3电路采用rs-232电平,因此需要设计串口电平转换电路,所述串口电平转换电路采用了具有双通道的max232aese芯片作为转换芯片,其中为了便于调试将串口2监控端口连接在db9连接器的2、3端,可以使用通用串口线进行与监控计算机的通信。

按键以用于向放大器发送通道开关指令和设置增益放大倍数参数。具体地,本模块中工设计有八个按键,分别为“本地/远程切换”、“设置”、“确认”、“取消”、“上”、“下”、“左”、“右”按键,这八个按键分别与s3c2416处理器上的八个io端口相连,并使用其复用的外部中断功能,如下表所示,为八个按键与io端口以及外部中断号的对应关系:

软件设计

本模块中的软件运行流程如图8所示,

第一步,完成对s3c2416处理器的初始化。

具体地,所述s3c2416处理器初始化包括定时器初始化、串口初始化、按键初始化和中断初始化,以便在后面的程序中能够顺利应用这些资源。

(1)定时器初始化

本模块使用定时器0用于产生显示屏数据闪烁的间隔时间,设计为每隔0.5秒产生定时器中断,定时器的初始化需要配置以下寄存器;

tcfg0寄存器(timerconfigurationregister0)负责定时器的预分频,其中定时器0的预分频设置由tcfg0的[7:0]位控制,所以将tcfg0[7:0]设置为99,这样经过预分频处理的时钟频率为:pclk/(99+1);

tcfg1寄存器(timerconfigurationregister0)可将得到的时钟进一步进行2分频、4分频、8分频和16分频,其中定时器0由tcfg1[3:0]位控制,这里将其设置为0x03,即进行16分频;

tcfg1寄存器(timer0countbufferregister)保存定时器的初始计数值,因为每隔0.5秒要产生一次定时中断,因此这里的计数值要设置为0.5秒定时器对应的值,综合以上分频设置,该值设置为pclk/100/16/2;

tcon寄存器(timercontrol)进行定时器的控制,其中[3:0]位控制定时器0,首先要将tcon[1]置1让tcntb0的值装入内部寄存器tcntb0中,然后将该位清0,最后将tcon[3]和tcon[0]置1,用来开启定时器0,同时设置当定时器0计数达到0时,将tcntb0的值装入内部寄存器tcntb0中,这样就能在中断到来时自动装载进行下一次计数。

(2)串口初始化

本模块除串口控制台(使用串口2)外还使用了两个串口,分别是串口0和串口3,其中串口0用于显示屏的控制,串口3用于与功能模块进行数据传输,串口2的初始化已由uboot自动完成,因此,对串口0和串口3的初始化过程进行阐述。

首先要对串口0和串口3相对应的复用的io端口进行配置,串口0使用gph1和gph0,串口3使用gph7和gph6,分别由gphcon寄存器的3:0]和[15:12]位控制,将gphcon寄存器的[3:0]和[15:12]分别设置为0xa使gph1、gph0、gph7、gph6复用为txd0、rxd0、txd3、rxd3。然后将gphpu寄存器的[3:0]和[15:12]分别配置为0xa,将以上引脚设置为内部上拉模式。

完成io端口的复用设置后,设置串口的属性。首先设置传输模式,所对应的是uclon0/3寄存器(uartlinecontrol),将其设置为0x03,使串口0/3的传输模式为8n1(8个数据位、无校验位、1个停止位);设置串口的控制方式,对应的寄存器为ucon0/3寄存器(uartcontrol),将其设置为0x05,使串口0/3时钟源为pclk,以中断方式/查询方式从接受缓冲区中读取数据;将ufcon0/3寄存器(uartfifocontrol)设置为0x00,表示不使用fifo;将umcon0寄存器(uartmodemcontrol)设置为0x00,表示不使用流量控制,注意串口3没有流量控制功能,因此没有对应的umcon3寄存器。最后是波特率的设置,将ubrdiv0/3寄存去(uartbaudratedivisor)的值设置为(pclk/波特率/16-1),此处采用的波特率为115200bit/s。

(3)按键初始化

本模块一共使用了8个按键,如前所述,分别为gpf0、gpf2、gpf6、gpf7、gpg1、gpg3、gpg4、gpg5,按键电路中将其上拉到3.3v电源,当按下时变为0v,因此要将其全部设置为外部中断模式,并且选择下降沿触发。需要将gpfcon寄存器和gpgcon寄存器中对应所用引脚的位(每个引脚占两位)配置为0x3选择引脚为外部中断模式,同时将eintcon0寄存器和eintcon1寄存器中引脚对应的位(每个引脚占四位)配置为0x2设置其为下降沿触发。

(4)中断初始化

中断初始化就是将所用到的各个中断以及自中断对应的寄存器中的屏蔽位清除,包括由intmsk(interruptmask)中断屏蔽寄存器第10位控制的定时器0中断、intmsk寄存器第18位控制的串口3中断(串口3使用到接收中断intsubmsk[24],串口0未使用中断功能)以及外部中断eint0、eint2、eint6、eint7、eint9、eint11、eint12、eint13,在s3c2416的中断系统intmsk寄存器中分别对应第0、2、4、5位,即eint0、eint2、eint4-7(控制eint6、eint7)和eint8-15(控制eint9、eint11、eint12、eint13)。

第二步,完成显示屏初始化

显示屏初始化的作用是初始化显示屏画面信息,使之与功能模块默认状态一致,以免用户误判功能模块的工作状态,具体就是通过串口0向显示屏发送指令,向显示屏的控件发送初始值以及初始颜色。

第三步,初始化完成后,向显示屏发送串口数据使其显示符合功能模块的初始状态,然后查询标志位;查询是否接收到功能模块数据,若有则将接收的功能模块数据通过串口发送到显示屏上进行显示,若没有则直接查询是否接收到按键标志位,若有则将设置状态标志并进行相关设置,若没有则直接查询是否有闪烁中断标志位,若有则控制显示屏上的控件进行闪烁显示,若没有则直接结束;另外,对上述各标志位进行轮询;其中,上述标志位与相应的串口中断、外部中断以及定时器中断紧密关联,当中断发生时,经过中断处理会产生相应的标志位。

如图9所示,首先将intoffset的值赋给oft,判断oft是否等于0,若是则置按键0标志,若不是则判断oft是否等于2,若是则置按键2标志,若不是则判断oft是否等于4,若是则判断eintpend[6]是否等于1,若是则置按键6标志,若不是则判断eintpend[7]是否等于1,若是则置按键7标志;若oft不等于4则判断oft是否等于5,若是则判断eintpend[9]是否等于1,若是则置按键9标志,若不是则判断eintpend[11]是否等于1,若是则置按键11标志,若不是则判断eintpend[12]是否等于1,若是则置按键12标志,若不是则判断eintpend[13]是否等于1,若是则置按键13标志;若oft不等于5则判断oft是否等于10,若是则置定时器0中断标志;若不是则oft是否等于18,若是则进行串口数据处理;若不是则接着判断oft是否等于4,若是则清除外部中断6/7;若不是则接着判断oft是否等于5,若是则清除外部中断9/11/12/13;若不是则接着判断oft是否等于18,若是则清除串口3接收中断;若不是则清除srcpnd寄存器,接着清除intpnd寄存器后结束。

其中“判断oft是否等于0”至“若不是则oft是否等于18,若是则进行串口数据处理”的部分流程是判断中断源并进行相应操作;“若不是则接着判断oft是否等于4”至“接着清除intpnd寄存器后结束”的部分流程是清除中断。

如图10所示为图9中串口数据处理函数流程,这时因此从图9中可以发现,在判断中断源后大部分的操作是标记对应来源的标志,而串口数据接收中断需要进行进一步判断,只有满足串口帧协议的数据才被认为传入的是有效数据。

另外,如图11所示,为了消除软件设计过程中按键机械抖动,防止因此而产生的误动作,设计了软件延时的按键消抖程序。

具体过程是当按键标志置1时,将相应按键io改为输入模式,延时10毫秒左右再检测该io口状态,如果仍为低电平则认为本次按键是有效的,设置相应的按键功能标志,最后将该io口恢复为中断模式。

如图12所示,为本模块中的闪烁程序。当显控模块处于参数设置模式时,设置区中被设置的区域需要闪烁显示以表示本部分正在被设置,该功能由定时器0中断实现,每隔0.5秒定时器0产生一次中断,中断到来后相关计数器加1,此时程序判断该计数器是否为奇数,如果是奇数则通过串口0向显示屏发送“vist0,1”让设置区域显示,反之则通过串口0向显示屏发送“vist0,0”,让设置区域消失,已达到设置区0.5秒闪烁的效果。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1