蔡骁
(贵州航天电子科技有限公司,贵州贵阳,550009)
本文给出一个构成该系统的设计方案,文中介绍了该方案涉及的电路器件和关键程序示例。本方案采取的方法是通过FPGA控制电压采集芯片MAX1312将电压模拟量转换为电子数字量,并根据电压数字量得到显示数字量,最后控制液晶显示屏SG240128-01D进行显示数字量的显示。本方案中FPGA选用低端即可。
本方案设计的电压测试系统主要包含电源电路、电压采集电路、FPGA电路和串口电路,测量电压范围为0V~+5.0V。电路供电电压为+5.0V,电路中需要使用的电压有+5.0V、+3.3V和+1.5V。电源电路就是+5.0V的输入电压经过芯片LM1117-3.3和芯片LM-1117-1.5得到需要的+3.3V和+1.5V的电压。为避免电压采集电路对前级电路状态的影响,可在电压模拟量在输入MAX1312芯片之前经过一个可增大输入阻抗的运放AD824。MAX1312是8通道输入、采样精度12位、可采电压范围为-10V~+10V的电压采集芯片,可满足多数情况下电压测量需求。随着FPGA的普及,已广泛使用在各种领域,其电路简单常见。本方案中选用10MHz的工作频率。
显示电路设计,实质就是一个电压转换与电流驱动,由于从FPGA芯片出来的电压是3.3V,而显示屏的工作电压是+5.0V,而且既有输入,又有输出,因此需要使用将FPGA输出的+3.3V电压转换为+5.0V电压,也需要将由液晶显示屏输出的+5.0V电压转化为+3.3V。本方案中,选用具备+5.0V电压与+3.3V电压互转功能的驱动芯片74LVX4245,74LVX4245有一个电压转换方向选择管脚,当该管脚连接到高电平(+3.3V)时,该綦江实现的是从+5.0V电压到+3.3V的转换;当该管脚连接到低电平时,该期间实现的是从+3.3V电压到+5.0V电压的转换。
液晶显示屏选用的是北京集粹电子设备制造有限公司的SG240128-01D产品。该系列的液晶显示屏内部集成了T6963C控制芯片,自身带有常用字符库(没有汉子库)。对液晶显示屏的使用主要是对T6963C显示控制器的控制,然后由T6963C显示控制器完成对行驱动器、列驱动器和存储器的驱动,从而得到我们所需要的各种字符或图形的显示。
SG240128-01D液晶显示屏内部电路工作原理较为复杂,留有一个与外部通信的22芯片接口,在使用的时候,只需通过这个接口根据控制要求发送相应的控制命令或数据给T6963C显示控制器,就可显示所期望字符或图形。因此使用者只需要了解22芯片的接口定义及各种控制输入即可。
SG240128-01D液晶显示屏内部对液晶显示的控制和驱动都是由模块内部的芯片及电路来实现的,显示驱动所需的参数(如占空比系数、驱动传输的字节数/行以及字符的字体选择等)均有引脚电平来设置,液晶显示屏的初始化在上电时就已基本设置完成。除此之外,它还具有很强的软件控制能力,也就是由FPGA通过接口写入液晶模块的指令来实现模块控制。软件控制主要集中于显示功能的设置上。
采集模块程序就是控制MAX1312芯片工作,得到所想要的电压模拟量转换后的数字量。MAX1312的工作频率可以使用其内部时钟频率,也可使用外部时钟频率,本方案中选用频率为10MHz的外部时钟频率,采集模块程序的时钟频率也选用10MHz,8路通道同时使用。采集模块的程序思路是:先对MAX1312芯片进行初始化,延迟一段时间后,启动电压转换,当转换结束后,即可读取电压转换后的数字量。
得到模拟电压转换的数字量后,还不知道要显示的具体数值,要想得到具体数值,有多种方法,其中一种是根据MAX1312的工作原理进行计算的计算法,还有一种是通过查表直接得到的查表法。由于计算法涉及到二进制小数、二进制乘法等教复杂的程序,而使用软核,又对FPGA芯片有要求,本方案中使用查表法。该方法虽繁琐,但是对FPGA芯片要求低,而且程序简单。该方法原理是先根据显示电压值的位数和精度,推算出对应的电压数字量范围,然后根据采集模块得到的电压数字量,得到要显示的数字量。比如用MAX1312测量正电压时,要显示的电压值是到小数点后一位,显示精度为0.1V,如果要显示的电压值为4.0V,那么实际测量出的电压值范围应该是:3.95V~4.04V。计算3.995V对应的数字量:3.95V×212÷20V≈809,将809换算为12位的二进制:001100101001;计算4.04V对应的数字量:4.04V×212÷20V≈827,将827换算为12位的二进制:001100111011。
以此类推,可得到0V~+10V的显示转换程序。如果用MAX1312测量的电压中有负电压,由于采集模块得到的电压数字量是补码,在进行转换时,先要判断得到的电压数字量表示的是正电压还是负电压,如果是正电压,采用方法如上所述。如果是负电压,则需先标识显示符号,再计算出不带符号位的原码,然后采用与上相同的方法,即可得到负电压的显示数字量。
得到电压显示数字量后,就是将其值显示出来,根据液晶显示屏的工作原理,先要对其进行初始化和清屏处理,然后进行显示。初始化就是确定采用哪种方式进行显示(文本/图形),再来设置显示缓冲区中图形区的首地址、宽度和文本区的首地址、宽度。此后可选择光标的形状,继而进行显示开关设置。而清屏操作就是让显示屏清掉不必要的显示,为正确的显示做好准备,一般都是让整个屏全部显示空格符。显示电压值时,要显示的字符都是从字符库里调用的。这时使用自动写模式,这条命令对整屛数据操作十分党鞭,设置自动模式后,每个数据之间不再需要读/写命令。“数据自动读/写”命令后应根“地址指针设置”命令,每个数据读/写后,地址指针自动加1,所有数据读/写完成后,需要执行自动模式复位命令返回到正常操作模式。每个数据读/写之间应当检查状态寄存器自动模式位,自动模式复位也应当在检查自动模式位后执行。
在调用字符库时,“写显示数据”的内容就是要显示字符在字库中的地址,由于在显示模块程序汇总使用最后的是检查状态位以及对数据或命令的读写。
本文提供的电压测量方案适用于多种场合,转换程序可根据实际情况选用其他方法,如选用较高端的FPGA,可使用软核进行设计;也可使用计算机代替液晶显示屏进行显示,这时程序就只需要采集模块,转换模块和显示模块部分程序在计算中完成,整个方案就更加简单。