MSP430与PC机的远程通信及液晶显示
苏州大学电子信息学院 施长浩
概述
在微机测控系统中,用作上位机的PC机系统与用作下位机的单片机之间经常要进行信息交换。目前的主流单片机和PC机内部均带有串行口,因而两者之间的通信可通过串行口完成。但是,在实际应用中有时主控PC机和单片机相隔很远,为保证数据能高速及时、安全的传至PC机,单片机与PC机之间采用RS485协议的串行通行较为合理。为了满足实时通信的需要,我们把接口电路做成全双工的形式。
实际应用中,需要把PC机传给单片机的一些数字量作显示,而这对于MSP430单片机来说,运用液晶显示模块合适,它可以把串口远程传输的量加以处理然后直观的用液晶作实时显示,这在实际生活中有较大的应用空间。 TI公司MSP430系列单片机是一种超低功耗的混合信号控制器,其中包括一系列器件,它们针对不用的应用由不同的模块组成。在MSP430A系列单片机中,液晶驱动作为一个片内外模块存在于MSP430F4XX和MSPX3XX等系列型号的器件中,利用这个特点,可以把PC机要传输的数据在MSP430系列单片机的液晶模块驱动下直接显示。
硬件设计
485串行通信接口电路的设计
实际应用中,由于大多数普通PC机和单片机只有常用的RS232串口通信口,而不具备RS485通信接口,为了实现RS485协议的串行通信,必须在PC侧配置RS485与RS232间相互转换。单片机与PC机间的RS485通信总体硬件接口电路的框图如图1所示。
单片机侧接口电路设计
图2中MAX490是MAXIM公司的RS485接口芯片,内部结构如图3所示。MAX490支持单电源+5V工作,可以实现全双工通信。其中R0、D0端的电平标准如下:逻辑“0”为 0.5V—0.8V 之间,逻辑“1”在2.0V—Vcc之间。工作状态为:当A端电压比B端电压高200mV以上,R0输出逻辑“1”,而当A端电压比B端电压低200mV,R0输出逻辑“0”;当DI输入逻辑“0”,Y输出低,Z输出高,反之Y输出高,Z输出低。
单片机MSP430串行通信模块的URXD、UTXD电平符合TTL/CMOS标准,当PC机的RXMCU有电平输入时,它首先通过6N137光电隔离,保护单片机不受干扰,由O脚输出到DI,从而转化为RS485电平由Y、Z输出。反之,PC机的输出信号转换成MAX490 A、B端的输入,并首先转换为R0输出,然后经过光电隔离后终由TXMCU输出。
PC机侧接口电路设计
PC机侧电路的具体实现如图3所示,RS232的电平标准如下:逻辑“0”的电平范围为 5V-15V,逻辑“1”的电平范围为5V-15V。这里选用的MAX232A是MAXIM公司的RS232电平转换芯片。
当PC机的TXDPC输出到R1IN时候,首先由MAX232A转换成TTL电平由R1OUT输出,经过6N137光电隔离后输入DI脚,从而转换为RS485电平由Z、Y输出。
同理,单片机输出信号转换成的RS485电平信号输入A、B脚,经过MAX490转换成TTL电平,再经过光电隔离终由RXDPC输出。必须强调的是在电路的连接中PC侧接口电路中的MAX490芯片引脚RSOUT+,RSOUT-必须和单片机侧MAX490芯片引脚RSIN+、RSIN-两两错开相连,这样才能正常的通信。
液晶驱动及显示电路设计
在系统中,我们需要把PC机传给单片机信息里面的一些关键的数字量作显示,对于MSP430单片机来说,运用液晶显示模块是为合适的,可以把串行口远程传输的量加以处理然后直观的用液晶作实时显示,这在实际生活中有较强的应用空间。这里所提到的液晶是不带任何驱动电路的,这样我们可以进一步自己定制液晶块,理论上可以显示任何信息。
MSP430A器件上的液晶显示器的控制/驱动将简化液晶显示器的显示。不同型号的液晶驱动能力不同,在设计中我们采用 MSP430的41X系列,有96段驱动能力。
液晶的驱动有4种方法:静态,2MUX或1/2占空比,3MUX或1/3占空比, 4MUX或1/4占空比。对于不同系列、不同型号的液晶驱动原理,控制方法都是一样的,不同点在于驱动液晶段数不一样,或可显示信息的多少不一样。在实验中我们采用4MUX。图4所示为MSP430液晶驱动模块的概图。
其中需要注意以下两点:
(1)液晶的偏压。由于液晶驱动使用交流电压,所以必须根据液晶的工作模MSP430进行偏压设置,具体的操作是:STATIC模式下,R33开路,R03-R23接地,2MUX模式下,分别在R33、R13以及R13、R03之间接上10K的电阻;3/4MUX模式下,分别在R33、R23之间,R23、R13以及R13、R03之间接上10K的电阻,这样就能保证COM0-COM3出来供给液晶块的电压符合要求,如图5所示。
(2)频率的设置。MSP430有三种时钟ACLK(辅助时钟)、MCLK(主时钟)、SMCLK(子时钟),其中液晶的驱动频率FCLK来自ACLK。在XTIN和XTOUT之间接上振荡频率为32KHz的晶振,Fclk可以根据需要选为1024Hz、512Hz、256Hz、128Hz等。 由FRFQ0和FRFQ1的设置可以满足不同液晶对频率的要求,其中Flcd=2*MUX(rate)*F(framing)。
例如:采用3MUX,已知F(framing)=100Hz-30Hz,
由F(LCD)=2*MUX(rate)*F(framing)=6*F(framing),
可知F(LCD)=180Hz-600Hz。可选择的F(LCD)为1024Hz、512Hz、256Hz、128Hz,所以F(LCD)=32K/128=256Hz,所以FRFQ0=1、FRFQ1=0。
在以上两点做好的基础上,我们只要把要输出的数字所对应的代码输出到MSP430的显存就可以显示。实验中如液晶抖动,可适当提高液晶的驱动频率。如液晶亮度不够,应适当调整偏压电阻的大小。
软件设计
单片机串行通信的原理及编程方法
通过利用PC机、仿真器以及IAR ICE集成开发环境完成单片机软件的调试,单片机侧的通行可以采用串行中断方式或者查询方式。在单片机软件实现的过程中有下列要求(1)串口通信设置(2)串口模式的选择(3)选择合适的波特率,在实验中我们统一采用查询方式。
PC机的VC串行通信及编程方法
采用ActiveX控件 (MScomm控件)编程,Windows平台先进的ActiveX技术使得对串行口编程比较容易。利用已有的ActiveX控件,只需要编写少量的代码,就可以轻松高效地完成任务。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
结束语
利用上述硬件电路,可以实现符合RS485协议的串行通信,并且可以把所关心的数字量液晶显示。该系统已经完成实验阶段测试。如果软硬件设计合理,进一步提高可靠性,加上全双工远程通信和液晶显示功能相信可以有更为广泛的实际应用。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。