摘要:本文主要针对单片机在有线数据传输方面的应用,介绍了一种基于单片机MSP430实现的MODEM的数据传输系统。方案采用一个嵌入式的MODEM作为系统传输数据的MODEM,MODEM和单片机通过串口连接,实现数据的实时传输。 关键词:MODEM;嵌入式;单片机
引言
目前,在许多数据采集的应用中需要将数据传输到远端,采用MODEN通过电话线传输数据已经在日常甚或中得到了广泛的应用(如pos机系统)。通过MODEN传输数据,使采集系统的应用得到延伸。公共电话网已普及全国,采用MODEN实现的远程监控传输系统。另外由于电话线的普及以及有线传输具有可靠性和保密性的特点,因此采用MODEM传输数据的系统在诸如电子银行等领域也得到了广泛的应用。
1 系统整体设计方案
系统采用微控制器MSP430作为整个系统的MCU,采用一个嵌入式MODEM作为系统的数据的MODEM,MODEM与单片机通过串口进行连接,用单片机的另一个片内串口实现一个与上位机进行的通讯的接口,从而实现整个系统的配置功能,具体的系统结构图如图1所示。

图1 系统框图
由图1可以看出,整个系统硬件简单、接口方便。电源部分为整个系统提供稳定的3v和5v电源,其中3v是为单片机提供的工作电压,5v是为MODEM提供的工作电压。复位监控部分为系统在开机的时候提供复位信号,并监控系统工作的电压是否正常,当不正常的时候使系统复位。
2 系统硬件设计
系统的硬件由电源模块、复位监控模块、MODEM模块、串口通信模块以及单片机处理模块组成。整个系统的硬件主要是MODEM与单片机的接口电路的设计,RS232电路的设计、MODEM接口电路设计、电压升压电路设计、CPU处理模块和3V电源及复位模块。
2.1电源电路
整个系统除了MODEM外都采用3.0v伏供电,考虑到硬件系统对电源要求具有稳压功能和纹路小等特点,另外也考虑系统的电源部分用TI公司的TPS76330芯片实现, 该芯片的输出电流为150mA,可以满足系统的电流要求,为了使输出的纹小,,在输出部分用一个2.2uF和2.2uF的电容, 另外在芯片的输入端也放置一个0.1uF的滤波电容,减少输入端受到的干扰,如电路图2。

图2 电源电路
2.2 RS232转换电路
该系统实现的RS232电路主要是与上位机进行通信,实现单片机系统与上位机进行通信处理。由于单片机与上位机进行通信时接口电平不同,因此需要进行接口转换,这里采用SP322O芯片来完成接口电平转换由图4可以看出一个上拉电阻将SHDN管脚拉高,使芯片一直处于工作状态,如果系统需要处于低功耗状态,也可以通过单片机来控制该管脚,工作的时候将该管脚设置为低电平,在需要处于低功耗的时候将该管脚设置为高电平,这样很容易实现芯片工作状态的控制。在管脚C1+、C1-、C2+、C2-、V+和V-分别放置0.1uF的电容实现充电泵的要求。管脚T1OUT、TIN、RIOUT和RIN分别是232转换的输入输出脚,实现单片机的TTL电平与上位机的接口电平的转换。考虑到减小电源的干扰,还需要在芯片的电源输入脚加一个0.1uF的电容来实现滤波,以减小输入端受到的干扰。

图3 RS232转换电路
3.3 单片机处理电路
单片机电路作为整个系统的核心控制部分,主要完成与MODEM的通信,与上位机进行通信。单片机的时钟设计上,MSP430F149单片机采用两个时钟输入(即一个32KHZ的时钟信号,一个8MHZ的时钟信号)。该系统的时钟部分都是采用晶体振荡实现的,考虑到电源的熟土纹波对单片机的影响,在电源的管脚增加一个0.1uF的电容来实现滤波,以减小输入端受到的干扰。利用单片机的串口0与MODEM接口,用单片机的I/O口P1.5来作为启动通信的按键,由于P1.5可以作为中断口使用,这里设计成低电平触发方式,所以需要将该管脚拉高,单片机的串口1与上位机进行通信,因此串口1与RS232芯片进行连接。
电路如图4所示:

图4 单片机处理电路
3系统软件设计
整个软件系统主要实现MODEM的数据通信,另外还通过与上位机的通信来实现一些简单的配置管理。整个系统的流程如图5所示:

图5系统软件流程图
图5可以看出,整个系统软件基于中断服务机制,主处理需要与中断进行数据交换,具体的实现是通过全局的标志变量和全局的数据缓冲区来实现的。
整个软件系统包括上位机配置部分、按键处理部分、状态机实现部分和主处理部分,下面将进行具体介绍。
3.1上位机配置部分
上位机配置部分主要是通过单片机的串口实现与上位机的通信,上位机与单片机的通信格式是按照自定义的AT命令来实现的,这样可以便于将来软件的扩展。在单片机处理的时候将AT指令做成一张表,将不同的命令放到相应的位置,在处理来自上位机的命令的时候只需要查找相应的表,这样上位机配置部分主要包括表的做成、命令处理和FLASH操作等部分。
3.2按键处理部分
该部分程序主要是处理按键。当如果有按键按下的时候,设置标志通知住程序。由于P1.5管脚可以设置成中断方式,因此这里采用中断服务程序的机制,当有按键按下的时候,则进入中断服务程序,中断服务程序设置一个标志通知主程序有按键按下,以便主程序进行通信处理,程序代码如下:
Interrupt [PORT1_VECTOR] void COMM_ISR(void)
{
If(p1ifg & bits )
{
Ncom =1;
Ncom_command =0;
P1ifg &=~(bit5);
Delay_us(100);
}
}
在中断服务程序中,设置“ncomm=1”来通知主程序有按键按下,设置“ncomm_command=0”使通信流程进入MODEM初始状态。
3.3主处理部分
主处理部分模块主要是将各个模块进行协调和实现数据交互,主处理模块首先完成初始化工作,初始化后读取配置信息,如果读到有配置信息,则进入处理循环,如果没有读到配置信息,则等待配置信息,直到配置完成后进入循环。在循环过程中主处理扫描是否有按键按下,如果有按键按下,则进行通信流程,如果没按键按下,则继续循环。另外主程序还需要与两个串口的发送和接收中断服务程序进行数据交互。整个主程序基于中断服务结构,为了实现中断程序与主程序之间的数据交互,通过设置一些全局变量和全局的缓冲区来实现。
主程序需要和串口通信进程进行数据交互,当需要向串口发送数据的时候,往发送的数据的缓冲区里面封装数据,设置数据发送长度,设置中断标志后就触发中断服务程序,中断服务程序几发送数据,直到发送完毕后清除相应的标志位。主程序要需要检测串口的接收中断服务程序,当串口有新的数据到来时,串口接收中断服务程序将收到的数据填入到解手缓冲区里,设置接收的长度,设置接收标志来通知主程序取数据。
4结束语
本文作者创新点:系统采用MSP430F149实现的数据传输系统具有一定的通用性,它通过一个嵌入式的MODEM模块与单片机的UART进行连接实现数据传输。由于系统可以通过上位机进行配置,这样使该系统在使用上与很大的灵活性。目前该系统已经在江汉油田使用,经实践证明,运行良好,传输数据稳定。
参考文献:
[1]林雪梅,姚志成,彭佳红.单片机多机通讯协议的设计[J] 微计算机信息,2006,(05),131-133.
[2]胥静. 嵌入式系统设计与开发实例详解[M].北京: 北京航空航天大学出版社, 2005.
[3] Low Cost. Low Power Instrumentation Amplifier AD620[M].Analog Device Corporation. 2005.
[4]刘建超.单片机与Internet网络的通信应用研究[D] .山东师范大学,2007
[5]郑传涛,杨莉,宋占伟.基于MODEM的自动远程监控系统[D]. 吉林大学电子科学与工程学院.2008
|